文档章节

Linux 自动化部署DNS服务器

o
 osc_a22drz29
发布于 2019/03/24 23:04
字数 933
阅读 26
收藏 0

精选30+云产品,助力企业轻松上云!>>>

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服务配置:https://www.cnblogs.com/yuzly/p/10581688.html 

上一篇: IO流基础
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
云计算--培训课程大纲

第一阶段 Linux系统管理实战 01 打开计算机世界的大门 行业分析、计算机基础、 Windows server基础、网络基础 02 Linux基本管理 Linux安装、Linux常规命令、文本编辑器 03 Linux软件与文件系...

wy125629
2017/10/11
0
0
自动化运维系列之Cobbler (资源)

下图为开源自动化运维体系链: 1、cobbler实现自动装机 2、saltstack实现工程自动化配置 3、kubernetes实现容器自动化编排 4、zabbix实现自动化监控 5、elastic实现应用日志自动化收集 6、j...

寰宇01
2018/08/06
239
0
亲爱的,我是一条Linux运维技术学习路径呀。

根据我的经验,人在年轻时,最头疼的一件事就是决定自己这一生要做什么。在这方面,我倒没有什么具体的建议:干什么都可以,但最好不要写小说,这是和我抢饭碗。总而言之,干什么都是好的;但...

osc_wo3nqwzc
2019/01/25
2
0
2020最新最适合运维人员学习路线(从0-1的必经之路,持续更新)

文章目录 介绍 第一部分:Linux系统管理与Shell编程 第二部分:Linux服务管理 第三部分:数据库管理 第四部分:集群管理 第五部分:安全防护 第六部分:Docker 第七部分:Kubernetes 第八部分...

TrueDei
04/01
0
0
实战:Cobbler 无人值守自动部署系统

背景: 装系统相信大家都不陌生,对于运维攻城狮可以说是家常便饭,老大说:小刘今天装一下系统,明天把那几台机器系统重装一下。就这样一上午,一天就这么过去了。耗时费力不说,重点是没有...

ljohnmail
2017/11/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MongoDB入门系列——3.可视化工具篇

点击上方,轻松关注!! 前面我们已经介绍了MongoDB怎么安装,接下来要安装他的可视化工具——Studio 3T。 先到这下载一个压缩包,百度网盘,https://pan.baidu.com/s/1M8mlWo334KE8I1_UA2Da...

学习Java的小姐姐
2018/11/08
5
0
分层图的绘制 python(来自国外课程)

Exercise 10: Hierarchical clustering of the grain data In the video, you learnt that the SciPy linkage() function performs hierarchical clustering on an array of samples. Use th......

齐勇cn
33分钟前
13
0
微信小程序超简单的双向绑定(类似vue的v-model)

<input model:value="{{value}}" />

祖达
34分钟前
9
0
为什么AngularJS在select中包含一个空选项? - Why does AngularJS include an empty option in select?

问题: I've been working with AngularJS for the last few weeks, and the one thing which is really bothering me is that even after trying all permutations or the configuration de......

技术盛宴
36分钟前
13
0
centos宝塔面板安装及常见错误处理(超级详细)

原文连接:https://www.wjcms.net/archives/centos%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF%E5%AE%89%E8%A3%85%E5%8F%8A%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86%E8%B6%85%E7%......

神兵小将
58分钟前
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部