RHCE第六章:DNS域名解析服务器
一、DNS域名解析服务器
1.作用
正向解析:通过域名解析成IP地址访问服务
反向解析:通过IP地址解析成域名访问服务
2.连接方式
DNS使用53端口监听网络
3.域名服务器
根域名服务器:全球总计只有十三台服务器,记录所有顶级域名服务器地址(如:*.com,*.net,*.uk,*.cn······)
顶级域名服务器:记录所有权威域名服务器地址(如:*.baidu.com,*.taobao.com······)
权威域名服务器:记录所有区域内站点的IP地址(如:www.baidu.com,image.taobao.com·····)
本地域名服务器:缓存访问过的网站的域名信息。不属于域名服务器的层级结构
4.域名解析过程
(1)本地电脑先检查浏览器缓存
(2)本地电脑检查host配置文件
(3)本地电脑 向 本地DNS服务器 发起 DNS解析请求
(4)本地DNS服务器 向 根DNS服务器 发起 DNS解析请求
(5)根DNS服务器 向 本地DNS服务器 返回 顶级DNS服务器地址
(6)本地DNS服务器 向 顶级DNS服务器 发起 DNS解析请求
(7)顶级DNS服务器 向 本地DNS服务器 返回 NameServer服务器地址
(8)本地DNS服务器 向 NameServer服务器 发起 DNS解析请求
(9)NameServer服务器 向 本地DNS服务器 返回 正确的DNS解析结果
(10)本地DNS服务器 向 本地电脑 返回 正确的DNS解析结果
一般访问域名只用到前两步,如果本地电脑没有缓存,则继续后面八步。第二次访问时,电脑有缓存,则无需后面八步。
二、安装DNS服务
[root@Server ~]# dnf install dns -y
错误:没有任何匹配: dns
[root@Server ~]# dnf search dns #如果不知道某个服务(如:DNS)软件包的名称,则可以去搜服务关键字(如:DNS)
······
bind.x86_64 : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System)
: server #我们要下载DNS服务器,就找服务(server)相关的信息,此时要下载的包名就是bind
······
[root@Server ~]# rpm -ql bind #查看安装bind产生哪些文件,也可以查看服务名称
/etc/named.conf #主配置文件
/etc/named.rfc1912.zones #区域管理配置文件
/usr/lib/systemd/system/named.service #要启动DNS的服务名称
/var/named #详细的域名解析配置文件
[root@Server ~]# vim /etc/named.conf
10 options { #DNS服务的选项设置
11 listen-on port 53 { 192.168.153.100; }; #监听ip。修改成监听自己虚拟服务器ip
12 listen-on-v6 port 53 { ::1; }; #ipv6监听
13 directory "/var/named"; #DNS数据目录位置
14 dump-file "/var/named/data/cache_dump.db"; #默认缓存文件位置
15 statistics-file "/var/named/data/named_stats.txt"; #DNS状态文件保存文件
16 memstatistics-file "/var/named/data/named_mem_stats.txt"; #内存状态文件保存文件
17 secroots-file "/var/named/data/named.secroots"; #安全根服务器保存位置
18 recursing-file "/var/named/data/named.recursing"; #递归查询文件保存位置
19 allow-query { 192.168.153.0/24; }; #允许哪些客户端可以访问,可以写IP地址、网段和所有主机(any)
// 20 forwards {114.114.114.114;}; #高速缓存,转发
31 recursion yes; #允许递归查询,如果删除掉了就是迭代查询
33 dnssec-validation yes; #开启加密
35 managed-keys-directory "/var/named/dynamic"; #指定目录中文件保存位置
45 logging { #日志配置
46 channel default_debug {
47 file "data/named.run";
48 severity dynamic;
49 };
50 };
52 zone "." IN { #区域管理配置
53 type hint;
54 file "named.ca";
55 };
57 include "/etc/named.rfc1912.zones"; #引用到的子配置
58 include "/etc/named.root.key";
[root@Server ~]# systemctl stop firewalld.service #关闭网络防火墙
[root@Server ~]# setenforce 0 #关闭内核防火墙
[root@Server ~]# systemctl restart named #重启DNS服务
[root@Client ~]# nmcli connection modify ens160 ipv4.dns 192.168.153.100 #修改客户端的DNS,指向服务器ip,把服务器当做DNS服务器
[root@Client ~]# nmcli connection reload #重新加载
[root@Client ~]# nmcli connection up ens160 #激活ens160
[root@Client ~]# ping www.taobao.com
PING www.taobao.com.danuoyi.tbcache.com (58.255.173.203) 56(84) 比特的数据。
64 比特,来自 58.255.173.203 (58.255.173.203): icmp_seq=1 ttl=128 时间=31.2 毫秒
64 比特,来自 58.255.173.203 (58.255.173.203): icmp_seq=2 ttl=128 时间=29.6 毫秒
64 比特,来自 58.255.173.203 (58.255.173.203): icmp_seq=3 ttl=128 时间=30.5 毫秒
^C
--- www.taobao.com.danuoyi.tbcache.com ping 统计 ---
已发送 3 个包, 已接收 3 个包, 0% packet loss, time 2893ms
rtt min/avg/max/mdev = 29.612/30.448/31.230/0.661 ms
#访问到DNS服务器,解析域名
[root@Client ~]# dnf install bind-utils -y #安装访问工具
[root@Client ~]# nslookup www.taobao.com #nslookup查找(拉回)
Server: 192.168.153.100
Address: 192.168.153.100#53
Non-authoritative answer:
www.taobao.com canonical name = www.taobao.com.danuoyi.tbcache.com.
Name: www.taobao.com.danuoyi.tbcache.com
Address: 58.255.173.202
Name: www.taobao.com.danuoyi.tbcache.com
Address: 58.255.173.203
Name: www.taobao.com.danuoyi.tbcache.com
Address: 2408:8756:4cff:f00e:403::19
Name: www.taobao.com.danuoyi.tbcache.com
Address: 2408:8756:4cff:f00e:403::18
[root@Client ~]# dig www.taobao.com #dig查找(挖)
······
;; ANSWER SECTION:
www.taobao.com. 290 IN CNAME www.taobao.com.danuoyi.tbcache.com.
www.taobao.com.danuoyi.tbcache.com. 46 IN A 58.255.173.202
www.taobao.com.danuoyi.tbcache.com. 46 IN A 58.255.173.203
;; Query time: 2 msec
;; SERVER: 192.168.153.100#53(192.168.153.100)
;; WHEN: Wed Apr 23 16:14:05 CST 2025
;; MSG SIZE rcvd: 151
[root@Client ~]# nmcli device show #检查配置ip信息
IP4.DNS[1]: 192.168.153.100
三、正向解析
(1)
[root@Server ~]# vim /etc/named.conf
10 options { #DNS服务的选项设置
11 listen-on port 53 { 192.168.153.100; }; #监听自己虚拟服务器ip
19 allow-query { 192.168.153.0/24; }; #允许192.168.153.0/24网段可以访问
[root@Server ~]# systemctl stop firewalld.service #关闭网络防火墙
[root@Server ~]# setenforce 0 #关闭内核防火墙
[root@Server ~]# systemctl restart named #重启DNS服务
[root@Client ~]# nmcli connection modify ens160 ipv4.dns 192.168.153.100 #修改客户端的DNS,指向服务器ip,把服务器当做DNS服务器
[root@Client ~]# nmcli connection reload #重新加载
[root@Client ~]# nmcli connection up ens160 #激活ens160
(2)
[root@Server ~]# vim /etc/named.rfc1912.zones #编辑区域文件
17 zone "localhost.localdomain" IN { #正向解析模版
18 type master;
19 file "named.localhost";
20 allow-update { none; };
21 };
23 zone "xing.org" IN { #创建自己的正向解析
24 type master; #正向解析
25 file "xing.org.zone"; #文件名,文件相对路劲,保存在/var/anmed下
26 }
(3)
[root@Server ~]# cd /var/named/
[root@Server named]# ll
总用量 16
drwxrwx---. 2 named named 23 4月 23 15:57 data
drwxrwx---. 2 named named 60 4月 23 15:58 dynamic
-rw-r-----. 1 root named 2112 3月 13 23:59 named.ca
-rw-r-----. 1 root named 152 3月 13 23:59 named.empty
-rw-r-----. 1 root named 152 3月 13 23:59 named.localhost #正向解析文件模版
-rw-r-----. 1 root named 168 3月 13 23:59 named.loopback #反向解析文件模版
drwxrwx---. 2 named named 6 3月 13 23:59 slaves
[root@Server named]# cp -p named.localhost xing.org.zone #复制正向解析模版为自己的正向解析文件,-p表示完全复制(源数据,权限都复制)
[root@Server named]# vim xing.org.zone #编辑正向解析文件
1 $TTL 1D #域名存活时间为1天
2 @ IN SOA dns.xing.org. mail.admin.xing (
@表示正向解析域名xing.org 第二个@可以写成dns.xing.org.;'dns.xing.org'后面必须带'.',不然'dns.xing.org'会表示'dns.xing.org.xing.org' rname.invalid.表示管理员邮箱,可以写成自己的邮箱(注意不能用'@',可以用'.'替代)
3 2025042301 ; serial #版本号(建议不超过10),2025年4月23号的01版本
4 1D ; refresh #刷新时间为1天
5 1H ; retry #重连时间。连接时连不上的话,下次连接时间为1小时
6 1W ; expire #过期时间为1周
7 3H ) ; minimum #最少次数3小时
8 NS dns.xing.org. #这里的@可以写成dns.xing.org
9 dns A 192.168.153.100 #第一个必须解析自己的ip
10 AAAA ::1 #ipv6解析
11 www.123.com A 192.168.153.101 #劫持123的ip
(4)
[root@Server named]# named-checkconf #检查配置文件有无错误
[root@Server named]# named-checkzone xing.org xing.org.zone #检查区域文件有无错误,第一个参数表示域名——xing.org,第二个参数表示文件名——xing.org.zone
zone xing.org/IN: loaded serial 2025042301
OK #表示区域文件无错误
[root@Client ~]# nslookup dns.xing.org #拉回dns,后面必须加域名——xing.org
Server: 192.168.153.100
Address: 192.168.153.100#53
Name: dns.xing.org
Address: 192.168.153.100
Name: dns.xing.org
Address: ::1
[root@Client ~]# nslookup www.123.com.xing.org #拉回www.123.com
Server: 192.168.153.100
Address: 192.168.153.100#53
Name: www.123.com.xing.org
Address: 1.2.3.4
四、反向解析
[root@Server named]# vim /etc/named.rfc1912.zones #编辑区域文件
40 zone "1.0.0.127.in-addr.arpa" IN { #反向解析模版
41 type master;
42 file "named.loopback";
43 allow-update { none; };
44 };
46 zone "153.168.192.in-addr.arpa" IN { #创建自己的反向解析,因为是通过ip/网段(如:192.168.153.0/24)解析域名,所以这里写的是ip/网段并且要倒过来写——153.168.192
47 type master; #主DNS服务器
48 file "192.168.153.arpa"; #文件名,相对路径,保存在/var/named下
49 };
[root@Server named]# ll
总用量 20
drwxrwx---. 2 named named 23 4月 23 15:57 data
drwxrwx---. 2 named named 60 4月 23 17:21 dynamic
-rw-r-----. 1 root named 2112 3月 13 23:59 named.ca
-rw-r-----. 1 root named 152 3月 13 23:59 named.empty
-rw-r-----. 1 root named 152 3月 13 23:59 named.localhost
-rw-r-----. 1 root named 168 3月 13 23:59 named.loopback #反向解析模版
drwxrwx---. 2 named named 6 3月 13 23:59 slaves
-rw-r-----. 1 root named 234 4月 23 17:20 xing.org.zone
[root@Server named]# cp -p named.loopback 192.168.153.arpa #复制反向解析模版为自己反向解析文件
[root@Server named]# vim 192.168.153.arpa
1 $TTL 1D
2 @ IN SOA dns.xing.org. rname.invalid. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.xing.org.
9 dns.xing.org. A 192.168.153.100 #解析自己的域名
10 AAAA ::1
11 100 PTR dns.xing.org. #PTR表示反向解析
12 101 PTR www.xing.org.
13 102 PTR image.xing.org.
[root@Server named]# named-checkconf #检查配置文件有无错误
[root@Server named]# named-checkzone 153.168.192.in-addr.arpa 192.168.153.arpa #检查域名文件有无错误,第一个参数写域名,第二个参数写文件名
192.168.153.arpa:9: ignoring out-of-zone data (dns.xing.org)
zone 153.168.192.in-addr.arpa/IN: loaded serial 0
OK
五、主从DNS服务器
完全区域传送:将主服务器是的所有信息复制到辅助服务器上,来实现完全区域传送
(1)
[root@Server ~]# vim /etc/named.conf
11 listen-on port 53 { 192.168.153.100; }; #监听本机(服务器)ip
19 allow-query { 192.168.153.0/24; }; #使192.168.153的网段可以访问
[root@Server ~]# vim /etc/named.rfc1912.zones
23 zone "xing.org" IN {
24 type master; #正向解析的主服务器
25 file "xing.org.zone"; #文件名,相对路径
26 allow-transfer {192.168.153.200}; #允许转发给从服务器(客户端)
27 };
47 zone "153.168.192.in-addr.arpa" IN {
48 type master; #反向解析的主服务器
49 file "192.168.153.arpa"; #文件名,相对路径
50 allow-transfer {192.168.153.200}; #允许转发给从服务器
51 };
[root@Server named]# cp -p named.localhost xing.org.zone #复制正向解析
[root@Server named]# vim xing.org.zone #编辑正向解析
1 $TTL 1D
2 @ IN SOA dns.xing.org. admin.xing.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.xing.org. #做主从服务器时,dns和slave都必须有
9 NS slave.xing.org. #从服务器
10 dns IN A 192.168.153.100 #解析主服务器
11 slave IN A 192.168.153.200 #解析从服务器
12 www IN A 192.168.153.100
13 ftp IN CNAME www #CNAME表示转发
[root@Server named]# cp -p named.loopback 192.168.153.arpa #复制反向解析
[root@Server named]# vim 192.168.153.arpa #编辑反向解析
1 $TTL 1D
2 @ IN SOA dns.xing.org. admin.xing.com. (
3 0 ; serial
4 1D ; refresh
5 1H ; retry
6 1W ; expire
7 3H ) ; minimum
8 NS dns.xing.org. #做主从服务器时必须有dns和slave
9 NS slave.xing.org. #从服务器
10 100 PTR dns.xing.org. #解析主服务器
11 200 PTR slave.xing.org. #解析从服务器
12 100 PTR www.xing.org.
[root@Server named]# named-checkconf #检查DNS的配置文件
[root@Server named]# named-checkzone xing.org xing.org.zone #检查区域的正向解析文件
zone xing.org/IN: loaded serial 0
OK
[root@Server named]# named-checkzone 153.168.192.in-addr.arpa 192.168.153.arpa #检查区域的反向解析文件
zone 153.168.192.in-addr.arpa/IN: loaded serial 0
OK
[root@Server named]# systemctl restart named
[root@Server ~]# nmcli connection modify ens160 ipv4.dns 192.168.153.100 #dns改为自己的ip,使本机具备测试功能
[root@Server ~]# nmcli connection reload #重新加载
[root@Server ~]# nmcli connection up ens160 #激活ens160
(2)
[root@Client ~]# dnf install bind -y
[root@Client ~]# vim /etc/named.conf #编辑配置文件
10 options {
11 listen-on port 53 { 192.168.153.200; }; #监听自己的ip
19 allow-query { 192.168.153.0/24; }; #允许192.168.153网段访问
[root@Client ~]# vim /etc/named.rfc1912.zones #编辑区域文件
23 zone "xing.org" IN { #创建正向解析
24 type slave; #从服务器
25 file "slaves/xing.org.zone"; #文件名称,保存到/var/named/slaves/xing.org.zone
26 masters {192.168.153.100;}; #指向主服务器
27 };
47 zone "153.168.192.in-addr.arpa" IN { #创建反向解析
48 type slave; #从服务器
49 file "slaves/192.168.153.arpa"; #文件名称,保存到/var/named/slaves/192.168.153.arpa
50 masters {192.168.153.100;}; #指向主服务器
51 };
[root@Client ~]# nmcli connection modify ens160 ipv4.dns 192.168.153.200 #dns改为自己的ip,使本机具备测试功能
[root@Client ~]# nmcli connection reload #重新加载
[root@Client ~]# nmcli connection up ens160 #激活ens160
[root@Client ~]# systemctl restart named #重启DNS服务
[root@Client ~]# ls /var/named/slaves/ #服务器(主服务器)和客户端(从服务器)都开启后,客户端会自动获取主服务器创建的正向解析和反向解析文件
192.168.153.arpa xing.org.zone
然后再从服务器(客户端)nslookup(拉回)解析配置文件的IP
本文地址:https://www.vps345.com/5827.html