参考 BIND 官网:http://www.isc.org/downloads/bind/

1、系统环境说明

  1. [root@clsn6 ~]# cat /etc/redhat-release
  2. CentOS release 6.9 (Final)
  3. [root@clsn6 ~]# uname -r
  4. 2.6.32-696.el6.x86_64
  5. [root@clsn6 ~]# sestatus
  6. SELinux status: disabled
  7. [root@clsn6 ~]# /etc/init.d/iptables status
  8. iptables: Firewall is not running.
  9. [root@clsn6 ~]# hostname -I
  10. 10.0.0.188 172.16.1.188 192.168.19.105

2、安装bind

  1. [root@clsn6 ~]# yum install bind* -y
  2. # 文件说明
  3. [root@clsn6 ~]# rpm -ql bind
  4. /etc/named.conf # 主配置文件
  5. /etc/named.rfc1912.zones # 区域解析库文件
  6. /var/log/named.log #日志文件
  7. /var/named #服务根目录

3、修改配置文件

备份named.conf并修改

  1. cp -p /etc/named.conf{,.bak}

修改配置文件

  1. [root@clsn6 ~]# cat /etc/named.conf
  2. # 修改监听地址,删除ipv6监听
  3. options {
  4. listen-on port 53 { 192.168.19.105; };
  5. ··· # 运行所有地址请求
  6. allow-query { localhost;any; };
  7. ···
  8. }

检查配置是否正确

  1. [root@clsn6 ~]# named-checkconf /etc/named.conf

4、启动服务

  1. [root@clsn6 ~]# /etc/init.d/named start
  2. Generating /etc/rndc.key: [ OK ]
  3. Starting named: [ OK ]

检查端口

  1. [root@clsn6 ~]# netstat -lntup |grep :53
  2. tcp 0 0 192.168.19.105:53 0.0.0.0:* LISTEN 4227/named-sdb
  3. udp 0 0 192.168.19.105:53 0.0.0.0:* 4227/named-sdb

测试DNS服务器

  1. [root@clsn6 named]# dig nmtui.com @192.168.19.105
  2. ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> nmtui.com @192.168.19.105
  3. ;; global options: +cmd
  4. ;; Got answer:
  5. ;; ->>HEADER < < opcode: QUERY, status: NOERROR, id: 38139
  6. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 16
  7. ;; QUESTION SECTION:
  8. ;nmtui.com. IN A
  9. ;; ANSWER SECTION:
  10. nmtui.com. 38 IN A 121.42.87.209
  11. ;; AUTHORITY SECTION:
  12. nmtui.com. 172237 IN NS dns2.hichina.com.
  13. nmtui.com. 172237 IN NS dns1.hichina.com.
  14. ;; ADDITIONAL SECTION:
  15. dns2.hichina.com. 172237 IN A 106.11.211.54
  16. dns2.hichina.com. 172237 IN A 106.11.211.64
  17. dns2.hichina.com. 172237 IN A 140.205.41.14
  18. dns2.hichina.com. 172237 IN A 140.205.41.24
  19. dns2.hichina.com. 172237 IN A 140.205.81.14
  20. dns2.hichina.com. 172237 IN A 140.205.81.24
  21. dns2.hichina.com. 172237 IN A 106.11.141.114
  22. dns2.hichina.com. 172237 IN A 106.11.141.124
  23. dns1.hichina.com. 172237 IN A 106.11.211.63
  24. dns1.hichina.com. 172237 IN A 140.205.41.13
  25. dns1.hichina.com. 172237 IN A 140.205.41.23
  26. dns1.hichina.com. 172237 IN A 140.205.81.13
  27. dns1.hichina.com. 172237 IN A 140.205.81.23
  28. dns1.hichina.com. 172237 IN A 106.11.141.113
  29. dns1.hichina.com. 172237 IN A 106.11.141.123
  30. dns1.hichina.com. 172237 IN A 106.11.211.53
  31. ;; Query time: 0 msec
  32. ;; SERVER: 192.168.19.105#53(192.168.19.105)
  33. ;; WHEN: Tue Feb 6 21:03:38 2018
  34. ;; MSG SIZE rcvd: 345

5、搭建公司内部域

搭建自己的域,让当前的DNS解析www.nmtui.com域
将域名 IP 关系存储在DNS上,在 /etc/named.rfc1912.zones 文件中进行添加

  1. [root@clsn6 ~]# vim /etc/named.rfc1912.zones
  2. zone "nmtui.com" IN { # hengxia.top是域名
  3. type master; # 表示权威DNS,即第一个
  4. file "nmtui.com.zone"; # 域数据库,默认位于/var/named/下面,只需告知文件名nmtui.com.zone是库文件名
  5. };

以/var/named目录下的named.localhost为模板,创建nmtui.com.zone文件,创建区域数据库

  1. 复制文件
  2. [root@clsn6 named]# cp -av named.localhost nmtui.com.zone
  3. 'named.localhost' -> 'nmtui.com.zone' ## 注意cp -a 保持原有属性

源文件说明

  1. [root@clsn6 named]# cat nmtui.com.zone # 解析区域数据库格式,存放名字与IP的对应关系
  2. $TTL 1D # 统一定义TTL(过期时间、缓存时间)
  3. @ IN SOA @ rname.invalid. ( # SOA记录 IN internet技术 IN第一条要写,后面可以省略,可继承第一条IN rname.invalid. 资源的类型
  4. 0 ; serial
  5. 1D ; refresh
  6. 1H ; retry
  7. 1W ; expire
  8. 3H ) ; minimum
  9. NS @ # 代表当前配置域
  10. A 127.0.0.1 # A记录 名字 到 IP 对应IPv4地址
  11. AAAA ::1 # A记录 名字 到 IP 对应IPv6地址

修改配置文件

  1. [root@clsn6 named]# cat /var/named/nmtui.com.zone
  2. $TTL 1D
  3. @ IN SOA @ nmtui.top. (
  4. 30 ; serial
  5. 1M ; refresh
  6. 1M ; retry
  7. 1M ; expire
  8. 3M ) ; minimum
  9. NS @
  10. www A 10.0.0.188
  11. blog A 10.0.0.188
  12. @ A 10.0.0.188

检查配置文件

  1. [root@clsn6 named]# named-checkconf # 检查配置文件是否正确
  2. # 检查区域配置是否正确
  3. [root@clsn6 named]# named-checkzone nmtui.com /var/named/nmtui.com.zone
  4. zone nmtui.com/IN: loaded serial 0
  5. OK
  6. # 载入配置
  7. [root@clsn6 named]# rndc reload
  8. server reload successful
  9. 重新载入不成功可以重启服务!

6、验证测试

在windows上测试

  1. C:\Users\clsn>nslookup - 192.168.19.105
  2. 默认服务器: UnKnown
  3. Address: 192.168.19.105
  4. > nmtui.com
  5. 服务器: UnKnown
  6. Address: 192.168.19.105
  7. 名称: nmtui.com
  8. Address: 10.0.0.188
  9. > www.nmtui.com
  10. 服务器: UnKnown
  11. Address: 192.168.19.105
  12. 名称: www.nmtui.com
  13. Address: 10.0.0.188
  14. > blog.nmtui.com
  15. 服务器: UnKnown
  16. Address: 192.168.19.105
  17. 名称: blog.nmtui.com
  18. Address: 10.0.0.188

在linux里测试

方法一

  1. [root@clsn6 named]# nslookup - 192.168.19.105
  2. > nmtui.top
  3. Server: 192.168.19.105
  4. Address: 192.168.19.105#53
  5. Name: nmtui.top
  6. Address: 10.0.0.188

方法二

  1. [root@clsn6 named]# dig nmtui.com @192.168.19.105
  2. ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> nmtui.com @192.168.19.105
  3. ;; global options: +cmd
  4. ;; Got answer:
  5. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43306
  6. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
  7. ;; QUESTION SECTION:
  8. ;nmtui.com. IN A
  9. ;; ANSWER SECTION:
  10. nmtui.com. 86400 IN A 10.0.0.188
  11. ;; AUTHORITY SECTION:
  12. nmtui.com. 86400 IN NS nmtui.com.
  13. ;; Query time: 0 msec
  14. ;; SERVER: 192.168.19.105#53(192.168.19.105)
  15. ;; WHEN: Tue Feb 6 20:58:20 2018
  16. ;; MSG SIZE rcvd: 57

方法三

  1. [root@clsn6 named]# ping www.nmtui.com -c1
  2. PING www.nmtui.com (10.0.0.188) 56(84) bytes of data.
  3. 64 bytes from 10.0.0.188: icmp_seq=1 ttl=64 time=0.010 ms
  4. --- www.nmtui.com ping statistics ---
  5. 1 packets transmitted, 1 received, 0% packet loss, time 0ms
  6. rtt min/avg/max/mdev = 0.010/0.010/0.010/0.000 ms