Lesson 7 DNS域名解析服务器
域名服务器说明
-
根域名服务器: 全球总计只有十三台服务器,记录了所有顶级域名服务器服务器的地址。
-
根域名服务器知道
*.com,*.net,*.uk,*.jp.....
等等这些服务器的地址。
-
-
顶级域名服务器:记录了所有权威域名服务器的地址 (区域:*.com)
-
权威域名服务器:记录了所有区域内站点的ip地址。(区域:*.网站名.com )
-
本地域名服务器: 缓存访问过的网站的域名信息。
域名解析的过程
搭建DNS域名解析服务器
dns服务相关软件安装
-
安装
# 如果不知道dns服务器的软件包的名称 可以去搜索dns关键字
[root@server ~]# dnf search dns // 搜索
...
bind.aarch64 : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System): server
...
dnf install bind -y #软件即可完成安装
/etc/named.conf :该文件是主配置文件
-
options:dns服务器选项设置
-
logging: 日志的配置
-
zone : 区域管理配置
-
include:引用到的子配置
options{listen-on port 53 { 172.25.254.100; }; #监听的端口号和ip...allow-query { 172.25.254.0/24; }; #允许访问的网段
}
-
/etc/named.rfc1912.zones :这里区域管理配置文件
-
/var/named : 该目录存放着详细的域名解析配置文件
正向解析服务器搭建
1.设置主配置文件
[root@server ~]# vim /etc/named.conf
...910 options {11 listen-on port 53 { 192.168.25.100; };12 listen-on-v6 port 53 { ::1; };13 directory "/var/named";14 dump-file "/var/named/data/cache_dump.db";15 statistics-file "/var/named/data/named_stats.txt";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.25.0/24; };20
...
[root@server ~]# systemctl enable --now named.service
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
[root@server ~]#
2.设置区域文件
[root@Server ~]# vim /etc/named.rfc1912.zones
...2829 zone "zhangsan.org" IN{30 type master;31 file "zhangsan.org.zone" # 文件的绝对路径 /var/named/heroliu.org.zone32 };
...
3.设置域名解析文件
[root@server ~]# cd /var/named
[root@Server named]# cp -p named.localhost heroliu.org.zone # 通过复制模创建区域解析文件
[root@server named]# vim zhangsan.org.zone
...
1 $TTL 1D # 域名存活时间是一天2 @ IN SOA dns.zhangsan.org. mail.admin.zhangsan. (3 2025042002 ; serial4 1D ; refresh5 1H ; retry6 1W ; expire7 3H ) ; minimum8 NS dns.zhangsan.org.11 dns A 192.168.25.10013 image A 192.168.25.10114 www A 192.168.25.102
...
4.开启/重启服务
[root@Server named]# systemctl start/restart named
5.将客户端的网络设置中dns指向本地dns服务器
//4.客户端修改dns指向自己的dns服务器
# [root@Client ~]# dnf install bind-utils -y #安装测试工具
# [root@Client ~]# nmcli connection modify xxxx(你的会话文件名,如ens160) ipv4.dns # 172.25.254.100
# [root@Client ~]# nmcli connection reload
# [root@Client ~]# nmcli connection up xxxx(你的会话文件名,如ens160)
# 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
[root@Client ~]# dnf install bind -y
[root@client ~]# nmcli connection modify ens160 ipv4.dns 192.168.25.100
[root@client ~]# nmcli connection reload
[root@client ~]# nmcli connection up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@client ~]#
6.在客户端验证能否解析
[root@client ~]# nslookup www.zhangsan.org
Server: 192.168.25.100
Address: 192.168.25.100#53Name: www.zhangsan.org
Address: 192.168.25.102[root@client ~]# nslookup dns.zhangsan.org
Server: 192.168.25.100
Address: 192.168.25.100#53Name: dns.zhangsan.org
Address: 192.168.25.100
反向解析服务器
如果说 正向解析:通过 域名 -> ip
那么 反向解析: 通过 ip -> 域名
1.设置主配置文件
[root@Server ~]#vim /etc/named.conf
..
options{listen-on port 53 { 172.25.254.100; };...allow-query { 172.25.254.0/24; };
}
2.设置区域文件
# 创建反向解析的区域配置
[root@Server named]# vim /etc/named.rfc1912.zones
...46 zone "25.168.192.in-addr.arpa" IN {47 type master;48 file "192.168.25.arpa";49 };50
...# 检查etc下的配置文件是否ok
[root@server named]# named-checkconf
3.设置反向解析的解析文件
[root@Server named]# cd /var/named[root@server named]# cp -p named.loopback 192.168.25.arpa[root@server named]# vim 192.168.25.arpa
...
1 $TTL 1D2 @ IN SOA dns.zhangsan.org. rname.invalid. (3 0 ; serial4 1D ; refresh5 1H ; retry6 1W ; expire7 3H ) ; minimum8 NS dns.zhangsan.org.9 dns.zhangsan.org. A 192.168.25.10010 101 PTR image.zhangsan.org.11 102 PTR www.zhangsan.org.12 100 PTR dns.zhangsan.org.
...
[root@server named]# named-checkzone 25.168.192.in-addr.arpa 192.168.25.arpa
192.168.25.arpa:9: ignoring out-of-zone data (dns.zhangsan.org)
zone 25.168.192.in-addr.arpa/IN: loaded serial 0
OK
4.重启服务
[root@server named]# systemctl restart named
5.在客户端使用nslookup 通过ip后去域名
[root@client ~]# nslookup 192.168.25.100
100.25.168.192.in-addr.arpa name = dns.zhangsan.org.[root@client ~]# nslookup 192.168.25.101
101.25.168.192.in-addr.arpa name = image.zhangsan.org.[root@client ~]# nslookup 192.168.25.102
102.25.168.192.in-addr.arpa name = www.zhangsan.org.
主从DNS服务
主服务器设置
1.DNS指向自己
[root@server named]# nmcli connection modify ens160 ipv4.dns 192.168.25.100
[root@server named]# nmcli connection reload
[root@server named]# nmcli connection up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
[root@server named]#
2.每一个区域配置文件中添加一个 转发从服务器的设置allow-transfer { 192.168.25.200; };
[root@server named]# vim /etc/named.rfc1912.zones
...2829 zone "zhangsan.org" IN{30 type master;31 file "zhangsan.org.zone";32 allow-transfer{192.168.25.200;};33 };47 zone "25.168.192.in-addr.arpa" IN {48 type master;49 file "192.168.25.arpa";50 allow-transfer{192.168.25.200;};51 };
...
3.在正/反数据解析配置文件中,添加从服务器dns设置
# 正向数据解析配置文件中
[root@server named]# vim zhangsan.org.zone
...8 NS dns.zhangsan.org.9 NS slave.zhangsan.org.# 新增10 dns A 192.168.25.10011 slave A 192.168.25.200# 新增
...
# 反向数据解析配置文件中
[root@server named]# vim 192.168.25.arpa
...8 NS dns.zhangsan.org.9 NS slave.zhangsan.org.13 200 PTR slave.zhangsan.org.
...
4.重启
[root@server named]# systemctl restart named
从服务器设置
1.安装bidn及DNS指向自己
[root@Client ~]# dnf install bind -y
[root@client ~]# nmcli connection modify ens160 ipv4.dns 192.168.25.200
[root@client ~]# nmcli connection reload
[root@client ~]# nmcli connection up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@client ~]#
2.设置主配置文件
[root@Client ~]# vim /etc/named.conf
...11 listen-on port 53 { 192.168.25.200; };19 allow-query { 192.168.25.0/24; };
...
3.添加区域信息 type slave;设置masters {172.25.254.100;};设置正反向数据解析配置文件的保存位置,必须在slaves(/var/named/slaves)
[root@client ~]# vim /etc/named.rfc1912.zones
...
zone "zhangsan.org" IN {type slave;file "slaves/zhangsan.org.zone";masters {192.168.25.100;};
};zone "25.168.192.in-addr.arpa" IN {type slave;file "slaves/192.168.25.arpa";masters {192.168.25.100;};
};
...
4.重启
[root@client ~]# systemctl restart named
检测主从是否生效
# 从服务器因为dns设置的是自己 如果也可以实现域名解析说明,主从设置成功
[root@client ~]# nslookup www.zhangsan.org
Server: 192.168.25.200
Address: 192.168.25.200#53Name: www.zhangsan.org
Address: 192.168.25.102[root@client ~]# nslookup dns.zhangsan.org
Server: 192.168.25.200
Address: 192.168.25.200#53Name: dns.zhangsan.org
Address: 192.168.25.100[root@client ~]# nslookup 192.168.25.101
101.25.168.192.in-addr.arpa name = image.zhangsan.org.[root@client ~]# dig @192.168.25.100 dns.zhangsan.org; <<>> DiG 9.16.23-RH <<>> @192.168.25.100 dns.zhangsan.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63011
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 06506cea86bf21e3010000006804f093cc70e23d363ee556 (good)
;; QUESTION SECTION:
;dns.zhangsan.org. IN A;; ANSWER SECTION:
dns.zhangsan.org. 86400 IN A 192.168.25.100;; Query time: 2 msec
;; SERVER: 192.168.25.100#53(192.168.25.100)
;; WHEN: Sun Apr 20 21:03:15 CST 2025
;; MSG SIZE rcvd: 89[root@client ~]#
增量区域传送
-
功能:仅复制区域里变化的文件
-
第一步:主服务端操作,修改数据配置文件
[root@server ~]# vim /var/named/openlab.com.zone1 $TTL 1D2 @ IN SOA dns.zhangsan.org. mail.admin.zhangsan. (3 2025042002 ; serial4 1D ; refresh5 1H ; retry6 1W ; expire7 3H ) ; minimum8 NS dns.zhangsan.org.9 NS slave.zhangsan.org.10 MX 8 mail.zhangsan.org11 dns A 192.168.25.10012 slave A 192.168.25.20013 image A 192.168.25.10114 www A 192.168.25.10215 www1 CNAME www #添加16 mail A 192.168.25.103 # 添加# 注意:1 ; serial 处的序号数字必须加1,否则从服务端不更新
-
第二步:主服务端操作,重启服务
[root@server named]# systemctl restart named
-
第三步:从服务端操作,重启服务
[root@client ~]# systemctl restart named
-
第四步:从服务端操作,测试
[root@client ~]# nslookup mail.zhangsan.org
Server: 192.168.25.200
Address: 192.168.25.200#53Name: mail.zhangsan.org
Address: 192.168.25.103[root@client ~]# nslookup www1.zhangsan.org
Server: 192.168.25.200
Address: 192.168.25.200#53www1.zhangsan.org canonical name = www.zhangsan.org.
Name: www.zhangsan.org
Address: 192.168.25.102[root@client ~]#
注意:
-
序号需要比原序号大(一般改一次加一)
-
更新频率可以改小一点,这样比较快看到实验结果(如 1D ; refresh>>3S ; refresh)
-
需要写一条关于从服务器的NS和A记录,不然新增的数据有时能更新有时无法更新