“Yeah It’s on. ”
linux软件-DNS
1、DNS系统的作用及类型
DNS (Domain Name System,域名系统),万维网上作为域名和 IP 地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的 IP 地址。通过域名,最终得到该域名对应的 IP 地址的过程叫做域名解析(或主机名解析)。DNS 协议运行在TCP/UDP 协议之上,使用端口号53。
域名解析就是把域名指向网站空间 IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替 IP 地址标识站点地址。域名解析就是 域名到 IP 地址的转换过程。域名的解析工作由 DNS 服务器完成。域名解析也叫域名指向、服务器设置、域名配置以及反向 IP 登记等。
FQDN格式(完整域名格式):在常见域名后添加“ . ”(根域)。主机位.二级域名.顶级域名(一级域名).
正向解析: 根据域名查 IP 地址,即将指定的域名解析为相对应的 IP 地址。域名的正向解析是 DNS服务器最基本的功能,也是最常用的功能。 反向解析(一般是不提供的):根据 IP 地址查域名,即将指定的 IP 地址解析为相对应的域名。域名的反向解析不是很常用,只在一些特殊场合才会用到,如可用于反垃圾邮件的验证。
实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和 IP 地址的对应关系,这些特定的DNS 域或 IP 地址段称为“zone”(区域)。根据地址解析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录) 和反向区域(包含 P地址到域名的解析记录)。
常见的几种DNS系统类型:
- 缓存域名服务器(一般不用):只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其他 DNS 服务器作为解析来源。
- 主域名服务器:维护某一个特定 DNS 区域的地址数据库,对其中的解析记录具有自主控制权,是 指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
- 从域名服务器:与主域名服务器提供完全相同的 DNS 解析服务,通常用于 DNS 服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询的结果都是一样的。关键区别在于,从域名服务器提供的解析结果并不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
- 转发器(一般不用):这台 DNS 发现非本机负责的查询请求时,不再向根域发起请求,而是直接转发给指定的台或者多台服务器。自身并不缓存查询结果。
注意:同一台DNS服务器,可以是主域名服务器,同时也可以是从域名服务器
2、DNS 服务器的查询模式及域名解析
域名解析过程
当一个用户在浏览器地址栏输入 www.linuxxu.com 时,DNS 解析有大致十个过程:
1、浏览器先检查自身缓存中有没有被解析过的这个域名对应的 ip 地址,如果有,解析结束。同时域名被缓存的时间也可通过 TTL 属性来设置。
2、如果浏览器缓存中没命中,浏览器会检查操作系统缓存中有没有对应的已解析过的结果。而操作系统也有一个域名解析的过程。在 windows 中可通过C盘里 hosts 文件来设置,如果你在这里指定了一个域名对应的ip地址,那浏览器会首先使用这个ip 地址。
3、如果至此还没有命中域名,才会真正的请求本地域名服务器(LDNS) 来解析这个域名,这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,一般都会缓存域名解析结果,大约 80%的域名解析到这里就完成了。
4、如果 LDNS 仍然没有命中,就直接跳到根 (.) 域名服务器请求解析
5、根域名服务器返回给 LDNS 一个所查询域的主域名服务器(GTLD Server,国际顶尖域名服务器如.com .cn .org 等)地址。
6、此时 LDNS 再发送请求给上一步返回的 GTLD(类似于.com)。
7、接受请求的 GTLD 查找并返回这个域名对应的 Name Server 的地址,这个Name Server 就是网站注册的域名服务器(Linuxxu.com)。
8、Name Server 根据映射关系表找到目标 ip,返回给 LDNS。
9、LDNS 缓存这个域名和对应的 ip。
10、LDNS 把解析的结果返回给用户,用户根据 TTL 值缓存到本地系统缓存中,域名解析过程完毕

DNS 服务器递归查询: 当客户机向 DNS 服务器发出解析请求,DNS 服务器从服务器本地的唯高速缓存中查询出结果,反馈给客户机,此过程称为递归查询,即 client-Server。
DNS 服务器迭代查询: 当客户机向 DNS 服务器发出解析请求,DNS 服务器从服务器本地的唯高速缓存中查询发现没有结果,此时该 DNS 服务器以 DNS 客户的身份向其他 DNS服务器发送解析请求或向根域名服务器发送请求,此过程称为迭代查询,即Server-Server。
DNS解析测试工具
1
nslookup www.baidu.com
3、DNS服务器的分布式结构
通常 Internet 主机域名的一般结构为: 主机名.二级域名.顶级域名.。Internet 的根域名由Internet 网络协会域名注册查询负责网络地址分配的委员会进行登记和管理,它还为 Internet 的每一台主机分配唯一的 IP 地址。全世界现有三个大的网络信息中心: 位于美国的 Inter-NIC,负责美国及其他地区; 位于荷兰的 RIPE-NIC,负责欧洲地区;位于日本的 APNIC ,负责亚太地区。
全球共有 13 台根域名服务器。这 13 台根域名服务器中名字分别为“A”至“M”,其中 10 台设置在美国,另外各有一台设置于英国、瑞典和日本。 1个为主根服务器,放置在美国。其余 12 个均为辅根服务器,其中 9 个放置在美国,欧洲 2 个,位于英国和瑞典,亚洲 1个,位于日本。
DNS 的分布式数据库是以域名为索引的,每个域名实际上就是一棵很大的逆向树中路径,这棵逆向树称为域名空间 (domain name space)。树的最大深度不得超过 127 层,树中每个节点都有一个可以长达 63 个字符的文本标号。
4、安装DNS服务器软件
BIND是一款开源的DNS服务器软件,不是唯一能够提供域名服务的 DNS 服务程序,但它却是应用最为广泛的。
1、安装及管理 BIND 软件
在 Cent0S7.x 系统中,系统光盘自带了 BIND 服务的多个安装文件,各软件包的主要作用如下。
bind: 提供了域名服务的主要程序及相关文件模板。
bind-utils: 提供了对 DNS 服务器的测试工具程序,如 nslookup 等。
bind-libs:提供了 bind、bind-utils 需要使用的库函数。
bind-chroot:可选软件包,为BIND 服务提供一个伪装的根目录(将/var/named/chroot/文件夹作为 BIND 的根目录),以提高安全性。也称为 jail(监牢) 机制
1
yum -y install bind*
2、BIND服务控制
BIND 软件包安装完毕以后,会自动增加一个名为 named 的系统服务,通过 systemctl工具都可以控制DNS 域名服务的运行。例如,执行以下操作可以查询 named 服务的运行状态。
1
systemctl status named

3、BIND服务的配置文件
使用 BIND 软件构建域名服务时,主要涉及两种类型的配置文件:主配置文件(/etc/named.conf) 和区域数据文件/var/named/下。主配置文件用于设置 named 服务的全局选项、注册区域及访问控制等各种运行参数;区数据文件用于存放某个 DNS 区域的地址解析记录(正向或反向记录)。 主配置文件 named.conf 通常位于/etc/目录下,在 named.conf 文件中,主要包括全局配置、区域配置两个部分,每一条配置记录的行尾以分号“;”表示结束,以“#”号或者“//”开始的部分表示注释文字(大段注释可以使用“/* …… */”的格式)。


1)全局配置部分
全局配置参数包括在形如“options {};”的大括号中,如可以设置监听的地址和端口、区数据文件存放的目录、允许哪些客户机查询等。
2)区域配置部分
区域配置参数使用“zone ….. {} ;”的配置格式,一台 DNS 服务器可以为多个区域提供解析,因此在 named.conf 文件中也可以有很多个 zone 配置段。区域类型按照解析方向可分为正向区域、反向区域。
1
2
3
4
5
zone "study.com" IN {
type master; //类型为主区域(master/slave/hint)
file "study.zheng";
allow-transfer{192.168.171.152;} //允许下载的从服务器地址
};
在上述配置内容中:
- 每个 zone 区域都是可选的(包括根域、回环域、反向域),具体根据实际需要而定,zone 配置部分的“IN”关键字也可以省略。
- 反向区域的名称由倒序的网络地址和“in-addr.arpa 组合而成。例如,对于 192.168.200.0/24网段,其反向区域名称表示为“200.168.192.in-addr.arpa”。
- file 配置项用于指定实际的区域数据文件,文件名称由管理员自行设置
- 区域配置中的部分参数(如allow-transfer) 也可以放在全局配置里。
修改完主配置文件以后,可以执行 named-checkconf 命令对 named.conf 文件进行语法检查。如果文件中没有语法错误,该命令将不给出任何提示,反之,则会给出相应的提示信息,只要根据出错提示修正文件中的错误即可。带“-z”选项的 named-checkconf 命令还可以尝试加载主配置文件中对应的区域数据库文件,并检查该文件是否存在问题。例如,当出现“…file not found”的错误时,表示找不到对应的文件。

3)TTL 配置及 SOA 记录部分
第一行的 TTL 配置用于设置默认生存周期,即缓存解析结果的有效时问。 SOA 记录部分用于设置区域名称、管理邮箱,以及为从域名服务指定更新参数。
1
2
3
4
5
6
7
8
$TTL 86400 ; 有效解析记录的生存周期
@ IN SOA study.com. admin.study.com. ( ; SOA标记、域名、管理邮箱
2011030501; 更新序列号,可以是10位以内的整数
3H; 刷新时间,重新下载地址数据的间隔
15M; 重试延时,下载失败后的重试间隔
1W; 失效时间,超过该时间仍无法下载则放弃
1D; 无效解析记录的生存周期
)
(;(包括;)之后全是注释,使用时删除)
地址解析记录
1
2
3
4
5
6
@ IN NS ns1.study.com.
IN MX 10 mail.study.com.
ns1 IN A 192.168.171.151
www IN A 192.168.171.151
mail IN A 192.168.171.152
map IN A 192.168.171.153
NS 域名服务器 (Name Server): 记录当前区域的 DNS 服务器的主机地址。 MX 邮件交换 (Mail Exchange): 记录当前区域的邮件服务器的主机地址,数字 10 表示(当有多个MX 记录时) 选择邮件服务器的优先级,数字越大优先级越低。 A地址 (Address):记录正向解析条目 (IPV4)。例如,“WWW IN A 192.168.200.100”表示或名www.linuxxu.com 对应的 IP 地址是 192.168.200.100。 AAAA 地址 (Address): 记录正向解析条目 (IPV6)。 CNAME 别名(Ganonical Name): 记录某一个正向解析条目的其他名称。例如,“ftp IN CNAME Www表示域名 ftp.linuxxu.com 是 www.linuxxu.com 的别名。

(正确性检测)
5、构建主域名服务器
案例使用的基本网络环境和要求如下所述。
- 主、从域名服务器均位于 Internet 中,所负责的 DNS 区域为“study.com”。
- 主服务器的 IP 地址为 192.168.171.151,主机名为 ns1.study.com.
- 从服务器的 IP 地址为 192.168.171.152,主机名为 ns2.study.com.
- 参考各服务器的地址映射关系,为 192.168.171.0/24 网段提供反向解析
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
vim /etc/hosts
192.168.171.151 ns1.study.com ns1
192.168.171.152 ns2.study.com ns2
vim /etc/resolv.conf
nameserver 192.168.171.151
nameserver 192.168.171.152
网卡
DNS1="192.168.171.151"
DNS2="192.168.171.152"
vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; };
directory "/var/named";
allow-query { 192.168.171.0/24; };
};
zone "study.com" IN {
type master;
file "study.zheng";
allow-transfer{192.168.171.152;}; //允许下载的从服务器地址
};
zone "171.168.192.in-addr.arpa" IN {
type master;
file "study.fan";
allow-transfer{192.168.171.153;};
};
编辑/var/named/study.zheng、/var/named/study.fan
vim /var/named/study.fan
$TTL 86400
@ IN SOA study.com. admin.study.com. (
2011030501
3H
15M
1W
1D
)
IN NS ns1.study.com.
IN MX mail.study.com.
151 IN PTR www.study.com.
152 IN PTR mail.study.com.
chgrp named study.zheng study.fan #属组
named-checkconf /etc/named.conf #检查配置文件
named-checkzone study.com /var/named/study.zheng #检查配置文件
systemctl restart named
systemctl stop firewalld
iptables -F
setenforce 0
正确性检测


实验成功