当前位置: 首页 > news >正文

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功能

测试结果

 

                                                                

相关文章:

  • Flask视频和图片上传
  • win11装vm虚拟机创建Linux常见问题!
  • 线上线下融合驱动:开源链动2+1模式与AI智能名片赋能高价值社群生态的机制研究
  • 常见的Dolphin Scheduler报错
  • Docker Compose部署Spring Cloud 微服务系统
  • 腾讯云搭建web服务器的方法
  • extern关键字:C/C++跨文件编程利器
  • FPGA基础 -- Verilog行为级建模之时序控制
  • 回溯----5.括号生成
  • 如何通过 5 种方式向 Android 手机添加音乐
  • ubuntu下python版本升级导致pyqt不能正常运行解决
  • MSYS2 环境下 Python 开发配置(结合 PyCharm)使用笔记
  • RNN为什么不适合大语言模型
  • html中的table标签以及相关标签
  • ESLint从入门到实战
  • 智净未来:华为智选IAM以科技巧思优化家庭健康饮水体验
  • 2025年中总结
  • Java安全-常规漏洞问题(SQL注入,XXE,SSRF,RCE)
  • Linux系统网络服务之DCHP服务
  • RabbitMQ七种工作模式
  • 做网站需要编程?/北京网站优化多少钱
  • 专业营销网站建设/百度下载免费
  • 初学者拟建网站/搜索引擎优化与关键词的关系
  • 有几个网站如何做外贸/南昌网站建设
  • 集团网站建设服务平台/快速排名官网
  • 可以做产品宣传的网站/搜索引擎优化的内容