实验环境的搭建
在做此实验时需要保证 linux 系统中真实主机的超级用户可以联网;两台虚拟机的 ip 设定为和真实主机之间可以通信的网段。
1. dns 的名词解释
dns:domin name service (域名解析服务)
- 关于客户端:
/etc/resolv.conf ##dns指向文件
nameserver 192.168.122.1
测试:
host www.baidu.com ##地址解析命令
dig www.baidu.com ##地址详细解析信息命令
A记录 ##ip地址叫做域名的Address 记录
SOA ##授权起始主机
dns顶级 .
次级有13个 .com .net .edu .org …
无数多个域名 baidu.com
- 关于服务端
bind ##安装包
named ##服务名称
/etc/named.conf ##主配置文件
/var/named ##数据目录
端口 ##53
- 关于报错信息:
1.no servers could be reached ##服务无法访问(服务是否开启、火墙策略是否设定、网络是否能通信、服务端口是否设定完成)
2.服务启动失败 ##配置文件写错,输入命令 journalctl -xe 查询错误信息;
3.dig 查询状态
NOERROR ##表示查询成功
REFUSED ##服务拒绝访问
SERVFAIL ##查询记录失败,(dns服务器无法到达上级,拒绝缓存)
NXDOMAIN ##此域名A记录在dns中不存在
2. dns 服务的安装与启用
-
安装
输入命令 dnf install bind.x86_64 -y 来安装 dns 服务 -
启用
输入命令 systemctl enable --now named,开启服务;
输入命令 firewall-cmd --permanent --add-service=dns ,设置火墙策略;
输入命令 firewall-cmd --reload ,重新加载火墙策略。
编辑 dns 服务的主配置文件 vim /etc/named.conf;内容为如下:
11 listen-on port 53 { any; }; ##在本地所有网络接口上开启53端口
19 allow-query { any; }; ##允许查询A记录的客户端列表
34 dnssec-validation no; ##禁用dns检测使dns能够缓存外部信息到本机
完成配置文件的更改之后,输入命令 systemctl restart named 即可完成 dns 服务的启用。
3. 高速缓存 dns
当我们在访问任何一个域名时,都会有一定的解析时间;在企业中有很多主机时,每一台主机访问相同的域名时,都会耗费一定的时间;为了节省访问的时间,在企业中需要搭建一个高速缓存 dns 主机。
当服务端主机已经安装完成 dns 服务,但是在客户端主机中并不能成功访问,如图所示的报错;设定完成之后,其他主机还是不能访问,因为默认安装的 dns 服务只开启了回环接口上的服务段口,除本机以外的主机是无法使用的;
在服务端主机中输入命令 vim /etc/named.conf,编辑配置文件如图所示,表示本机所有网络接口开启 53 端口对外提供 dns 服务;然后输入命令 systemctl restart named 重启服务;
开启端口之后,此时客户端主机再次访问时会有如下所示的报错信息出现,此时报错为 REFUSED ,表示服务被拒绝; 因为虽然开了端口,但是还只是对本机提供解析服务;
在服务端主机中输入命令 vim /etc/named.conf,编辑配置文件如图所示,允许所有主机查询 A 记录的客户端列表,为所有主机提供解析服务;然后输入命令 systemctl restart named 重启服务;
允许所有主机查询 A 记录的客户端列表之后,此时在客户机主机中还是不能访问,报错信息如图所示,SERVFAIL 表示查询记录失败,(dns服务器无法到达上级,拒绝缓存),并且速度非常满;原因是当前 dns 主机中没有网络地址解析数据,所以当做解析时需要到 .com 中去找;
在服务端主机中输入命令 vim /etc/named.conf,编辑配置文件如图所示,修改查找的位置为 114.114.114.114,设定指定提供解析的地址,避免访问国外服务器,导致速度慢的问题;然后输入命令 systemctl restart named 重启服务;
设定完以上之后,此时在客户机主机中虽然可以访问,但是访问域名的速度还是会非常慢;因为当前的 dns 是没有经过备案的,需要关闭 dns 自检;
在服务端主机中输入命令 vim /etc/named.conf,编辑配置文件如图所示,禁用 dns 检测使dns能够缓存外部信息到本机,加速 dns 的速度 ;然后输入命令 systemctl restart named 重启服务;
完成以上操作之后,此时高速缓存 dns 服务器就已经搭建完成,当企业中的一台主机访问过一个网址之后,其他的主机在访问时便会从搭建 dns 服务器的主机中获得数据,会大大节省时间。
4. dns 的正向解析
在做该实验时,为了更好的观察实验效果,将文件 /etc/named.conf 中如图所示的行注释掉。
在当前主机中编辑 /etc/named.rfc1912.zones 文件如图所示,其中第 29 行 westos.org 表示要维护的域名;第 30 行 type master 表示 dns 为主 dns;第 31 行 westos.org.zone 表示 A 记录解析文件;第 32 行允许更新主机列表;
在 A 记录解析文件存放目录 /var/named/ 中,输入命令 cp -p named.localhost westos.org.zone ##生成 A 记录文件,-p 表示复制权限;
将 A 记录解析文件模板复制成在配置文件 /etc/named.rfc1912.zones 中写入的 A 记录解析文件的名称;
然后编辑复制的 A 记录解析文件,此文件中所有不用 “.” 结尾的字符串会自动补齐@处的值;
$TTL 1D ##缓存时长
@ IN SOA dns.westos.org. root.westos.org. ( #SOA授权起始(Start of Authority)
0 ; serial #域名版本序列号
1D ; refresh #刷新时间(辅助dns)
1H ; retry #重试时间(辅助dns)
1W ; expire #过期时间(辅助dns,查询失败过期停止对辅助域名的应答)
3H ) ; minimum #A记录最短有效期
NS dns.westos.org. #域名服务器的名称
dns A 192.168.122.1 #提供域名解析的 IP
www A 192.168.122.20
编辑完成之后输入命令 systemctl restart named 重启服务,当两个文件中的任何文件内容编写的有问题时,重启服务时会报错;报错信息可以用命令 journalctl -xe 来查看;也可以输入命令 > /var/log/messages 清空日志;再重启服务查看日志的问题;
如图当在当解析 www.westos.org 时,可以看到该域名的 IP 为 192.168.122.20 ;体共分解析服务的是 192.168.122.1 ;当本机负责的域名时候就在当前主机中提供解析;
以上是在访问当前维护的域,当访问本机不维护的域时就会从别处找。
通过对 A 记录解析文件的更改,来规范域名的转换;编辑文件如图所示,CNAME 为规范域名转换;
配置文件更改之后,重启服务;
输入命令 dig www.westos.org 来查询正向解析,此时在解析时如图所示:
当输入命令 dig -t mx westos.org 来查询邮件解析记录时,如下图所示维护的域中可以看到邮件信息,维护的域中并没有邮件信息;
通过对 A 记录解析文件的更改,如图所示,其中倒数第二行为邮件解析记录,最后一行为邮件 A 记录地址;
编辑完成之后,此时重启服务;
当输入命令 dig -t mx westos.org 来查询邮件解析记录时,如下图所示,可以看到当前维护域的邮件信息。
5. dns 的反向解析
在上面的操作中,在输入域名时,通过对于配置文件的更改,来提供解析服务属于 dns 的正向解析;那么当我们在输入 IP 时,将 IP 解析为域名的过程就是 dns 的反向解析。
地址解析为域名:域名叫 IP 的 ptr 记录,IP 叫域名的 A 记录;
编辑配置 ptr 记录文件 /etc/named.rfc1912.zones ,写入反向解析语句块;第 53 行写入维护的 IP ,此处的书写要反向写入;第 54 行表示 dns 为主 dns;第 55 行 192.168.122.ptr 表示 ptr 记录解析文件;第 56 行表示允许更新主机列表;
在 A 记录解析文件存放目录 /var/named/ 中,输入命令 cp -p named.localhost 192.168.122.ptr 生成 ptr 记录文件,-p 表示复制权限;
编辑复制的 ptr 记录文件,内容如图所示;写入 PTR 记录;
编辑完配置子文件之后,输入命令 systemctl restart named 重启服务;
此时在访问维护的 IP 时,输入命令 dig -x 192.168.122.1 ,将地址解析为域名时可以看到 IP 的 PTR 记录。
6. dns 的双向解析
以上是基于同一个网段的解析配置,在企业中会面临内网和外网之间的差异性;基于此就需要对 dns 做双向解析。
实验环境:
- 在服务端,设置当前主机为双网段的主机,一个网段为内网 IP 172.25.254.1,另一个为外网 IP 192.168.122.1;
- 在客户端,一台和内网 IP 在一个网段,另一台和外网 IP 在一个网段;
外网 IP 为 192.168.122.100 ,编辑 /etc/resolv.conf 文件,写入 nameserver 192.168.122.1 ;
内网 IP 为 172.25.254.200 ,编辑 /etc/resolv.conf 文件,写入 nameserver 172.25.254.1 ,如图所示:
dns 双向解析配置:
在服务端,将 /var/named/ 中的文件 westos.com.zone 复制为 westos.com.inter 内网解析文件;并编辑内网解析文件如下图所示:
将该服务的配置文件 /etc/named.rfc1912.zones 复制为 /etc/named.rfc1912.zones.inter ;
在复制好的文件 /etc/named.rfc1912.zones.inter 中,更改第 31 内容如下图所示的内容,其中第 29 行 westos.org 表示要维护的域名;第 30 行 type master 表示 dns 为主 dns;第 31 行 westos.org.inter 表示 A 记录解析文件;第 32 行允许更新主机列表;
然后编辑主配置文件 /etc/named.conf 中的内容如下图所示,表示为不同网段主机 dns 解析不一样;内网主机对应的是 /etc/named.rfc1912.zones.inter ;外网主机对应的 /etc/named.rfc1912.zones ;
注:
以上只是对于内网主机的解析做了设置,在前面已经为其他主机做过设置。
完成以上设置之后,输入 systemctl restart named 重启服务;
此时在外网主机中输入 dig www.westos.org 时,可以看到提供解析的 192.168.122.1 ;对应的也是 /etc/named.rfc1912.zones 中的内容;
此时在内网主机中输入 dig www.westos.org 时,可以看到提供解析的 172.25.254.1 ;对应的也是 /etc/named.rfc1912.zones.inter 中的内容。
7. dns 集群和更新
在大型企业中,往往会有更多的主机;当很多人同时访问不通的网站时,此时就可能出现拥堵甚至停机的现象,那么可以用 dns 集群的方式来缓解这种情况。
实验环境:
为了更好的观察下面的实验,将主配置 /etc/named.conf 文件更改为如图所示的样子;避免双向解析对接下来的实验有影响;
然后输入命令重启服务;
此处将内网网段更改为和外网一样的网段,来检测 dns 集群的设定是否成功。
- 辅助 dns主 机,在该台主机上装 dns
输入命令 dnf install bind -y 安装 named 服务;
输入命令 systemctl enbale --now named 开启 dns 服务;
输入命令 firewall-cmd --permanent --add-service=dns ,在火墙策略中写入 dns 服务;
输入命令 firewall-cmd --reload 重新加载火墙;
在安装好服务设定好火墙之后,就要对辅助 dns 的配置文件进行更改;和主 dns 中的设置一样,开启 53 端口,允许所有用户登录,禁用 dns 检测使dns能够缓存外部信息到本机;如图所示:
更改完主配置文件之后,需要更改 /etc/named.rfc1912.zone 文件,更改内容如图所示,其中第 29 行 westos.org 表示要维护的域名;第 30 行 type slave 表示 dns 为辅助 dns;第 31 行 192.168.122.1 表示主 dns ;第 32 行 slaves/westos.org.zone 表示 A 记录同步数据文件;第 33 行允许更新主机列表;
第 32 中的 slaves 是一个目录,可以看到该目录的权限;
当两个配置文件更改之后,输入命令 systemctl restart named ,重启服务;
编辑 /etc/resolv.conf 文件内入为 nameserver 192.168.122.100 ;
然后输入 dig www.westos.org 来测试辅助 dns 是否已经生效,如图所示,说明辅助 dns 搭建成功。
- 主 dns:
如果此时主 dns 不做更改,是基于前面的设置;此时当主 dns 的信息有更改时,辅助 dns 是没有办法获得到更改信息的;虽然可以先删除 /var/named/slaves/* 中的所有文件,然后在输入 systemctl restart named 重启服务,获得更改后的信息;
此法方法虽然可行,但是比较麻烦,主机比较少的时候还可以,主机多的时候就很麻烦。
那么就需要对主配置文件的修改,来让辅助 dns 自动识别;
编辑配置文件内容如图所示,第 33 行表示主动通知的辅助 dns 100主机;
然后更改 /var/named/westos.com.zone dns A 记录解析文件内荣如图所示,然后重启服务;
此时在辅助 dns 中还是不能看到更改之后的信息;因为每次修改 A 记录文件之后都需要更改版本号,不然不会更新信息;
此时将之前的 0 修改为 1 ;版本号只能增量不能缩减,最多十位。修改的时候,可以按照时间去修改。
当更改完版本号之后,重启服务,然后在辅助 dns 主机中输入 dig www.westos.org 时可以看到更新后的 A 记录内容。
8. 动态域名解析(dhcp+dns)
在 dns 主机中安装 dhcp ;当客户主机时 dhcp 的工作模式时,解析会因为获得地址的不同而出现错误。
输入命令 dnf instsall dhcp-server -y 安装 dhcp 服务;
输入命令 cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcpd/dhcpd.conf,将模板文件复制为 /etc/dhcpd/dhcpd.conf 配置文件;
然后编辑配置文件 /etc/dhcpd/dhcpd.conf ,来设定 IP 的范围。
设定 kkk 主机的工作模式为动态网络工作模式,如图所示,当重启网络时,便会获得一个 IP ;
此时将其解析写入 A 记录文件中,在测试时输入 dig kkk.westos.org 时,可以解析到写入 A 记录中的内容;
此时更改 dhcp 服务提供 IP 的范围;
当获得新的 IP 时,此时在输入 dig kkk.westos.org 时,可以解析到写入 A 记录中的内容和之前一样,显然是不正确的,因为当前的 IP 已经不再是写入 A 记录文件中的 IP 。
dns 的 key 更新
以上对于 dns 的解析,都是基于静态网络工作模式下的更新,当工作模式为动态时,对于 A 记录文件中写入内容的方式便不在妥当,因为当重启网络之后,获得的 IP 并不一定是之前写入 A 记录文件中的内容。
在 dhcp 服务主机中,编辑 dhcp 服务的配置文件/etc/dhcpd/dhcpd.conf ,在第 14 行,去掉之前的注释,将 none 改为 interim 表示 dhcp 开启网络更新 dns 的功能;
输入命令 dnssec-keygen -a HMAC-SHA256 -b 128 -n host westos ,表示设定 dns 的密码,-a 表示采用 hmac-256 加密方式,-b 表示密码长度为 128 位,-n 表示解析,密码为 westos ;可以看到生成一个公钥和一个私钥;
1) dhcp更新
在 dhcp 服务的配置文件中写入如图所示的内容;第 33-36 行表示给 dhcp 服务添加更新 key;第 37-40 行表示指定 dhcp 用 key 去更新那个 dns 主机的那个域名。第38行表示当 dhcp 和当前的 dns 在一个主机时,用回环接口去更新;当不在一个主机时就需要用 dns 主机的 IP 去更新。
2) dns更新
在 dns 的配置文件 /etc/named.conf 中写入如图所示的内容,表示给 dns 添加 key ;
在 /etc/named.rfc1912.zone 中写入如下图所示的内容,第 32 行表示 westos.org 这个域支持 key westos 的更新;
此时 /etc/named/westos.oeg.zone 的内容如图所示,应该去掉之前在该文件中写入的域名解析;
然后输入命令 systemctl restart named 重启 dns ;输入命令 systemctl restart dhcpd 重启 dhcp 服务;当重启没有报错时,说明语法正确。
3) 测试:
此时在更改 dhcp 配置文件,更改提供 IP 的范围;然后重启 dhcp 服务;
在服务端重启网络获得新的 IP ;
输入 dig kkk.westos.org 来查看解析信息;可以看到新获得 IP 已经成功写入 dns 的 A 级记录文件中,说明动态域名解析设定成功。
转载:https://blog.csdn.net/weixin_54720351/article/details/115407178