【背景】
某公司的数据中心DC,要架设DNS服务器负责解析“学生姓名缩写.cqie”的域名解析工作。DNS服务器的FQDN(完全正式域名标识)为dns.姓名.cqie,IP地址为192.168.学号.66。要求为以下域名实现正反向域名解析服务。(以wzz.cqie域名,学号为100号为例)
图4-0 实验拓扑
一、实验目标
1.理解DNS的域名空间结构。
2.掌握DNS查询模式。
3.掌握DNS域名解析过程。
4.掌握常规DNS服务器的安装与配置方法。
5.掌握DNS 主配置文件各项申明参数及操作及其含义
6.具备DNS服务器故障排除能力
二、实训原理/流程
1)项目背景
某公司要架设DNS服务器负责解析“学生姓名缩写.cqie”的域名解析工作。DNS服务器的FQDN(完全正式域名标识)为dns.姓名.cqie,IP地址为192.168.学号.66。要求为以下域名实现正反向域名解析服务。(以wzz.cqie域名,学号为100号为例)
dns.wzz.cqie 192.168.0.101
mail. wzz.cqie MX记录 192.168.0.101
slave.wzz.cqie 192.168.0.102
ftp. wzz.cqie 192.168.0.24
ftp. wzz.cqie 192.168.0.24
ftp. wzz.cqie 192.168.0.24
www. wzz.cqie 192.168. 0.24
另外,为www. wzz.cqie设置别名为web.wzz.cqie。
表4-1 各主机域名及ip规划
主机名称 | 域名 | ip | ||
主dsn | #dns.wzz.cqie | 192.168.100.66(vmnet11) | ||
辅助dns | #dns1.wzz.cqie | 192.168.100.67(vmnet11) | ||
文件服务器 | #ftp.wzz.cqie | 192.168.100.68(vmnet11) | ||
存储nfs | #nfs.wzz.cqie | 192.168.100.69(vmnet11) | ||
存储samba | #samba.wzz.cqie | 192.168.100.70(vmnet11) | ||
Web服务器 | #www.wzz.cqie | 192.168.100.71(vmnet11) | ||
电子邮件服务器 | #mail.wzz.cqie | 192.168.100.72(vmnet11) | ||
代理服务器 | #squid.wzz.cqie | 192.168.100.73(vmnet11) | ||
客户端 | # | 192.168.100.74(vmnet11) |
(二)任务要求:
1. 配置主DNS服务器。
2. 客户端验证测试。
(三)实验步骤:
1)启动7台CentOS8虚拟机,每台虚拟机都通过nat连接到外网,然后通过vmnet11(内网)桥接到一起,测试。批量测试内网各台机器的连通性:
//在任意一台服务器的转运文件夹/wutool中新建ping_range.sh,并按写入如下内容: #!/bin/bash # 定义IP地址范围 start=66 end=75 # 遍历IP地址范围并ping每个地址 for (( i=start; i<=end; i++ )) do ip="192.168.100.$i" # 替换为你的网络前缀 ping -c 1 $ip done //然后执行该文件 [root@DNS wutool]# ./ping_range.sh PING 192.168.100.66 (192.168.100.66) 56(84) bytes of data. 64 bytes from 192.168.100.66: icmp_seq=1 ttl=64 time=0.122 ms --- 192.168.100.66 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.122/0.122/0.122/0.000 ms PING 192.168.100.67 (192.168.100.67) 56(84) bytes of data. 64 bytes from 192.168.100.67: icmp_seq=1 ttl=64 time=1.28 ms --- 192.168.100.67 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.279/1.279/1.279/0.000 ms PING 192.168.100.68 (192.168.100.68) 56(84) bytes of data. 64 bytes from 192.168.100.68: icmp_seq=1 ttl=64 time=1.10 ms --- 192.168.100.68 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.099/1.099/1.099/0.000 ms PING 192.168.100.69 (192.168.100.69) 56(84) bytes of data. 64 bytes from 192.168.100.69: icmp_seq=1 ttl=64 time=1.33 ms --- 192.168.100.69 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.333/1.333/1.333/0.000 ms PING 192.168.100.70 (192.168.100.70) 56(84) bytes of data. 64 bytes from 192.168.100.70: icmp_seq=1 ttl=64 time=0.984 ms --- 192.168.100.70 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.984/0.984/0.984/0.000 ms PING 192.168.100.71 (192.168.100.71) 56(84) bytes of data. 64 bytes from 192.168.100.71: icmp_seq=1 ttl=64 time=1.14 ms --- 192.168.100.71 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.137/1.137/1.137/0.000 ms PING 192.168.100.72 (192.168.100.72) 56(84) bytes of data. 64 bytes from 192.168.100.72: icmp_seq=1 ttl=64 time=1.18 ms --- 192.168.100.72 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.180/1.180/1.180/0.000 ms PING 192.168.100.73 (192.168.100.73) 56(84) bytes of data. 64 bytes from 192.168.100.73: icmp_seq=1 ttl=64 time=1.44 ms --- 192.168.100.73 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.437/1.437/1.437/0.000 ms PING 192.168.100.74 (192.168.100.74) 56(84) bytes of data. 64 bytes from 192.168.100.74: icmp_seq=1 ttl=64 time=1.31 ms --- 192.168.100.74 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.314/1.314/1.314/0.000 ms PING 192.168.100.75 (192.168.100.75) 56(84) bytes of data. 64 bytes from 192.168.100.75: icmp_seq=1 ttl=64 time=1.39 ms --- 192.168.100.75 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.390/1.390/1.390/0.000 ms |
内网全部连通。
选中~.66和~.67为主DNS和辅助DNS服务器因此,修改那两台服务器的主机名为dns和dns1,然后安装工具(自行更新repo库文件或者架设本地yum源):
[root@DNS yum.repos.d]# yum install bind bind-chroot bind-utils -y CentOS-8.5.2111 - Base - mirrors.aliyun.com 6.6 MB/s | 4.6 MB 00:00 CentOS-8.5.2111 - Extras - mirrors.aliyun.com 49 kB/s | 10 kB 00:00 CentOS-8.5.2111 - AppStream - mirrors.aliyun.com 6.7 MB/s | 8.4 MB 00:01 …… 完毕! |
2)选中~.66充当主dns,~.67充当辅助/转发/惟高速缓存服务器,先在选定的服务器上安装工具:
# yum install bind bind-chroot bind-utils -y |
说明:bind DNS服务;bind-chroot bind的增强工具,使bind服务限定在chroot下运行,提交安全性。bind-utils是测试工具,检测DNS是否有成功。
[root@DNS ~]# rpm -qa |grep bind bind-license-9.11.26-6.el8.noarch bind-libs-lite-9.11.26-6.el8.x86_64 bind-9.11.26-6.el8.x86_64 python3-bind-9.11.26-6.el8.noarch bind-chroot-9.11.26-6.el8.x86_64 bind-libs-9.11.26-6.el8.x86_64 bind-utils-9.11.26-6.el8.x86_64 |
如果安装了测试工具,还有bind-utils软件包。这个可以在client上安装即可。
图4- 1
3)修改全局配置文件/etc/named.conf
说明:养成良好的习惯,在修改任何配置文件前,先进行备份,然后再修改
[root@DNS ~]# cp /etc/named.conf /etc/named.conf.bak [root@DNS ~]# vi /etc/named.conf |
(1)将“BIND侦听的DNS查询请求本机IP地址127.0.0.1修改为任一主机any,端口53不变指定接收DNS查询请求的客户端也修改为任一any:如图所示:
图4- 2
(2)继续修改dnssec-validation no;(设置为yes则需关闭 SElinux(linux安全增强特性,改为no可以忽略SELinux影响。)
(3)根区域文件保持不变(13个根域服务不能动,根域文件名为named.ca)
zone "." IN {
type hint;
file "named.ca";
};
图4- 3
(4)将主配置文件目录改成/etc/named.zone,原文件/etc/named.rfc1912.zones。最后保存退出。
图4- 4
:wq!
注意每行后面的分号; (除第一个“{”花括号外)
4) 修改主配置文件 (用于指定正向、反向的区域名等信息)
(1)将/etc/named.rfc1912.zones复制为全局配置文件中指定的主配置文件/etc/named.zones)
[root@DNS ~]# cp -p /etc/named.rfc1912.zones /etc/named.zones |
说明:-p 参数是复制是保留原文件的属性,拥有者及所属的组不变。
(2)修改主配置文件vi /etc/named.zones,在最后编辑增加以下内容,最后保存退出。
图4- 5
:wq!
5) 修改正、反向解析区域申明文件
(1)进入区域配置文件目录,并查看该目录下的文件,包含根域文件named.ca
(2)复制named.localhost 为正向解析区域文件wzz.cqie.zone
养成良好的习惯:不要在样板上直接修改。
[root@DNS ~]# cd /var/named cp -p named.localhost wzz.cqie.zone |
图4- 6
(3)编辑正向区域文件
[root@DNS named]# vi wzz.cqie.zone $TTL 1D @ IN SOA @ root.wzz.cqie. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns.wzz.cqie @ IN MX 10 mail.wzz.cqie dns A 192.168.100.66 dns1 A 192.168.100.67 ftp A 192.168.100.68 nfs A 192.168.100.69 samba A 192.168.100.70 www A 192.168.100.71 web CNAME www.wzz.cqie mail A 192.168.100.72 squid A 192.168.100.73 |
[root@dhcp-relay named]#vi wzz.cqie.zone 红色部分为说明
$TTL 1D
@ IN SOA @ root.wzz.cqie. ( /*起始授权主机记录 @后为管理员邮箱/
0 ; serial /*序列号,主辅同步,主>辅会更新/
1D ; refresh /*更新时间1天/
1H ; retry /*若更新失败,重新时间1小时/
1W ; expire /*过期时间1周/
3H ) ; minimum /*最小时间间隔/
@ IN NS dns.wzz.cqie. /*该域的域名服务器完整名称,至少1个/
@ IN MX 10 mail.wzz.cqie. /*邮件交换器名称,10为优先级/
dns A 192.168.0.23 /*以下为主机记录,即主机名该服务器的ip对应/
mail A 192.168.0.23
www A 192.168.0.24
ftp A 192.168.0.24
slave A 192.168.0.24
web CNAME www.wzz.cqie. /*别名记录/
(4)复制named.loopback 为反向解析区域文件100.168.192.zone
(5)编辑反向区域文件
[root@DNS named]# cp -p named.loopback 100.168.192.zone |
图4- 7
[root@DNS named]# vi 100.168.192.zone $TTL 1D @ IN SOA @ root.wzz.cqie. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns.wzz.cqie. @ IN MX 10 mail.wzz.cqie. 66 PTR dns.wzz.cqie. 67 PTR dns1.wzz.cqie. 68 PTR ftp.wzz.cqie. 69 PTR nfs.wzz.cqie. 70 PTR samba.wzz.cqie. 71 PTR www.wzz.cqie. 72 PTR mail.wzz.cqie. 73 PTR squid.wzz.cqie. |
6) 配置防火墙,允许DNS服务通过,重新加载防火墙(如果firewall开启)
[root@DNS ~]# firewall-cmd --permanent --add-service=dns success [root@DNS ~]# firewall-cmd --reload success |
7)启动DNS服务,系统启动自动加载DNS服务
[root@DNS ~]# systemctl start named [root@DNS ~]# systemctl enable named Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service. |
如要启动失败,可以用named-checkconf 检查语法错误;
格式: named-checkconf [参数] [配置文件]
[root@DNS named]# named-checkconf /etc/named.conf
[root@DNS named]# named-checkconf /etc/named.zones
客户端验证:
图4- 8
查看以下域名:
[root@DNS named]# nslookup www.baidu.com Server: 192.168.100.66 Address: 192.168.100.66#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 183.2.172.42 Name: www.a.shifen.com Address: 183.2.172.185 Name: www.a.shifen.com Address: 240e:ff:e020:966:0:ff:b042:f296 Name: www.a.shifen.com Address: 240e:ff:e020:9ae:0:ff:b014:8e8b [root@DNS named]# nslookup www.wzz.cqie Server: 192.168.100.66 Address: 192.168.100.66#53 Name: www.wzz.cqie Address: 192.168.100.71 |
【避坑TIPs01】
故障排除:我第一次服务启动失败,提示如下
图4- 9
打开正向区域文件检查,无问题
再打开反下区域文件检查,发现邮件交换记录少写了个优先级,加上10,正常启动服务。
还有区域名也要注意,主配置文件 中设定的是wzz.cqie.zone 如果不小心复制成了wzz.cqie.zones,启动也会失败。反向同理。
【避坑TIPs02】
所有的服务器,即使在ifcfg-ensxx的配置文件中,把本地dns指定成了DNS1,但系统重启或挂起后恢复,NetworkManager会自己生成新的/etc/resolv.conf文件,该文件中本地dns无法排到第一,如果无法排到第一,本地的DNS就会失效。因此,要阻止NetworkManager自动生成resolv.conf覆盖原有内容。步骤是:
①禁止我们内网加载dns
nmcli c modify ens37 ipv4.ignore-auto-dns yes nmcli c up ens37 |
②修改/etc/NetworkManager/NetworkManager.conf
[main] dns=none |
③按自己需求修改/etc/resolv.conf
# Generated by NetworkManager search localdomain nameserver 192.168.100.66 nameserver 114.114.114.114 nameserver 192.168.137.2 |
④重启NetworkManager
systemctl restart NetworkManager |
下期我们将措施辅助、转发、惟高速缓存DNS的部署,这几种服务在dns1.wzz.cqie主机上部署。