DNS综合实验

听闻少年二字,当与平庸相斥。这篇文章主要讲述DNS综合实验相关的知识,希望能为你提供帮助。
DNS?域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
?互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。
关于DNS域

根域: 全球根服务器节点只有13个,10个在美国,1个荷兰,1个瑞典,1个日本(目前通过雪人计划在全球部署IPV6根服务器解决了中国没有根服务器的现象) 在安装DNS服务后可以通过vim /var/named/named.cd 文件查看根服务器地址 一级域名:Top Level Domain: tld 三类: 组织域 国家域(.cn, .ca, .hk, .tw) 反向域com, edu, mil, gov, net, org, int,arpa 二级域名:magedu.com 三级域名:study.magedu.com 最多可达到127级域名

DNS的查询与解析DNS的查询分为俩个类型
递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后, 若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结 果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询
迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对 方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起 进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需 要发起多次查询
DNS的解析类型
FQDN --> IP 正向解析
IP --> FQDN 反向解析
DNS查询过程
Client --> hosts文件 --> Client DNS Service Local Cache --> DNS Server (recursion递归) --> DNS Server Cache --> DNS iteration(迭代) --> 根--> 顶级域名DNS--> 二级域名DNS…

DNS的各种角色及定义 DNS服务器类型
主DNS服务器:管理和维护所负责解析的域内解析库的服务器 从DNS服务器:从主服务器或从服务器"复制"(区域传输)解析库副本 序列号:解析库版本号,主服务器解析库变化时,其序列递增 刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔 重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔 过期时长:从服务器联系不到主服务器时,多久后停止服务 通知机制:主服务器解析库发生变化时,会主动通知从服务器 缓存DNS服务器(转发器)

DNS的各种资源记录
name [TTL] IN rr_type value 注意: 1. TTL可从全局继承 2. 使用 "@" 符号可用于引用当前区域的域名 3. 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应 4. 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机

dns的解析是由众多资源记录RR(Resource Record)组成的
记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX
SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解 析库的第一条记录
A:internet Address,作用,FQDN --> IP
【DNS综合实验】AAAA:FQDN --> IPv6
PTR:PoinTeR,IP --> FQDN
NS:Name Server,专用于标明当前区域的DNS服务器
CNAME : Canonical Name,别名记录
MX:Mail eXchanger,邮件交换器
TXT:对域名进行标识和说明的一种方式,一般做验证记录时会使用此项,如:SPF(反垃圾邮 件)记录
DNS综合实验实验环境及规划如下图
DNS综合实验

文章图片

实验提前准备
关闭SElinux 关闭防火墙 时间同步 在除了WEB服务器和客户端之外全部安装BIND服务 每台设备按照上图要求配置网络(IP地址及DNS地址) #client配置 root@client-1:/# cat /etc/netplan/eth0.yaml network: ethernets: eth0: addresses: - 10.0.0.101/24 gateway4: 10.0.0.2 nameservers: addresses: - 10.0.0.27 version: 2

安装WEB服务器
root@web-1:/# apt -y install apache2#安装http服务 root@web-1:/# echo "hello,word!" > /var/www/html/index.html#重写网页 root@web-1:/# systemctl enable --now apache2#开启服务并设置开机自启动 root@web-1:/# curl 127.0.0.1#出现此结果即为正常 hello,word!

配置根域服务器
[root@root ~]# yum -y install bind #安装服务 [root@root ~]# vim /etc/named.conf#打开配置文件按照下方配置修改 #注释下面行 options #listen-on port 53127.0.0.1; ; #allow-querylocalhost; ; #修改下面配置 zone "." IN type master; file "root.zone"; ; #创建一下配置文件 [root@shicentos8-1 named]# vim /var/named/root.zone#需注意权限问题应与/var/named/named.localhost相同 $TTL 1D @IN SOAmasterrname.invalid. ( 0; serial 1D; refresh 1H; retry 1W; expire 3H ); minimum NSmaster comNScoms masterA10.0.0.8 comsA10.0.0.18 [root@root named]# chown :named /var/named/root.zone [root@root named]# chmod 640 /var/named/root.zone [root@root named]# systemctl enable --now named#开启服务 [root@root named]# rndc reload#若修改配置文件此命令读取配置文件不必重启服务

配置.com服务器
[root@comdns ~]# yum -y install bind #安装服务 [root@comdns ~]# vim /etc/named.conf#打开配置文件按照下方配置修改 #注释下面行 options #listen-on port 53127.0.0.1; ; #allow-querylocalhost; ; [root@comdns ~]# vim /etc/named.rfc1912.zones#最下方添加 zone "com" IN type master; file "com.zone"; ; [root@comdns ~]# cp -p /var/named/named.localhost /var/named/com.zone [root@comdns ~]# vim /var/named/com.zone $TTL 1D @IN SOAmaster rname.invalid. ( 0; serial 1D; refresh 1H; retry 1W; expire 3H ); minimum NSmaster testNStest1 testNStest2 masterA10.0.0.18 test1A10.0.0.7 test2A10.0.0.17 [root@comdns ~]# systemctl enable --now named#开启服务 [root@comdns ~]# rndc reload#若修改配置文件此命令读取配置文件不必重启服务

test.com主DNS服务器
[root@test.com ~]# yum -y install bind #安装服务 [root@test.com ~]# vim /etc/named.conf#打开配置文件按照下方配置修改 #注释下面行添加最后一行 options #listen-on port 53127.0.0.1; ; #allow-querylocalhost; ; allow-transfer10.0.0.17; ; #只允许从服务器同步数据库 [root@test.com ~]# vim /etc/named.rfc1912.zones#最下方添加 zone "test.com" IN type master; file "test.com.zone"; ; [root@test.com ~]# cp -p /var/named/named.localhost /var/named/test.com.zone [root@test.com ~]# vim /var/named/test.com.zone $TTL 1D @IN SOAmasterrname.invalid. ( 1; serial 1D; refresh 1H; retry 1W; expire 3H ); minimum NSmaster NSslave masterA10.0.0.7 slaveA10.0.0.17 wwwA10.0.0.100 [root@test.com ~]# systemctl enable --now named#开启服务 [root@test.com ~]# rndc reload#若修改配置文件此命令读取配置文件不必重启服务

test.com从DNS服务器
[root@test.com-slave ~]# yum -y install bind #安装服务 [root@test.com-slave ~]# vim /etc/named.conf#打开配置文件按照下方配置修改 #注释下面行添加最后一行 options #listen-on port 53127.0.0.1; ; #allow-querylocalhost; ; allow-transfernone; ; #从服务器不允许主机同步数据库 [root@test.com-slave ~]# vim /etc/named.rfc1912.zones#最下方添加 zone "test.com" IN type slave; masters10.0.0.7; ; file "slaves/test.com.salave"; ; [root@test.com-slave ~]# systemctl enable --now named#开启服务 [root@test.com-slave ~]# rndc reload#若修改配置文件此命令读取配置文件不必重启服务 [root@test.com-slave ~]# ls /var/named/slaves/#查看区域数据库是否形成 test.com.salave

转发目标服务器
[root@forward-dns ~]# yum -y install bind #安装服务 [root@forward-dns ~]# vim /etc/named.conf#打开配置文件按照下方配置修改 #注释下面行并修改 options #listen-on port 53127.0.0.1; ; #allow-querylocalhost; ; dnssec-enable no; #关闭DNS安全扩展 dnssec-validation no; #关闭DNS安全扩展[root@forward-dns ~]# vim /var/named/named.ca # 修改根配置文件 ; ; ANSWER SECTION: .518400INNSa.root-servers.net.; ; ADDITIONAL SECTION: a.root-servers.net. 518400INA10.0.0.8 [root@forward-dns ~]# systemctl enable --now named#开启服务 [root@forward-dns ~]# rndc reload#若修改配置文件此命令读取配置文件不必重启服务

本地缓存服务器
[root@local-dns ~]# yum -y install bind #安装服务 [root@local-dns ~]# vim /etc/named.conf#打开配置文件按照下方配置修改 #注释下面行 options #listen-on port 53127.0.0.1; ; #allow-querylocalhost; ; #修改下面行 dnssec-enable no; #关闭DNS安全扩展 dnssec-validation no; #关闭DNS安全扩展 #添加下面行 forwardonly; #设置全局转发first模式 forwarders10.0.0.28; ; #设置转发ip #first:先转发至指定DNS服务器,如果无法解析查询请求,则本服务器再去根服务器查询 #only: 先转发至指定DNS服务器,如果无法解析查询请求,则本服务器将不再去根服务器查询 [root@local-dns ~]# systemctl enable --now named#开启服务 [root@local-dns ~]# rndc reload#若修改配置文件此命令读取配置文件不必重启服务

测试建议在测试之前每台主机清除DNS缓存避免错误传递测试结果
root@client:~# systemd-resolve --flush-caches #centos默认没有启用缓存安装nscd包可以支持 [root@centos7 ~]#yum -y install nscd [root@centos7 ~]#systemctl enable --now nscd #查看缓存统计信息 [root@centos7 ~]#nscd -g #清除DNS客户端缓存 [root@centos7 ~]#nscd -i hosts

客户端配置
root@client:~# cat /etc/netplan/eth0.yaml network: ethernets: eth0: addresses: - 10.0.0.101/24 gateway4: 10.0.0.2 nameservers: addresses: - 10.0.0.27 version: 2 root@client:~# systemd-resolve --flush-caches root@client:~# dig www.test.com; < < > > DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.8 < < > > www.test.com ; ; global options: +cmd ; ; Got answer: ; ; -> > HEADER< < - opcode: QUERY, status: NOERROR, id: 9664 ; ; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3; ; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; ; QUESTION SECTION: ; www.test.com.INA; ; ANSWER SECTION: www.test.com.85078INA10.0.0.100; ; AUTHORITY SECTION: test.com.85078INNStest2.com. test.com.85078INNStest1.com.; ; ADDITIONAL SECTION: test1.com.85078INA10.0.0.7 test2.com.85078INA10.0.0.17; ; Query time: 0 msec ; ; SERVER: 10.0.0.27#53(10.0.0.27) ; ; WHEN: Sun Jan 02 07:16:10 CST 2022 ; ; MSG SIZErcvd: 129root@client:~#


    推荐阅读