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 ];then
 echo "未安装bind,正在启动安装" >&2
   yum install -y bind
fi
}

#关闭其他服务
 systemctl disable --now firewalld  >/dev/null
 setenforce 0  >/dev/null
 iptables -F  >/dev/null

 #获取要配置的IP区域
          fun1
read -p "请输入要设置为域的IP:"  ip_n
while true;do
#检测是不是可用ip
     a=$(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" ]];then
       echo "无效ip,请重新输入" >&2
             continue
     else
             break
     fi
 done
#将设置写入配置文件中 
 sed -i "s/allow-query     { localhost; };/allow-query     { any; };/g"  /etc/named.conf
 sed -i "s/listen-on port 53 { \([0-9.]\+\); };/listen-on port 53 { $ip_n; };/g"  /etc/named.conf
 echo "配置文件/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.zones

echo  "配置文件/etc/named.rfc1912.zones 设置成功" >&2
#将模板复制,生成正向与反向解析文件
    cp -p  /var/named/named.empty   /var/named/"$ip_a"."$ip_b"."$ip_c".zones
    cp -p  /var/named/named.empty   /var/named/"$dns_b"."$dns_c".zones

#获取域名称别名
 read -p "请输入域别名名称:" name
  name_a=$(echo "$dns"| awk -F"." '{print $1}')
  name_b=$(echo "$dns"| awk -F"." '{print $2}')
  name_c=$(echo "$dns"| awk -F"." '{print $3}')

#获取邮箱ip
 read -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" ]];then
       echo "无效ip,请重新输入" >&2
             continue
     else
             break
     fi
done
  ip_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       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; 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".zones
  echo "正向解析文件/var/named/"$dns_b"."$dns_c".zones ,已生成" >&2
#将结果写入反向解析文件
echo -e "\$TTL 3H
@       IN SOA  "$dns_b"."$dns_c". mail."$dns_b".com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; 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".zones
 echo "反向解析文件/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" ]];then
       echo "无效ip,请重新输入" >&2
             continue
     else
             break
     fi
done

sed -i '/};/ {N; s/};\n};/};\n\tallow-transfer { $ip_pp; };\n};/; }' /etc/named.rfc1912.zones

 echo "配置文件/etc/named.rfc1912.zones以修改"
;;

n)
;;
*)
;;
esac


#重启bind服务
     systemctl restart named
 echo  "服务已重启"  >&2

运行结果

要修改测试机的DNS,进行测试,结果

2、主从配置

从配置文件

#!/bin/bash
#关闭其他服务
 systemctl disable --now firewalld >/dev/null
 setenforce 0 >/dev/null
 iptables -F  >/dev/null

 #获取要从的ip的区域
read -p "请输入要设置从的IP:"  ip_n
while true;do
#检测是不是可用ip
     a=$(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" ]];then
       echo "无效ip,请重新输入" >&2
             continue
     else
             break
     fi
 done
#修改配置文件
 sed -i "s/allow-query     { localhost; };/allow-query     { any; };/g"  /etc/named.conf
 sed -i "s/listen-on port 53 { \([0-9.]\+\); };/listen-on port 53 { $ip_n; };/g"  /etc/named.conf
 echo "配置文件/etc/named.conf设置成功" >&2

#获取主的ip及域名
 read -p "请输入主的IP:" ip_m
 read -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修改成功" >&2

    systemctl restart named
  echo "DNS服务已经重启" >&2

配置结果

暂停主的DNS功能

测试结果

 

                                                                

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值