Linux网络进阶之DNS域名解析概述(附带配置DNS服务)

一、DNS概念

在日常生活中人们习惯使用域名访问服务器,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应一个ip地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。

1、DNS的定义

  • DNS是“域名系统”的英文缩写。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
  • NDS服务使用TCP和UDP的53端口TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS
  • 每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

2、域名结构

树状结构最顶层称为根域,用“.”表示,相应服务器称为根服务器,整个域名空间解析权都归跟服务器所有,但根服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了一些顶级域,然后将不同顶级域解析权分别委派给相应的顶级域服务器,如将com域的解析全委派给com域服务器,以后但凡跟服务器收到以com结尾的域名解析请求,都会转发给com域服务器,同样道理,为了减轻顶级域的压力,又下设了若干二级域,二级域又下设三级域或主机。
在这里插入图片描述
事例:
http://www.sina.com.cn./
http://主机名.子域.二级域.顶级域 根域/

  • 根域
    • 位于域名空间最顶层,一般用一个 “.” 表示
  • 顶级域
    • 一般代表一种类型的组织机构或国家地区,
      • 如 .net(网络供应商)、.com(工商企业)、.org(团体组织)、.edu(教育机构)、.gov(政府部门)、.cn(中国国家域名)
  • 二级域
    • 用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,
      • 如 .cn 顶级域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn
  • 子域
    • 二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名
  • 主机
    • 主机位于域名空间最下层,就是一台具体的计算机,
      • 如 www、mail都是具体的计算机名字,可用www.sina.com.cn.、mail.sina.com.cn. 来表示,这种表示方式称为 FQDN (完全合格域名),也是这台主机在域名中的全名

3、DNS域名解析方式

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

4、DNS服务器类型

  • 主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

  • 从域名服务器:当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。

  • 缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。

  • 转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

二、构建DNS域名解析服务器步骤

下面编辑配置文件时,要注意文件里的格式,注意有些地方的“.”和空格必不可少,输入时一定要仔细。

1、安装bind软件包

yum -y install bind

在这里插入图片描述

2、配置正向解析(文字解析)

(1)先查看需要修改的配置文件所在路径

rpm -qc bind   					#查询bind软件配置文件所在路径
/etc/named.conf					#主配置文件
/etc/named.rfc1912.zones		#区域配置文件
/var/named/named.localhost		#区域数据配置文件

(2)修改主配置文件

vim /etc/named.conf
options {
        listen-on port 53 { 192.168.163.20; };	#监听53端口,ip地址使用提供服务的本地IP,也可用any表示所有
       #listen-on-v6 port 53 { ::1; };			#ipv6行如不使用可以注释掉或者删除
        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; };   #允许使用本DNS解析服务的网段,也可用any代表所有
	……
}	
zone "." IN {						#正向解析“.”根区域
        type hint;					#类型为根区域
        file "named.ca";			#区域数据文件为named.ca,记录了13台根域服务器的域名和IP地址等信息
};
include "/etc/named.rfc1912.zones";		#包含区域配置文件里的所有配置

(3)修改区域配置文件,添加正向区域配置

vim /etc/named.rfc1912.zones		#可在文件里有模版,可复制粘贴后修改
zone "lisi.com" IN {				#正向解析“lisi.com”区域
        type master;				#类型为主区域
        file "lisi.com.zone";		#指定区域数据文件为lisi.com.zone
        allow-update { none; };     #忽略,可不用配置,默认就好
};

(4)配置正向区域数据文件

cd /var/named/
cp -p named.localhost lisi.com.zone	#保留源文件的权限和属主的属性复制
vim /var/named/lisi.com.zone
$TTL 1D														#设置缓存解析结果的有效时间
@       IN SOA  lisi.com. admin.lisi.com. (        #邮件和域名后面的“.”不能忘
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
          NS      lisi.com.           #记录当前区域的DNS服务器的名称(必不可少)
      А       192.168.163.20    #记录主机IP地址(必不可少)
IN   MX   10      mail.lisi.com.   #MX为邮件交换记录,数字越大优先级越低
www  IN   A       192.168.163.20     #记录正向解析www.benet.com对应的IP
mail IN   A       192.168.163.21        #邮箱的正向解析地址
ftp  IN   CNAME    www              #CNAME使用别名, ftp是www的别名
*    IN   A        192.168.163.200    #泛域名解析, "*" 代表任意主机名

(5)启动服务,关闭防火墙

systemctl start named
systemctl stop firewalld
setenforce 0	
#如果服务启动失败,可以查看日志文件来排查错误
tail -f /var/log/messages
#如果服务启动卡住,可以执行下面命令解决
rndc-confgen -r /dev/urandom -a

(6)在客户端的域名解析配置文件中添加DNS服务器地址

vim /etc/resolv.conf			#修改完后立即生效
nameserver 192.168.163.20
或
vim /etc/sysconfig/network-scripts/ifcfg-ens33		#修改完后需要重启网卡
DNS1=192.168.163.20

systemctl restart network

(7)测试DNS解析

host www.lisi.com
nslookup www.lisi.com

3、配置正向解析(实操)

(1)先查看需要修改的配置文件所在路径
在这里插入图片描述
(2)修改主配置文件
在这里插入图片描述

在这里插入图片描述
(3)修改区域配置文件,添加正向区域配置
在这里插入图片描述

(4)配置正向区域数据文件
在这里插入图片描述
刚才看的是原配置文件,现在要开始修改。
在这里插入图片描述
(5)启动服务,关闭防火墙
在这里插入图片描述

(6)在客户端的域名解析配置文件中添加DNS服务器地址

在这里插入图片描述

(7)在客户端测试DNS解析
在这里插入图片描述

4、配置反向解析(文字解析)

(1)修改区域配置文件,添加反向区域配置

vim /etc/named.rfc1912.zones						#文件里有模版,可复制粘贴后修改
zone "163.168.192.in-addr.arpa" IN {			#反向解析的地址倒过来写,代表解析192.168.163段的地址
        type master;
        file "lisi.com.zone.local";			#指定区域数据文件为lisi.com.zone.local
        allow-update { none; };
};

(2)配置反向区域数据文件

cd /var/named/
cp -p named.localhost lisi.com.zone.local
vim /var/named/lisi.com.zone.local
$TTL 1D
@       IN SOA  lisi.com. admin.lisi.com. (		#这里的“@”代表192.168.163段地址
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      lisi.com.
        A       192.168.163.20
20 IN  PTR     www.lisi.com.

#PTR为反向指针,反向解析192.168.163.20地址结果为www.benet.com.

(3)重启服务进行测试

systemctl restart named
host 192.168.163.20
nslookup 192.168.163.20

5、配置反向解析(实操)

(1)修改区域配置文件,添加反向区域配置
在这里插入图片描述
在这里插入图片描述

(2)配置反向区域数据文件
在这里插入图片描述

(3)重启服务进行测试
在这里插入图片描述

6、构建主从域名服务器(文字解析)

沿用上面的配置环境,有些东西已经配置了
(1)修改主域名服务器的区域配置文件,修改正、反向区域配置

vim /etc/named.rfc1912.zones
zone "lisi.com" IN {
		type master;                  				#类型为主区域
		file "lisi.com.zone";
		allow-transfer { 192.168.163.15; };       	#允许从服务器下载正向区域数据,这里添从服务器的IP地址
};

zone "163.168.192.in-addr.arpa" IN {			
        type master;
        file "lisi.com.zone.local";		
        allow-transfer { 192.168.163.15; };
};

(2)修改从域名服务器的主配置文件

yum -y install bind
vim /etc/named.conf
options {
    listen-on port 53 { 192.168.163.15; };	#监听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     { any; }; 				#允许使用本DNS解析服务的网段,也可用any代表所有
	……
}

(3)修改从域名服务器区域配置文件,添加正、反区域配置

vim /etc/named.rfc1912.zones
zone "lisi.com" IN {
		type slave;							#类型为从区域
		masters { 192.168.163.20; };			#指定主服务器的IP地址
		file "slaves/lisi.com.zone";   	#下载的区域数据文件保存到slaves/目录下
};

zone "163.168.192.in-addr.arpa" IN {	
        type slave;
		masters { 192.168.163.20; };
        file "slaves/lisi.com.zone.local";
};

(4)主、从都重启动服务,关闭防火墙,并查看区域数据文件是否已下载成功

systemctl restart named    
systemctl stop firewalld     #关闭防火墙,一定要关
setenforce 0
ls -l /var/named/slaves/

(5)在客户端的域名解析配置文件中添加从DNS服务器地址

echo "nameserver 192.168.163.20" >> /etc/resolv.conf
echo "nameserver 192.168.163.15" >> /etc/resolv.conf

(6)测试

host 192.168.163.20
nslookup 192.168.163.20

#停止主服务器的服务,模拟主服务器故障
systemctl stop named
host 192.168.163.20
nslookup 192.168.163.20

7、构建主从域名服务器(实操)

(1)修改主域名服务器的区域配置文件,修改正、反向区域配置
在这里插入图片描述
wq保存
在这里插入图片描述

(2)修改从域名服务器的主配置文件
先安装服务,这里就不演示了,之后编辑主配置文件。
在这里插入图片描述

(3)修改从域名服务器区域配置文件,添加正、反区域配置
在这里插入图片描述

(4)主、从都重启动服务,并查看区域数据文件是否已下载成功
主服务器也要重启服务,这里不截图了。下面是从服务器重启服务。
在这里插入图片描述
在这里插入图片描述

(5)在客户端的域名解析配置文件中添加从DNS服务器地址
在这里插入图片描述
(6)测试
正向解析
在这里插入图片描述
反向解析
在这里插入图片描述

三、配置网关服务器搭建DNS分离解析

  • 分离解析的域名服务器实际也是主域名服务器,这里主要是指根据不同的客户端提供不同的域名解析记录。比如来自内网和外网的不同网段地址的客户机请求解析同一域名时,为其提供不同的解析结果。

1、为网关服务器配置双网卡
在关机状态下再添加一块网卡,重启系统

ifconfig           #先查看增加的网卡名称
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens37

vim ifcfg-ens37
DEVICE=ens37
IPADDR=10.0.0.1
NETMASK=255.255.255.0

ifconfig

2、安装bind软件包

yum install -y bind

3、修改主配置文件

vim /etc/named.conf
options {
        listen-on port 53 { 192.168.163.15; 10.0.0.1; };      			#监听本机或者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     { any; };        			#允许所有主机解析
		……
};

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

4、修改区域配置文件

vim /etc/named.rfc1912.zones
view "lan" {								#定义内网view,view代表容器分割
	match-clients { 192.168.163.0/24; };    	#匹配内网网段
	zone "lisi.com" IN {    				#设置要解析的区域
		type master;   				 
		file "lisi.com.zone.lan";   	 	#数据配置文件
	};      
	  zone "163.168.192.in-addr.arpa" IN {
        type master;
        file "lisi.com.zone.local.lan";
  };
	zone "." IN {							#可将根域配置从主配置文件剪切过来,dd+p
		type hint;							#hint是根区域类型
		file "named.ca";
	};      
};
 
view "wan" {     							#定义外网view
    match-clients { any; };					#匹配除了内网网段以外的任意地址
    zone "lisi.com" IN {
        type master;
        file "lisi.com.zone.wan";
    };
      zone "0.0.10.in-addr.arpa" IN {
        type master;
        file "lisi.com.zone.local.wan";
  };
};

#注意:一旦启用view,所有的zone必须都在view下,所以要把系统默认的自检用的zone也放在view下或者删除

5、修改区域数据配置文件

cd /var/named
cp -p named.localhost lisi.com.zone.lan
cp -p named.localhost lisi.com.zone.wan
cp -p named.localhost lisi.com.zone.local.lan
cp -p named.localhost lisi.com.zone.local.wan

vim lisi.com.zone.lan
$TTL 1D
@       IN SOA  lisi.com. admin.lisi.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      lisi.com.
        A       192.168.163.15
www IN 	A       192.168.163.100			#内网主机通过解析www.lisi.com的地址得到192.168.163.100

vim lisi.com.zone.wan
$TTL 1D
@       IN SOA  lisi.com. admin.lisi.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      lisi.com.
        A       10.0.0.1
www IN	A       10.0.0.100				#外网主机通过解析www.lisi.com的地址得到10.0.0.100

vim lisi.com.zone.local.lan 
$TTL 1D
@       IN SOA  lisi.com. admin.lisi.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      lisi.com.
        A       192.169.163.15
100  IN PTR       www.lisi.com.

vim lisi.com.zone.local.wan 
$TTL 1D
@       IN SOA  lisi.com. admin.lisi.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      lisi.com.
        A       10.0.0.1
100 IN  PTR     www.lisi.com.

6、启动服务

systemctl start named

7、在内、外网客户端的域名解析配置文件中添加DNS服务器地址

echo "nameserver 192.168.163.15" >> /etc/resolv.conf		#内网客户端
外网客户端用win10代替

8、在内、外网客户端上测试

nslookup www.lisi.com

五、实操

实操要求:在网关服务器搭建DNS分离解析,使局域网主机解析www.lisi.com 为192.168.163.20,外网主机解析 www.lisi.com 为10.0.0.1。

1、为网关服务器配置双网卡
在关机状态下再添加一块网卡,重启系统
在这里插入图片描述
永久修改网卡地址
在这里插入图片描述
在这里插入图片描述
查看IP地址是否改成功
在这里插入图片描述

2、安装软件
在这里插入图片描述

3、修改主配置文件
在这里插入图片描述
在这里插入图片描述
4、修改区域配置文件
在这里插入图片描述
5、修改区域数据配置文件
在这里插入图片描述
在这里插入图片描述
下面三个是另外三个配置文件的配置,配置差不多,直接看图吧
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
6、启动服务
在这里插入图片描述
7、在内、外网客户端的域名解析配置文件中添加DNS服务器地址
在这里插入图片描述

8、测试
内网测试
在这里插入图片描述
外网测试

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_51326240/article/details/110919356