文章目录
DNS系统的作用
什么是DNS?
DNS域名系统(Domain Name System缩写DNS,Domain,Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
全世界只有13台根域名服务器,一个主根服务器在美国,12个辅根服务器,其中9个在美国,欧洲两个,位于英国和瑞典,亚洲一个位于日本。
全球互联网DNS根服务器分布差异巨大
全球互联网中枢顶级域名服务器的分布俗称“母服务器”,准确的说法是世界上有13个根服务器系统。其实全球至少有1000多台根服务器,北京有3台。另外,在这13个根服务器系统由12家机构管理,分布在全球100多个地区。所以每一个编号的根服务器系统,不是一台机器,而是有几十台或上百台服务器。
目前广泛使用的互联网是第一代互联网,采用的互联网协议版本号为4,即IPv4。美国是第一代互联网的创立者,占有网络核心资源,处于绝对垄断地位。随着互联网的蓬勃发展,对IP地址的需求也迅猛增加,IPFv4所能提供的地址很快将发完。第二代互联网所依据的协议是IPv6。它可以提供无限数量的IP地址。
DNS系统分布式数据结构
根域:位于树状结构最顶层,用"."表示。
一级域(顶级域):一般代表一种类型的组织机构或国家地区。
二级域:用来标明顶级域内的一个特定的组织,国家
顶级域下面的二级域名由国家部门统一管理。
子域:二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名。
主机:主机位于域名空间最下层,就是一台具体的计算机。
DNS 使用的协议及端口号
DNS的默认端口为53。DNS端口分为 TCP 和 UDP。
DHCP服务端与客户端的端口号
TCP 是用来做区域传送,多用于主从同步在一个区中主 DNS 服务器从自己本机的数据文件中读取该区的 DNS 数据信息,而辅助 DNS 服务器则从区的主 DNS 服务器中读取该区的 DNS 数据信息。
UDP 是用来做 DNS 解析的域名:通常由一个完全合格域名(FQDN)标识。FQDN 全称 Fully Qualified Domain Name,它能准确表示出其相对于 DNS 域树根的位置,也就是节点到DNS 树根的完整表述方式,从节点到树根采用反向书写,并将每个节点用“ . ”分隔,对于 DNS 域 google 来说,其完全正式域名(FQDN)为 google.com。
例如,google 为 com 域的子域,其表示方法为 google.com,而 三ww 为 google 域中的子域,可以使用 三ww.google.com,表示。
PS:通常,FQDN 有严格的命名限制,长度不能超过 256 字节,只允许使用字符 a~z,0 ~ 9,A
~Z 和减号( - )。点号( . )只允许在域名标志之间(例如“google.com”)或者 FQDN 的结尾使用。域名不区分大小,由最顶层到下层,可以分成:根域、顶级域、二级域、子域。
即全域名:同时带有主机名和域名的名称
FQDN = Hostname + DomainName
例如:www.baidu.com.
PS:最前面的一定是主机,最后一个点表示根域,通常是省略不写的,但实际上 www.abc.com=www.abc.com.
域名结构:
http://www.sina.com.cn./
http://主机名,子域,二级域,顶级域,根域/
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
中国数码
阿里云
腾讯云
西部数码
亚马逊
域名体系结构
所有的域名必须以( . )结尾
-
根域名( . )
-
一级域名(顶级域): .cn(中国)、 .uk(英国) .gov(政府部门)、 .tw(台湾)、 .kr(韩国) .jp(日本) ……
-
二级域名: .com.cn(国家域名的工商企业) .net.cn(国家域名的网络供应商) .edu.cn (教育机构) .org.cn(非盈利) .net.cn(中国运营商) ……
-
三级域名: .zol.com.cn .sina.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
两种查询方式
正向解析
查询过程:
①、先查本机的缓存记录
②、查询 hosts 文件
③、查询 DNS 域名服务器,交给 DNS 域名服务器处理
以上过程为递归查询:我问一个问题要答案,你会直接给我结果
④、这个 DNS 服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步。
⑤、求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器。
⑥、求助顶级域服务器,顶级域服务器饭同能合知谱结果的二级域服务器然他去找二级域服务器。
⑦、求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的 IP 地址返回给本地域名服务器。
⑧、本地域名服务器将结果记录到缓存,然后把域名和 IP 的对应关系返回给客户端。
递归查询
递归查询是一种 DNS 服务器的查询模式,在该模式下 DNS 服务器接收到客户机请求,必须使用一个准确的查询结果回复客户机。如果 DNS 服务器本地没有存储查询 DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
一句话,就是客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。
迭代查询
DNS 服务器另外一种查询方式为迭代查询,当客户机发送查询请求时,DNS 服务器并不直接回复查询结果,而是告诉客户机另一台 DNS 服务器地址,客户机再向这台 DNS 服务器提交请求,依次循环直到返回查询的结果为止。
一句话:客户机发送请求后,需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供其他服务器的地址,而不会帮你去请求查询,这与递归截然相反。
从递归和迭代查询可以看出
:
客户端-本地 DNS 服务端:这部分属于递归查询。
本地 DNS 服务端—外网:这部分属于迭代查询。
递归查询时,返回的结果只有两种:查询成功或查询失败。
迭代查询,又称作重指引,返回的是最佳的查询点或者主机地址。
递归:客户端只发一次请求,要求对方给出最终结果。
迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其他名称服务器列表。客户端会再向返回的列表中发出请求,直到找到最终负责索查域名的名称服务器,从它得到最终结果。
授权回答:向 DNS 服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答。
DNS服务器类型
缓存域名服务器
-
只提供域名解析结果的缓存功能 目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。
- 称为DNS高速缓存服务器
- 通过向其他域名服务器查询获取域名 -> IP地址记录
- 将域名查询结果缓存到本地,提高重复查询时的速度
主域名服务器
-
负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
- 特定DNS区域的权威服务器,具有唯一性
- 负责维护该区域内所有域名 -> IP地址的映射记录
- 需要自行建立所负责区域的地址数据文件
从域名服务器
-
当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
- 称为辅助域名服务器,是对主域名服务器的热备份
- 其维护的域名 -> IP地址记录来源于主域名服务器
- 需要从主域名服务器自动同步区域地址数据块
转发域名服务器
- 负责所有非本地域名的本地查询,转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。
构建DNS域名解析服务器
BIND软件安装
BIND(Berkeley Internet Name Daemon)
- BIND是应用最广泛的DNS服务程序
- 官方站点:https://www.isc.org/
相关软件包 - 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-utils 和 bind-libs ,因此只需要安装 bind 和 bind-chroot 即可。
windows 系统查询 DNS 缓存命令:ipconfig /displaydns
windows 系统清理 DNS 缓存命令:ipconfig /flushdns
linux 清 dns 缓存需要安装 nscd 软件,启动、执行 nscd -i hosts
BIND服务端程序
- 主要执行程序:/usr/bin/named
- 默认监听端口:53(TCP和UDP)
- 主要配置文件:/etc/named.conf
- 保存 DNS 解析记录的数据文件位于:/var/named
安装 bind 软件包
yum install bind -y (必须网络源或光盘挂载)或 rpm -ivh 前提挂载光盘(系统盘 ISO 镜像)
先查看是否安装
DNS正向解析
查看配置文件所在位置
修改主要配置文件
vim /etc/named.cont
配置区域数据文件
自己所配置的区域数据文件
ps:两张一个意思(我怕)
启动服务,关闭防火墙
更改客户端中的域名解析配置文件,改为DNS服务器地址
改前(原来的)
改后
测试DNS解析
DNS反向解析
修改区域配置文件
[root@ky19 named]# vim /etc/named.rfc1912.zones
先备份配置文件,再编辑指定区域数据配置文件
测试DNS反向解析
主从服务器
环境:需要两台虚拟机,一台为主服务器,一台为从服务器
主服务器
修改主配置文件
[root@ky19 home]# vim /etc/named.conf
修改区域配置文件
[root@ky19 home]# vim /etc/named.rfc1912.zones
配置完后保存并退出,重启named
[root@ky19 home]# systemctl restart named
指定主服务器的DNS
[root@ky19 home]vim /etc/resolv.conf —— 指定服务器的DNS
# Generated by NetworkManager
nameserver 192.168.10.20
测试DNS解析
[root@ky19 home]# host www.ky19.com
www.ky19.com has address 192.168.10.20