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