欢迎关注我的公众号《pencil带你玩转Linux》,回复“Linux学习资料”获取视频教程哦。
DNS 即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制。其中通过域名解析出ip地址的叫做正向解析,通过ip地址解析出域名的叫做反向解析。
1. DNS服务器需要安装bind、bind-chroot、bind-utils:
yum -y install bind bind-utils bind-chroot
2. 编辑配置文件/etc/named.conf,找到listen-on这一行,改为:
listen-on port 53 { any; }; #any是匹配所有的意思
3.找到allow-query这一行,改为:
allow-query { any; };
4.对DNS配置文件进行一下语法检查:
named-checkconf /etc/named.conf
5.重启DNS服务器:
systemctl restart named
6.查看DNS服务器是否启动:
systemctl status named
7.配置防火墙 添加服务:
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
8.配置正向解析
编辑 /etc/named.rfc1912.zones,在末尾添加需要解析的域:
以www.web1.com为例,192.168.52.134是DNS服务器的本机Ip
zone "web1.com" IN {
type master;
file "data/web1.com.zone";
};
在/var/named/data/目录下创建web1.com.zone域:
$TTL 3H #3H 是3小时
@ IN SOA web1.com. root (
#web1.com是主机名称,即在这个域中哪个DNS作为主服务器,在本例中,即为web1.com root是管理员邮箱地址
20180928 ; serial #序号。这个序号代表这个数据库档案的陈旧,序号越大,代表越新。当slave要判断是否主动下载新的数据库时,就以序号是否比slave上的还有新来判断。
1D ; refresh #即slave向master要求数据更新的频率。
1H ; retry #失败重新尝试时间(Retry)。如果因为某些因素,导致slave无法对master达成联机,那么在多久的时间内,slave会尝试重新联机到master。
1W ; expire #失效时间(Expire)。如果一直失败尝试时间,持续联机到达这个设定值时限,那么slave将不再继续尝试联机。
3H ) ; minimum #存活时间(Minimum TTL)。如果在这个数据库zone file中,每笔记录都没有显性设定TTL快取时间的话,那么就以这个值为主。
IN NS @
IN A 192.168.52.134
www IN A 192.168.52.134
ftp IN A 192.168.52.134
重启DNS:
systemctl restart named
修改/etc/resolv.conf:
vim /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.52.134
ping www.web1.com:
#ping -c 4 www.web1.com
PING www.web1.com (192.168.52.134) 56(84) bytes of data.
64 bytes from www.web3.com (192.168.52.134): icmp_seq=1 ttl=64 time=0.281 ms
64 bytes from www.web3.com (192.168.52.134): icmp_seq=2 ttl=64 time=0.370 ms
64 bytes from www.web3.com (192.168.52.134): icmp_seq=3 ttl=64 time=0.263 ms
64 bytes from www.web3.com (192.168.52.134): icmp_seq=4 ttl=64 time=0.285 ms
以上结果说明解析成功!
或使用nslookup命令验证:
#nslookup
> www.web1.com
Server: 192.168.52.134
Address: 192.168.52.134#53
Name: www.web1.com
Address: 192.168.52.134
>
1.修改/etc/named.rfc1912.zones
zone "52.168.192.in-addr.arpa" IN {
#注意192.168.52是3位网络位
type master;
file "data/52.168.192.zone";
};
2.在/var/named/data/目录下创建52.168.192.zone方向解析域:
$TTL 3H
@ IN SOA web3.com. root (
20180928; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS www.web3.com.
134 IN PTR www.web3.com.
134 IN PTR ftp.web3.com.
3.重启DNS:
systemctl restart named
4.nslookup 192.168.52.134:
#nslookup 192.168.52.134
Server: 192.168.52.134
Address: 192.168.52.134#53
134.52.168.192.in-addr.arpa name = www.web3.com.
134.52.168.192.in-addr.arpa name = ftp.web3.com.
至此反向代理设置成功!
从DNS服务器是192.168.52.139的机器
1.在主dns服务器的/etc/named.rfc1912.zones中找到刚才的添加的web1.com域名和52.168.192.in-addr.arpa反向解析域c修改如下:
zone "web1.com" IN {
type master;
file "data/web1.com.zone";
allow-transfer {192.168.52.139;};
notify yes;
also-notify {192.168.52.139;};
};
zone "52.168.192.in-addr.arpa" IN {
type master;
file "data/134.52.168.192.zone";
allow-transfer {192.168.52.139;}; #只允许通知的从服务器
notify yes; #主从同步通知从DNS这个配置很重要
also-notify {192.168.52.139;};
};
2.编辑从服务器上的named.conf文件:
listen-on port 53 { any; };
allow-query { any; };
3.编辑从DNS服务器/etc/named.rfc1912.zones:
zone "web1.com" IN {
type slave; ###本机是从服务器
file "data/web1.com.zone"; ###将同步后的文件放置在哪里,这里是/var/named/data/
masters { 192.168.52.134; }; ###指定主服务器的ip地址
};
4.在/var/named/data/目录下创建web1.com.zone的空文件, 并设置所有者,所有组都为named:
chown named:named web1.com.zone
5.修改 /etc/resolv.conf:
# Generated by NetworkManager
search localdomain
nameserver 192.168.52.139
6.从启dns服务:
systemctl restart named
7,这时打开web1.com.zone,你就会发现有内容,不过是二进制内容,不能编辑,如:
cat web1.com.zone
[���M*0
web1com-web1comrootweb1com3��Q� :�*0$*0
web1com��4�**0
web1com
web1com(*0ftpweb1com��4�(*0wwwweb1com��4�
8.nslookup命令或ping命令验证:
nslookup
> www.web1.com
Server: 192.168.52.139
Address: 192.168.52.139#53
Name: www.web1.com
Address: 192.168.52.134
ping www.web1.com
PING www.web1.com (192.168.52.134) 56(84) bytes of data.
64 bytes from 192.168.52.134 (192.168.52.134): icmp_seq=1 ttl=64 time=0.719 ms
64 bytes from 192.168.52.134 (192.168.52.134): icmp_seq=2 ttl=64 time=0.410 ms
64 bytes from 192.168.52.134 (192.168.52.134): icmp_seq=3 ttl=64 time=0.362 ms
64 bytes from 192.168.52.134 (192.168.52.134): icmp_seq=4 ttl=64 time=0.333 ms
从DNS服务器反向解析
1.编辑从DNS服务器/etc/named.rfc1912.zones:
zone "52.168.192.in-addr.arpa" IN {
type slave;
file "data/52.168.192.zone";
masters { 192.168.52.134; };
};
2.在/var/named/data下创建52.168.192.zone空文件,并赋予所有者,所有组为:named:
touch 52.168.192.zone
chown named:named 52.168.192.zone
3.查看/var/named/data目录下52.168.192.zone文件是否被写入数据:
cat 52.168.192.zone
4.重启从DNS服务器,用ping和nslookup命令验证
至此主从DNS服务器搭建成功!