DNS服务器的搭建以及实战

目录

DNS概述

DNS的搭建:

实战

实战1:搭建一台DNS服务器,解析test.cn

扩展1:配置一台DNS转发服务器

扩展2:通过DNS解析做负载均衡

实战2:搭建DNS主从服务器

实战3:DNS主从密认证

DNS测试工具


DNS    Domain Name System  域名系统

DNS概述

1、结构:

DNS是一个分布式数据库,采用层级的逻辑结构,如同一块棵倒置的树,称为域名空间,其中树的深度不能超过127层,每个节点最多可存储63个字符。DNS中树的每个节点代表一个域,通过这些节点对域名空间进行划分,成为一个层级结构。

根域——顶级域——二级域---.....

.(root)   com/cn..    baidu.com....

全球有13个根服务器

顶级域:有三种类型

组织域:3个字符,如com为商业机构组织(营利)、net网络、edu教育、org非盈利机构、gov政府、int国际、mil军事

地址域:2个字符代表国家或地区代号,cn中国、kr为韩国、us为美国

反向域:是一个特殊域,名字为in-addr.arpa,用于将IP地址解析到域名,即反向解析。(域名解析为IP地址叫正向解析

域名:

域名空间中每个域的名字,如.baidu.com,就叫域名。通常由一个完全合格域名(FQDN)来标识,它能完全表示出从节点到DNS树根 . 的完整路径,如www.baidu.com.通常将最后的根省略。从节点到根采用反向书写,将每个节点用“.”分割。

子域

baidu为com域的子域,表示为baidu.com。www为baidu域的子域,表示为www.baidu.com

区zone

资源记录,服务器回答自己区中主机的查询,每个区都有自己的授权服务器。

2、主服务器和从服务器:

一方面做为主服务器的备份冗余,防止主服务器崩溃,另一方面,当区的从服务器启动时,会与主服务器连接一次,用于检查更新区中的数据每个区必须有主服务器,和至少一台辅助服务器。

主从同步的原理:主每次修改配置文件都需要修改一下序列号(区域配置文件中的serial),从会监听主的tcp 53端口,根据refresh的值(刷新时间),去探测主配置文件的序列号,若发现主的序列号有变化,则将配置文件同步到本地。

3、DNS查询方式:

递归查询:

一次性沟通完。服务器收到一个域名解析请求后,必须回复一个准确的查询结果。

迭代查询:

服务器并不直接回复结果,而是告诉客户机另一台DNS服务器的地址,客户机再向这台服务器发送请求,依次循环,直到查询到结果为止。

从客户端到本地DNS服务器的就属于递归查询,DNS服务器之间就是迭代查询

4、DNS资源记录:

  1. SOA资源记录

Start of Authority Record,起始授权记录,在每个区的起始处定义。定义了域的全局参数,进行整个域的管理,一个区域文件只能允许存在唯一的SOA记录

  1. NS资源记录

用来指定由哪个DNS服务器进行解析。

  1. A资源记录

就是域名解析到IP地址的记录(IPV4)

  1. PTR资源记录

从IP地址解析到域名的记录,即反向解析

  1. CNAME资源记录

别名记录,可以用CNAME记录来隐藏真实的域名。

6、MX资源记录

邮件交换记录,指定邮件交换服务器。

7、AAAA资源记录

IPV6解析

参照区域配置文件/var/named/name.localhost理解

5、端口:

tcp/53   udp/53   #用于客户端查询

tcp/953  udp/953  #用于DNS主从同步,BIND9

DNS的搭建:

 

1、安装相应程序包

cd /run/media/root/CentOS\ 7\ x86_64/Packages/

rpm -ivh bind-9.9.4-29.el7.x86_64.rpm   #主程序包

rpm -ivh bind-chroot-9.9.4-29.el7.x86_64.rpm   #bind-chroot

rpm -ivh bind-utils-9.9.4-29.el7.x86_64.rpm    #使用工具

BIND,伯克利因特网名称域系统,目前应用最广泛的DNS服务软件

bind-chroot :是bind的一个功能,它使bind运行时的根目录不是真正的/(根),只是系统的一个子目录,仅有这个子目录的权限,是为了提高安全性。

2、配置文件

/etc/named.conf    是bind的核心配置文件,但不包含区域的数据

/var/named/named.localhost   区域配置文件,(这是一个参考文件)

注意:由于使用了chroot功能,所以会有一个代替了根目录的子目录,所以也可以在那里配置

区域配置文件中时间内容的解释:

0       ; serial    #更新序列号,辅助服务器每更新配置文件,需要将该值加1。也可作为是否要更新的依据,如果比这个值小,就更新,若相等,表示没有新的内容,就不更新

1D      ; refresh    #刷新地址数据库文件的时间,默认1day

1H      ; retry      #更新失败后,重试所等待的时间,1小时

1W      ; expire    #到期时间,超过该时间,仍然无法更新,则不再尝试,一周

3H )    ; minimum   #无效地址解析记录的缓存时间  3小时

3、启动服务

sysytemctl start named

netstat -anpl |grep named     #查看是否启动成功

实战

实战1:搭建一台DNS服务器,解析test.cn

配置一个正向解析区域,授权DNS服务器管理test.cn区域,并把该区域的区域文件命名为test.cn.zone

  1. 修改主配置文件

cp /etc/named.conf /etc/named.conf.bak

vim /etcc/named.conf

options {        #全局选项

listen-on port 53 {any; };      #any,监听任意主机

listen-on-v6 port 53 { any; };   #ipv6也改为any

allow-query     { any; };     #允许所有人查询

recursion yes;               #递归查询,本地的服务器为yes,公网的则为no,即迭代查询

};

zone "test.cn" IN { #区域配置,定义要解析的域名

        type master; #定义主从

        file "test.cn.zone"; #定义区域配置文件

};

2、修改区域配置文件

cd /var/named

cp -p named.localhost test.cn.zone    #拷贝一份区域配置文件,-p:保留原文件权限

vim test.cn.zone

$TTL 1D   #设置有效的解析记录的默认缓存时间,1天

test.cn.  IN SOA  dns.test.cn.  root.test.cn. (     #指定域、起始授权记录SOA,就是这个域的管理者、邮箱地址

......

test.cn.       NS       dns.test.cn.         #添加NS记录

dns.test.cn.    A        192.168.142.162    #添加A记录,确切的解析内容

www.test.cn.   A        192.168.142.162

xue.test.cn.    CNAME   www.test.cn.       #添加CNAME记录别名

test.cn.       MX  10   mail.test.cn.      #邮件,10是优先级,越小越高

mail.test.cn.    A        192.168.142.162

3、重启服务

4、测试

将本机的DNS服务器改为192.168.142.161,即本机为DNS服务器

vim /sysconfig/network-scripts/icffg-eno16777736

DNS=192.168.142.161

PEERDNS=no      #不允许dhcp获取的dns覆盖本地dns,如果是手动配的ip,就不用改。

ping  www.test.cn 

可以看到将www.test.cn解析为了192.168.142.162

也可以将另外一台机器的DNS改为192.168.142.161,ping www.test.cn

扩展1:配置一台DNS转发服务器

vim /etc/named.conf

option中添加

forward only;   #定义只转发。first:先查找本地,再转发

forworders {8.8.8.8};  #指定将请求转发到哪台服务器上

扩展2:通过DNS解析做负载均衡

vim /var/named/test.cn.zone

test.cn.       NS       dns.test.cn.         #添加NS记录

dns.test.cn.    A        192.168.142.162    #添加A记录,确切的解析内容

www.test.cn.  1  A        192.168.142.162  #1表示此纪录在客户端上保留1秒

www.test.cn.  1  A        192.168.142.161

www.test.cn.  1  A        192.168.142.1

xue.test.cn.    CNAME   www.test.cn.

实战2:搭建DNS主从服务器

1、主服务器上修改主配置文件

vim  /etc/named.conf

zone "test.cn" IN {

        type master;

        file "test.cn.zone";

allow-transfer {192.168.142.0/24; }; #允许哪个网段的从(辅助)服务器管理test.cn这个域,不写的话默认所有。

};

2、从服务器上安装DNS

rpm -ivh bind-9.9.4-29.el7.x86_64.rpm   

rpm -ivh bind-chroot-9.9.4-29.el7.x86_64.rpm  

rpm -ivh bind-utils-9.9.4-29.el7.x86_64.rpm

3、配置从服务器

vim /etc/named.conf

options {       

listen-on port 53 {any; };      #any,监听任意主机

listen-on-v6 port 53 { any; };   #ipv6也改为any

allow-query     { any; };     #允许所有人查询

};

zone "test.cn" IN { #区域配置,定义要解析的域名

        type slave; #定义主从

        file "slaves/test.cn.zone.file"; #定义区域配置文件,重启服务后,会在/var/named/slaves下自动创建一个名为test.cn.zone.file的文件。

masters {192.168.142.161; };    #指定主服务器

};

4、测试

重启文件,看到上述自动生成的目录则表示成功。

如果打开后是乱码,那是因为主从上的文件类型不一致,主服务器的域文件类型是text,从服务器的文件类型是data。

在从服务器的/etc/named.conf中添加,masterfile-format text ; ,重启服务即可。

实战3:DNS主从密认证

1、主从服务器的时间要同步,可用ntp

vim /etc/ntp.conf  #找一个ntp服务器

ntpdate 0.centos.pool.ntp.org iburst

2、主dns服务器上生成密钥

cd /etc

dnssec-keygen -a hmac-md5 -b 128 -n HOST 123   #-a指定算法,-b指定密钥长度,-n指定主机类型(HOST|ZONE等)  123为密钥名字

dnssec-keygen --help

3、修改主服务器的主配置文件

vim /etcc/named.conf

key aaakey {               #定义密钥名称

algorithm hmac-md5;   #算法

secret “bPGEurxVSY1acKMVpE0Sjw==”;    #将生成的密钥复制过来

}

zone "test.cn" IN {

        type master;

        file "test.cn.zone";

allow-transfer {key aaakey;  };    #引用aaakey

4、配置从服务器:

vim /etcc/named.conf

key aaakey {              

algorithm hmac-md5;  

secret “bPGEurxVSY1acKMVpE0Sjw==”;  

};

zone "test.cn" IN { #区域配置,定义要解析的域名

        type slave; #定义主从

        file "slaves/test.cn.zone.file";

masters {192.168.142.161 key aaakey; };    #指定主服务器

};

5、重启主从服务

查看/var/named/slaves有没有名为test.cn.zone.file的文件。(注意:重启前删除之前生成的这个文件)

DNS测试工具

1、nslookup

2、dig命令(比nslookup强大一点)

dig  @8.8.8.8  www.test.cn  #可指定DNS服务器

 

如有错误,敬请指正~~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值