目录
一、DNS服务器
1、DNS服务器的功能
2、DNS服务器的分类
3、Bind域名服务
BIND服务器端程序
主配置文件:/etc/named.conf #设置负责解析的域名
地址库文件:/var/named/ #完全合格的主机名与IP地址对应关系
4、虚拟机A:构建DNS服务器
1.安装软件包
2.修改主配置文件
3.建立地址库文件
5、客户端解析域名流程:
6、小结
二、多区域的DNS服务器
三、DNS主从架构
虚拟机A:主DNS服务器
1、授权从DNS服务器
2、声明从DNS服务器
虚拟机B:从DNS服务器
1.安装软件包
2.修改主配置文件
虚拟机C上测试
四、DNS主从数据同步
五、特殊解析
1、DNS的轮询(负载均衡)
2、DNS的泛域名解析
3、DNS的解析记录的别名
4、递归查询(递归解析)与迭代查询 (迭代解析)
六、缓存DNS
正向解析:根据注册的域名查找其对应的IP地址
反向解析:根据IP地址查找对应的注册域名,不常用
根域名服务器 、一级DNS服务器 、二级DNS服务器 、三级DNS服务器
域名系统: 所有的域名都必须要以点作为结尾,树型结构
www.qq.com www.qq.com.
FQDN(完全合格的主机名):站点名+注册的域名
Full Qualified Domain Name
BIND(Berkeley Internet Name Daemon)
—伯克利 Internet 域名服务
——官方站点:ISC - ISC
主要执行程序:/usr/sbin/named
系统服务:named
DNS协议默认端口:TCP/UDP 53
运行时的虚拟根环境:/var/named/chroot/
:/etc/resolv.conf #:指示DNS服务器是谁
[root@svr7 ~]# yum -y install bind bind-chroot
bind(主程序)
bind-chroot(提供牢笼政策)
[root@svr7 ~]# cp /etc/named.conf /root #备份数据
[root@svr7 ~]# vim /etc/named.conf #
options {
directory "/var/named"; #定义地址库文件存放路径
};
zone "tedu.cn" IN { #定义负责的解析tedu.cn域名
type master; #权威主DNS服务器---master
file "tedu.cn.zone"; #指定地址库文件名称,默认是在/var/named/tedu.cn.zone
};
保证named用户对地址库文件有读取权限
所有的域名都要以点作为结尾
如果没有以点作为结尾,那么默认补全本地库文件负责的域名
[root@svr7 ~]# cd /var/named/
[root@svr7 named]# cp -p named.localhost tedu.cn.zone # -p 保持权限不变
[root@svr7 named]# ls -l tedu.cn.zone
[root@svr7 named]# vim tedu.cn.zone
……此处省略一万字
tedu.cn. NS svr7 #声明DNS服务器为svr7
svr7 A 192.168.4.7 #svr7解析结果为192.168.4.7
www A 1.1.1.1
ftp A 2.2.2.2
[root@svr7 named]# systemctl restart named
虚拟机B:测试DNS服务器
[root@pc207 ~]# echo nameserver 192.168.4.7 > /etc/resolv.conf
[root@pc207 ~]# cat /etc/resolv.conf
[root@pc207 ~]# nslookup www.tedu.cn #nslookup 的存在只为了测试DNS服务器,只读/etc/resolv.conf
完整的书写:
[root@svr7 ~]# vim tedu.cn.zone
……此处省略一万字
tedu.cn. NS svr7.tedu.cn.
svr7.tedu.cn. A 192.168.4.7
www.tedu.cn. A 1.1.1.1
ftp.tedu.cn. A 2.2.2.2
www.tedu.cn--->/etc/hosts(为空)--->/etc/resolv.conf(为空)--->127.0.0.1(本机)
www.tedu.cn--->/etc/hosts(为空)--->/etc/resolv.conf(书写内容)
首先,要修改主配置文件/etc/named.conf:1定义地址库的存放路径,默认/var/named;2、定义负责解析什么域名;3、定义为主DNS服务器,master(主);4、定义地址库的名称
然后,书写地址库文件内容/var/named/...... ,填写指定内容:声明DNS服务器是谁,DNS服务器的IP大致是什么、还有完全合格的主机名与IP地址对应关系。
最后,测试:在/etc/resolv.conf中书写nameserver + DNS服务器IP-----》指示DNS服务器是谁
理解:在DNS服务器搭建完成的基础上,在主配置文件中再添加一块,tedu.cn 与 lol.com 是同等级的,只是添加一块解析域名区域,同样建立自己的地址库文件。
虚拟机A:
[root@svr7 /]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
zone "lol.com" IN {
type master;
file "lol.com.zone";
};
[root@svr7 /]# cd /var/named/
[root@svr7 named]# cp -p tedu.cn.zone lol.com.zone
[root@svr7 named]# vim lol.com.zone
……此处省略一万字
lol.com. NS svr7
svr7 A 192.168.4.7
www A 4.4.4.4
vip A 5.5.5.5
[root@svr7 named]# systemctl restart named
虚拟机B
[root@pc207 ~]# nslookup www.lol.com
作用:提高可靠性,从DNS服务器备份主DNS服务器的数据
虚拟机A:主DNS服务器,以tedu.cn域名
虚拟机B:从DNS服务器,以tedu.cn域名
虚拟机C:客户端进行测试
[root@svr7 /]# man named.conf #参考man帮助
[root@svr7 /]# vim /etc/named.conf
options {
directory "/var/named";
allow-transfer { 192.168.4.207; }; #允许谁进行传输数据
};
zone "tedu.cn" IN {
type master;
file "tedu.cn.zone";
};
[root@svr7 /]# vim /var/named/tedu.cn.zone
……此处省略一万字
NS svr7
NS pc207 #声明从服务器
svr7 A 192.168.4.7
pc207 A 192.168.4.207 #从服务器为192.168.4.207
www A 1.1.1.1
ftp A 2.2.2.2
[root@svr7 /]# systemctl restart named
[root@pc207 /]# yum -y install bind bind-chroot
[root@pc207 /]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "tedu.cn" IN {
type slave; #类型为从服务器
file "/var/named/slaves/tedu.cn.slave"; #确保named用户有读写执行权限
masters { 192.168.4.7; }; #指定主DNS服务器
masterfile-format text; #地址库文件明文存储,不添加此行从主dns服务器下载的地址库文件为加密的
};
[root@pc207 /]# ls /var/named/slaves/ [root@pc207 /]# systemctl restart named
[root@pc207 /]# ls /var/named/slaves/
tedu.cn.slave
[root@pc208 /]# vim /etc/resolv.conf #:指示DNS服务器是谁
nameserver 192.168.4.207
[root@pc208 /]# nslookup www.tedu.cn
数据同步操作的修改,只能在主DNS服务器上进行
修改主的数据版本号serial(比之前的大),从服务器 会被同步 主服务器 的数据
虚拟机A:
[root@svr7 /]# vim /var/named/tedu.cn.zone
…….此处省略一万字
2020111801 ; serial #数据的版本号,由10个数字组成,数字越大优先级越高
1D ; refresh #每隔1天主从进行数据交互
1H ; retry #失效之后的时间间隔每一个1小时
1W ; expire #真正的失效时间,1周
3H ) ; minimum #失效记录的记忆时间3小时
tedu.cn. NS svr7
tedu.cn. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 11.12.13.14
[root@svr7 /]# systemctl restart named
虚拟机B:
[root@pc207 /]# nslookup www.tedu.cn 192.168.4.207
[root@svr7 ~]# vim /var/named/tedu.cn.zone
……此处省略一万字
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.20
www A 192.168.4.21
www A 192.168.4.22
ftp A 2.2.2.2
[root@svr7 ~]# systemctl restart named
主机B测试:
[root@pc207~]#ping -c 1 www.tedu.cn
[root@svr7 /]# vim /var/named/tedu.cn.zone
……此处省略一万字
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.20
ftp A 2.2.2.2
* A 6.6.6.6
tedu.cn. A 7.7.7.7
[root@svr7 /]# systemctl restart named
虚拟机B测试:
[root@pc207 /]# nslookup wwwwww.tedu.cn
[root@pc207 /]# nslookup tedu.cn
[root@svr7 /]# vim /var/named/tedu.cn.zone
……此处省略一万字
tedu.cn. NS svr7
svr7 A 192.168.4.7
www A 192.168.4.20
ftp A 2.2.2.2
* A 6.6.6.6
tedu.cn. A 7.7.7.7
vip CNAME ftp #vip解析结果与ftp解析结果一致
[root@svr7 /]# systemctl restart named
虚拟机B:测试
[root@pc207 ~]# nslookup vip.tedu.cn
DNS服务器资源解析记录的类型:
NS:DNS服务器声明记录
A:正向解析记录
CNAME:解析记录的别名
理解概念即可
递归查询:客户端发送请求给首选DNS服务器,首选DNS服务器与其他的DNS服务器交互,最终将解析结果带回来过程
迭代查询: 客户端发送请求给首选DNS服务器,首选DNS服务器告知下一个DNS服务器地址
DNS工作的查询方式:
示例:
虚拟机B:构建DNS服务器负责bj.tedu.cn
[root@pc207 ~]# yum -y install bind bind-chroot
[root@svr7 /]# vim /etc/named.conf
options {
directory "/var/named";
};
zone "bj.tedu.cn" IN {
type master;
file "bj.tedu.cn.zone";
};
]# cd /var/named/
]# cp -p named.localhost bj.tedu.cn.zone
]# vim bj.tedu.cn.zone
……此处省略一万字
bj.tedu.cn. NS pc207
pc207 A 192.168.4.207
www A 9.9.9.9
]# systemctl restart named
虚拟机A:子域授权
[root@svr7 /]# vim /var/named/tedu.cn.zone
tedu.cn. NS svr7
bj.tedu.cn. NS pc207
svr7 A 192.168.4.7
pc207 A 192.168.4.207
www A 192.168.4.20
ftp A 2.2.2.2
* A 4.4.4.4
tedu.cn. A 5.5.5.5
vip CNAME ftp
[root@svr7 /]# systemctl restart named
虚拟机B:测试
[root@pc207 /]# nslookup www.bj.tedu.cn 192.168.4.7
Server: 192.168.4.7
Address: 192.168.4.7#53
Non-authoritative answer: #非权威解答
Name: www.bj.tedu.cn
Address: 9.9.9.9
虚拟机A:禁止递归查询
[root@svr7 /]# vim /etc/named.conf
options {
directory "/var/named";
recursion no; #禁止递归查询
};
[root@svr7 /]# systemctl restart named
[root@pc207 /]# dig @192.168.4.7 www.bj.tedu.cn #专业域名解析的工具
bj.tedu.cn. 86400 IN NS pc207.tedu.cn.
;; ADDITIONAL SECTION:
pc207.tedu.cn. 86400 IN A 192.168.4.207
作用:缓存解析结果,加快访问
示例:
虚拟机A:为真正的DNS服务器
虚拟机B:缓存DNS服务器
虚拟机B:
[root@pc207 /]# yum -y install bind bind-chroot
[root@pc207 /]# vim /etc/named.conf
options {
directory "/var/named";
forwarders { 192.168.4.7; }; #转发给192.168.4.7
};
[root@pc207 /]# systemctl restart named
[root@pc207 /]# nslookup www.abc.com 192.168.4.207
Server: 192.168.4.207
Address: 192.168.4.207#53
Non-authoritative answer:
Name: www.lol.com
Address: 1.2.3.4