1 概念
(1)DNS,Domain Name System,域名系统。使用的是TCP 53 号 和UDP 53 号端口,用于完成主机名称到IP之间的解析。所需程序包的整套程序名是Berkeley Internet Name Domain,即BIND。
(2)FQDN(fully qualified domain name)完全合格域名: 主机头 www. +域名 baidu.com. 。后面的“.”代表根域,紧跟着的com是顶级域,然后baidu是子域,子域也分为二级子域、三级子域。根域记录的是顶级域的信息,顶级域记录的是子域的信息。下图为域名系统的层级,最高层为根域:
(3)DNS查询FQDN条目方式(又叫解析方式或查询模式)
迭代查询:每个DNS服务器都会返回它能够提供的最佳答案,否则就提供一个指针,告诉客户端应该去哪里查询,进而客户端会去其他DNS服务器查询,直到查到结果
递归查询:首选的DNS服务器会提供一个最终结果。客户端向首选DNS服务器发出解析请求,首选DNS服务器会迭代查询出最终结果传给客户端。
例:客户端查询www.baidu.com,先查询DNS服务器,没有的话就再自己的查询缓存,还是没有的话就使用递归查询方式进行查询。
4) 本地授权数据:查询到达一个权威DNS服务器时,权威服务器首先确定是否被查询的信息驻留在某个区域之中。如果存在,权威服务器将响应一个权威应答(A)。所有提供的数据都将有A标志。
本地缓存未授权数据:如果权威DNS服务器没有权威区域的记录,则通过自己最近获得的缓存来查询应答。但此资源不属于A应答。
递归获取未授权数据:如果权威DNS服务器在缓存中亦为查找出条目,将完成一个迭代查询的过程,通过迭代流程完成条目的查询,并最终将条目信心缓存至服务器本地,而后将结果递归给客户端。
2 配置正解DNS服务
2.1 配置服务器端
第一步:安装软件包 #yum install bind -y
第二步:编辑配置文件 #vim /etc/named.conf
1)首先,修改全局配置成最小配置,其他内容全部删掉。全局配置就是指配置文件必须遵循的总体格式。
1 options {
2 listen-on port 53 { any; }; //任何主机都使用TCP 53号端口
3 directory "/var/named"; //指定存放解析文件的目录
4 allow-query { any; }; //指定允许访问DNS的主机,any指所有
5 };
2)然后,添加正解区域
6 zone " baidu.com " IN {
7 type master; //指定服务器类型,master为主服务器
8 file " zj.db " ; //指定解析使用的数据库文件
9 };
//最终文件中就剩下这9行内容
第三步:创建DNS解析文件—— zj.db
#cd /var/named
#cp named.localhost zj.db //拷贝模板
第四步:编辑区域配置文件 zj.db
$TTL 1D //指定DNS缓存时间,为1天
@ IN SOA dns.baidu.com. root.dns.baidu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.baidu.com.
dns IN A 192.168.1.1
www IN A 192.168.1.10
lizi IN A 192.168.1.20
// @代表本域;IN代表解析类型;SOA用于指定主DNS服务器;root.dns.baidu.com是指定管理员邮箱;NS代表权威DNS服务器,表明该权威DNS服务器对本区域有解析权;dns,www,lizi都是主机头的名字
第五步:修改数据库文件zj.db的属主和属组 #chown named.named zj.db
第六步:重启服务 #systemctl restart named
2.2 配置客户端及测试
第一步:编辑配置文件 #vim /etc/resolv.conf
添加 nameserver DNS服务器IP地址
例:nameserver 192.168.1.1
第二步:输入命令
#dig www.baidu.com 或 #host www.baidu.com 或 #nslookup www.baidu.com
注:#nslookup后面什么都不写直接回车的话,会进入交互模式,在交互模式下输入域名即可解析。
2.3 /etc/named.conf 配置文件解读
1) zone( 区域 ):DNS是直接解析FQDN<->IP映射 , 所有的主机或IP都在一个区域中声明。便于DNS得知所解析的内容归属于哪个区域,这样通过所定义的区域数据库文件来找到所对应的条目,给予客户端答案。
2) 正解区域:在DNS中由FQDN解析为IP的功能区域被称为正解区域
3) 反解区域:在DNS中由IP解析为FQDN的功能区域被称为反解区域
4)DNS服务类型
2.4 区域配置文件解读
1) SOA(star of Authority):SOA 记录表明DNS服务器之间的关系,同时表明所声明的对此具有修改权利的区域所有者是谁。
2) NS(Name Server):表示那台主机对此区域拥有解析权力。NS即权威DNS服务器。对于辅DNS来说,NS即主DNS。对于DNS Client而言,所指定的DNS Server即是它的权威服务器
3) TTL(Time-To-Live):DNS 服务器缓存时间,单位:秒
4) A 记录:正解记录。即FQDN->IP ;PTR 记录 : 反解记录。即IP->FQDN(IPv4和v6)
5) AAAA 记录:FQDN->IPv6 记录
6) MX 记录 : 邮件服务器 FQDN。 邮件服务可以配置多个 , 以优先级控制。数字越小越优先。例,正解区域域名 IN MX mail.baidu.com
7) domain : 声明本地DNS为指定域的主域服务器
8) search : 声明本地DNS/Client为指定域的成员
9) 区域命名 : 区域命名必须符合FQDN规范 , 且字符最大值不得超过255个字符。区域命名必须唯一。
10) 所有者 : 资源所有者。一般来说为DNS服务器的FQDN
11) 指定的类型数据 : A/PTR/SOA/MX所对应的值;
12)RNAME : DNS 区域负责人的邮件地址
13) CNAME : FQDN 的别名。如在区域配置文件zj.db的最后添加haha IN CNAME www.baidu.com. ,这样baidu的FQDN就有了别名叫haha 。
14) series序列号 : 一个32bit的值,从1-429467295如果值到最大时将重新轮换。此值主要定义了主DNS的修改次数。便于辅DNS用以对比、更新。手动将序列号自增1就能实现手动刷新。
15) refresh刷新时间 : 定义辅服务器每个多少时间连接主服务器检查更新情况
16) retry重试时间 : 如辅服务器没有成功连接到主服务器,则每经过多少时间再次连接主服务器
17) expire废弃时间 : 在经过指定时间,辅服务器仍然无法连接到主服务器,则不在提供DNS解析服务
18) minimum最小时间 : 指定辅DNS缓存生存周期
3 配置反解DNS服务
3.1 配置服务器端
第一步:安装软件包 #yum install bind -y
第二步:编辑配置文件 #vim /etc/named.conf
1)修改全局配置成最小配置,其他内容全部删掉
1 options {
2 listen-on port 53 { any; }; //任何主机都使用TCP 53号端口
3 directory "/var/named"; //存放解析文件
4 allow-query { any; }; //允许任何主机访问DNS
5 };
2)添加反解区域 //或者直接在2的基础上添加反解区,即就在正解区后面添加
6 zone " 1.168.192.in-addr.arpa " IN { //解析192.168.1.0网络段
7 type master;
8 file " fj.db " ;
9 };
第三步:创建DNS解析文件—— fj.db
#cd /var/named
#cp zj.db fj.db //拷贝模板
第四步:编辑区域配置文件 fj.db
$TTL 1D
@ IN SOA dns.baidu.com. root.dns.baidu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS dns.baidu.com.
1 IN PTR dns.baidu.com
10 IN PTR www.baidu.com
20 IN PTR lizi.baidu.com
第五步:修改数据库文件fj.db的属主和属组 #chown named.named fj.db
第六步:重启服务 #systemctl restart named
注:检测named 配置文件是否正确,用 #named-checkconf
3.2 配置客户端及测试
第一步:编辑配置文件 #vim /etc/resolv.conf
添加 nameserver DNS服务器IP地址
例:nameserver 192.168.1.1
第二步:输入命令
#dig -x www.baidu.com 或 #host www.baidu.com 或 #nslookup www.baidu.com
4 配置辅助DNS服务器
当主DNS服务器宕机之后,辅助DNS服务器会代替主DNS服务器工作。解析文件会由主DNS服务器自动同步过来。
4.1 在r1上安装辅助DNS服务器
第一步:安装软件 #yum install bind -y
第二步:编辑配置文件 #vim /etc/named.conf ,将里面内容修改为
options {
listen-on port 53 { any; };
directory "/var/named";
allow-query { any; };
allow-transfer { 192.168.2.1; }; //括号里面是辅助DNS服务器IP
//如果slave服务器无法自动生成库文件zj.db与fj.db,且存放目录正确时,添加该行,添加之后就能自动生成库文件zj.db和fj.db 。
};
zone "baidu.com" IN { //增加正解区域
type slave; //指定服务器类型,slave代表辅助类型
masters { 192.168.1.1; }; //指定主服务器的IP
file "slaves/zj.db"; //指定使用的区域数据库文件
};
zone "1.168.192.in-addr.arpa" IN { //增加反解区域
type slave;
masters { 192.168.1.1; };
file "slaves/fj.db";
};
第三步:检测配置文件正确与否 #named-checkconf
注:用 #systemctl -l status 进程名 ,也可以查看详情
第四步:启动服务 #systemctl restart named
4.2 配置客户端并测试
第一步:编辑配置文件 #vim /etc/resolv.conf
添加 nameserver DNS辅助服务器的IP
例:nameserver 192.168.2.1
第二步:输入命令
#dig -x www.baidu.com 或 #host www.baidu.com 或 #nslookup www.baidu.com
5 配置转发DNS服务器
任意找一个机器作为转发DNS服务器,客户端直接指向转发DNS服务器,防止主DNS服务器负载过大。
5.1 配置转发DNS服务器端
第一步:安装软件 #yum install bind -y
第二步:编辑配置文件 #vim /etc/named.conf 内容修改为
options {
listen-on port 53 { any; };
directory “ /var/named ”;
alow-query { any; };
alow-update { none; }; //是否允许同步更新,none代表不允许同步更新
forwarders { 192.168.1.1 ; }; //指定DNS转发服务器的主DNS服务器
forward only; //只允许使用转发解析
};
第三步:重启服务 #systemctl restart named
5.2 配置客户端并测试
第一步:编辑配置文件 #vim /etc/resolv.conf,添加nameserver DNS转发服务器IP地址 。例:nameserver 192.168.1.2
第二步:输入命令
#dig -x www.baidu.com 或 #host www.baidu.com 或 #nslookup www.baidu.com
能看到正确的解析结果!
转载请注明出处,谢谢!