架构介绍:
DNS主从模式:保障DNS主从服务器DNS数据一致
Keepalived:保障DNS服务高可用,防止单点故障
环境:
DNS主服务器:192.168.223.143 (master)
DNS从服务器:192.168.223.142 (backup)
虚拟IP(VIP):192.168.223.150 (漂移IP)
实施过程:
关闭防火墙
systemctl stop firewalld.service
关闭安全机制
setenforce 0
1. 主从两台服务器都安装DNS相关安装包
yum -y install bind*
2. 主从两台服务器修改/etc/named.conf配置文件
只修改
listen-on port 53 { any; };
allow-query { any; };
vim /etc/named.conf options { listen-on port 53 { any; }; #定义监听端口及IP listen-on-v6 port 53 { ::1; }; #定义监听IPV6的地址 directory "/var/named"; #全局目录 dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; #允许查询的IP地址 recursion yes; #允许递归查询
3. 在主DNS服务器配置文件/etc/named.rfc1912.zones添加解析配置
vim /etc/named.rfc1912.zones #正向解析 zone "dnstest.com.cn" IN { type master; #DNS 主 file "dnstest.com.cn.zone"; #使用那个区域解析文件 allow-update { 192.168.223.142; }; #允许更新区域信息的主机地址 also-notify { 192.168.223.142; }; #主动通知从DNS进行更新 check-names ignore; #域节点名检测比较严苛,例如带下划线的会检测不过,这时候就需要配置此参数 }; #反向解析 zone "1.168.192.in-addr.arpa" IN { type master; file "1.168.192.zone"; allow-update { 192.168.223.142; }; also-notify { 192.168.223.142; }; check-names ignore; #DNS转发 zone "baidu.com" IN { type forward; forward only; forwarders { 8.8.8.8; };
4. 编写正向解析配置文件dnstest.com.cn.zone
vim /var/named/dnstest.com.cn.zone $TTL 1D #定义宏,通用变量,单位为秒(S)、小时(H),天数(D) @ IN SOA ns1.dnstest.com.cn. root.dnstest.com.cn. ( #此处一般是写NS域名,邮件域名,或root. 2017071111 #序列号。这个参数很重要,要特别注意!!当主DNS修改解析文件时,必须要修改这个序列号,然后重启named服务后,从DNS才能正常同步过去!! 2H #刷新时间 10M #失败重试时间 7D #过期时间 1D ) #否定答案时间 @ IN NS ns1.dnstest.com.cn. @ IN NS ns2.dnstest.com.cn. #注意域名后面的.不能忘掉! ns1 IN A 192.168.223.1 ns2 IN A 192.168.223.2 www IN A 192.168.223.3 #由于已经定义了根域名是wangshibo.cn,所以这里可以直接写域名前面的名称,也可以全部写出来。比如www或者写成www.wangshibo.cn. nginx-web01 IN A 192.168.223.4 #如果写域名前的名称,就不需要带.符号,但如果是写域名全称,则需要带.符号,如nginx-web01.dnstest.com.cn. nginx-web02 IN A 192.168.223.5 athena-web02 IN A 192.168.233.6
5. 编写反向解析/var/named/1.168.192.zone
$TTL 1D @ IN SOA ns1.dnstest.com.cn. root.dnstest.com.cn. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns1.dnstest.com.cn. 2 PTR ns2 .dnstest.com.cn. 3 PTR www .dnstest.com.cn. ~
6. 检查zone配置文件
named-checkzone ns1 /var/named/dnstest.com.cn.zone
7. 重启主DNS服务
systemctl restart named
8. 从dns服务器添加数据配置文件
vi /etc/named.rfc1912.zones #正向解析 zone "dnstest.com.cn" IN { type slave; file "slaves/dnstest.com.cn.zone"; allow-update { 192.168.223.143; }; also-notify { 192.168.223.143; }; check-names ignore; }; #反向解析 zone "1.168.192.in-addr.arpa" IN { type slave; file "slaves/1.168.192.zone"; allow-update { 192.168.223.143; }; also-notify { 192.168.223.143; }; check-names ignore; #DNS转发 zone "baidu.com" IN { type forward; forward only; forwarders { 8.8.8.8; };
9. 重启从DNS服务
systemctl restart named
10. 配置keepalived
两台主机同时安装keepalived
yum -y install keepalived
11. 节点1(master)配置
#备份配置文件 cp /etc/keepalived/keepalived.conf /mnt/ #编辑配置文件: vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { #全局配置 router_id lb01 #路由id号,不能重复 } vrrp_instance VI_1 { #定义一个实例 state MASTER #态参数 master/backup 只是说明,具体根据优先级 interface ens33 #虚IP地址放置的网卡位置 virtual_router_id 51 #同一个集群id一致 priority 100 #优先级决定是主还是备 越大越优先 advert_int 1 #主备通讯时间间隔 authentication { auth_type PASS #认证方式,集群中要一致 auth_pass y6@1wLy } virtual_ipaddress { 192.168.223.150 #使用的虚拟ip,要和网段内ip不冲突 } }
12. 节点2 (backup)配置
#备份配置文件 cp /etc/keepalived/keepalived.conf /mnt/ #编辑配置文件 vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { router_id lb02 #更改 } vrrp_instance VI_1 { state BACKUP #作为备份 interface ens33 virtual_router_id 51 priority 50 #优先级调小 advert_int 1 authentication { auth_type PASS #认证方式,集群中要一致 auth_pass y6@1wLy } virtual_ipaddress { 192.168.223.150 #使用的虚拟ip,要和网段内ip不冲突 } }
13. 启动keepalive
systemctl start keepalived.service
14.验证
把本地winds的DNS改为192.168.223.150
cmd 进入命令控制台nslookup ns1.dnstest.com.cn
返回结果为:192.168.223.1
DNS主从模式加keepalived
最新推荐文章于 2024-06-04 11:40:53 发布