一、安装DNS服务器端
# yum -y install bind bind-chroot
二、概念理解
将域名作为一棵倒挂的树,从根节点开始解析,直至叶子节点。
通过下图更明确一下:
从图的描述可以得知, 根域是以“点(.)”表示。
明了这一点非常重要,因为它的意义会在Zone文件中得到体现。
再加上客户端的请求解析流程图,会让整个流程更加清晰明了:
详细的请求的顺序为:
客户端host文件标识
客户缓存
服务器区域设定
服务器缓存
其它服务器
三、修改配置文件
默认配置/etc/named.conf
# vim /etc/named.conf
##############################
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options { // 定义全局变量
listen-on port 53 { 127.0.0.1; }; // ipv4 监听端口
listen-on-v6 port 53 { ::1; }; // ipv6 监听端口
directory "/var/named"; // 指定装载zone区域文件的目录
dump-file "/var/named/data/cache_dump.db"; // cache
statistics-file "/var/named/data/named_stats.txt"; // statistics
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; }; // 允许访问列表
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
}; // "}"后也得分号结束
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN { // "."代表根区域
type hint; // 根区域的类型就为hint
file "named.ca"; // 指定zone文件,默认已经生成
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
############################################
注意:在最后一行还include一个conf文件,将本地地址都进行了映射
我们需要修改option的内容,并且添加新的zone:
#############################
option {
listen-on port 53 {
127.0.0.1;
192.168.60.14;// 为局域网其它机器提供named服务,必须监听向本机发出的请求IP
};
...
forwarders { // 添加forwarders,指向其它DNS服务器
202.106.196.115;
};
allow-query{ any; }; // 开放访问权限
...
};
zone "groupon.cn" IN { // 解析groupon.cn
type master;
file "named.groupon.cn"; // 自定义的域名到IP的正向解析配置
};
zone "60.168.192.in-addr.arpa" IN { // 本地内网为192.168.60.x
type master;
file "named.192.168.60"; // 自定义的IP到域名的反向解析配置
};
##########################################
named.conf的配置并不复杂,接下来我们来看zone文件:
$TTL 1D
@ IN SOA@ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
$TTL 1D 生存期, 默认单位为秒,另可设定为[W|D|H|M]
[zone] IN SOA [主机名] [管理员email] (
[五组更新时间参数]
)
@=>zone IN SOA@=>主机名 rname.invalid.=>email
@代表根域
rname.invalid.解析为rname@invalid,第一个"."为"@"的替代,尾部的"."为根域,表明其为绝对URL
NS @ 直接输入域名,访问@
A 127.0.0.1直接输入域名,解析到的IPV4的IP
AAAA ::1 ; 直接输入域名,解析到的IPV6的IP
# cp -p/var/named/named.localhost/var/named/named.groupon.cn
现在开始建立正向解析文件: /var/named/named.groupon.cn
# vim /var/named/named.groupon.cn
#########################
$TTL 1D
@ IN SOA @ root.groupon.cn. (
2010110901
28800
14400
3600000
86400
)
IN NS @ // 直接输入域名,访问@
IN A 221.123.177.226 // 直接输入域名(www),解析到的外网IP
store IN A 192.168.60.42 // 输入子域名,解析到的内网IP
img IN A 192.168.60.43 // 输入子域名,解析到的内网IP
#####################################
建立反向解析文件:/var/named/named.192.168.60
# cp -p /var/named/named.localhost /var/named/named.192.168.60
#####################################
$TTL 1D
@ IN SOA 60.168.192.in-addr.arpa. root.groupon.cn. (
2010110901
28800
14400
3600000
86400
)
@ IN NS www.groupon.cn.
42 IN PTR store.groupon.cn. // 192.168.60.42 -> store
43 IN PTR img.groupon.cn. // 192.168.60.43 -> img
##########################################
配置完毕,检查配置文件的正确性:
# /usr/sbin/named-checkconf -z
zone localhost/IN: loaded serial 0
zone 60.168.192.in-addr.arpa/IN: loaded serial 2010110901
zone groupon.cn/IN: loaded serial 2010110901
看来一切正常, 这时就可以启动named服务:
# systemctl start named.service
四、测试解析验证
在服务端开通端口:
# iptables -A INPUT -p udp --dport 53 -j ACCEPT
# iptables -A INPUT -p tcp --dport 53 -j ACCEPT
在客户端设定DNS地址为该服务器地址,强制刷新dns和测试:
> ipconfig /flushdns
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.
> nslookup
*** Can't find server name for address 192.168.60.36: Non-existent domain
*** Default servers are not available
Default Server: UnKnown
Address: 192.168.60.36
> groupon.cn
Server: UnKnown
Address: 192.168.60.36
Name: groupon.cn
Address: 221.123.177.226
> store.groupon.cn
Server: UnKnown
Address: 192.168.60.36
Name: store.groupon.cn
Address: 192.168.60.42
> 192.168.60.42
Server: UnKnown
Address: 192.168.60.36
Name: store.groupon.cn
Address: 192.168.60.42
五、参考
http://leitelyaya.iteye.com/blog/808266
https://blog.csdn.net/weiyongle1996/article/details/73302458