DNS服务管理企业级实战模拟
1、配置正反解析
2、配置从属关系
目录
一、命令行配置
1、准备
2、修改配置文件
1、修改主配置
2、修改辅助配置文件
3、正向解析
1、将反向解析也注释掉
2、生成正向解析文件
3、编辑文件
4、运行DNS服务
5、修改DNS配置
6、查看结果
4、反向解析
1、生成反向解析文件
2、配置反向解析文件
3、运行DNS服务
4、查看结果
5、从属配置
1、主配置
vim /etc/named.rfc1912.zones
2、从配置(另台主机)
vim /etc/named.conf
vim /etc/named.rfc1912.zones
重启服务
3、测试
1、修改测试的DNS
2、将主的服务给关闭
3、使用测试机测试
二、使用脚本配置
1、正反解析
DNS部署脚本
运行结果
要修改测试机的DNS,进行测试,结果
2、主从配置
从配置文件
配置结果
暂停主的DNS功能
测试结果
一、命令行配置
1、准备
下载bind 服务
关闭其他设置
2、修改配置文件
1、修改主配置
vim /etc/named.conf
2、修改辅助配置文件
vim /etc/named.rfc1912.zones
3、正向解析
1、将反向解析也注释掉
vim /etc/named.rfc1912.zones
2、生成正向解析文件
在 /var/named/ 中 将named.empty 模板文件复制并保留属主属组
3、编辑文件
vim wezzer.com.zones
4、运行DNS服务
5、修改DNS配置
vim /etc/resolv.conf
6、查看结果
使用另一台同一网段的主机
正向解析正确,反向解析(因为被注释,所以解析不了)
4、反向解析
vim /etc/named.rfc1912.zones 取消注释
1、生成反向解析文件
在 /var/named/ 中 将named.empty 模板文件复制并保留属主属组
2、配置反向解析文件
vim 192.168.11.zones
3、运行DNS服务
4、查看结果
使用另一台主机进行访问
正反解析均正确
5、从属配置
1、主配置
vim /etc/named.rfc1912.zones
2、从配置(另台主机)
vim /etc/named.conf
vim /etc/named.rfc1912.zones
重启服务
会生成相应的配置文件
3、测试
1、修改测试的DNS
2、将主的服务给关闭
3、使用测试机测试
结果成功
二、使用脚本配置
1、正反解析
DNS部署脚本
#!/bin/bash# 检测是否安装服务
fun1(){rpm -q bind >/dev/null
if ! [ $? -eq 0 ];thenecho "未安装bind,正在启动安装" >&2yum install -y bind
fi
}#关闭其他服务systemctl disable --now firewalld >/dev/nullsetenforce 0 >/dev/nulliptables -F >/dev/null#获取要配置的IP区域fun1
read -p "请输入要设置为域的IP:" ip_n
while true;do
#检测是不是可用ipa=$(echo $ip_n | awk -F "." '!(NF==4 && $1>0 && $1<255 && $2>0 && $2<255 && $3>0 && $3<255 &&$4>0 && $4<255){print "无效ip"}')if ! [[ -z "$a" ]];thenecho "无效ip,请重新输入" >&2continueelsebreakfidone
#将设置写入配置文件中 sed -i "s/allow-query { localhost; };/allow-query { any; };/g" /etc/named.confsed -i "s/listen-on port 53 { \([0-9.]\+\); };/listen-on port 53 { $ip_n; };/g" /etc/named.confecho "配置文件/etc/named.conf设置成功" >&2#将IP拆分,方便写入配置文件中ip_a=$(echo "$ip_n"| awk -F"." '{print $1}')ip_b=$(echo "$ip_n"| awk -F"." '{print $2}')ip_c=$(echo "$ip_n"| awk -F"." '{print $3}')ip_d=$(echo "$ip_n" | awk -F"." '{print $4}')#获取配置的域名服务器名称read -p "请输入设置的域名服务器名称:" dns
#将DNS拆分,方便写入配置文件中dns_a=$(echo "$name"| awk -F"." '{print $1}')dns_b=$(echo "$name"| awk -F"." '{print $2}')dns_c=$(echo "$name"| awk -F"." '{print $3}')
#将获得的配置写入文件中
echo -e "zone \""$dns_b"."$dns_c".\" IN {type master;file \""$dns_b"."$dns_c".zones\";allow-update { none; };
};
zone \""$ip_c"."$ip_b"."$ip_a".in-addr.arpa\" IN {type master;file \""$ip_a"."$ip_b"."$ip_c".zones\";allow-update { none; };
};" > /etc/named.rfc1912.zonesecho "配置文件/etc/named.rfc1912.zones 设置成功" >&2
#将模板复制,生成正向与反向解析文件cp -p /var/named/named.empty /var/named/"$ip_a"."$ip_b"."$ip_c".zonescp -p /var/named/named.empty /var/named/"$dns_b"."$dns_c".zones#获取域名称别名read -p "请输入域别名名称:" namename_a=$(echo "$dns"| awk -F"." '{print $1}')name_b=$(echo "$dns"| awk -F"." '{print $2}')name_c=$(echo "$dns"| awk -F"." '{print $3}')#获取邮箱ipread -p "请输入邮箱ip地址:" ip_m
while true;do
#检测ip是否可用b=$(echo $ip_m | awk -F "." '!(NF==4 && $1>0 && $1<255 && $2>0 && $2<255 && $3>0 && $3<255 &&$4>0 && $4<255){print "无效ip"}')if ! [[ -z "$b" ]];thenecho "无效ip,请重新输入" >&2continueelsebreakfi
doneip_e=$(echo "$ip_m"| awk -F"." '{print $1}')ip_f=$(echo "$ip_m"| awk -F"." '{print $2}')ip_g=$(echo "$ip_m"| awk -F"." '{print $3}')ip_h=$(echo "$ip_m"| awk -F"." '{print $4}')echo "邮箱为:mail."$dns_b".com"echo "其ip地址为:$ip_m"
#将结果写入正向解析文件
echo -e "\$TTL 3H
@ IN SOA "$dns_b"."$dns_c". mail."$dns_b".com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimum
@\tNS\t"$dns".
"$dns_a"\tA\t"$ip_n"
"$name_a"\tCNAME\t"$dns".
mail\tA\t"$ip_m"
mail\tMX 10\tmail."$dns_b".com." > /var/named/"$dns_b"."$dns_c".zonesecho "正向解析文件/var/named/"$dns_b"."$dns_c".zones ,已生成" >&2
#将结果写入反向解析文件
echo -e "\$TTL 3H
@ IN SOA "$dns_b"."$dns_c". mail."$dns_b".com. (0 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimum
@\tNS\t"$dns".
"$ip_d"\tPTR\t"$dns".
"$ip_d"\tPTR\t"$name".
"$ip_h"\tPTR\tmail."$dns_b".com."> /var/named/"$ip_a"."$ip_b"."$ip_c".zonesecho "反向解析文件/var/named/"$ip_a"."$ip_b"."$ip_c".zones,已生成" >&2#中继配置 read -p "是否开启组从配置(y/n)" zi
case $zi in
y)read -p "请输入从属ip地址" ip_pp
while true;do
#检测ip是否可用c=$(echo $ip_pp | awk -F "." '!(NF==4 && $1>0 && $1<255 && $2>0 && $2<255 && $3>0 && $3<255 &&$4>0 && $4<255){print "无效ip"}')if ! [[ -z "$c" ]];thenecho "无效ip,请重新输入" >&2continueelsebreakfi
donesed -i '/};/ {N; s/};\n};/};\n\tallow-transfer { $ip_pp; };\n};/; }' /etc/named.rfc1912.zonesecho "配置文件/etc/named.rfc1912.zones以修改"
;;n)
;;
*)
;;
esac#重启bind服务systemctl restart namedecho "服务已重启" >&2
运行结果
要修改测试机的DNS,进行测试,结果
2、主从配置
从配置文件
#!/bin/bash
#关闭其他服务systemctl disable --now firewalld >/dev/nullsetenforce 0 >/dev/nulliptables -F >/dev/null#获取要从的ip的区域
read -p "请输入要设置从的IP:" ip_n
while true;do
#检测是不是可用ipa=$(echo $ip_n | awk -F "." '!(NF==4 && $1>0 && $1<255 && $2>0 && $2<255 && $3>0 && $3<255 &&$4>0 && $4<255){print "无效ip"}')if ! [[ -z "$a" ]];thenecho "无效ip,请重新输入" >&2continueelsebreakfidone
#修改配置文件sed -i "s/allow-query { localhost; };/allow-query { any; };/g" /etc/named.confsed -i "s/listen-on port 53 { \([0-9.]\+\); };/listen-on port 53 { $ip_n; };/g" /etc/named.confecho "配置文件/etc/named.conf设置成功" >&2#获取主的ip及域名read -p "请输入主的IP:" ip_mread -p "请输入主的域名称:" dns_m
#将IP拆分,方便写入配置文件中ip_a=$(echo "$ip_m"| awk -F"." '{print $1}')ip_b=$(echo "$ip_m"| awk -F"." '{print $2}')ip_c=$(echo "$ip_m"| awk -F"." '{print $3}')ip_d=$(echo "$ip_m" | awk -F"." '{print $4}')
#将DNS拆分,方便写入配置文件中dns_a=$(echo "$dns_m"| awk -F"." '{print $1}')dns_b=$(echo "$dns_m"| awk -F"." '{print $2}')dns_c=$(echo "$dns_m"| awk -F"." '{print $3}')echo -e "zone \""$dns_b"."$dns_c".\" IN {type slave;file \"slaves/"$dns_b"."$dns_c".zones\";masters { $ip_m; };
};
zone \""$ip_c"."$ip_b"."$ip_a".in-addr.arpa\" IN {type slave;file \"slave/"$ip_a"."$ip_b"."$ip_c".zones\";masters { $ip_m; };
};" > /etc/named.rfc1912.zones
echo "配置文件/etc/named.rfc1912.zones修改成功" >&2systemctl restart namedecho "DNS服务已经重启" >&2
配置结果
暂停主的DNS功能
测试结果