使用地理后端安装和配置PowerDNS(CDN /地理DNS消隐)

Geo后端可用于使用IP地址/国家/地区映射表在全球范围内分发查询。其中一些表格可免费在线获得,也可以支付少量费用获得。

与协议级重定向一样,这允许访问者在没有明显延迟的情况下发送到附近的服务器。此外,您可以使用Geo后端服务多个群集。这些群集都不容易获得,例如用于维护。

Geo后端被Wikimedia Foundation广泛使用,例如,它用于增强Wikipedia的全局负载平衡。

本教程已在Debian 7.x(乳白色)上进行了测试。

1.安装PowerDNS服务器和Geo后端

apt-get install pdns-server pdns-backend-geo

2.在PowerDNS(pico /etc/powerdns/pdns.conf)中禁用软件包和查询缓存。

添加这些行或修改它们(如果它们已经存在于配置文件中)。

cache-ttl=0
query-cache-ttl=0

默认情况下,PowerDNS将查询缓存到后端,并将程序包发送到客户端以提高速度。使用Geo后端时,这会产生问题,因为发送到客户端的软件包会因位置而异。

3.创建一个目录来存储IP到国家的映射

mkdir -p /usr/local/etc/powerdns

4.安装用于接收IP到国家/地区映射的rsync

apt-get install rsync

5.手动接收最新的IP到国家的映射。我使用rsync.blitzed.org,但还有其他提供程序。

rsync -qt rsync://rsync.blitzed.org/countries/zz.countries.nerd.dk.rbldnsd /usr/local/etc/powerdns/zz.countries.nerd.dk.rbldnsd

6.配置IP到国家/地区映射的每周自动更新(可选)

crontab -l | { cat; echo "0 0 1 * * rsync -qt rsync://rsync.blitzed.org/countries/zz.countries.nerd.dk.rbldnsd
/usr/local/etc/powerdns/zz.countries.nerd.dk.rbldnsd &&
/usr/bin/pdns_control rediscover > /dev/null"; } | crontab -

7.创建一个地理后端配置文件

cat > /etc/powerdns/pdns.d/pdns.geo <

您将需要将example.org更改为您的域,设置正确的名称服务器,然后选择一个主机名(在此示例中为geo。用于根据您正在运行的客户端解析为其他IP地址)。使用example.org)DNS查找)。

8.为example.org设置一个简单的绑定区域文件(此示例使用绑定后端,但可以使用其他后端)

如果尚未配置绑定区域,请创建一个包含该区域的目录。

mkdir -p /etc/powerdns/bind

创建一个区域文件以用于地理实验。

cat > /etc/powerdns/bind/example.org.zone <

您将需要将example.org更改为您的域,并为您的域和名称服务器调整区域文件。请注意,$符号已转义,可与cat命令一起使用。如果将这些行复制到配置文件中,请确保删除符号和EOF。在这里,我们创建了三个A记录,geo后端使用该记录根据用户的位置返回正确的IP地址。

9.将新的绑定区域添加到bindbackend配置

echo "zone "example.org" {
type master;
file "/etc/powerdns/bind/example.org.zone";
allow-update { none; };
};
" >> /etc/powerdns/bindbackend.conf
 

10.创建一个geo.example.org地理地图文件(在这里您可以配置将哪些位置解析为哪些IP地址)

创建一个包含地理地图的文件夹。

mkdir -p /etc/powerdns/geo-maps

为geo.example.org创建地图文件。

cat > /etc/powerdns/geo-maps/geo.example.org <

这是您放置所有地理规则的地方。第一个数字是默认0或ISO-3166国家/地区代码。每行的第二个条目是与正在使用的区域关联的主机(例如,如果用户居住在英国并向DNS查询geo.example.org,则地理后端将告知客户端geo.example.org)通知组织uk.example.org的别名,该别名返回配置有先前创建的绑定区域的IP地址192.168.2.1。

11.启用绑定和地理后端(pico /etc/powerdns/pdns.conf)

launch=bind,geo

12.从其他后端删除启动参数。为了全新安装PowerDNS,您需要从/etc/powerdns/pdns.d/pdns.simplebind(pico /etc/powerdns/pdns.d/pdns.simplebind)中删除启动行。

#launch=bind

13.重新启动PowerDNS

/etc/init.d/pdns restart

14.使用以下方法从各个位置进行测试:

host geo.example.org localhost

用您的域替换example.org

得到以下结果:


Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases:
 
geo.example.org is an alias for de.example.org.
de.example.org has address 192.168.1.1

Source link

Sidebar