Linux的DNS配置

注:本次测试机器为centos8,从本章开始,难度会开始上升。

1.DNS简介

在日常生活中人们习惯使用域名访问服务器,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个完整域名只可以对应一个ip地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。 ​ DNS是“域名系统”的英文缩写。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。 ​ DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS。每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

2.DNS域名解析方式

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

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

3.安装bind

[root@localhost ~]#yum install -y bind				//安装DNS服务,bind为DNS服务名称

4.查看配置文件位置

 [root@localhost ~]#rpm -qc bind				//查看DNS服务文件位置
 /etc/logrotate.d/named
 /etc/named.conf           //主配置文件
 /etc/named.iscdlv.key
 /etc/named.rfc1912.zones   //区域配置文件
 /etc/named.root.key
 /etc/rndc.conf
 /etc/rndc.key
 /etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost    //正向配置文件模板
/var/named/named.loopback	 //反向配置文件模板

5.修改主配置文件

[root@localhost ~]#vim /etc/named.conf
options {
        listen-on port 53 { 192.168.130.10; };	//监听53端口,ip地址使用提供服务的本地IP,也可用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";		//内存统计文件的位置
       recursing-file  "/var/named/data/named.recursing";
       secroots-file   "/var/named/data/named.secroots";
        allow-query     { 192.168.130.0/24; };		//允许使用本DNS解析服务的网段,也可用any代表所有
};​
zone "." IN {					//正向解析“.”根区域
        type hint;			//类型为根区域
        file "named.ca";		//区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
};
​include "/etc/named.rfc1912.zones";		//包含区域配置文件里的所有配置

6.修改区域配置文件

[root@localhost ~]#vim /etc/named.rfc1912.zones
--文件里有模版,可复制粘贴后修改
zone "localhost" IN {    --正向解析“named.localhost”区域
        type master;    --类型为主区域
        file "named.localhost";   --指定区域数据文件为named.localhost
        allow-update { none; };   
};
zone "1.0.0.172.in-addr.arpa" IN {    --反向解析“named.loopback”区域
            type master;    --类型为主区域
            file "named.loopback";   --指定区域数据文件为named.loopback
            allow-update { none; };
};      
//我编的示列
zone "skills.com" IN {
            type master;
          file "named.skills.com";
        allow-update { none; };
};
    zone "130.168.192.in-addr.arpa" IN {	
            type master;
            file "named.192.168.130";
            allow-update { none; };
};

7.配置区域数据文件

[root@localhost ~]#cd /var/named
​
[root@localhost named]#ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
​
[root@localhost named]#cp -a named.localhost named.skills.com
//named.localhost为原区域数据配置文件,可以拷贝做模板(需要保留权限复制)

[root@localhost named]#cp -a named.loopback named.192.168.130 //named.loopback为原区域数据配置文件,可以拷贝做模板(需要保留权限复制)

8.配置正向文件

[root@localhost named]#vim named.skills.com

@ IN SOA skills.com. admin.skills.com. (
--“@”这里是一个变量,当前DNS区域名; --SOA记录中的更新序列号用于同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。 --“skills.com.”此为完全合格域名(FQDN),后面有个“.”不能漏掉 --“admin.skills.com.”表示管理员邮箱,原本local后的“@”符号已有其他含义,所以用“.”代替(即admin@skills.com) ​ 0 ; serial --更新序列号,可以是 10 位以内的整数 1D ; refresh --刷新时间,重新下载地址数据的间隔 1H ; retry --重试延时,下载失败后的重试间隔 1W ; expire --失效时间,超过该时间仍无法下载则放弃 3H ) ; minimum --无效解析记录的生存周期 ​ NS named.skills.com. --记录当前区域的DNS服务器的名称 A 192.168.130.10 --记录主机IP地址 IN MX 10 mail.skills.com. --MX为邮件交换记录,数字越大优先级越低 www IN A 192.168.130.10 --记录正向解析www.local.com对应的ip mail IN A 192.168.130.15 --记录正向解析mail.benet.com对应的ip ftp IN CNAME www --别名,ftp为www的别名

  • IN A 192.168.130.50 --泛域名解析,“*”代表任意主机名

9.配置反向文件

[root@localhost ~]#vim named.192.168.130

$TTL 1D @ IN SOA skills.com. admin.skills.com. ( 0 --serial 1D --refresh 1H --retry 1W --expire 3H ) --minimum NS named.skills.com. A 192.168.116.10 10 IN PTR www.skills.com. --PTR为反向指针,反向解析192.168.116.10地址结果为www.local.com 15 IN PTR mail.skills.com.

10.启动named服务

[root@localhost ~]#systemctl restart named

11.关闭防火墙和selinux

[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#setenforce 0

12.测试客户端添加上一个配置的DNS服务端ip并测试正向域名解析功能

[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.130.10  //在文件末尾添加已配置好的DNS服务器地址
​
//重启网卡使配置生效
[root@localhost ~]#nmcli c up ens33

//按照配置文件依次测试,解析成功 [root@localhost ~]#nslookup www.skills.com Server: 192.168.130.10 Address: 192.168.130.10#53 ​ Name: www.skills.com Address: 192.168.130.10 ​ [root@localhost ~]#nslookup mail.skills.com Server: 192.168.130.10 Address: 192.168.130.10#53 ​ Name: mail.skills.com Address: 192.168.130.15

13.测试反向域名解析功能

[root@localhost ~]#nslookup 192.168.130.10
10.130.168.192.in-addr.arpa     name = www.skills.com.130.168.192.in-addr.arpa.
​
[root@localhost ~]#nslookup 192.168.130.15
15.130.168.192.in-addr.arpa     name = mail.skills.com.130.168.192.in-addr.arpa.