bind服务-2
五、部署一个正向解析
5.1)教学案例
对zutuanxue.com域名做解析,解析要求如下:
www 解析为A记录 IP地址为 192.168.11.88
news 做别名解析CNAME 解析为 www
1)主配置文件
[root@zutuanxue ~]# cat /var/named/chroot/etc/named.conf
options {
listen-on port 53 { any; };
directory "/var/named";
};
//定义根域
//用于DNS向根递归查询
zone "." IN {
type hint;
//保存了DNS根级服务器的地址
file "named.ca";
};
//定义一个主域
//注意每行都要;结尾
zone "zutuanxue.com" IN {
//类型为master
type master;
//区域数据库文件名称
file "zutuanxue.com.zone";
};
2)区域数据库文件
[root@zutuanxue named]# cat zutuanxue.com.zone
$TTL 1D
zutuanxue.com. IN SOA ns1.zutuanxue.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
;zutuanxue.com. 需要做解析的域名
;ns1.zutuanxue.com. 为zutuanxue.com.做解析的DNS 这里我们既是DNS也同时为自己域名做了解析
NS ns1.zutuanxue.com.
;A 域名机械为IP
;PTR IP解析为域名
;MX 邮件标记
;CNAME 别名
ns1 A 192.168.11.16
www A 192.168.11.88
news CNAME www
5.2)测试方法
域名解析linux系统为大家提供了三个命令,看大家喜欢用哪个都可以。
a、host采用非交互式解析,
b、nslookup可以采用交互或非交互式解析
c、dig显示详细的解析流程
测试注意:请将你的测试客户端机器的DNS指向你自己的DNS服务器的IP地址。本例中我使用DNS服务器给自己当测试端,我修改了自己的DNS服务器地址
[root@zutuanxue ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.11.16
#host命令
[root@zutuanxue ~]# host news.zutuanxue.com
news.zutuanxue.com is an alias for www.zutuanxue.com.
www.zutuanxue.com has address 192.168.11.88
#nslookup 命令---交互式解析
[root@zutuanxue ~]# nslookup
> news.zutuanxue.com
Server: 192.168.11.16
Address: 192.168.11.16#53
news.zutuanxue.com canonical name = www.zutuanxue.com.
Name: www.zutuanxue.com
Address: 192.168.11.88
> exit
#nslookup 命令---非交互式解析
[root@zutuanxue ~]# nslookup news.zutuanxue.com
Server: 192.168.11.16
Address: 192.168.11.16#53
news.zutuanxue.com canonical name = www.zutuanxue.com.
Name: www.zutuanxue.com
Address: 192.168.11.88
#dig命令
[root@zutuanxue ~]# dig news.zutuanxue.com
; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> news.zutuanxue.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28487
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;news.zutuanxue.com. IN A
;; ANSWER SECTION:
news.zutuanxue.com. 86400 IN CNAME www.zutuanxue.com.
www.zutuanxue.com. 86400 IN A 192.168.11.88
;; AUTHORITY SECTION:
zutuanxue.com. 86400 IN NS www.zutuanxue.com.
;; Query time: 0 msec
;; SERVER: 192.168.11.16#53(192.168.11.16)
;; WHEN: 一 2月 25 10:52:19 CST 2019
;; MSG SIZE rcvd: 93
技巧:
在dig解析中,后面跟上+trace来显示详细解析流程
[root@zutuanxue ~]# dig www.zutuanxue.com +trace
六、部署一个反向解析
案例:对www.zutuanxue.com做反向解析,其对应的IP地址为192.168.11.88
1)主配置文件添加反向解析zone
[root@zutuanxue ~]# cat /var/named/chroot/etc/named.conf
options {
listen-on port 53 { any; };
directory "/var/named";
};
//定义根域
//用于DNS向根递归查询
zone "." IN {
type hint;
//保存了DNS根级服务器的地址
file "named.ca";
};
//定义一个主域
//注意每行都要;结尾
zone "zutuanxue.com" IN {
//类型为master
type master;
//区域数据库文件名称
file "zutuanxue.com.zone";
};
//定义一个反向解析
//此处需要倒写网段
zone "11.168.192.in-addr.arpa" IN {
type master;
file "192.168.11.arpa";
};
2)区域数据库文件设置
[root@zutuanxue named]# cat 192.168.11.arpa
$TTL 1D
11.168.192.in-addr.arpa. IN SOA ns1.zutuanxue.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns1.zutuanxue.com.
88 PTR www.zutuanxue.com.
注意:文件的所有者和所有者组都是named
3)使用nslookup测试
[root@zutuanxue ~]# nslookup 192.168.11.88
Server: 192.168.11.16
Address: 192.168.11.16#53
88.11.168.192.in-addr.arpa name = www.zutuanxue.com.
七、DNS服务器冗余
DNS服务器在网络中为全世界的服务器提供了域名解析服务,扮演着至关重要的角色。网络中的某台DNS一旦宕机,就会造成部分域名无法解析,用户无法顺利访问到对应的服务器。但是我们学习的过程中也发现了,我们的DNS部署在单台服务器上,如果出现单点故障,我们应该如何应对呢?我们可以通过部署多台相同解析的DNS来解决单点故障,就算一台DNS服务器出现问题,也不会影响解析服务。怎么部署呢?如何保障多台之间的解析一致?这就是我们要讨论的问题了。我们来学习辅助DNS吧!
辅助DNS是从主DNS拉取区域数据库文件的的,当主DNS解析的域名对应的区域数据库文件发生变化,辅助就会去找主DNS拉取新的区域数据库文件,保证和主的解析一致,而且是自动的不需要人为干预的,确保了主从DNS的区域数据库文件的一致性。
教学案例:按照图例,为主DNS(192.168.11.16)部署一台辅助DNS(192.168.11.116),实现数据同步。
辅助DNS设置
a、软件包安装
[root@slave ~]# dnf -y install bind bind-chroot
b、设置主配文件
[root@slave etc]# cat /var/named/chroot/etc/named.conf
options {
listen-on port 53 { any; };
directory "/var/named";
};
//定义根域
//用于DNS向根递归查询
zone "." IN {
type hint;
//保存了DNS根级服务器的地址
file "named.ca";
};
//定义一个主域
//注意每行都要;结尾
zone "zutuanxue.com" IN {
//类型为slave 代表辅助
type slave;
//区域数据库文件名称
file "zutuanxue.com.zone";
//设置主DNS IP,向该IP去同步数据
masters { 192.168.11.16; };
};
//定义一个反向解析
//此处需要倒写网段
zone "11.168.192.in-addr.arpa" IN {
//类型写slave 代表辅助
type slave;
file "192.168.11.arpa";
//设置主DNS IP,向该IP去同步数据
masters { 192.168.11.16; };
};
修改权限
[root@slave etc]# chgrp named named.conf
c、启动服务
[root@slave chroot]# systemctl enable named-chroot.service
Created symlink from /etc/systemd/system/multi-user.target.wants/named-chroot.service to
/usr/lib/systemd/system/named-chroot.service.
[root@slave chroot]# systemctl start named-chroot
d、验证
[root@slave ~]# ls /var/named/chroot/var/named/
192.168.11.arpa zutuanxue.com.zone chroot data dynamic named.ca named.empty named.localhost named.loopback slaves
发现192.168.11.arpa zutuanxue.com.zone 这两个数据库文件已经同步过来了,解析一下看看吧!
设置客户端的DNS IP为192.168.11.116,我的测试机就是这台slave机器,所以设置为192.168.11.116即可
[root@slave ~]# cat /etc/resolv.conf
nameserver 192.168.11.116
使用nslookup验证一下
[root@slave ~]# nslookup news.zutuanxue.com
Server: 192.168.11.116
Address: 192.168.11.116#53
news.zutuanxue.com canonical name = www.zutuanxue.com.
Name: www.zutuanxue.com
Address: 192.168.11.88
[root@slave ~]# nslookup 192.168.11.88
Server: 192.168.11.116
Address: 192.168.11.116#53
88.11.168.192.in-addr.arpa name = www.11.168.192.in-addr.arpa.
看到结果了,完美!!
八、智能DNS
智能解析原理
在DNS中植入全世界的IP库以及IP对应的地域,当用户来请求解析时,DNS会根据其源IP来定位他属于哪个区域,然后去找这个区域的view视图查询对应的域名的区域数据库文件做解析。从而使得不同地域的用户解析不同。
教学案例:部署一台DNS智能解析服务器,对zutuanxue.com域名做智能解析:
上海的用户解析IP为 1.1.1.1
北京的用户解析IP为 2.2.2.2
其他用户解析为 3.3.3.3
智能解析
a、设置主配文件
定义IP库,DNS根据IP库判断源IP属于哪个区域
根据地域定义视图,将该区域的客户端的解析请求都由该视图中的zone来解析
[root@master named]# cat /var/named/chroot/etc/named.conf
options {
directory "/var/named";
};
//定义IP库
acl shanghai { 192.168.11.50; };
acl beijing { 192.168.11.100; };
//定义视图,通过IP匹配后,通过不同的区域数据库文件进行解析
view sh {
match-clients { shanghai; };
zone "zutuanxue.com" IN {
type master;
file "zutuanxue.com.zone.sh";
};
};
view bj {
match-clients { beijing; };
zone "zutuanxue.com" IN {
type master;
file "zutuanxue.com.zone.bj";
};
};
view other {
match-clients { any; };
zone "zutuanxue.com" IN {
type master;
file "zutuanxue.com.zone.any";
};
};
b、根据主配文件设置不同的区域数据库文件
[root@master named]# cd /var/named/chroot/var/named
[root@master named]# cp zutuanxue.com.zone zutuanxue.com.zone.bj
[root@master named]# cp zutuanxue.com.zone zutuanxue.com.zone.sh
[root@master named]# cp zutuanxue.com.zone zutuanxue.com.zone.any
[root@master named]# chgrp named zutuanxue.com.zone.*
[root@master named]# cat /var/named/chroot/var/named/zutuanxue.com.zone.sh
$TTL 1D
@ IN SOA zutuanxue.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.zutuanxue.com.
www A 1.1.1.1
[root@master named]# cat /var/named/chroot/var/named/zutuanxue.com.zone.bj
$TTL 1D
@ IN SOA zutuanxue.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.zutuanxue.com.
www A 2.2.2.2
[root@master named]# cat /var/named/chroot/var/named/zutuanxue.com.zone.any
$TTL 1D
@ IN SOA zutuanxue.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.zutuanxue.com.
www A 3.3.3.3
c、测试
依次修改主配的IP库中的IP为本机,观看解析情况
[root@master named]# nslookup www.zutuanxue.com
Server: 192.168.11.16
Address: 192.168.11.16#53
Name: www.zutuanxue.com
Address: 1.1.1.1