Linux 自动化部署DNS服务器
程序员文章站
2022-06-11 08:45:32
Linux 自动化部署DNS服务器 1.首先配置主DNS服务器的IP地址,DNS地址一个写主dns的IP地址,一个写从dns的地址,这里也可以不写,在测试的时候在/etc/resolv.conf中添加记录。 2.配置从dns的IP地址 3. 运行脚本,选择1,部署主DNS服务器 4.运行完脚本之后, ......
linux 自动化部署dns服务器
1.首先配置主dns服务器的ip地址,dns地址一个写主dns的ip地址,一个写从dns的地址,这里也可以不写,在测试的时候在/etc/resolv.conf中添加记录。
2.配置从dns的ip地址
3. 运行脚本,选择1,部署主dns服务器
4.运行完脚本之后,主dns就部署完成了,查看配置文件 /etc/named.conf
5. 查看区域文件 区域文件在 /var/named/
6.本地测试主dns服务器是否部署成功
7. 在从dns服务器上运行脚本,选择2,部署从dns服务
8.查看
9.查看 /var/named/slaves/目录下,可以看到生成两个文件,说明从dns配置成功,从主dns获得区域文件
10.在另一个客户端测试,在/etc/resolv.conf添加如下两条记录
11. 测试,下图可以看到主、从dns都正常
源码如下:
#!/bin/bash #该脚本用于自动化部署主dns服务器与从dns服务器 #作者:雨中落叶 #博客:https://www.cnblogs.com/yuzly/ echo "**************************** 1.部署主dns服务器 2.部署从dns服务器 ****************************" read -p "请输入部署选项:" num case $num in 1) #关闭防火墙,避免影响实验 service iptables stop &>/dev/null setenforce 0 &>/dev/null named="/etc/named.conf" #定义函数 alterdns(){ #配置主文件 rm -fr $named touch $named #获得本机ip eth=$(ifconfig |grep "^eth" |awk '{print $1}') lip=$(ifconfig $eth |grep "inet addr"|awk '{print $2}'|awk -f: '{print $2}') read -p "请输入你要创建的正向区域名:" areaname read -p "请输入从dns服务器的ip地址:" slaveip fan=$(echo $lip |awk -f. '{print $3"."$2"."$1}') cat >>$named<<ok options { listen-on port 53 { $lip; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; allow-query { any; }; }; zone "." in { type hint; file "named.ca"; }; zone "$areaname" in { type master; file "$areaname.zone"; allow-transfer { $slaveip; }; }; zone "$fan.in-addr.arpa" in { type master; file "$fan.in-addr.arpa.zone"; allow-transfer { $slaveip; }; }; ok #配置正向解析文件 touch /var/named/$areaname.zone cat >>/var/named/$areaname.zone<<ok \$ttl 86400 @ in soa $areaname. admin.$areaname. ( 2019032211 ; serial 1d ; refresh 1h ; retry 1w ; expire 3h ) ; minimum @ in ns ns1.$areaname. in ns ns2.$areaname. in mx 10 mail.$areaname. ns1 in a $lip ns2 in a $slaveip www in a $lip mail in a $lip news in cname www.$areaname. ok #配置反向解析文件 touch /var/named/$fan.in-addr.arpa.zone fourthlip=$(echo $lip |awk -f. '{print $4}') fourthslaveip=$(echo $slaveip |awk -f. '{print $4}') cat >>/var/named/$fan.in-addr.arpa.zone<<ok \$ttl 86400 @ in soa $areaname. admin.$areaname. ( 2019032211 ; serial 1d ; refresh 1h ; retry 1w ; expire 3h ) ; minimum @ in ns ns1.$areaname. in ns ns2.$areaname. $fourthlip in ptr ns1.$areaname. $fourthslaveip in ptr ns2.$areaname. $fourthlip in ptr www.$areaname. $fourthlip in ptr mail.$areaname. $fourthlip in ptr news.$areaname. ok } if [ ! -f $named ] then echo "当前电脑没有安装dns服务,正在安装,请稍等....." mount /dev/sr0 /mnt &>/dev/null #搭建本地yum仓库 cd /etc/yum.repos.d cat >>yuzly.repo<<ok [yuzly] name=yuzly baseurl=file:///mnt enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-redhat-release ok yum install bind -y &>/dev/null #调用函数 alterdns service named start &>/dev/null else alterdns service named start &>/dev/null fi ;; 2) #关闭防火墙 service iptables stop &>/dev/null setenforce 0 &>/dev/null #修改配置文件 #获得本机ip eth=$(ifconfig |grep "^eth" |awk '{print $1}') lip=$(ifconfig $eth |grep "inet addr"|awk '{print $2}'|awk -f: '{print $2}') named="/etc/named.conf" read -p "请输入主服务器创建的正向区域名:" areaname read -p "请输入主dns服务器的ip地址:" ip fan=$(echo $ip |awk -f. '{print $3"."$2"."$1}') setarea(){ cat >>$named<<ok options { listen-on port 53 { $lip; }; directory "/var/named"; allow-query { any; }; }; zone "$areaname" in { type slave; masters { $ip; }; file "slaves/$areaname.zone"; }; zone "$fan.in-addr.arpa" in { type slave; masters { $ip; }; file "slaves/$fan.in-addr.arpa.zone"; }; ok service named start &>/dev/null } if [ ! -f $named ] then echo "当前电脑没有安装dns服务,正在安装,请稍等....." mount /dev/sr0 /mnt &>/dev/null #搭建本地yum仓库 cd /etc/yum.repos.d cat >>yuzly.repo<<ok [yuzly] name=yuzly baseurl=file:///mnt enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/rpm-gpg-key-redhat-release ok yum install bind -y &>/dev/null rm -fr $named touch $named #调用函数 setarea else rm -fr $named touch $named setarea fi ;; *) echo "请输入正确的数字!" ;; esac
-------------------------------------------------------------------------------------------------------
linux dns服务配置:
推荐阅读
-
springboot打包部署到linux服务器的方法
-
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
-
springboot打包部署到linux服务器的方法
-
maven利用tomcat插件部署远程Linux服务器的步骤详解
-
Linux 自动化部署DNS服务器
-
Linux下将Python的Django项目部署到Apache服务器
-
.net core3.0部署Linux服务器 使用Docker容器和Nginx反代理教程
-
Linux服务器部署.Net Core笔记:六、安装MySQL
-
Linux服务器部署.Net Core笔记:五、安装Nginx
-
怎样在Linux主机/服务器安装和部署PPTP