DNS一键部署脚本

DNS(Domain Name System,域名系统),其主要作用是将主机名解析为IP地址的过程,完成了从域名到主机识别ip地址之间的转换

  • DNS是一个分布式、分层次的主机名管理架构,通过配置DNS服务器地址,主机不需要知道对应的ip地址就能通过主机名的形式访问互联网;
  • DNS利用类似倒状树的目录结构将主机名的管理分配在不同层级的DNS服务器当中,经过分层管理,每一级DNS服务器负责部分域名信息,这就减轻了DNS服务器的负载,同时也方便记录的更新同步

脚本内容

#!/bin/bash
#function: DNS服务部署
#author: tommyxie  20230328
############防火墙与高级权限##########
systemctl stop firewalld && systemctl disable firewalld  && echo "防火墙已经关闭"
sed -i 's/SELINUX=.*/SELINUX=disabled/g'  /etc/selinux/config  && echo "关闭selinux"
##安装##
yum  -y   install   bind*
##################判断安装是否成功########################
 if
  [  $?  =  0   ]
then
   echo "dns安装成功!"
   else
   echo "dns安装失败,即将退出!"
  exit  0
fi
##########################配置文件########################
cp /etc/named.conf /etc/named.conf.bak
sed -i '13s/{ 127.0.0.1; }/{ any; }/g' /etc/named.conf
sed -i '21s/{ localhost; }/{ any; }/g' /etc/named.conf
########################################################
a=$(ip a  | grep "inet "|grep "ens33" | awk '{print $2}' | awk -F  /  '{print $1}')
b=$(ip route | awk '/default/ {print $3}')
read -ep "请输入域名:" c
read -ep "请输入反向解析域名:" d
e=$(echo $a | awk -F '.' '{print $3"."$2"."$1}')
f=$(echo $a | awk -F '.' '{print $1"."$2"."$3}')
##########################配置文件########################
mv /etc/named.rfc1912.zones /etc/named.rfc1912.zones.bak
cat >> /etc/named.rfc1912.zones << EOF
zone "$e.in-addr.arpa" IN {
        type master;
        file "$d.com.zone";
};

zone "$c.com" IN {
        type master;
        file "$c.com.zone";
};

zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};
EOF
#######################服务端网卡配置###################
mv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bak
cat >> /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO="static"
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=9c870e77-cb8f-41fa-bac7-570bc2e2e342
DEVICE=ens33
ONBOOT=yes
IPV6_PRIVACY=no
IPADDR=$a
PREFIX=24
GATEWAY=$b
DNS1=$a
EOF
################################配置文件##########################
cat >> /var/named/$c.com.zone << EOF
\$TTL 1D
@       IN SOA  master rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       $a
www     A       $f.80
ftp     A       $f.21
mail    A       $f.25
EOF
############################反向解析文件配置#########################
cat >> /var/named/$d.com.zone << EOF
\$TTL 1D
@       IN SOA  master rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
master  A       $a
80      IN PTR     www.$d.com.
21      IN PTR     ftp.$d.com.
25      IN PTR     mail.$d.com.
EOF
#####开启服务#####
systemctl  start named   &&   systemctl  enable named
if
  [  $?  =  0   ]
then
   echo "dns服务成功开启!"
   else
   echo "dns服务开启失败,即将退出!"
  exit  0
fi
systemctl restart network

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值