DNS正反向解析
DNS正反向解析详解
DNS正向解析以及基础理论概述
DNS正向解析以及基础理论概述
一键部署DNS正向解析(Shell脚本)
[root@localhost /]# ./DNS.sh
/dev/sr0 4414592 4414592 0 100% /mnt
请输入你需要解析的域名:www.qz.com
www.qz.com has address 192.168.131.45
[root@localhost /]# ./DNS.sh
/dev/sr0 4414592 4414592 0 100% /mnt
请输入你需要解析的域名:qetqet1.qz.com
qetqet1.qz.com has address 192.168.131.40
[root@localhost /]# ./DNS.sh
/dev/sr0 4414592 4414592 0 100% /mnt
请输入你需要解析的域名:mail.qz.com
mail.qz.com has address 192.168.131.50
[root@localhost /]# vim DNS.sh
#!/bin/bash
df | grep "sr0" &> /dev/null 【用df+grep查看sr0使用情况】
if [ $? -eq 0 ] 【若果$?等于0则条件表达式】
then
yum -y install bind &> /dev/null 【安装bind包】
else
mount /dev/cdrom /mnt &> /dev/null 【不成立则进行挂载后并安装bind包】
yum -y install bind &> /dev/null
fi
systemctl stop firewalld &> /dev/null
setenforce 0 &> /dev/null
sed -i 's/127.0.0.1/any/' /etc/named.conf 【将主配置文件里的127.0.0.1替换成any】
sed -i 's/localhost/any/' /etc/named.conf 【将主配置文件里的localhost替换成any】
sed -i 's/localhost.localdomain/qz.com/' /etc/named.rfc1912.zones 【替换正向区域配置里的相关内容】
sed -i 's/named.localhost/qz.com.zone/' /etc/named.rfc1912.zones 【替换正向区域配置里的相关内容】
sed -i '18,50d' /etc/named.rfc1912.zones 【将18到50行删除】
cd /var/named
cp -p named.localhost qz.com.zone
sed -i 's/@/qz.com./2p' /var/named/qz.com.zone 【替换正向区域数据文件里的第2个@为qz.com.】
sed -i 's/rname.invalid./admin.qz.com./' /var/named/qz.com.zone
sed -i 's/127.0.0.1/192.168.131.9/' /var/named/qz.com.zone
sed -i '/AAAA/d' /var/named/qz.com.zone 【删除正向区域数据文件里的相关内容】
sed -i '/::1/d' /var/named/qz.com.zone 【删除正向区域数据文件里的相关内容】
sed -i '9a * IN A 192.168.131.40' /var/named/qz.com.zone
sed -i '10a www IN A 192.168.131.45' /var/named/qz.com.zone
sed -i '11a mail IN A 192.168.131.50' /var/named/qz.com.zone
【分别在正向区域数据文件里的第9,10和11行插入相关内容】
sed -i '1a nameserver 192.168.131.9' /etc/resolv.conf
【插入DNS服务器IP】
sed -i '3,50d' /etc/resolv.conf 【删除3-50行内容】
systemctl restart named
chmod +x /DNS.sh
read -p "请输入你需要解析的域名:" qz
host $qz
脚本运行后相关配置文件里的内容
- 正向区域配置
[root@localhost /]# vim /etc/named.rfc1912.zones
// named.rfc1912.zones:
...略...
...略...
...略...
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "qz.com" IN {
type master;
file "qz.com.zone";
allow-update { none; };
};
- 正向区域数据文件
[root@localhost /]# vim /var/named/qz.com.zone
$TTL 1D
@ IN SOA qz.com. admin.qz.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS qz.com.
A 192.168.131.9
* IN A 192.168.131.40
www IN A 192.168.131.45
mail IN A 192.168.131.50
- DNS服务器地址
[root@localhost /]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.131.9
一键部署DNS反向解析(Shell脚本)
- sed的使用方式基本与正向解析类似,主要就是修改的配置文件不同,这里就不过多注释
[root@localhost /]# ./DNS.sh
请输入你需要解析的IP地址:192.168.131.88
88.131.168.192.in-addr.arpa domain name pointer www.qz.com.
[root@localhost /]# vim DNS.sh
#!/bin/bash
df | grep "sr0" &> /dev/null
if [ $? -eq 0 ]
then
yum -y install bind &> /dev/null
else
mount /dev/cdrom /mnt &> /dev/null
yum -y install bind &> /dev/null
fi
systemctl stop firewalld &> /dev/null
setenforce 0 &> /dev/null
sed -i '13 s/127.0.0.1/any/1' /etc/named.conf
sed -i '19 s/localhost/any/1' /etc/named.conf
sed -i '12a zone "131.168.192.in-addr.arpa" IN { \n type master; \n file "qz.com.zone.local"; \n allow-update { none; }; \n }; ' /etc/named.rfc1912.zones
sed -i '18,100d' /etc/named.rfc1912.zones
cp -p /var/named/named.localhost /var/named/qz.com.zone.local
sed -i '2 s/@ rname.invalid./qz.com. admin.qz.com./1' /var/named/qz.com.zone.local
sed -i '8 s/@/qz.com./1' /var/named/qz.com.zone.local
sed -i '9 s/127.0.0.1/192.168.131.10/1' /var/named/qz.com.zone.local
sed -i '10d' /var/named/qz.com.zone.local
sed -i '9a 88 IN PTR www.qz.com.' /var/named/qz.com.zone.local
sed -i '1a nameserver 192.168.131.10' /etc/resolv.conf
sed -i '3,50d' /etc/resolv.conf
systemctl restart named
read -p "请输入你需要解析的IP地址:" qz
host $qz
脚本运行后相关配置文件里的内容
- 正向区域配置
[root@localhost /]# vim /etc/named.rfc1912.zones
// named.rfc1912.zones:
...略...
...略...
...略...
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "131.168.192.in-addr.arpa" IN {
type master;
file "qz.com.zone.local";
allow-update { none; };
};
- 正向区域数据文件
[root@localhost /]# cd /var/named/
[root@localhost named]# vim qz.com.zone.local
$TTL 1D
@ IN SOA qz.com. admin.qz.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS qz.com.
A 192.168.131.10
88 IN PTR www.qz.com.
- DNS服务器地址
[root@localhost /]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.131.10
如果没有安装yum源可以在脚本里加上
cd /etc/yum.repos.d
if [ ! -e local.repo ] 【通过-e查看该文件是否存在】
then
mkdir repos.bak
mv *.repo repos.bak
echo '[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1' > local.repo
fi