14-域名解析DNS 自我总结
接上一部分 14-域名解析DNS 自我总结_linux 查看dns-CSDN博客
1.DNS自解析
1.在DNS SERVER 上实域名解析
vim /etc/bind/named.conf.default-zones
......

复制内容再进行相应的修改

设置具体解析规则

修改权限,修改属主属组
chmod 644 /etc/bind/db.baidu.com
chown root:root /etc/bind/db.baidu.com
语法检查
named-checkzone baidu.com /etc/bind/db.baidu.com
重载生效
rndc reload
2.后端web(10.0.0.13)
apt update;apt install -y nginx #部署nginx
echo "this page from 10.0.0.13" > /var/www/html/index.html #更改首页内容
curl127.1 #测试页面内容
3.客户端主机测试(10.0.0.12)
修改客户端主机的 DNS 服务器地址
vim /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 10.0.0.13
测试结果如下(第二个是泛域名解析):
4.DNS自解析脚本实现
#!/bin/bash# 提示用户输入相关信息
read -p "请输入DNS客户端IP(如10.0.0.12): " dns_client_ip
read -p "请输入DNS服务器IP(如10.0.0.13): " dns_server_ip
read -p "请输入要解析的域名(如baidu.com): " domain_name
read -p "请输入WEB服务对应的解析IP(这里同DNS服务器IP): " web_resolve_ip
read -p "请输入泛域名的ip,同一网段不与dns服务器或web服务的ip相同: " web_broad_ip# BIND主配置文件路径,Ubuntu下默认,其他系统如CentOS可能是/etc/named.conf等,需调整
named_conf_path="/etc/bind/named.conf.default-zones"
# 正向解析区域文件路径 /etc/bind/db.baidu.com 自己创建
zone_file_path="/etc/bind/db.${domain_name}"# 添加正向解析区域到named.conf.default-zones
cat << EOF >> ${named_conf_path}
zone "${domain_name}" {type master;file "${zone_file_path}";
};
EOF# 创建正向解析区域文件并写入内容
cat << EOF > ${zone_file_path}
\$TTL 86400
@ IN SOA ${dns_server_ip}. admin.${domain_name}. (2025061301 ; Serial3600 ; Refresh1800 ; Retry604800 ; Expire86400 ) ; Minimum TTL
@ IN NS dns1
dns1 IN A ${web_resolve_ip}
www IN A ${web_resolve_ip}
* IN A ${web_broad_ip}
EOF# 调整区域文件权限,让BIND可以读取
chown root:root ${zone_file_path}
chmod 640 ${zone_file_path}# 重启BIND服务使配置生效
rndc reload
echo "DNS 自解析配置完成!"
echo "接下来在客户端("$dns_client_ip",Rocky9系统)配置DNS:"
echo "编辑 /etc/resolv.conf 文件,添加或修改 nameserver 为 ${dns_server_ip}"
echo "之后就可以通过解析的域名(如 ${domain_name}、www.${domain_name} )访问WEB服务啦"
2.DNS主从复制
前提条件和要求
1.主DNS服务器配置(10.0.0.13)
(1) vim /etc/bind/named.conf.default-zones (增加下面的内容)
zone "baidu.com" {type master;file "/etc/bind/db.baidu.com";allow-transfer { 10.0.0.15; };allow-update { none; };
};
(2) vim /etc/bind/db.baidu.com
;
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA baidu-dns. admin.baidu.com. (81 ; Serial604800 ; Refresh86400 ; Retry2419200 ; Expire604800 ) ; Negative Cache TTL
;
@ IN NS dns1NS dns2
dns1 IN A 10.0.0.13
dns2 IN A 10.0.0.15
www IN A 10.0.0.18
rndc reload #重载配置 此命令只能用在ubuntu
2.从DNS服务器配置(10.0.0.15)
mkdir -p /var/named/slaves #创建目录

(1) vim /etc/named.rfc1912.zones (增加下面的内容)
zone "baidu.com" IN {type slave;masters {10.0.0.13;};file "slaves/db.baidu.com";
};
(2) vim /etc/named.conf
...
listen-on port 53 { 10.0.0.15; }; # 开放本地IP地址入口
allow-query { any; }; # 允许其他主机正常访问
...
systemctl restart named 重启服务
检测效果:
解析文件己经同步了 ll /var/named/slaves/

且该文件是个数据文件 file /var/named/slaves/db.baidu.com

3.web服务器配置(10.0.0.18)
yum install nginx -y #安装软件
echo 'myself nginx web' > /usr/share/nginx/html/index.html #定制首页
systemctl start nginx #启动服务
curl localhost #测试效果
4.客户机测试(10.0.0.12)
vim /etc/resolv.conf # 修改客户端的配置
# Generated by NetworkManager
search www.baidu.com
nameserver 10.0.0.15 # 定制备用DNS服务器地址
查看域名默认的DNS host www.baidu.com
测试主从DNS地址的分别解析效果 得出来结果和预期的不一样(大家有发现哪里有错误吗)
5.异常测试
vim /etc/resolv.conf 修改客户端(10.0.0.12)的配置 填写下面的内容配置
# Generated by NetworkManager
nameserver 10.0.0.13 # 定制主DNS服务器地址
nameserver 10.0.0.15 # 定制从DNS服务器地址
rndc stop #关闭 主DNS(10.0.0.13)上的服务
nslookup www.magedu.com 10.0.0.13 # 客户端(10.0.0.12)主机检查效果
nslookup www.magedu.com 10.0.0.13 # 客户端(10.0.0.12)主机检查效果

DNS Master 异常的情况下, SLAVE 节点 还能提供正常的dns域名解析功能

3.主从同步数据实践
systemctl start named #主服务器(10.0.0.13)启动服务
vim /etc/bind/db.baidu.com #在主 DNS 增加一条 db 解析记录 红框圈起来的,以及更改serial。

rndc reload #重启服务
测试效果 得出结论:主从更改时间相同,DNS同步成功
ll /etc/bind/db.baidu.com #主DNS进行查看
ll /etc/bind/db.baidu.com #主DNS进行查看
ls -lh /var/named/slaves/ #从DNS进行查看
(1)测试TCP端口异常效果
iptables -A INPUT -p tcp --dport 53 -j REJECT # 在主DNS 和 从DNS 上禁用 TCP53
iptables - vnL #查看防火墙规则
iptables - vnL #查看防火墙规则
vim /etc/bind/db.baidu.com #主DNS增加nene(10.0.0.200 )解析记录 并修改serial号
rndc reload # 重载 dns 服务配置
同理检测得出来 禁用了 tcp 的 53 端口,从 DNS 上不会同步数据
异常恢复
iptables -F #主从DNS操作此命令来 取消防火墙策略
从 dns没有同步,不过主 dns 修改 dns 解析记录后,更改一下序列号 ,就又实现数据同步操作了
(2)强制同步数据
从节点DNS操作的命令
rm -f /var/named/slaves/db.baidu.com #删除 从 dns 服务器删除旧数据
systemctl restart named #重启服务后,ls -lh /var/named/slaves/发现数据又回来了
systemctl restart named #重启服务后,ls -lh /var/named/slaves/发现数据又回来了