分享

CentOS7.3使用BIND配置DNS服务器(一)

 株野 2018-01-08


来源:http://blog.csdn.net/miouqi/article/details/76422700

日期:2017-07-31

一、DNS及BIND的简介

      DNS(Domain Name System),即域名系统。它使用层次结构的命名系统,将域名和IP地址相互映射,形成一个分布式数据库系统。DNS采用CS架构,服务器端工作在UDP协议端口53和TCP协议端口53上。FQDN(Fully Qualified Domain Name)完全限定域名,它是使用DNS的数状层级结构的完全路径域名来表示一个准确位置的主机。提供正向解析(FQDN—>IP)和反向解析(IP—>FQDN)的功能。目前DNS已经成为互联网通讯的基础服务。
      BIND(Berkeley Internet Name Domain)BIND(Berkeley Internet Name Daemon)是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。

二、实验环境:

VM12、CentOS7.3 x64(作为DNS服务器,IP为172.16.252.77)、CentOS6.9 x64(作为测试机,IP地址为172.16.252.174)

三、实验前的准备:

      因为本实验只是为了了解DNS的实现,所有关掉了CentOS7.3的防火墙,SELinux.

[root@hengxia ~]# getenforce  # 查看当前selinux的运行状态
Enforcing
[root@hengxia ~]# vi /etc/selinux/config
SELINUX=enforcing改为SELINUX=permissive
[root@hengxia ~]# setenforce 0   # 使生效
[root@hengxia ~]# iptables -nvl
[root@hengxia ~]# systemctl disable firewalld           # 设为下次开机禁止启动
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@hengxia ~]# systemctl stop firewalld              # 关闭防火墙
[root@hengxia ~]# iptables -vnL
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

四、CentOS7.3上yum安装BIND,并启动

      在CentOS7.3上安装BIND,并启动

[root@hengxia ~]# yum -y install bind
[root@hengxia ~]# rpm -ql bind 
/etc/logrotate.d/named
/etc/named
/etc/named.conf         # 主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones    # 区域解析库文件 
...(中间省略)...
/run/named          # 服务脚本使用此文件
...(中间省略)...
/var/log/named.log
/var/named          # 服务根目录
...(中间省略)...
/var/named/slaves       # 从服务器使用的区域解析目录
[root@hengxia ~]# systemctl start named   # 启动服务
[root@hengxia ~]# systemctl enable named  # 设为开机启动
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@hengxia ~]# ss -nult     # 端口有问题,绑定在127.0.0.1,只有本地可用,不能对外服务
Netid  State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
udp    UNCONN     0      0           *:43451                   *:*                  
udp    UNCONN     0      0      127.0.0.1:53                      *:*                  
udp    UNCONN     0      0           *:68                      *:*                  
udp    UNCONN     0      0         ::1:53                     :::*                  
udp    UNCONN     0      0          :::16010                  :::*                  
tcp    LISTEN     0      10     127.0.0.1:53                      *:*                  
tcp    LISTEN     0      128         *:22                      *:*                  
tcp    LISTEN     0      128    127.0.0.1:953                     *:*                  
tcp    LISTEN     0      100    127.0.0.1:25                      *:*                  
tcp    LISTEN     0      10        ::1:53                     :::*                  
tcp    LISTEN     0      128        :::22                     :::*                  
tcp    LISTEN     0      128       ::1:953                    :::*                  
tcp    LISTEN     0      100       ::1:25                     :::*        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

五、在CentOS7.3配置BIND

      在CentOS7.3配置BIND

[root@centos6 ~]# yum install telnet -y
[root@centos6 ~]# telnet 172.16.252.77 53        # 访问DNS服务器的53端口被拒绝
Trying 172.16.252.77...
telnet: connect to address 172.16.252.77: Connection refused

[root@hengxia ~]# cp -p /etc/named.conf{,.bak} # 备份named.conf并修改  
[root@hengxia ~]# vim /etc/named.conf
listen-on port 53 { 127.0.0.1; }; 将此行注释掉(默认绑定所有IP)或改为 listen-on port 53 { localhost; };  # 此处代表本机所有IP
[root@hengxia ~]# systemctl reload named #重新加载配置文件
[root@hengxia ~]# cd /etc/sysconfig/network-scripts/           
[root@hengxia network-scripts]# vim ifcfg-ens33
[root@hengxia network-scripts]# cat ifcfg-ens33 # 修改默认DNS
HWADDR="00:0c:29:c2:73:07"
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="5b68a5ab-1ef0-4d0d-9084-82e94508156c"
DNS1="127.0.0.1"        # 因为CentOS7.3自己为DNS服务器,所以设自己为DNS服务器
IPADDR="172.16.252.77"
PREFIX=16
GATEWAY="172.16.0.1"
DEVICE="ens33"
ONBOOT="yes"
[root@hengxia network-scripts]# systemctl restart network
[root@hengxia ~]# cat /etc/resolv.conf  # 查看默认DNS
# Generated by NetworkManager
search top
nameserver 127.0.0.1
[root@hengxia ~]# vim /etc/named.conf 
将allow-query { localhost; } 改为 allow-query { localhost; 172.168.252.174; } 允许某个地址查询
或 改为 allow-query { localhost;any; } 或 改为 allow-query { localhost;0.0.0.0/0; }  或注释掉 允许所有地址查询
[root@hengxia ~]# named-checkconf  # 检查配置文件named.conf
[root@hengxia ~]# systemctl reload named    # 也可以使用rndc reload 作用是重新加载配置文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

六、在CentOS7.3搭建自己的域

      在CentOS7.3上DNS搭建自己的域,让当前DNS解析www.hengxia.top域

1、将www.hengxia.top IP 关系存储在DNS上.
修改/etc/named.conf 填加域与域数据库的关系,也可以在/etc/named.rfc1912.zones中添加,
建议在/etc/named.rfc1912.zones中添加

zone "hengxia.top" IN {                 # hengxia.top是域名
    type master;                # 表示权威DNS,即第一个
    file "hengxia.top.zone";        # 域数据库,默认位于/var/named/下面,只需告知文件名 hengxia.top.zone是库文件名
};

2、以/var/named目录下的named.localhost为蓝本,创建hengxia.top.zone文件 ,创建区域数据库
[root@hengxia ~]# cd /var/named
[root@hengxia named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@hengxia named]# cp -p named.localhost hengxia.top.zone         # 注意cp -p 保持原有属性, 用cp 要用 chgrp named hengxia.top.zone
[root@hengxia named]# cat hengxia.top.zone                         # 解析区域数据库格式,存放名字与IP的对应关系
$TTL 1D     # 统一定义TTL(过期时间、缓存时间)                   
@   IN SOA  @ rname.invalid. (                    # SOA记录   IN internet技术 IN第一条要写,后面可以省略,可继承第一条IN           rname.invalid.  资源的类型                 #
                    0   ; serial         
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
    NS  @                                         # 代表当前配置域,例如配置hengxia.top,就代表hengxia.top
    A   127.0.0.1                                         # A记录 名字 到 IP   对应IPv4地址
    AAAA    ::1                                           # A记录 名字 到 IP   对应IPv6地址
[root@hengxia named]# vim hengxia.top.zone
[root@hengxia named]# cat hengxia.top.zone 
$TTL 1D
@   IN SOA  dns1.hengxia.top dnsadmin.hengxia.top. (
                    201707262051    ; serial
                    10M ; refresh
                    3M  ; retry
                    1D  ; expire
                    3D )    ; minimum
    NS  dns1
        NS      dns2
dns1    A   172.16.252.77
dns2    A       172.16.252.174
websrv  A   1.1.1.1
ftpsrv  A       2.2.2.2

[root@hengxia named]# named-checkconf  # 检查/etc/下与named有关文件

[root@hengxia named]# named-checkzone hengxia.top /var/named/hengxia.top.zone      # 检查域数据库文件 
dns_rdata_fromtext: /var/named/hengxia.top.zone:2: near '201707262051': out of range         # 序列号超出范围
zone hengxia.top/IN: loading from master file /var/named/hengxia.top.zone failed: out of range
zone hengxia.top/IN: not loaded due to errors.
[root@hengxia named]# vim hengxia.top.zone 
[root@hengxia named]# named-checkzone hengxia.top /var/named/hengxia.top.zone
zone hengxia.top/IN: loaded serial 2017072601
OK
[root@hengxia named]# rndc reload
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

七、在CentOS6.9上测试DNS

[root@centos6 ~]# yum -y install bind bind-utils   # 测试工具 dig host nslookup 来自 bind-utils包
[root@centos6 ~]# dig www.hengxia.top @172.16.252.77

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> www.hengxia.top @172.16.252.77
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 53941
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.hengxia.top.       IN  A

;; Query time: 7 msec
;; SERVER: 172.16.252.77#53(172.16.252.77)
;; WHEN: Wed Jul 26 19:13:37 2017
;; MSG SIZE  rcvd: 33


[root@centos6 ~]# dig websrv.hengxia.top @172.16.252.77        # 测试成功,说明CentOS7.3上的域搭建成功

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6 <<>> websrv.hengxia.top @172.16.252.77     
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49446
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2          # aa 说明是权威结果

;; QUESTION SECTION:
;websrv.hengxia.top.        IN  A

;; ANSWER SECTION:
websrv.hengxia.top. 86400   IN  A   1.1.1.1

;; AUTHORITY SECTION:
hengxia.top.        86400   IN  NS  dns1.hengxia.top.
hengxia.top.        86400   IN  NS  dns2.hengxia.top.

;; ADDITIONAL SECTION:
dns1.hengxia.top.   86400   IN  A   172.16.252.77
dns2.hengxia.top.   86400   IN  A   172.16.252.174

;; Query time: 3 msec
;; SERVER: 172.16.252.77#53(172.16.252.77)
;; WHEN: Wed Jul 26 19:17:38 2017
;; MSG SIZE  rcvd: 122

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多