域名系统
域名系统(英语:Domain Name System,缩写:DNS)因特网使用的命名系统,能够使人更方便地访问互联网,用来把人便于记忆的机器名字转换为IP地址。DNS服务是和HTTP协议一样属于应用层,DNS在进行区域传输的时候使用TCP协议,其它时候则使用UDP协议。
域名
| sc | .yutao | .co |
|---|---|---|
| 三级域名 | 二级域名 | 顶级域名 |
类型
域名分为顶级域名和二级域名,顶级域名又可分为国际域名和国内域名,二级域名分为类别域名和行政区域名。
国际顶级域名 | 后缀 | 类型| | —- | —- | |.org|非盈利组织 | |.edu|教育机构 | |.com|工商企业 | |.net|网络提供商| |.gov|政府机构 |.mil|美国军事部门域名
国内顶级域名
| 后缀 | 类型 |
|---|---|
| .cn | 中国 |
| .hk | 中国香港 |
| .tw | 中国台湾 |
| .us | 美国 |
| .jp | 日本 |
| .kr | 韩国 |
DNS服务器
作用:
- 正向解析—根据域名查找IP地址
- 反向解析—根据IP地址查找域名
级别
- 本地域名服务器:自己的主机填的DNS服务器地址,比如114.114.114.114
- 根域名服务器:最高级别的域名服务器,负责返回顶级域的权限域名服务器地址。全球一共13台,10台在美国,1台日本,一台瑞典,一台英国,设镜像服务器可解决该问题,并使得实际运行的根域名服务器数量大大增加。
- 顶级域名服务器:国际顶尖域名服务器,如.com .cn .org
- 权限域名服务器:负责维护一个区域的域名信息,如yutao.co
类型
- 主域名服务器特定DNS区域的官方服务器,具有唯一性,权威性,负责维护一个区域所有域名信息。
- 缓存域名服务器:又叫唯高速缓存服务器,当从远程域名服务器获得域名解析信息后,将其缓存到本地中,当下次需要请求相同的域名解析时,直接从本地缓存中读取,缓存域名信息不具有权威性,提高重复查询的速度。
- 辅助域名服务器:又叫从域名服务器,当主域名服务器出现故障,关机或负载过重等情况,辅助域名服务器作为备份服务器来提供域名解析服务,辅助域名服务器是从主域名服务器下载的所有域名信息,域名信息不具有修改权限。
- 转发域名服务器 负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果
DNS解析过程
输入www.yutao.co时:
-
1.浏览器先检查自身缓存中有没有被解析过的这个域名对应的ip地址,如果有,解析结束。
-
2.如果浏览器缓存中没有,浏览器会检查操作系统缓存,就是/etc/host文件,如果有,解析结束。
-
3.如果host文件中没有,主机向其本地DNS服务器进行递归查询,一般这台服务器距离你不会很远,而且缓存了大量域名解析结果,大约80%的域名解析到这里就完成了。
-
4.如果本地域名服务器仍然没有,采用迭代的查询,向根域名服务器查询。
-
5.根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的地址,比如,去找.co。
-
6.本地域名服务器向顶级域名服务器.co发起查询。
-
7.顶级域名服务器告诉本地域名服务器,下一次应查询的权限域名服务器地址yutao.co
-
8.本地域名服务器向权限域名服务器yutao.co发起查询。
-
9.权限域名服务器根据映射关系表,告诉本地域名服务器所查询的yutao.co服务器的IP地址
-
10.本地域名服务器缓存了yutao.co域名和对应的IP地址。
-
11.本地域名服务器把解析的结果返回给用户。
迭代查询和递归查询
- 递归查询:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,本地域名服务器向根域名服务器继续发出查询请求报文帮查,而不是让主机自己进行下一步查询,只有 IP地址和无法查询两种报错。
- 迭代查询:根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器自己向顶级域名服务器查询。
关于递归查询和迭代查询
主机向本地域名服务器的查询一般都是采用递归查询。
- 所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
本地域名服务器向根域名服务器的查询的迭代查询。
- 迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。 最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。
递归查询过程一般繁盛在客户端到本地DNS服务器 迭代查询,一般发生在本地DNS向根服务器情况。
也可以这么记: 让请求自己去查询下一步,叫迭代。 自己帮请求查叫递归。
DNS服务器搭建
1.缓存域名服务器
服务机配置
yum install bind -y #下载bind,bind是linux系统下的一个DNS服务程序
service named start #启动
ps aux|grep named #查看进程
ss -anplut|grep named #查看端口号
yum install bind-utils -y #bind-utils是bind软件提供的一组DNS工具包,里面有一些DNS相关的工具.主要有:dig,host,nslookup,nsupdate.使用这些工具可以进行域名解析和DNS调试工作。
vim /etc/resolv.conf
#nameserver 127.0.0.1 #使用自己本机解析
nslookup www.yutao.co
dig www.yutao.co #可以看到已经可以给自己进行域名解析
vim /etc/named.conf #修改配置文件允许其他主机解析
配置文件改为any
options {
listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; recursing-file "/var/named/data/named.recursing"; secroots-file "/var/named/data/named.secroots"; allow-query { any; };
service named restart #重启named服务
systemctl stop firewalled #关闭防火墙
systemctl status firewalled #查看到防火墙状态enable
客户机配置
vim /etc/resolv.conf
#namesever 192.168.2.4 IP地址是刚才的服务机
客户机使用服务机解析成功
2.主域名服务器 服务机
vim /etc/named.rfc1912.zones
添加配置告诉named为wyt.com提供域名解析
zone “wyt.com” IN { type master; file “wyt.com.zone”; allow-update { none; }; };
file “wyt.com.zone”; # wyt.com.zone文件里存放DNS记录 A,CNAME,TXT
cd /var/named
cp -a named.localhost wyt.com.cone # -a 保留原来属性,用户,组,时间,权限,因为named进程是name用户创建
vim wyt.com.zone
添加一条A解析记录 www A 101.43.235.217
$TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 AAAA ::1 www A 101.43.235.217
service named restart
[root@localhost named]# nslookup www.wyt.com Server: 127.0.0.1 Address: 127.0.0.1#53 Name: www.wyt.com Address: 101.43.235.217
本机解析成功
客户机配置
vim /etc/resolv.conf
#namesever 192.168.2.4 IP地址是刚才的服务机
[root@centos71 ~]# nslookup www.wyt.com Server: 192.168.2.4 Address: 192.168.2.4#53 Name: www.wyt.com Address: 101.43.235.217
客户机解析成功