环境:
两台主机,其中一台可上网,其余一台需要和这一台能够ping通
1、关于DNS的名词解释
dns : domain name service (域名解析服务)
host www.baidu.com #地址解析命令
dig www.baidu.com #地址详细解析信息命令
A记录 #ip地址叫做域名的Address记录
SOA #授权起始主机
dns*
.13
次级
.com .net .edu .org …
服务端
bind #安装包
named #服务名称
/etc/named.conf #主配置文件
/var/named #数据目录
端口 #53
报错信息
no servers could be reached #服务无法访问(服务开启?火墙?网络?端口?)
服务启动失败 #配置文件写错 journalctl -xe查询错误
dig查询状态
NOERROR #表示查询成功
REFUSED #服务拒绝访问
SERVFAIL #查询记录失败(DNS服务器无法到达上级,拒绝缓存)
NXDOMAIN #此域名A记录在dns中不存在
2、DNS服务的安装与启用
提供服务端(可以联网):
vim /etc/resolv.conf #DNS指向文件,使它的DNS也指向自己,以便于后期作为测试端进行测试
客户端:
nm-connection-editor #使它的DNS指向服务端
nmcli connection reload
nmcli connection down westos
nmcli connection up westos
服务端:
dnf install bind -y #在可以连接外网的主机中安装DNS服务
systemctl enable --now named #开启服务
systemctl enable --now firewalld
firewall-cmd --permanent --add-service=dns #使防火墙能通过DNS服务
firewall-cmd --reload
netstat -antlupe | grep named #查看dns服务端口,默认安装的DNS服务只开启了回环接口上的服务,除本机以外的主机无法使用
测试:
在客户端dig www.baidu.com连接不到
3、高速缓存DNS
服务端:
vim /etc/named.conf #编辑DNS配置文件
systemctl restart named #重启DNS服务
listen-on port 53 { any; }; #本机所有网络接口都开启53端口对外提供DNS服务
测试:
客户端dig www.baidu.com被拒绝
服务端:
vim /etc/named.conf
systemctl restart named
allow-query { any; }; #对所有主机提供解析服务
测试:
客户端dig www.baidu.com,此时可以得到IP但花费时间长,因为此时服务端的DNS主机中是没有网络地址解析数据所以解析时需要用到.com主机中获取资源
服务端:
vim /etc/named.conf
systemctl restart named
forwarders {114.114.114.114;}; #当前主机中所有数据获取渠道为114.114.114.114
测试:
客户端输入dig www.baidu.com,此时速度比上一次速度快一点
服务端:
vim /etc/named.conf
systemctl restart named
dnssec-validation no; #关闭DNS认证检测功能
测试:
客户端输入dig www.csdn.com,需要花费时间,但在服务端再次输入dig www.csdn.com只需0秒(因为通过查询DNS高速缓存器得到的答案),反之,服务端输入dig www.tianmao.com,需要花费时间,客户端再次输入dig www.tianmao.com也只需0秒
4、DNS的正向解析
服务端:
vim /etc/named.conf #编辑主配置文件
vim /etc/named.rfc1912.zones #编辑子配置文件
zone “westos.org” IN { #维护的域名
type master; #当前服务器位主dns
file “westos.org.zone”; #域名A记录文件
allow-update { none; }; #允许更新主机列表
};
cd /var/named/ #A记录解析文件存放目录
cp -p named.localhost westos.org.zone #named.localhost为A记录解析文件模板,生成A记录文件
vim westos.org.zone #此文件中所有不用"."字符结尾的字符串都会自动补齐@的值
$TTL 1D #缓存时长
@ #westos.org
NS #域名服务器名称
systemctl restart named #重启服务
测试:
客户端
dig westos.org #此时能观察到SOA(授权起始主机)为你所设置的域名服务器
dig www.baidu.com #此时可看到SERVER为你所设定的
规范域名转换
#使域名规范化
客户端:
vim westos.org.zone
systemctl restart named
服务端:
dig www.westos.org
mx邮件解析记录
服务端:
vim westos.org.zone
systemctl restart named
客户端:
dig -t MX westos.org
5、DNS反向解析
服务端:
vim /etc/named.rfc1912.zones
cp -p named.loopback 172.25.254.ptr #-p,复制权限
vim 172.25.254.ptr
systemctl restart named
客户端:
dig -x 172.25.254.13
6、DNS双向解析
服务端:
ip addr add 13.13.13.13/24 dev br0
vim /etc/resolv.conf #编辑DNS
ip addr show br0
cd /var/named/
cp -p westos.org.zone westos.org.inter
vim westos.org.inter #书写内部A记录解析
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inter
vim /etc/named.rfc1912.inter #把刚编辑好的A记录文件在子配置文件里定义
vim /etc/named.conf #编写主配置文件
systemctl restart named
dig www.westos.org #此时可以看到外部解析
客户端:
nm-connection-editor #将网段设置为另一网段,但与主机能ping通,DNS设置为服务端你刚添加的
nmcli connection reload
nmcli connection down westos
nmcli connection up westos
ping 13.13.13.13 #此主机能与服务端ping通
dig www.westos.org #此时可以看到内部解析
7、dns集群
主dns:
vim /etc/named.conf
systemctl restart named
dig www.westos.org
辅助端dns:
nm-connection-editor #使得辅助端和服务端同一网段
nmcli connection reload
nmcli connection down westos
nmcli connection up westos
vim /etc/resolv.conf #dns指向自己
dnf install bind -y #在辅助主机上安装DNS,并修改配置文件
vim /etc/named.conf
systemctl restart named
vim /etc/named.rfc1912.zones #指明type设置为slave,指明主dns服务器,同步的信息保存到哪儿
systemctl restart named
dig www.westos.org
systemctl disable --now firewalld
主dns:
vim westos.org.zone #更改dns信息
systemctl restart named
vim /etc/named.rfc1912.zones #在主dns中设定在更新时通知那些辅助dns主机
#当dns信息更新后主动通知辅助dns113主机
systemctl restart named
dig www.westos.org #服务端更改成功
辅助端dns:
dig www.westos.org #客户端也能看到更新
#NDS更改后一定要更改版本号才能实现辅助更新,而且必须增量的修改,版本号最多十位
搭建dhcp服务器
服务端:
dnf install dhcp-server -y
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
systemctl restart dhcpd
辅助端dns:
hostnamectl set-hostname linux.westos.org
cd /etc/sysconfig/network-scripts/
vim ifcfg-westos
nmcli connection reload
nmcli connection down westos
nmcli connection up westos
ifconfig
dig linux.westos.org
#当客户主机是dhcp的工作模式,解析会因为获得地址的不同而出现错误
dnssec-keygen -a HMAC-SHA256 -b 128 -n host westos
cat Kwestos.+163+53014.key
vim /etc/dhcp/dhcpd.conf #给dhcp服务添加更新key,指定dhcp用key去更新那个dns主机的那个域
systemctl restart dhcpd
vim /etc/named.conf #给dns添加key
vim /etc/named.rfc1912.zones #westos.org的域支持key westos的更新
systemctl restart named
vim /var/named/westos.org.zone #添加linux服务指向
systemctl restart named
辅助端dns:
dig linux.westos.org #客户端地址解析
主dns:
vim /var/named/westos.org.zone
systemctl restart named #更改linux服务指向
辅助端dns:
dig linux.westos.org #此时发现客户端未曾更改地址解析
主dns:
vim /etc/dhcp/dhcpd.conf #dhcp添加网络更新dns功能
systemctl restart dhcpd
辅助端dns:
dig linux.westos.org #此时可以看到客户端也随着更新