linux下构建DNS服务器BIND
DNS:域名解析。
域名分类
v 顶级域由两三个字母组成的名称用于指示国家地区或使用名称的单位的类型。如
v 组织域.net, .com, .org,.mil, .edu, .gov, .cc, .mobi
v 国家域.jp, .tw, .hk, .iq,.ir, .cn, .uk, .us
全球有13台根服务器
v A INTERNIC.NET美国弗吉尼亚州 198.41.0.4
v B 美国信息科学研究所美国加利弗尼亚州 128.9.0.107
v C PSINet公司美国弗吉尼亚州 192.33.4.12
v D 马里兰大学美国马里兰州 128.8.10.90
v E 美国航空航天管理局美国加利弗尼亚州 192.203.230.10
v F 因特网软件联盟美国加利弗尼亚州 192.5.5.241
v G 美国国防部网络信息中心美国弗吉尼亚州 192.112.36.4
v H 美国陆军研究所美国马里兰州 128.63.2.53
v I Autonomica公司瑞典斯德哥尔摩 192.36.148.17
v J VeriSign公司美国弗吉尼亚州 192.58.128.30
v K RIPE NCC英国伦敦 193.0.14.129
v L IANA美国弗吉尼亚州 198.32.64.12
v M WIDE Project日本东京 202.12.27.33
DNS服务器类型有
缓存域名服务器
也称为唯高速缓存服务器
通过向其他域名服务器查询获得域名->IP地址记录
将域名查询结果缓存到本地提高重复查询时的速度
主域名服务器
特定DNS区域的官方服务器具有唯一性
从域名服务器
也称为辅助域名服务器
DNS查询方式
递归查询
一般客户机和服务器之间属递归查询即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求得到结果后转交给客户机
迭代查询
一般DNS服务器之间属迭代查询如若DNS2不能响应DNS1的请求则它会将DNS3的IP给DNS2以便其再向DNS3发出请求
DNS解析过程
v DNS服务器的主从如何协调
v 区域数据文件有版本号(序列号): serial
v 刷新时间(检查周期)refresh --从服务器刷新数据到主服务器拿文件的时间间隔
v 重试时间(重试周期): retry --从服务器拿数据失败后多长时间后重试
v 过期时间(失效时长): expire --如果主服务器挂了从服务器顶上后过多久失效
v 否定应答的TTL值 --多长时间内不接受客户端的某个地址解析请求
v 协调过程从服务器在间隔达到refresh指定的时长后发起同步请求至主服务器主服务器响应serial从服务器与本地的serial进行比较如果主服务器serial大于本地意味主服务器区域数据文件更新了因此请求同步
DNS服务使用53号端口
TCP 53端口 服务器与服务器之间的连接
UDP 53 端口 客户端与DNS服务器的连接
zone 区域
type 类型
master 主
slave 从
include 包含链接到另一个文件
实例一搭建DNS正向和反向解析服务器。
主DNS ip:172.16.1.232
从DNS ip:172.16.1.231
1 系统环境(两台机一样)
[root@yy slaves]# cat/etc/redhat-release CentOS release 6.7 (Final) [root@yy slaves]# uname -r 2.6.32-573.el6.x86_64 [root@yy slaves]# iptables -F [root@yy slaves]# setenforce 0
2.安装bind程序包两台机一样
[root@yy slaves]# rpm -qa bind [root@yy slaves]# yum install -y bind
3.配置DNS配置文件在主DNS上
[root@yy named]# vim /etc/named.conf options { listen-on port 53 { 172.16.1.232; }; --监听本一IP listen-on-v6 port53 { ::1; }; forwarders { 202.96.134.133; }; --DNS转发指向 directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file"/var/named/data/named_stats.txt"; memstatistics-file"/var/named/data/named_mem_stats.txt"; allow-query { 0.0.0.0/0; }; --允许哪些客户端请求。 recursion yes; dnssec-enable yes; dnssec-validationyes; dnssec-lookasideauto; /* Path to ISC DLVkey */ bindkeys-file"/etc/named.iscdlv.key"; managed-keys-directory"/var/named/dynamic"; }; logging { channeldefault_debug { file"data/named.run"; severitydynamic; }; }; zone "." IN { type hint; file"named.ca"; }; zone "yy.com" IN { type master; 数据库类型 file"yy.com.zone"; allow-transfer {172.16.1.231; }; 允许哪个主机同步数据库文件 allow-update { none; }; 是否允许更新。 }; zone "1.16.172.in-addr.arpa" IN { type master; file"172.16.1.zone"; allow-transfer {172.16.1.231; }; allow-update { none; }; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
[root@yy yy]# vim yy.com.zone
$TTL 3H @ IN SOA @ rname.invalid. ( 0 ; serial 1H ; refresh 1H ; retry 1D ; expire 3D ) ; minimum NS ns.yy.com. MX 5 mail.yy.com. mail IN A 172.16.1.100 ns IN A 172.16.1.232 www IN A 172.16.1.100 file IN A 172.16.1.110 ftp IN A 172.16.1.120
[root@yy yy]# vim192.168.1.zone
$TTL 3H @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H) ; minimum NS ns.yy.com. ns IN A 172.16.1.232 232 IN PTR ns.yy.com. 100 IN PTR www.yy.com. 110 IN PTR file.yy.com. 120 IN PTR ftp.yy.com. 100 IN PTR mail.yy.com.
4.检查配置文件语法错误
[root@yy named]# named-checkzone yy.com yy.com.zone zone yy.com/IN: loaded serial 0 OK
[root@yy named]# named-checkzone yy.com 172.16.1.zone zone yy.com/IN: loaded serial 0 OK
[root@yy named]# named-checkconf /etc/named.conf
5.启动服务
[root@yy named]# service named restart 停止 named [确定] 启动 named [确定]
6.配置主从同步
从服务器配置文件
[root@yy named]# vim /etc/named.conf options { listen-on port 53{ 127.0.0.1; }; listen-on-v6 port53 { ::1; }; forwarders { 202.96.134.133; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file"/var/named/data/named_stats.txt"; memstatistics-file"/var/named/data/named_mem_stats.txt"; allow-query { localhost; }; recursion yes; dnssec-enable yes; dnssec-validationyes; dnssec-lookasideauto; /* Path to ISC DLVkey */ bindkeys-file"/etc/named.iscdlv.key"; managed-keys-directory"/var/named/dynamic"; }; logging { channeldefault_debug { file"data/named.run"; severitydynamic; }; }; zone "." IN { type hint; file"named.ca"; }; zone "yy.com" IN { type slave; file"slaves/yy.com.zone"; masters {172.16.1.232; }; }; zone "1.16.172.in-addr.arpa" IN { type slave; 数据库类型为从 file"slaves/172.16.1.zone"; masters {172.16.1.232; }; 指定从哪个主服务器下载数据 }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
启动从DNS服务器
[root@yy named]# chown -R named.named /var/named/slaves/ [root@yy named]# service named restart
检查是否同步成功了区域数据库文件
[root@yy named]# ls slaves/ 172.16.1.zone yy.com.zone
看到文件同步过来主从成功。
剩下就是找台客户机试验啦!!!