一、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
评论前必须登录!
注册