Linux中搭建DNS服务器

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

程序所需的包:  bind (DNS服务器软件包) 、bind-utils(DNS测试工具,包含dig、host、nslookup等)、bind-chroot(使BIND运行在指定的目录中的安全增强工具)、caching-nameserver(高速缓存DNS服务器的基本配置文件,建议一定安装)
可执行文件所在目录: /usr/sbin/named (Rhel7)     /etc/init.d/named (Rhel6)
配置文件所在目录:  /etc/named.conf
区域配置文件所在目录:/var/named/xxx.zone
DNS系统作用:

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

DNS服务器的分类:

  • 主从域名服务器:特定DNS区域的权威解析服务器,具有唯一性、冗余性
  • 缓存域名服务器:通过像根或其他服务器查询获得域名到ip的解析关系,将查询结果缓存到本地,提高重复查找速度

DNS域名解析过程:

  1. 客户机访问域名,先查看自己主机的DNS缓存(有时间限制),如果主机缓存有,则直接访问对应ip
  2. 如果主机 DNS 缓存没有,则查看主机的 hosts 文件,如果有,则直接访问对应ip
  3. 如果 hosts 文件没有,则将该请求发送给主机指定的域名服务器。
  4. 域名服务器收到请求后,先查询本地的缓存,如果有该纪录项,则域名服务器就直接把查询的结果返回。
  5. 如果本地的缓存中没有该记录,则域名服务器把请求发给根域名服务器,根域名服务器返回给域名服务器一个所查询域(根的子域)的主域名服务器的地址。
  6. 本地服务器向上一步返回的主域名服务器发送请求,接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级域名服务器的地址。
  7. 一直重复上一步,直到找到访问域名所对应的ip地址。然后DNS服务器把域名对应的ip地址发送给主机,同时DNS服务器本地保存起来。

所以,优先级:  本地DNS缓存 > hosts文件  > DNS服务器
windows中hosts文件存放路径:  C:\Windows\System32\drivers\etc\hosts
Linux中hosts文件存放路径:       /etc/hosts

DNS服务器的安装与部署

  1. 安装DNS程序: yum  -y  install  bind*
  2. 修改主配置文件:/etc/named.conf
  3. 添加并修改区域配置文件  /var/named/xxx.zone
  4. 修改文件权限: chown   named:named   /var/named/xxx.zone
  5. 开启服务,并验证     systemct  start  named  ;    nslookup  www.xie.com

修改主配置文件: /etc/named.conf

options {
        listen-on port 53 { any; };             //修改行
        listen-on-v6 port 53 { ::1; };
        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";   
        allow-query     { any; };              //修改行
}

zone "." IN {                              //系统自定义的根域服务器,必须要有
        type hint;
        file "named.ca";
};

zone "xie.com." IN{                        //自定义的,添加正向解析
        type master;                       //主从DNS
        file "xie.com.zone";               //指定区域配置文件名,在/var/named/ 目录下
}; 
zone "10.168.192.in-addr.arpa" IN{        //自定义的,添加反向解析
        type master;
        file "xie.com.zone";                
};

zone "mi.com." IN {                       //添加对另一个域名的解析
        type master;
        file "mi.com.zone"
}

在 /var/named/ 目录下分别创建  xie.com.zone 和 mi.com.zone  文件 ,并且如下配置

//  xie.com.zone 文件的配置
$TTL 1D
@       IN SOA  www.xie.com.  root.xie.com. (                      // @代表本机
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      www.xie.com.
        MX 10   root.xie.com.         //邮箱
www     IN A    192.168.10.100       //这个必须写在第一条!!
web     IN A    192.168.10.110
root    IN A    192.168.10.120
*       IN A    192.168.10.130     //添加一个默认匹配,当配置文件中的都没匹配,则匹配此条
ftp     IN CNAME   www              //给www.xie.com添加一个别名 ftp.xie.com
1       IN PTR  web1.xie.com.          //添加反向解析记录  192.168.10.1 解析为 web1.xie.com
2       IN PTR  web2.xie.com. 


// mi.com.zone 文件的配置

$TTL 1D
@       IN SOA  www.mi.com. root.mi.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      www.mi.com.
        MX 10   root.mi.com.
www     IN A    192.168.10.100
web     IN A    192.168.10.200

  主从DNS服务器的搭建:

主DNS服务器在上面配置的基础上,在主配置文件 /etc/named.conf 中加入下面一行,意思是允许转移

allow-transfer  { 192.168.10.10; };     // 允许 从DNS服务器的ip地址

然后从DNS服务器要同步哪个域名的就写哪个zone,我们这里只同步 xie.com 这个域名的 ,同步的文件路径默认是  /var/named/slaves 

zone "xie.com." IN {
        type slave;
        file "slaves/xie.com.zone";            //指定配置文件目录
	masters { 192.168.10.124; };              //指定主DNS IP
	};
zone "10.168.192.in-addr.arpa" IN{
        type slave;
        file "slaves/xie.com.zone";
        masters{ 192.168.10.128; };
};

配置完成以后重启 named 服务: systemctl restart  named  ,然后同步域配置文件:  rndc  reload

转发DNS服务器的配置

转发DNS服务器就是当你向一个DNS服务器请求DNS解析时,他把DNS请求转发到了另一个DNS服务器上

转发DNS服务器也要求安装bind包: yum  -y  install  bind*

然后修改主配置文件:/etc/named.conf

 option{
   listen-on port 53 { any; };   #修改

   allow-query     { any; };     #修改
   
   forwarders  { 192.168.10.10; };   # 指定你要把DNS请求转发给哪个DNS服务器
}

猜你喜欢

转载自blog.csdn.net/qq_36119192/article/details/82752515