shell指令碼實現DNS正向解析

Mhh2333發表於2020-12-31

shell指令碼實現DNS正向解析

[root@bogon ~] # cat dns.sh
#!/bin/bash 
#檢測是否掛載
df | grep "sr0"
if [ $? -eq 0 ];then    #掛載則直接安裝dns軟體包
yum -y install bind &> /dev/null #將標準輸出、標準錯誤輸出匯入到黑洞檔案中
else
mount /dev/sr0 /mnt &> /dev/null  #若沒掛載,則先進行掛載,再安裝軟體包
yum -y install bind &> /dev/null
fi

#修改主配置檔案 :/etc/named.conf
 #直接修改檔案,把匹配行的第一個127.0.0.1改為any
sed -i 's/127.0.0.1/any/' /etc/named.conf
#直接修改檔案,把匹配行的第一個localhost改為any
sed -i 's/localhost/any/' /etc/named.conf

#修改區域配置檔案 :/etc/named.rfc1912.zones
#直接修改,用lisi.com替換匹配行的第一個localhost.localdomain
sed -i 's/localhost.localdomain/lisi.com/' /etc/named.rfc1912.zones
#直接修改,用lisi.com替換匹配行的第一個named.localhost
sed -i 's/named.localhost/lisi.com.zone/' /etc/named.rfc1912.zones
#直接修改,刪除18到100行
sed -i '18,100d' /etc/named.rfc1912.zones

#修改區域資料配置檔案 :/var/named/named.localhost
cd /var/named
cp -p named.localhost lisi.com.zone #複製時保留原屬性
#直接修改,把檔案中所有的@替換為lisi.com.
sed -i 's/@/lisi.com./g' /var/named/lisi.com.zone
#直接修改,把檔案中所有的127.0.0.1替換為192.168.2.4
sed -i 's/127.0.0.1/192.168.2.4/' /var/named/lisi.com.zone
#直接修改,在第9行下面新增www IN A  192.168.2.4
sed -i '9a www IN A  192.168.2.4' /var/named/lisi.com.zone
#直接修改,刪除帶有AAAA的那一行
sed -i '/AAAA/d' /var/named/lisi.com.zone

#在第一行下面新增指定dns伺服器地址
sed -i '1a nameserver 192.168.2.4' /etc/resolv.conf

#關閉系統防火牆和系統安全機制
systemctl stop firewalld
setenforce 0

#開啟dns服務
systemctl restart named
[root@bogon ~] # chmod +x dns.sh 

驗證是否解析成功

[root@bogon ~] # ./dns.sh 
[root@bogon ~] # host www.lisi.com
www.lisi.com has address 192.168.2.4
[root@bogon ~] # nslookup www.lisi.com
Server:		192.168.2.4
Address:	192.168.2.4#53

Name:	www.lisi.com
Address: 192.168.2.4

相關文章