一、DNS简介
二、Bind安装
三、Bind配置
四、Bind检查配置文件
五、验证
六、常见错误
七、待整理
一、DNS简介
DNS(Domain Name Service),域名解析服务。
发展史:
1、早期计算机比较少时人们通过创建修改自己计算机上的hosts文件来实现IP与域名的对应关系。
2、为了统一管理,更快地更新到最新的hosts文件,人们统一到一台ftp服务器上下载hosts文件。
3、当计算机爆炸性增长时,通过统一到ftp服务器上下载更新hosts文件不现实,于是产生了多级域来管理域名。上级域名只负责给下级域授权。
域名类型:
【根域】
.
【一级域/顶级域】
组织域、商业机构域:com, com.cn, org, gov, edu, net
国家域:cn, hk, tw, jp, kr, ir, iq, my, us, uk, ru, jp
反向域:in-addr-arpa
【二级域】
baidu.com sina.com.cn google.cn 163.com
例:(在此忽略TTL说明) 用户202.96.128.1设置的DNS服务器为:8.8.8.8,它要获取 tieba.baidu.com 的IP地址。过程如下: 1、202.96.128.1先查询本地有没查询缓存,如果没有则向DNS服务器查询。 2、DNS服务器8.8.8.8先务器的信息,因此它不会直接返回 tieba.baidu.com 的IP,而是告诉 DNS服务器8.8.8.8 :“com. 的地址是 1.1.1.1,你去找它查询吧。” 4、8.8.8.8到com中询问。同理,com. 域中不存放tieba.baidu.com 的IP,它会返回信息给DNS服务器8.8.8.8 :“ baidu.com. 的地址是 10.10.10.10,你去找它查询吧。” 5、此时DNS服务器8.8.8.8向baidu.com. 查询 tieba.baidu.com 的地址,baidu.com 会返回tieba.baidu.com. 的IP:12.12.12.12给DNS服务器。 6、DNS服务器接收到查询结果后会把记录缓存下来方便用户以后查询,同时返回查询结果给用户202.96.128.1。
二、Bind安装
Bind(Berkeley Internet Name Domain)
CentOS中使用yum安装:yum install bind bind-utils bind-libs portreserve
portreserve 我也不知道是什么,依赖关系安装了它 bind-libs bind要用到的库 bind-utils 一些工具,nslookup,host,dig等 bind 就是作域名解析的安装包
三、Bind配置
# vim /etc/named.conf # 修改监听地址和允许查询配置 listen-on port 53 { 192.168.86.16; }; //设置bind监听在192.168.86.16:53 allow-query { 192.168.86.0/24; }; //设置允许192.168.86.0网段设置为DNS服务器来查询 # vim /etc/named.rfc1912.zones # 增加contoso.com域和反向解析192.168.86.arpa zone "contoso.com" IN { type master; file "contoso.com"; //文件名一定要跟后面创建的zone文件(/var/named/下的)对应 allow-update { none; }; }; zone "86.168.192.in-addr.arpa" IN { type master; file "192.168.86.arpa"; //文件名一定要跟后面创建的zone文件(/var/named/下的)对应 allow-update { none; }; };
# vim /var/named/contoso.com
$TTL 1800
@IN SOAcontoso.com. admin.contoso.com. (
0; serial
1D; refresh
1H; retry
1W; expire
3H ); minimum
@INNSlinuxdns.contoso.com.
linuxdnsINA192.168.86.16
dc01INA192.168.86.1
dc02INA192.168.86.2
*INA192.168.86.12
# vim /var/named/192.168.86.arpa
$TTL 1800
@IN SOAcontoso.com. admin.contoso.com. (
0; serial
1D; refresh
1H; retry
1W; expire
3H ); minimum
@INNSlinuxdns.contoso.com.
16INPTRlinuxdns.contoso.com.
1INPTRdc01.contoso.com.
2INPTRdc02.contoso.com.
# chown named.named /var/named/192.168.86.arpa /var/named/contoso.com
# /etc/init.d/named start
四、Bind检查配置文件
# named-checkconf /etc/named.conf
# named-checkconf /etc/named.rfc1912.zones
# named-checkzone contoso.com /var/named/contoso.com
五、验证
nslookup linuxdns.contoso.com 192.168.86.16
nslookup dc01.contoso.com 192.168.86.16
nslookup dc02.contoso.com 192.168.86.16
dig linuxdns.contoso.com @192.168.86.16
六、常见错误排查
1、bind的配置文件,allow-query、listen-on,
2、zone文件的格式和权限(named需要对文件有读取的权限) # chown -R named.named /var/named/
3、iptables(开放53端口) # iptables -F
4、selinux(一般设置为permissive或者disabled) # setenforce 0
七、待整理更新