一 实验环境
1.1 实验需求
配置正向解析 bind
配置反向解析 bind
配置辅助 dns 的 bind
实现主辅 dns 之间的区域传送
1.2 环境规划
主 dns:CentOS6.8-01 172.24.8.10 linuxmaster.aliyun.com
辅 dns:CentOS6.8-02 172.24.8.11 linuxslave.aliyun.com
yum+www 服务器: CentOS7-03 172.24.8.30 mirrors.aliyun.com
- client:CentOS6.8-03 172.24.8.20
- Domain Name:aliyun.com
二 配置正向解析
第一步: 使用 YUM 安装 DNS 所使用的软件包(BIND)
第二步: 创建或修改主配置文件(/etc/named.conf)
第三步: 创建区域数据文件(/var/named/***.zone)
第四步: 使用相关命令 (named-checkconf,named-checkzone) 测试配置文件及区域文件是否存在语法错误
第五步: 确保主配置文件和各区域解析库文件的权限为 640, 属主为 root, 属组为 named;
第六步: 重启服务或重新加载配置文件
第七步: 更改 iptables 和 selinux 的设置(如果不了解此两项可以暂时关闭它们)
第八步: 分别使用 (dig/nslookup) 在 Linux/Windows 主机进行查询 DNS 相关资源记录
2.1 安装 bind
1 [root@linuxmaster ~]# yum -y install bind
2.2 配置主配置文件
- [root@linuxmaster ~]# cat /etc/named.conf
- ......
- options {
- listen-on port 53 { 127.0.0.1; };
- listen-on-v6 port 53 { ::1; };
- directory "/var/named"; # 存放区域文件根目录, 下面给出的相对路径都是相对此目录
- dump-file "/var/named/data/cache_dump.db";
- statistics-file "/var/named/data/named_stats.txt";
- memstatistics-file "/var/named/data/named_mem_stats.txt";
- allow-query { localhost; }; # 允许哪些主机查询
- recursion yes; # 是否允许递归查询
- dnssec-enable yes;
- dnssec-validation yes;
- /* Path to ISC DLV key */
- bindkeys-file "/etc/named.iscdlv.key";
- managed-keys-directory "/var/named/dynamic";
- };
- logging { # 定义日志
- channel default_debug {
- file "data/named.run";
- severity dynamic;
- };
- };
- zone "." IN { # 定义根区域文件名称
- type hint;
- file "named.ca"; # 相对路径, 即可 / var/named/named.ca
- };
- include "/etc/named.rfc1912.zones"; #定义区域配置文件, 若要新增也可以在此使用 include
- include "/etc/named.root.key"; #根区域的 key 文件, 与事务签名相关
注释以下三行 --
- //listen-on port 53 { 127.0.0.1; };
- //listen-on-v6 port 53 { ::1; };
- //allow-query { localhost; };
- [root@linuxmaster ~]# service named start # 启动 named 服务
- [root@linuxmaster ~]# ss -taunl | grep "53"
- [root@linuxmaster ~]# netstat -tlun # 验证服务正常启动
2.3. 区域配置文件中新增 zone
- [root@linuxmaster ~]# vi /etc/named.conf # 在 zone 文件中增加区域
- ......
- zone "aliyun.com" IN {
- type master;
- file "aliyun.com.zone";
- };
- ......
2.4 新建区域 zone 文件
- [root@linuxmaster ~]# cd /var/named/
- [root@linuxmaster named]# cp /var/named/named.localhost /var/named/aliyun.com.zone
- [root@linuxmaster named]# vi /var/named/aliyun.com.zone
- $TTL 300;
- @ IN SOA linuxmaster.aliyun.com. admin.aliyun.com. (
- 2017051720
- 1H
- 5M
- 7D
- 3D )
- IN NS linuxmaster
- IN MX 20 MX
- linuxmaster IN A 172.24.8.10
- www IN A 172.24.8.30
- mirrors IN A 172.24.8.30
- ftp IN CNAME www
- [root@linuxmaster ~]# named-checkconf # 检查配置文件
- [root@linuxmaster named]# named-checkzone "aliyun.com.zone" /var/named/aliyun.com.zone
- zone aliyun.com.zone/IN: loaded serial 2017051720
- OK
2.5 修改权限
- [root@linuxmaster ~]# chmod 640 /var/named/aliyun.com.zone
- [root@linuxmaster ~]# chown root:named /var/named/aliyun.com.zone
注意: 确保主配置文件和各区域文件权限为 640, 属主为 root, 属组为 named.
[root@linuxmaster ~]# service named restart
2.6 关闭防火墙和 SELinux
- [root@linuxmaster ~]# service iptables stop
- [root@linuxmaster ~]# setenforce 0
- [root@linuxmaster ~]# service named restart
2.7 测试解析
将 dns 修改为主 dns 服务器地址, 之后 ping linuxmaster.aliyun.com 测试.
三 反向解析 bind 配置
正向解析与反向解析各自采用不同的解析库, 一台 DNS 服务器可以只有正向解析库或只有反向解析库, 也可以同时提供正向 / 反向解析.
反向区域的区域名称格式:
ReverseIP.in-addr.arpa.
例如: 假设网络地址为 172.16.100.1 那么规则命名为 100.16.172.in-addr.arpa
3.1 区域配置文件中新增反向 zone
- [root@linuxmaster ~]# vi /etc/named.conf
- ......
- zone "8.24.172.in-addr.arpa" IN {
- type master;
- file "8.24.172.zone";
- };
- ......
3.2 新建反向区域 zone 文件
- [root@linuxmaster ~]# /var/named/8.24.172.zone
- $TTL 300;
- @ IN SOA linuxmaster.aliyun.com. admin.aliyun.com. (
- 2017051720
- 1H
- 5M
- 7D
- 3D )
- IN NS linuxmaster.aliyun.com.
- 8.10 IN PTR linuxmaster.aliyun.com.
- 8.30 IN PTR www.aliyun.com.
- 8.30 IN PTR mirrors.aliyun.com.
- 8.10 IN PTR mx.aliyun.com.
注意:
反向解析不需要 CNAME 记录, 且 MX 记录决不允许出现在反向解析库里;
8.10 ip 地址没写全会自动从主配置文件中定义的区域名 "24.172.in-addr.arpa", 没写全最后面不需要加.
- [root@linuxmaster ~]# named-checkconf # 检查配置文件
- [root@linuxmaster ~]# named-checkzone "aliyun.com.zone" /var/named/aliyun.com.zone
- zone aliyun.com.zone/IN: loaded serial 2017051720
- OK
- [root@linuxmaster ~]# named-checkzone "aliyun.com.zone" /var/named/8.24.172.zone
- zone aliyun.com.zone/IN: loaded serial 2017051720
- OK
3.3 修改权限
- [root@linuxmaster ~]# chmod 640 /var/named/24.172.zone
- [root@linuxmaster ~]# chown root:named /var/named/24.172.zone
注意: 确保主配置文件和各区域文件权限为 640, 属主为 root, 属组为 named.
1 [root@linuxmaster ~]# service named restart
3.4 关闭防火墙和 SELinux
- [root@linuxmaster ~]# service iptables stop
- [root@linuxmaster ~]# setenforce 0
- [root@linuxmaster ~]# service named restart
3.5 测试解析
将 dns 修改为主 dns 服务器地址, 之后在 Windows 客户端使用 nslookup 测试.
四 辅助 DNS 配置
辅助 DNS 是针对区域来说的, 如果有多台 DNS 服务器, 必须为每个 DNS 服务器建立 NS 记录, 否则主 DNS 将不向其发送通知.
4.1 定义区域
- zone "区域名称" IN {
- type slave; # 区域类型为辅助
- file "slaves/ZONE_NAME.zone"; #区域文件必须保存在 slaves 目录下, 放在其他目录没有权限
- masters { # 指出主服务器是谁, 注意: 花括号前后要有一个空格
- MASTER_DNS_IP;
- MASTER_DNS2_IP;
- };
- };
4.2 辅 DNS 上安装 bind
1 [root@linuxslave ~]# yum -y install bind
4.3 区域配置文件中新增辅助 zone
- [root@linuxslave ~]# vi /etc/named.rfc1912.zones # 建议添加在 named.rfc1912.zones 里
- ......
- zone "aliyun.com" IN {
- type slave;
- file "slaves/aliyun.com.zone";
- masters { 172.24.8.10; }; # 主 DNS 的地址
- };
- zone "8.24.172-addr.arpa" IN {
- type slave;
- file "slaves/24.8.172.zone";
- masters { 172.24.8.10; };
- };
- [root@linuxslave ~]# named-checkconf # 检查配置
4.4 辅助 dns 关闭防火墙和 SELinux
- [root@linuxslave ~]# service iptables stop
- [root@linuxslave ~]# setenforce 0
- [root@linuxslave ~]# service named restart
4.5 主 DNS 正向解析添加辅助 DNS 记录
- [root@linuxmaster ~]# vi /var/named/aliyun.com.zone
- $TTL 300;
- @ IN SOA linuxmaster.aliyun.com. admin.aliyun.com. (
- 2017051720
- 1H
- 5M
- 7D
- 3D )
- IN NS linuxmaster
- IN NS linuxslave
- IN MX 20 MX
- linuxmaster IN A 172.24.8.10
- linuxslave IN A 172.24.8.11
- www IN A 172.24.8.30
- mirrors IN A 172.24.8.30
- mx IN A 172.24.8.10
- ftp IN CNAME www
4.6 主 DNS 反向解析添加辅助 DNS 记录
- [root@linuxmaster ~]# vi /var/named/8.24.172.zone
- $TTL 300;
- @ IN SOA linuxmaster.aliyun.com. admin.aliyun.com. (
- 2017051720
- 1H
- 5M
- 7D
- 3D )
- IN NS linuxmaster.aliyun.com.
- IN NS linuxslave.aliyun.com.
- 8.10 IN PTR linuxmaster.aliyun.com.
- 8.11 IN PTR linuxslave.aliyun.com.
- 8.30 IN PTR www.aliyun.com.
- 8.30 IN PTR mirrors.aliyun.com.
- 8.10 IN PTR mx.aliyun.com.
4.7 检查配置
- [root@linuxmaster ~]# named-checkconf # 检查配置文件
- [root@linuxmaster ~]# named-checkzone "aliyun.com.zone" /var/named/aliyun.com.zone
- zone aliyun.com.zone/IN: loaded serial 2017051720
- OK
- [root@linuxmaster ~]# named-checkzone "aliyun.com.zone" /var/named/8.24.172.zone
- zone aliyun.com.zone/IN: loaded serial 2017051720
- OK
- [root@linuxmaster ~]# service named restart
查看主 DNS 往辅助 DNS 的数据同步情况
4.8 查看辅助 dns
- [root@linuxslave ~]# yum -y install bind-utils # 安装客户端
- [root@linuxslave ~]# dig -t axfr aliyun.com @172.24.8.10 # 查看辅助 dns 同步情况
1 [root@linuxslave ~]# cat /var/named/slaves/aliyun.com.zone
注意: 辅助 DNS 资源记录是从主 DNS 同步过来的, 不能手动更改.
Windows 客户端检测.
总结:
1, 每个 DNS 服务器必须要有一个对应的 NS 资源记录;
2, 创建 slave 的时候, 其配置文件类型必须是 type slave; 必须指定主服务器的 IP 地址 ;
3, 可以使用 dig -t axfr test.com @server_IP 从主 DNS 服务器拉取所有解析库资源记录;
4, 主辅同步完成后, 将自动在 slave 服务器上的 slaves / 目录下生成 zone 文件, 这些区域文件是从主 DNS 同步过来的, 一般为只读, 不建议更改 slave 的 zone 文件;
5, 在主 DNS 上修改区域文件时, 必须将 SOA 记录的 serial 加 1 因为 slave 是通过 serial 值来进行判断更新的(Windows 系统上是自动完成的);
6,DNS 的日志默认全部保存在 / var/log/messege 文件中;
7,DNS 的解析依赖于解析库, 所以就算是所配置的内容是完全不存在的也可以解析(且正向解析和反向解析的解析库是各自独立的). 需要注意, 正向解析里没有 PTR 记录, 而反向解析库里不需要 A 记录, MX 记录和 CNAME 记录
来源: https://www.cnblogs.com/itzgr/p/10323097.html