DNS查询主机名IP流程:(例:www.wxl.com)
1)先查看本身本地有没有记录,若无则向 . (root)查询
2)向最顶层 . (root)查询,查询到向第二层.com去询问www.wxl.com
3)在.com上查询,要你去wxl.com去询问www.wxl.com
4)在wxl.com上查询到了www.wxl.com。这条A记录,得到www.wxl.com的IP
5)DNS服务器缓存在本地,这样下次访问时就不用向 . (root)中查询
DNS 共有13(a-h)台根服务器,共有500多台DNS服务器,大陆好像是6台
一.安装软件:yuminstall bind
二.修改配置,启动服务
listen-on port53 { any; } #开放的接口
allow-query { any; }; #允许访问的主机
dnssec-validationno; #取消验证
启动服务,初次启动会生成DNSkey,是靠随机数产生的,随便点击鼠标或者敲击键盘来改变/dev/random
systemctl startnamed
三.配置高速缓存服务器cache-only
forwarders { 172.25.12.1;}; #上层DNS服务器IP
四.正解DNS
注意到好多zone都写在这个文件下,当然也可以写在其他在/etc下的文件里然后include.
注意权限
[[email protected]]# ll /etc/named.rfc1912.zones
-rw-r-----. 1root named 1292 Apr 14 08:16 /etc/named.rfc1912.zones
定义zone文件位置
cat /etc/named.rfc1912.zones
zone "wxl.com"IN {
type master;
file "wxl.com.zone"; #文件在/var/named/里面(chroot)
allow-update { none; };
};
注意权限 -rw-r-----. 1 root named 519 Apr 14 08:58wxl.com.zone
不然启动日志里会报pemession deny
[[email protected]]# cat wxl.com.zone
$TTL 1D
@ IN SOA test.wxl.com.root.wxl.com. (
2014041404 ; serial #序列号,每次主从更新,越大就越新
1D ;refresh #主从更新频率
1H ;retry #与master失连时再次尝试时间
1W ;expire #失连时间到了这个值,就放弃
3H ) ;minimum #缓存记录时间
NS test.wxl.com. #name server DNS 主机名
test A 172.25.12.11 # DNS主机名IP
server1.wxl.com. A 172.25.12.1 #完整主机名对应的A记录,注意完整主机名最后 #有点
四.设定别名,有时一个IP对应多个主机名(当然一个主机名,可以对应多个IP)
redhat CNAME hello
hello A 172.25.12.1
五.邮件MX
wxl.com. MX 10 server1.wxl.com. #访问权重,越小优先级越高,真实主 #机名
wxl.com. MX 20 server2.example.com.
server1.wxl.com. A 172.25.12.1
server2.wxl.com. A 172.25.12.2
六.反解
zone"12.25.172.in-addr.arpa" IN {
type master;
file "named.172.25.12";
allow-update { none; };
};
catnamed.172.25.12
@ IN SOA master.wxl.com.root.wxl.com. (
2014041401 ; serial
1D ;refresh
1H ;retry
1W ;expire
3H ) ;minimum
NS master.wxl.com.
master.wxl.com. A 172.25.12.11
250 PTR hello.wxl.com.
2 PTR server2.wxl.com.
七.主从复制(一般DNS2-3刚好),每次改完,序列号要增加。重启服务
主节点(分享wxl.com和12.25.172.in-addr.arpa)
zone"wxl.com" IN {
type master;
file "wxl.com.zone";
allow-update { none; };
allow-transfer {172.25.12.10; };
also-notify{172.25.12.10; };
};
zone"12.25.172.in-addr.arpa" IN {
type master;
allow-transfer{172.25.12.10; };
also-notify{172.25.12.10; };
file "named.172.25.12";
allow-update { none; };
};
从节点
zone"wxl.com" IN {
type slave;
masters {172.25.12.11; };
file "slaves/wxl.com.zone"; #文件存放的位置(权限named.named)
allow-update { none; };
};
zone"12.25.172.in-addr.arpa" IN {
type slave;
masters {172.25.12.11; };
file"slaves/named.172.25.12";
allow-update { none; };
};
检查日志是否更新(Transfer completed: 1 messages, 16 records, 401 bytes,)
八.对不同访问的网段,给予不同的地址解析
#include"/etc/named.rfc1912.zones";
include"/etc/named.root.key";
acl dx{172.25.12.250; };
acl lt {!172.25.12.250; any; };
view my {
match-clients{ "dx"; };
zone"." IN {
typehint;
file"named.ca";
};
zone"wxl.com" IN {
type master;
file "wxl.com.zone";
allow-update { none; };
allow-transfer {172.25.12.10; };
also-notify {172.25.12.10; };
};
};
view other {
match-clients { "lt"; };
zone"." IN {
typehint;
file"named.ca";
};
zone"wxl.com" IN {
type master;
file "wxl.com.zone.other";
allow-update { none; };
allow-transfer {172.25.12.10; };
also-notify {172.25.12.10; };
};
};
当然也可以写在文件中,再include就好(每个include文件中必须有hint zone)
九.子域授权(方便管理)
父域:
vim wxl.com.zone
$TTL 1D
@ IN SOA test.wxl.com. root.wxl.com. (
2014041404 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
NS test.wxl.com.
NS slave.wxl.com.
sub.wxl.com. NS dns.sub.wxl.com.
dns.sub.wxl.com. A 172.25.12.1
slave A 172.25.12.10
test A 172.25.12.11
server1 A 172.25.12.1
redhat CNAME hello
hello A 172.25.12.1
hello A 172.25.12.250
子域
vimnamed.sub.wxl.com
$TTL 1D
@ IN SOA dns.sub.wxl.com. root.sub.wxl.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
NS dns.sub.wxl.com.
dns A 172.25.12.1
test A 172.25.12.22
在/etc/resolv.conf 中设定DNS服务器IP,dig测试