DNS服务器搭建

好久不见. 提交于 2019-12-04 18:41:17

 

DNS服务器搭建

DNS

DNS(Domain Name Service) 域名解析服务,就是将域名和 ip 之间做相应的转换,利用 TCP UDP 53号端口

DNS系统作用

正向解析:根据域名查找对应的ip地址

反向解析:根据ip地址查找对应的域名

DNS服务器的分类

主要名称服务器:存放该区域中相关设置的DNS服务器,其存放的是区域文件的正本数据

辅助名称服务器:从其他服务器中复制数据,数据为副本无法修改

主控名称服务器:提供趋于数据复制的DNS服务器

缓存域名服务器:通过像根或其他服务器查询获得域名到ip的解析关系,将查询结果缓存到本地,提高重复查找速度

安装及配置

安装DNS

1

[root@youxi1 ~]# yum -y install bind bind-chroot bind-utils

  BIND 全称为Berkeley Internet Name Domain(伯克利因特网名称域系统),BIND 主要有三个版本:BIND4BIND8BIND9BIND8版本融合了许多提高效率、稳定性和安全性的技术,而BIND9 增加了一些超前的理念,例如IPv6支持、密钥加密、多处理器支持、线程安全操作、增量区传送等。

  bind包里包含了DNS服务的主程序包。

  bind-chroot包是bind的一个功能包,使bind可以在chroot模式下运行。也就是说bind运行的主目录并不是系统的根目录,只是系统的一个子目录而已。这是为了提高安全性,使得访问的范围仅限于这个子目录。

  bind-utils包是客户端工具,系统默认安装,用于搜索域名指令。

DNS相关配置文件

  /etc/named.conf BIND的核心配置文件,它包含了BIND 的基本配置,但其并不包括区域数据。

  /var/named/目录是DNS数据库文件存放目录,每一个域文件都放在这里。

配置文件参数

  在/etc/named.conf中大致分为针对全局生效,存放常规设置的options部分;以及针对某个区域,由各个区域设置的zone部分。另外还有logging(日志选项)和acl(访问控制列表)可选。

  去除注释后的/etc/named.conf配置文件如下:

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

[root@youxi1 ~]# cat /etc/named.conf

options {

//指定BIND通过哪些网络接口和哪个端口来接收客户端请求。如果省略端口号,则使用默认端口53127.0.0.1允许接收来自本地的请求。如果完全省略此项或网络接口是any,则默认使用所有端口。

        listen-on port 53 { 127.0.0.1; };

//指定BIND通过哪个端口监听IPv6客户端请求。IPv6,服务器只接受通配符地址,anynone

        listen-on-v6 port 53 { ::1; };

//BIND可以在该目录中找到包含区域数据的文件

        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";

        recursing-file  "/var/named/data/named.recursing";

        secroots-file   "/var/named/data/named.secroots";

//定义客户端可以自此发送DNS请求的网络。可以用地址信息(192.168.5.101/24)替换或使用any替换

        allow-query     { localhost; };

        recursion yes;

        dnssec-enable yes;

        dnssec-validation yes;

        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";

        session-keyfile "/run/named/session.key";

};

 

logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};

 

zone "." IN {

        type hint;  //指定区域类型

        file "named.ca";  //区域文件,需要手动创建。范例文件为named.localhost

};

 

include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";

搭建内网DNS服务器

  备份DNS服务器的配置文件/etc/named.conf

1

[root@youxi1 ~]# cp /etc/named.conf /etc/named.conf.bak

  修改DNS服务器的配置文件/etc/named.conf

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

[root@youxi1 ~]# cat /etc/named.conf

options {

        listen-on port 53 { any; };  //修改为

        listen-on-v6 port 53 { any; };  //修改为any

        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";

        recursing-file  "/var/named/data/named.recursing";

        secroots-file   "/var/named/data/named.secroots";

        allow-query     { any; };

        recursion yes;

        dnssec-enable yes;

        dnssec-validation yes;

        dnssec-lookaside auto;  //添加此行

        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";

        session-keyfile "/run/named/session.key";

};

 

logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

};

 

zone "test.cn" IN {  //区域名称改为test.cn

        type master;  //区域类型为主DNS服务器

        file "test.cn.zone";  //区域文件,需要手动创建。范例文件为named.localhost

};

 

include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";

创建区域文件,修改权限,并进行修改

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

//-a选项保留源文件的权限

[root@youxi1 ~]# cp -a /var/named/named.localhost /var/named/test.cn.zone

-rw-r----- 1 root named 257 5 20 17:13 /var/named/test.cn.zone

[root@youxi1 ~]# vim /var/named/test.cn.zone

$TTL 1D  //设置有效地址解析记录的默认缓存时间,默认为1

//test.cn.也可以使用@,表示当前的域

//dns.test.cn.该域的主域名

//root.test.cn.管理员邮件地址

test.cn.        IN SOA  dns.test.cn. root.test.cn. (

//更新序列号,用于标示数据库的变换,可以在10位以内。如果存在辅助DNS区域,建议每次更新完数据库,手动加1

                                        0       ; serial

//刷新时间,从域名服务器更新该地址数据库文件的间隔时间,默认为1

                                        1D      ; refresh

//重试延时,从域名服务器更新地址数据库失败后,等待多长时间,默认为1小时

                                        1H      ; retry

//到期失效时间,超过改时间人无法更新地址数据库,那么不再尝试,默认为1

                                        1W      ; expire

//无效地址解析记录默认缓存时间(该数据库中不存在的地址),默认为3小时。

                                        3H )    ; minimum

test.cn.        NS      dns.test.cn.

dns.test.cn.    A       192.168.5.101

www.test.cn.    A       192.168.5.101

cname.test.cn.  CNAME   www.test.cn.

重启DNS服务器

1

[root@youxi1 ~]# systemctl restart named

  到测试主机youxi2上修改DNS地址和网卡信息,然后重启网络服务

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[root@youxi2 ~]# vim /etc/resolv.conf

# Generated by NetworkManager

nameserver 192.168.5.101

[root@youxi2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="none"

DEFROUTE="yes"

IPV4_FAILURE_FATAL="yes"

NAME="ens33"

UUID="a12d9bb2-85cb-4db0-9b94-e4ed3baa6470"

DEVICE="ens33"

ONBOOT="yes"

IPADDR="192.168.5.102"

PREFIX="24"

GATEWAY="192.168.5.2"

DNS1="192.168.5.101"<br>[root@youxi2 ~]# systemctl restart network

开启防火墙

systemctl stop firewalld

systemctl disable firewalld

systemctl status firewalld

iptables -A INPUT -p tcp --dport 53 -j ACCEPT

配置linux客户端

登录dns测试服务器

vim /etc/resolv.conf

nameserver 192.168.122.254

nameserver 114.114.114.114

校验解析结果

Linux Client验证

将客户端的dns设置为刚才修改的服务器ip

vim /etc/resolv.conf

 

# Generated by NetworkManager

search test

nameserver 122.11.47.184     #新加DNS服务器地址

nameserver 114.114.114.114

nameserver 8.8.8.8

 

nolookup命令用于查询域名与ip的解析记录。

 

# nslookup

> jjmusic.com

Server:     122.11.47.184

Address:    122.11.47.184#53

 

Name:    jjmusic.com

Address: 192.168.1.111

> www.jjmusic.com

Server:     122.11.47.184

Address:    122.11.47.184#53

 

Name:    www.jjmusic.com

Address: 192.168.1.122

> store.jjmusic.com

Server:     122.11.47.184

Address:    122.11.47.184#53

 

Name:    store.jjmusic.com

Address: 192.168.1.133

> img.jjmusic.com

Server:     122.11.47.184

Address:    122.11.47.184#53

 

Name:    img.jjmusic.com

Address: 192.168.1.144

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!