使用BIND提供域名解析服务

DNS域名解析服务

正向解析:将域名解析为IP地址。

反向解析:将IP地址解析为域名。

主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与 IP 地址之间的对应关系

从服务器:从主服务器中获得域名与 IP 地址的对应关系并进行维护,以防主服务器宕机等情况。

缓存服务器:通过向其他域名解析服务器查询获得域名与 IP 地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率。

递归查询,是指 DNS 服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果 DNS 服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户。

迭代查询则,是指DNS 服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台 DNS 服务器的地址,用户再向这台 DNS 服务器提交请求,这样依次反复,直到返回查询结果。

安装bind服务程序

1
$ yum install bind-chroot

建议在生产环境中安装部署 bind 服务程序时加上 chroot(俗称牢笼机制)扩展包,以便有效地限制 bind 服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。

配置文件:

    主配置文件     /etc/named.conf    用来定义 bind 服务程序的运行。

    区域配置文件    /etc/named.rfc1912.zones    保存域名和 IP 地址对应关系的所在位置。

    数据配置文件目录    /var/named    保存域名和 IP 地址真实对应关系的数据配置文件。

修改配置文件/etc/named.conf

1
2
3
4
$ vim /etc/named.conf
    listen-on port 53 { any; };    //服务器上的所有IP地址均可提供DNS域名解析服务
    .....
    allow-query { any; };    //允许所有人对本服务器发送 DNS 查询请求

正向解析实验

编辑配置文件/etc/named.rfg1912.zones

服务类型有三种:hint(根区域)、master(主区域)、slave(辅助区域),其中master和slave就是主服务器和从服务器。

1
2
3
4
5
6
$ vim /etc/named.rfg1912.zones
    zone "amonlinux.com" IN {
    type master;
        file "amonlinux.com.zone";
        allow-update {none;};
    }

编辑数据配置文件

1
2
3
$ cd /var/mamed/
$ cp -a named.localhost amonlinux.com.zone    //a参数可以保留原始文件的所有者、所属组、权限属性等星系
$ vim amonlinux.com.zone

1
2
3
4
$ vim /etc/sysconfig/network-scripts/ifcfg-ens33    
    DNS1=127.0.0.1
$ systemctl restart network    //重启网络
$ systemctl restart named    //重启bind

named-checkconf    检查主配置文件语法或参数的错误。

named-checkzone    检查数据配置文件语法或参数的错误。

nslookup    检测能否从犯DNS服务器中查询到域名与IP地址的解析记录。

反向解析实验

1
2
3
4
5
6
7
8
$ vim /etc/named.rfc1912.zones    //编辑区域配置文件
    zone "10.168.192.in-addr.arpa" IN {    //IP倒序写
    type master;
        file "192.168.10.arpa";
    };
$ cp -a /var/named named.loopback 192.168.10.arpa    //复制一份模板
$ vim 192.168.10.arpa    //编辑数据配置文件
$ systemctl restart named

nslookup 检验解析结果。

部署从服务器

在主服务器的区域配置文件中允许该从服务器的更新请求,即修改 allow-update。

1
2
3
4
5
6
7
8
9
10
11
12
$ vim /etc/named.rfc1912.zones
    zone "amonlinux.com" IN {
        type master;
        file "amonlinux.com.zone";
        allow-update { 192.168.10.12; };  //从服务器的ip地址为192.168.10.12
    };
    zone "10.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.10.arpa";
        allow-update { 192.168.10.12; };
    };
$ systemctl restart named

在从服务器中填写主服务器的 IP 地址与要抓取的区域信息,然后重启服务。注意此时的服务类型应该是 slave(从),而不再是 master(主)。masters 参数后面应该为主服务器的 IP 地址,而且 file 参数后面定义的是同步数据配置文件后要保存到的位置,稍后可以在该目录内看到同步的文件。

1
2
3
4
5
6
7
8
9
10
11
12
$ vim /etc/named.rfc1912.zones
    zone "amonlinuxe.com" IN {
        type slave;
        masters { 192.168.10.11; };    //主服务器的ip地址为192.168.10.11
        file "slaves/amonlinux.com.zone";
    }
    zone "10.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.10.11; };
        file "slaves/192.168.10.arpa";
    }
$ systecmtl restart named

nslookup 检验解析结果。

安全的加密传输

部署缓存服务器

分离解析技术