【前端基础】4.DNS基本工作原理

视频1
视频2

DNS概要

DNS(Domain Name System)域名系统,在TCP/IP网络中有非常重要的作用。其通过域名解析协议使实际IP与对外域名之间建立对应关系。

其最早部署在本地host主机。(在windows下System32.drivers.etc.hosts)。其局限性在于:从大量对应关系找目标过于困难且速度缓慢,同时也不能把所有的对应关系都写进去)

DNS是一个分布式数据库,命名系统采用层次的逻辑结构,如同一颗倒置的树,这个逻辑的树状结构称为域名空间,由于DNS化分了域名空间,所以各机构可以使用自己的域名空间创建DNS信息。
注:DNS域名空间中,树的最大长度不得超过127层,树中每个节点最长可以存储63个字符。

域名
共有3种顶级域

组织域3个字符,表示DNS域中所包含的组织的主要功能或活动
com:商业机构组织
edu:教育机构组织
gov:政府机构组织
mil:军事机构组织
net:网络机构组织
int:国际机构组织
org:非营利机构组织
地址域采用两个字符的国家或地区代号,如cn-中国,kr-韩国,us-美国
反向域这是一个特殊域,名字为in-addr.arpa,用于IP地址映射到名字(反向查询)

例:www.baidu.com.
一共有四层,包含了一个根域。

工作过程

工作1工作2

传输方式

1.学校等区域
传输方式

DNS服务器的高速缓存区:记录IP地址,下一次再访问baidu就不会这么复杂,DNS服务器直接发送IP地址。默认存储一天,因为ip地址是会变化的,同时也可以手动清空。
2.手动设置
使用第三方浏览器就不会访问前面的DNS服务器。
好处:用到人比较多,都访问过,高速缓存区存储内容比较多,提高速度。
3.使用路由器自带的DNS服务器
使用DHCP协议自动获取路由器的DNS地址(默认网关地址)。

域和域名

DNS树上的每个节点代表了一个域,通过这些节点对整个域名空间进行划分,成为一个层次结构。
域名空间的每个域的名字,通过域名进行表示,并将每个节点用 “.” 分隔。

例:
顶级域名 test.com
二级域名 test.cn.com
三级域名 test.mail.cn.com

FQDN

完全合格域名,长度<=256字节,只允许使用字符a-z,0-9,A-Z和减号“-”,点号 " . " 只允许在域名标志之间或者FQDN的结尾使用。
分为根域,顶级域,二级域,子域。

区(zone),资源记录

区是DNS名称空间的一部分,其包含了一组存储在DNS服务器上的资源记录。
使用区的概念,DNS服务器回答关于自己区中主机的查询,每个区都有自己的授权服务器。

主域名服务器与辅助域名服务器(为了实现负载均衡)

当区的辅助服务器启动时,它与该区的主控服务器进行连接并启动一次区传输,区辅助服务器定期与区主控服务器通信,查看区数据是否改变,如果改变了,它就启动一次数据更新传输。
每个区必须有主服务器,另外每个区至少要有一台辅助服务器,否则如果该区的主服务器崩溃了,就无法解析该区的名称。(相当于备份)
辅助服务器优点
(1)容错能力
(2)减少广域链路的通信量
如果某个区在远程有大量客户机,用户就可以在远程添加该区的辅助服务器,并把远程的客户机配置成先查询这些服务器,这样就能防止远程客户机通过链路通信来进行DNS查询。
(3)减轻服务器的负载
辅助服务器能回答该区的查询,从而减少该区主服务器必须回答的查询数。

DNS服务器

运行DNS服务器程序的计算机。

DNS缓存

提高处理速度,DNS服务器在解析客户机请求时,如果本地没有该DNS信息,则可以查询其他DNS服务器,当其他域名服务器返回查询结果时,该DNS服务器能够使用缓存中的DNS信息进行解析

DNS查询

寻找www.163.com
(1) 寻找直连的服务器,家用的服务器一般都自带域名解析功能,查看其是否有记录。
(2) 问根服务器,寻求 .com的地址。
(3) 问.com服务器,寻求163.com的地址。
(4) 问163.com服务器,寻求163.com的服务器,同时,直连服务器将之存入缓存。

本地主机和本地DNS服务器查询-------递归查询,一次性沟通完成。
本地DNS服务器和其他DNS服务器查询-------迭代查询。
一般情况下,从PC客户端到本地DNS服务器属于递归查询,而DNS服务器之间是迭代查询。

正向解析与反向解析

正向:从域名到IP地址。
反向:从IP地址到域名,作用于服务器的身份验证。

资源记录

SOA资源记录(老大)每个区在区的开始处都包含了一个起始授权记录,简称SOA记录。SOA定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在唯一的SOA记录。
NS资源记录(管理)NSA(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器在进行解析,每个区在区根处至少包含一个NS记录。
A资源记录地址(A)资源记录把FQDN映射到IP地址,因此有此记录。所以DNS服务器能解析FQDN域名对应的IP地址。
PTR资源记录相对于A资源记录,指针(PTR)记录把IP记录地址映射到FQDN。用于反向查询,通过IP地址找到域名。
CNAME资源记录(别名)别名记录(CNAME)资源记录创建特定FQDN的别名。用户可以使用CNAME记录来隐藏用户网络的实现细节,使连接的客户机无法知道真正的域名。
例如:ping百度时,解析到了百度的别名服务器,百度有个cname=www.a.shifen.com的别名。

安装DNS服务器

工作模式:C/S模式
端口:

[root @xuegod64~]# vim/etc/services
tcp/53 udp/53 #用于客户端查询
tcp/953 udp/953 #用于DNS主从同步

安装DNS:
BIND全称为Berkeley Internet Name Domain(伯克利因特网名称域系统),BIND主要有三个版本:BIND4,BIND8,BIND9。
BIND8融合了许多提高效率,稳定性和安全性的技术,而BIND9增加了一些超前的概念:IPV6,密钥加密,多处理器支持,线程安全操作,增量区传送等。

相关程序包

DNS服务的主程序包:

[root @xuegod63~]# rpm -vih/mnt/Packages/bind-9.8.2-0.17.rcl.el6_4.6.x86_64.rpm

为了提高安全性,使bind可以在一个chroot的模式下运行,也就是说,bind运行时的 /(根) 目录,只是系统中的一个子目录而已,这样做的目的是为了提高安全性,因为在chroot的模式下,bind可以访问的范围仅限于这个子目录的范围里,无法进一步提升进入到系统的其他目录中。

[root @xuegod63~]# rpm -vih/mnt/Packages/bind-chroot-9.8.2-0.17.rcl.el6_4.6.x86_64.rpm

客户端工具,默认已经安装,用来搜索域名指令。

[root @xuegod63~]# rpm -vih/mnt/Packages/bind-utils-9.8.2-0.17.rcl.el6_4.6.x86_64.rpm

DNS服务器相关配置文件
name.comf是BIND的核心配置文件,它包含了BIND的基本配置,但其不包括区域数据。

[root @xuegod63~]# ls /etc/named.comf/etc/named.conf

启动服务

启动服务1启动服务2

启动服务3

此服务的使用方法

在客户端配置好DNS服务器
配置服务器1
配置服务器2
配置服务器3
配置DNS迭代和转发
配置DNS服务器解析:xuegod.cn
全局配置修改(修改3项)
全局配置1
全局配置2
全局配置3
全局配置4
全局配置5全局配置6
全局配置7

全局配置8
全局配置9
全局配置10
全局配置11

$TTL 1D:设置有效地址解析记录的缓存时间,默认为1天也就是1D。
#原来的@表示当前的域xuegod.cn.为方便大家记忆,我们这里直接写成xuegod.cn.
#设置SOA记录为:dns.xuegod.cn,#在此配置文件中写域名,都要把根.也要写上。
#域管理邮箱root.xuegod.cn,由于@有其他含义“.”代替@。

0:更新序列号,用于标示数据库的变换,可以在10位以内,如果存在辅助DNS区域,建议每次更新完数据库,手动加一。
1D:刷新时间,从域名服务器更新地址数据库文件的间隔时间,默认为1天。
1H:重新延时,从域名服务器更新地址数据库失败之后,等待多长时间,默认为1小时。
1W:到期,失效时间,经过该时间仍无法更新地址数据库,则不再尝试,默认为一周。
3H:设置无效地址解析记录(该数据库中不存在的地址)默认缓存时间。设置无效记录,最少缓存时间为3小时。

资源参数详解:
SOA 区域授权起始记录,区域文件第一条记录,而且一个区域文件只能有一条。
NS 域的授权名称服务器。
MX 域的邮件交换器,要跟着一个优先值,越入越高。
A IPV4主机地址。
AAAA IPV6主机地址。
PTR 解析IP的指针(反向解析)。
CNAME 权威(正式)定称,定义别名记录

重启
cd切出目录
切除目录
验证
查看本地服务器DNS地址

验证1
验证2
验证3

使DNS支持迭代查询
注释掉,就可以支持。
recursion yes //默认是能支持迭代查询
迭代1迭代2

迭代3
重启服务

重启验证,ping 百度
验证
转发功能打开

转发1
转发2
转发3

转发4
转发5

forward only;//仅执行转发操作,only:仅转发;first:先查找本地的zone,再转发。
forwarders {8.8.8.8}//指定转发查询请求的DNS服务器列表。

转发的意思就是 “ 我直接不干了,别人干 ”。
迭代的意思就是 “ 找人告诉我,我再告诉回去 ”。

配置主从DNS服务器实现负载均衡

配置主DNS服务器
服务器默认是能支持DNS服务器的,不写也可以,但此时所有的网段都能做DNS服务器。
配置方法:在区域配置中添加指定从DNS服务器网段,重启。
配置方法1
配置放法2
重启

配置从DNS服务器

安装
启动服务
启动服务
添加内容,修改3个"any",注释掉3行内容,写区域zone(不同)。
从服务器1
从服务器2
从服务器3
重启从服务器
重启1
由下图我们可以看到其已经多了一个文件。
重启2
下图与主DNS服务器是一样的。
重启3

重启从DNS服务器会在:/var/named/chroot/var/named/slaves文件夹下自动创建一个文件夹下自动创建一个文件xuegod.cn.zone.file,这个文件是从DNS服务器从主DNS服务器上获取的数据。
不是立刻同步,有一个同步时间,默认一天。
如果想立刻同步,删除文件。
同步

配置DNS密钥认证

同步时间:服务器两台时间一致。
同步时间

生成密钥,进行主从认证,在主DNS服务器上操作
密钥1
密钥2

密钥3
密钥4
密钥5

-a hmac-md5: 采用hmac-md5加密算法。
-b 128:生成的密钥长度为128位。
-n 密钥类型。我们选择主机类型:HOST。
-n

<nametype>: ZONE|HOST|ENTITY|USER|OTHER
(DNSKEY generation defults to ZONE)

abc # 为生成密钥的名字
生成时速度有点慢,因为生成密钥需要一些随机事件,因此我们可以通过移动鼠标来执行。

修改主DNS配置
恢复之前注释掉的,添加key,修改zone。
key1key2key3key4修改从服务器
key5key6key7key8重启
key9key10
验证,删除文件

key11

测试工具

nslook测试域名解析

交互解析:

验证1

非交互解析:

验证2

dig命令
Linux下使用dig命令来查询域名信息,当然也可以使用nslookup,但dig比nslookup更方便更强大一些。
默认已经安装,如下图。

测试1
能够指定谁来解析。

测试2测试3

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值