目录
DNS系统的作用及类型
DNS是什么?
DNS域名系统(Domain Name System缩写DNS,Domain,Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
全世界只有13台根域名服务器,一个主根服务器在美国,12个辅根服务器,其中9个在美国,欧洲两个,位于英国和瑞典,亚洲一个位于日本。
全球互联网DNS根服务器分布差异巨大
全球互联网中枢顶级域名服务器的分布俗称"母服务器",准确的说法是世界上有13个根服务器系统。其实全球至少有1000多台根服务器,北京有3台。另外,在这13个根服务器系统之上,还有一个更高级的、隐藏着的母服务器。全世界所有的顶级域名,都是由这台母服务器来确定的。全球1000多台根服务器上的解析系统都是这台母服务器的复制,这13个根服务器系统由12家机构管理,分布在全球100多个地区。所以每一个编号的根服务器系统,不是一台机器,而是有几十台或上百台服务器。
目前广泛使用的互联网是第一代互联网,采用的互联网协议版本号为4,即IPv4。美国是第一代互联网的创立者,占有网络核心资源,处于绝对垄断地位。随着互联网的蓬勃发展,对IP地址的需求也迅猛增加,IPFv4所能提供的地址很快将发完。第二代互联网所依据的协议是IPv6。它可以提供无限数量的IP地址。
DNS使用的协议及端口号
DNS的默认端口为53。 DNS端口分为TCP和UDP。
TCP是用来做区域传送,多用于主从同步在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNSs数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息。
UDP是用来做DNS解析的域名:通常由一个完全合格域名(FQDN)标识。FQDN全称 Fully Qualified Domain Name,它能准确表示出其相对于DNS域树根的位置,也就是节点到DNS树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用"."分隔,对于DNS域google来说,其完全正式域名(FQDN)为google.com。
例如,google为 com域的子域,其表示方法为google.com,而 ww 为 google域中的子域,可以使用wwrw .google.com.丧示。
注意:通常,FQDN有严格的命名限制,长度不能超过256字节,只允许使用字符a-z,0-9,A-Z2和减号(-)。点号(.)只允许在域名标志之间(例如"google.com")或者FQDN的结尾使用。域名不区分大小,由最顶层到下层,可以分成:根域、顶级域、二级域、子域。即全域名:同时带有主机名和域名的名称:FQDN=Hostname+DomainName
例如:www.baidu.com
注意:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上www.abd.com=www.bad.com.
域名结构:
http://www.sina.com.cn./
http://主机名,子域,二级域,顶级域 根域/
DNS系统的分布式数据结构
- 根域:位于树状结构最顶层,用"."表示
- 顶级域:一般代表一种类型的组织机构或国家地区;
- 二级域:用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家部门统一管理
- 子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名
- 主机:主机位于域名空间最下层,就是一台具体的计算机
DNS的分布式互联网解析库
大型、分布式的互联网DNS解析库
根. 根域名DNS服务器:专门负责根域名
一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区)
.com(工商、企业)、.net(网络供应商)、.edu(教育机构)、.cn(中国国家域名)、.org(团体组织)、.gov(政府部门)
二级DNS服务器:专门负责二级域名解析
.net.cn、.edu.cn、.com.cn
子域名DNS服务器:专门负责子域名的解析,也称为三级域名
ina.com.cn、.pku.edu.cn
主机站点
tts9、tts6、mail、www
域名代理/注册/购买服务商
- 新网:http://www.xinnet.com
- 万网:http://www.net.cn
- 中国互联:http://hulian.top
- 中国数码
- 阿里云
- 腾讯云
- 西部数码
- 亚马逊
域名体系结构
所有域名必须以点结尾
www.qq.com. www.baidu.com.
- 根域名(.)
- 一级域名:.cn(中国)、.us(美国)、.tw、.kr(韩国)、.jp(日本)、.hk、.uk(英国)
- 二级域名:.com.cn(中国商业组织)、.edu.cn(教育机构)、.org.cn(非盈利)、.net.cn(中国运营商)
- 三级域名:sian.com.cn、nb.com.cn
- 组织域:.com、.org、.net、.CC
- 国家域:.cn(中国)、 .tw、.hk 、 .iq、 .ir、 .jp (日本)
-
114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用。
-
8.8.8.8是GooGLE公司提供的DNS,该地址全球通用,相对来说,更适合国外以及访问国外网站的用户使用
-
223.5.5.5和223.6.6.6:阿里云DNS
-
IPV6 2400:3200::1 和2400:3200:baba::1
-
江苏省南京市(中国电信),首选DNS为:218.2.135.1;备用DNS为:61.147.37.1
两种查询方式
正向解析查询过程
1.先查本机的缓存记录
2.查询hosts文件
3.查询DNS域名服务器,交给DNS域名服务器处理
以上过程为递归查询:我要答案,你会直接给我结果
4.这个DNS服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
5.求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
6.求助顶级服务器,顶级域服务器返回可能会知道结果的二级域服务器,让他去找二级域服务器
7.求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的IP地址返回给本地域名服务器
8.本地域名服务器将结果记录到缓存,然后把域名和IP对应的关系返回给客户端
递归查询
递归查询是一种DNS服务器的查询模式,在该模式下DNS服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果 DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
总的一句话,就是客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。
迭代查询
DNS服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS
服务器并不直接回复查询结果,而是告诉客户机另一台 DNS服务器地址,客户机再向这台DNS服务器提交请求,依次循环直到返回查询的结果为止。
总的一句话,客户机的请求需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供其它服务器的地址,而不会帮你去请求查询,这与递归截然相反。
从递归和迭代查询可以看出:
客户端-本地DNS服务器:
这部分属于递归查询本地DNS服务端---外网:这部分属于迭代查询
递归查询时,返回的结果只有两种:查询成功或查询失败
迭代查询又称作重指引,返回的是最佳的查询点或者主机地址。
迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。
授权回答:向dns服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答。
DNS服务器类型统计
DNS服务器类型
- 主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
- 从域名服务器:当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
- 缓存域名服务器:只提供域名解析结果的缓存功能 目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。
- 转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。
构建DNS域名解析服务器
BIND软件安装
相关软件包
- bind-9.9.4-37.el7.x86_64.rpm 提供了域名服务的主要程序及相关文件
- bind-utils-9.9.4-37.el7.x86_64.rpm 提供了对DNS服务器的测试工具程序,如nslookup等
- bind-libs-9.9.4-37.el7.x86_64.rpm 提供了bind、bind-utils需要使用的库函数
- bind-chroot-9.9.4-37.el7.x86_64.rpm 为bind服务提供了一个伪装的根目录(将/var/named/chroot/文件夹作为bind服务的根目录),以提高安全性
BIND服务器端程序
- 主要执行程序:/usr/bin/named
- 默认监听端口:53(TCP和UDP)
- 主要配置文件:/etc/named.conf
- 保存DNS解析记录的数据文件位于:/var/named
构建DNS域名解析服务器步骤
安装bind软件
DNS正向解析
查看配置文件所在位置
修改配置文件
配置区域数据文件
启动服务,关闭防火墙
更改客户端中的域名解析配置文件,改为DNS服务器地址
测试DNS解析
DNS反向解析
修改区域配置文件
先备份配置文件,再编辑指定区域数据配置文件
测试DNS反向解析
主从服务器
环境:需要两台虚拟机,一台为主服务器,一台为从服务器
主服务器配置
修改主配置文件
修改区域配置文件
配置完后保存并退出,重启named
指定主服务器的DNS
测试DNS解析
从服务器配置
安装bind服务
编辑主配置文件
编辑区域配置文件
修改完后wq保存并退出,启动named
指定从服务器的DNS
测试DNS解析
查看从服务器是否将主服务器的区域数据配置文件备份
宕掉主服务器后,验证从服务器
关闭主服务器
验证从服务器
DNS服务器分离解析
CentOS7操作
安装bind服务
为网关服务器配置双网卡
配置网卡并重启
重启网卡后xshell掉线,需要进入虚拟机终端查看网卡
修改区域配置文件(主配置文件)
view "lan" { #定义内网view,view代表容器分割
match-clients { 192.168.20.0/24; }; #匹配内网网段
zone "fl.com" IN { #设置要解析的区域
type master;
file "fl.com.zone.lan"; }; #数据配置文件
zone "." IN { #可将根域配置从主配置文件剪切过来,dd+p
type hint; #hint是根区域类型
file "named.ca"; };
};
view "wan" { #定义外网view
match-clients { any; }; #匹配除了内网网段以外的任意地址
zone "fl.com" IN {
type master;
file " fl.com.zone.wan"; };
};
配置区域数据文件
重启服务并验证
内网验证
客户端(外网)验证
C:\Users\fan>nslookup www.fl.com #解析www.fl.com
本章总结
- DNS正/反向解析
- DNS工作原理包含递归、迭代查询
- 主从原理
- 缓存原理
- 分离解析
- 服务配置文件
6.1bind服务主配置文件
6.2bind服务区域配置文件
6.3bind服务区域数据配置文件