阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS7下部署DNS服务器

165次阅读
没有评论

共计 7405 个字符,预计需要花费 19 分钟才能阅读完成。

DNS,全称 Domain Name System,即域名解析系统

DNS 帮助用户在互联网上寻找路径。在互联网上的每一个计算机都拥有一个唯一的地址,称作“IP 地址”(即互联网协议地址)。由于 IP 地址(为一串数字)不方便记忆,DNS 允许用户使用一串常见的字母(即“域名”)取代。比如,您只需键入 www.baidu.com,而不是“119.75.217.109”。即可访问 I CANN的官方网站。DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。因为,你在上网时输入的网址,是通过域名解析系解析找到相对应的 IP 地址,这样才能上网。其实,域名的最终指向是 IP

DNS 功能

每个 IP 地址都可以有一个主机名,主机名由一个或多个字符串组成,字符串之间用小数点隔开。有了主机名,就不要死记硬背每台 IP 设备的 IP 地址,只要记住相对直观有意义的主机名就行了。这就是 DNS 协议所要完成的功能。

主机名到 IP 地址的映射有两种方式:

1)静态映射,每台设备上都配置主机到 IP 地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;2)动态映射,建立一套域名解析系统(DNS),只在专门的 DNS 服务器上配置主机到 IP 地址的映射,网络上需要使用主机名通信的设备,首先需要到 DNS 服务器查询主机所对应的 IP 地址。

通过主机名,最终得到该主机名对应的 IP 地址的过程叫做域名解析(或主机名解析)。在解析域名时,可以首先采用静态域名解析的方法,如果静态域名解析不成功,再采用动态域名解析的方法。可以将一些常用的域名放入静态域名解析表中,这样可以大大提高域名解析效率。

DNS 重要性

1、技术角度看
DNS 解析是互联网绝大多数应用的实际寻址方式;域名技术的再发展、以及基于域名技术的多种应用,丰富了互联网应用和协议。2、资源角度看
域名是互联网上的身份标识,是不可重复的唯一标识资源;互联网的全球化使得域名成为标识一国主权的国家战略资源。

DNS 的工作原理

以访问 www. 为例说明(主机为 Windows 系统)

1)客户端首先检查本地 c:\windows\system32\drivers\etc\host 文件,是否有对应的 IP 地址,若有,则直接访问 WEB 站点,若无
2)客户端检查本地缓存信息,若有,则直接访问 WEB 站点,若无
3)本地 DNS 检查缓存信息,若有,将 IP 地址返回给客户端,客户端可直接访问 WEB 站点,若无
4)本地 DNS 检查区域文件是否有对应的 IP,若有,将IP 地址返回给客户端,客户端可直接访问 WEB 站点,若无,5)本地 DNS 根据 cache.dns 文件中指定的根 DNS 服务器的 IP 地址,转向根 DNS 查询。6)根 DNS 收到查询请求后,查看区域文件记录,若无,则将其管辖范围内 .com 服务器的 IP 地址告诉本地 DNS 服务器
7).com服务器收到查询请求后,查看区域文件记录,若无,则将其管辖范围内 .xxx 服务器的 IP 地址告诉本地 DNS 服务器
8).xxx服务器收到查询请求后,分析需要解析的域名,若无,则查询失败,若有,返回 www. 的IP 地址给本地服务器
9)本地 DNS 服务器将 www. 的IP 地址返回给客户端,客户端通过这个 IP 地址与 WEB 站点建立连接

安装 DNS 服务器软件

[root@CentOS7 ~]# yum install bind

配置相关配置文件

/etc/named.conf,/etc/named.rfc1912.zones 为 DNS 主配置文件
/var/named/ 目录为 DNS 数据库文件存放目录,每一个域文件都放在这里。/etc/rc.d/init.d/named 为 DNS 服务的服务脚本。

一 DNS 正向解析

这里以 linuxidc.com 域为例
www.linuxidc.com 对应 IP 为 192.168.29.100;
ftp.linuxidc.com 对应 IP 为 1.1.1.1。

1 首先编辑 /etc/named.conf 文件

        listen-on port 53 {any;};
        allow-query     {any;};
        dnssec-enable no;
        dnssec-validation no;

2 编辑区域配置文件 /etc/named.rfc1912.zones

zone "linuxidc.com" IN {type master;
        file "linuxidc.com";
};

其中 zone 的格式为:

    zone“ZONE_NAME  IN {type  master;
    file“ZONE_NAME.zone”}

3 新建解析库文件 /var/named/linuxidc.com.zone

[root@CentOS7 ~]# vim /var/named/linuxidc.com.zone
$TTL 1D
$ORIGIN linuxidc.com.
@   IN SOA  linuxidc.com. admin.linuxidc.com. (20170526; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
linuxidc.com. IN  NS  ns1.linuxidc.com.

ns1 IN  A   192.168.29.100
www IN  A   172.16.254.13
ftp     IN   A  1.1.1.1

4 修改解析库文件权限

[root@CentOS7 ~]# chgrp named /var/named/linuxidc.com.zone 

5 检查 配置语法

(1)检查配置文件语法

[root@CentOS7 ~]# named-checkconf

(2)检查域配置文件语法

[root@CentOS7 ~]# named-checkzone linuxidc.com  /var/named/linuxidc.com.zone
zone linuxidc.com/IN: loaded serial 20170526
OK

6 启动 named 服务

[root@CentOS7 ~]# systemctl start   named

7 测试

注意:要配置 DNS 服务器为本 DNS 服务器 IP 地址
或者使用 dig 命令则不需要修改 DNS 服务器

[root@CentOS7 ~]# nslookup  www.linuxidc.com
Server:     127.0.0.1
Address:    127.0.0.1#53

Name:   www.linuxidc.com
Address: 172.16.254.13
[root@CentOS7 ~]# nslookup  ftp.linuxidc.com
Server:     127.0.0.1
Address:    127.0.0.1#53

Name:   ftp.linuxidc.com
Address: 1.1.1.1

测试成功,正向解析成功!!

二 DNS 反向解析

这里以 linuxidc.com 域为例
IP 地址 192.168.29.100/24 对应域名为 www.linuxidc.com;
192.168.29.200/24 对应域名为 ftp.linuxidc.com;

1 首先编辑 /etc/named.conf 文件

        listen-on port 53 {any;};
        allow-query     {any;};
        dnssec-enable no;
        dnssec-validation no;

2 编辑区域配置文件 /etc/named.rfc1912.zones

zone "29.168.192.in-addr.arpa" IN {type master;
    file "name.29.168.192";
};

格式为:

zone "NET_IP.in-addr.arpa" IN {#NET_IP 为反向解析的 IP 网段
    type master;
    file "NAME_ZONE";       #NAME_ZONE 为反向解析库配置文件名称
};

3 新建解析库文件

$TTL 1D
$ORIGIN 29.168.192.in-addr.arpa.
@       IN SOA  linuxidc.com. admin.linuxidc.com. (20170526; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
         IN     NS      linuxidc.com.
100     IN      PTR     www.linuxidc.com.
200     IN      PTR     ftp.linuxidc.com.

4 修改解析库文件所属组

[root@CentOS7 ~]# chgrp named name.29.168.192

5 语法检查

(1)检查配置文件语法

[root@CentOS7 ~]# named-checkconf

(2)检查域配置文件语法

 [root@CentOS7 ~]# named-checkzone 29.168.192.in-addr.arpa /var/named/name.29.168.192
zone 29.168.192.in-addr.arpa/IN: loaded serial 20170526
OK

6 启动 named 服务

[root@CentOS7 ~]# systemctl start   named

7 测试

 [root@CentOS7 ~]# dig -x 192.168.29.200 @192.168.29.100
; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -x 192.168.29.200 @192.168.29.100
[……]
200.29.168.192.in-addr.arpa. 86400 IN   PTR ftp.linuxidc.com.
[root@CentOS7 ~]# dig -x 192.168.29.100 @192.168.29.100
[……]
;; ANSWER SECTION:
100.29.168.192.in-addr.arpa. 86400 IN   PTR www.linuxidc.com.
;; AUTHORITY SECTION:
29.168.192.in-addr.arpa. 86400  IN  NS  linuxidc.com.

测试成功!!!

三 主从 DNS

这里主 DNS 服务器 IP 地址为 192.168.29.100/24
从 DNS 服务器 IP 地址为 192.168.29.3/24
www.linuxidc.com 对应 IP 为 192.168.29.100;
ftp.linuxidc.com 对应 IP 为 1.1.1.1

1 首先编辑主服务器 /etc/named.conf 文件

    listen-on port 53 {any;};
    allow-query     {any;};
    recursion yes;

    dnssec-enable no;
    dnssec-validation no;

2 编辑主服务器的区域配置文件 /etc/named.rfc1912.zones

zone "linuxidc.com" IN {
        type master;
        file "linuxidc.com.zone";
        allow-transfer {192.168.29.3; };  ##192.168.29.3 位从服务器的 ip 地址。
};

3 新建主服务器解析库文件 vim /var/named/linuxidc.com.zone

$TTL 1D
$ORIGIN linuxidc.com.
@   IN SOA  linuxidc.com. admin.linuxidc.com. (20170526; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
linuxidc.com. IN  NS  ns1.linuxidc.com.
mytest.com. IN  NS  slave.linuxidc.com.   ### 添加从服务器的 NS 解析记录。

ns1 IN  A   192.168.29.100
slave   IN  A   192.168.29.3    ### 指定从服务器的 IP 地址。
www IN  A   172.16.254.13
ftp     IN   A  1.1.1.1

4 编辑从服务器 /etc/named.conf 文件

    listen-on port 53 {any;};
    allow-query     {any;};
    recursion yes;
    dnssec-enable no;
    dnssec-validation no;

5 配置从服务器的区域配置文件 /etc/named.rfc1912.zones

zone "linuxidc.com" IN {type slave; ## 表明本机是从服务器
    file "slaves/linuxidc.com";   ## 将同步后的文件放置在哪里,这里是相对路径,实际路径为 /var/named/slaves/linuxidc.com
    masters {192.168.29.100; }; ## 指定主服务器的 ip 地址
};

6 语法检查

在主从两个服务器上都进行语法检查

[root@CentOS7 ~]# named-checkconf

7 在主从两个服务器上开启服务

[root@CentOS7 ~]# systemctl start named

8 测试

(1)查看从服务器已经取得解析数据库文件

[root@centos7 ~]# ll  /var/named/slaves/
total 4
-rw-r--r--. 1 named named 348 May 26 15:22 linuxidc.com

(2)用从服务器解析 www.linuxidc.com

[root@centos7 ~]# dig -t A www.linuxidc.com @192.168.29.3
[……]
;; ANSWER SECTION:
www.linuxidc.com.     86400   IN  A   172.16.254.13

;; AUTHORITY SECTION:
linuxidc.com.     86400   IN  NS  slave.linuxidc.com.
mytest.com.     86400   IN  NS  ns1.linuxidc.com.

;; ADDITIONAL SECTION:
ns1.linuxidc.com.     86400   IN  A   192.168.29.100
slave.linuxidc.com.       86400   IN  A   192.168.29.3

;; Query time: 2 msec
;; SERVER: 192.168.29.3#53(192.168.29.3)
;; WHEN: Fri May 26 15:37:13 CST 2017
;; MSG SIZE  rcvd: 129

可以看到解析成功。说明从服务器已生效。

四 子域授权

这里子域服务器为 192.168.29.110

1 在 linuxidc.com. 域的服务器上修改区域数据库文件

[root@CentOS7 ~]# cat /var/named/linuxidc.com.zone 
$TTL 1D
$ORIGIN linuxidc.com.
@   IN SOA  linuxidc.com. admin.linuxidc.com. (20170526; serial
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H )    ; minimum
linuxidc.com. IN  NS  ns1.linuxidc.com.
mytest.com. IN  NS  slave.linuxidc.com.
haha.linuxidc.com.    IN NS  ns2.haha.linuxidc.com.  ### 新添加的行

ns1 IN  A   192.168.29.100
slave   IN  A   192.168.29.3
www IN  A   172.16.254.13
ftp     IN   A  1.1.1.1
ns2.haha.linuxidc.com. IN A 192.168.29.110    ### 新添加行,指明子域服务器 IP 地址。

2 修改子域服务器的主配置文件 /etc/named.conf

[root@CentOS7 ~]# vim  /etc/named.conf
    listen-on port 53 {any;};
    allow-query     {any;};
    recursion yes;
    dnssec-enable no;
    dnssec-validation no;

3 编辑子域服务器的区域配置文件 /etc/named.rfc1912.zones

[root@CentOS7 ~]# vim  /etc/named.rfc1912.zones
zone "haha.linuxidc.com" IN {type master;
        file "haha.zone";
        allow-transfer {192.168.29.0/24; };
};

4 新建主服务器解析库文件 /var/named/haha.zone

域名 www.haha.linuxidc.com 对应 IP 172.16.11.11
域名 ftp. haha.linuxidc.com 对应 IP 2.2.2.2

[root@CentOS7 ~]# vim /var/named/haha.zone
$TTL 1D
$ORIGIN haha.linuxidc.com.
@       IN SOA  haha.linuxidc.com. admin.haha.linuxidc.com. (20170528; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
haha.linuxidc.com. IN     NS      ns2.haha.linuxidc.com.

ns2     IN      A       192.168.29.110
www     IN      A       172.16.11.11
ftp     IN       A      2.2.2.2

5 语法检查

在两个服务器上都进行语法检查

[root@CentOS7 ~]# named-checkconf

6 在两个服务器上开启服务

[root@CentOS7 ~]# systemctl start named

7 测试

[root@centos7 ~]# dig -t A  www.haha.linuxidc.com @192.168.29.100

; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A www.haha.linuxidc.com @192.168.29.100
[…….]
;www.haha.linuxidc.com.       IN  A

;; ANSWER SECTION:
www.haha.linuxidc.com.    86400   IN  A   172.16.11.11

;; AUTHORITY SECTION:
haha.linuxidc.com.    86400   IN  NS  ns2.haha.linuxidc.com.

;; ADDITIONAL SECTION:
ns2.haha.linuxidc.com.    86400   IN  A   192.168.29.110

可以看到,已经可以成功解析

 

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-07/145879.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计7405字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中