自动dns linux,Linux 自动化部署DNS服务器

linux 自动化部署dns服务器

1.首先配置主dns服务器的ip地址,dns地址一个写主dns的ip地址,一个写从dns的地址,这里也可以不写,在测试的时候在/etc/resolv.conf中添加记录。6c4d3ce01d79b45e8f07f665bd12f876.png

2.配置从dns的ip地址

47bae83673b1daedea9e8ebf0902c40f.png

3.运行脚本,选择1,部署主dns服务器

4d7aa4558abb434859474466722b9a55.png

4.运行完脚本之后,主dns就部署完成了,查看配置文件 /etc/named.conff6096e7e27688fe842e7ee3b63590755.png

5.查看区域文件 区域文件在 /var/named/892c97147e1985c29b75cfdef823f3e9.pnga389ec66615bf568f178331cb14d3d4f.png

6.本地测试主dns服务器是否部署成功

85bf8b4a760b5a0d6a540467dce0964f.png

7.在从dns服务器上运行脚本,选择2,部署从dns服务

c86e4c2e490cb92d8e2a06178ef0d259.png

8.查看c022c8faf9d99131e70978fb2b73c70d.png

9.查看 /var/named/slaves/目录下,可以看到生成两个文件,说明从dns配置成功,从主dns获得区域文件4e0ee8650dfd4c44ef0ad08a4cfa3c95.png

10.在另一个客户端测试,在/etc/resolv.conf添加如下两条记录

d473ee2e52dd5621cb009aaa579b57ce.png

11.测试,下图可以看到主、从dns都正常

60aefa18a99097f16c201996bd3564fe.png

源码如下:

#!/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<

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<

\$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<

\$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<

[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<

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<

[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服务配置:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值