用户与互联网中的某台主机通信的时,必须知道对方的 IP 地址,然而用户很难记住长达 32 位的 IP 二进制主机地址,即使是点分十进制的 IP 地址也是不太容易记忆。为了方便记忆,引入了域名系统,用来便于人们使用的机器名字转换成 IP 地址。
域名和 IP 地址的映射关系就是记录在 DNS 服务器中的。
域名解析的过程
这里首先来看几个重要的概念
根域名服务器
根域名服务器是最高层次,最重要的域名服务器。根域名服务器知道所有的顶级域名服务器的域名和 IP 地址。本地域名服务器要对互联⽹上任何⼀个域名进⾏解析,如果⾃⼰⽆法解析,⾸先求助根域名服务器。
顶级域名服务器
这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。当收到 DNS 查询请求时,就给出相应的回答(可能是最后的结果,也可能是下一步应当查找的域名服务器的 IP 地址)
权限域名服务器
负责一个区的域名服务器,当一个权限域名服务器,还不能给出最后的查询回答时,就会告诉发出请求的 DNS 客户端,下一步应当找哪个权限域名服务器。
本地域名服务器
当一个主机发出 DNS 查询的时候,首先就是发送给本地域名服务器。每一个互联网提供者 ISP ,或者一个大学都可以有自己的本地域名服务器。
如果是通过DHCP配置,本地 DNS 由你的网络服务商(ISP),如电信、移动等自动分配,它通常就在你网络服务商的某个机房。
来看下查询的步骤
1、主机向本地域名服务器查询 的 IP 地址,这一步是递归查询;
2、本地域名服务器会在自己的服务器中查找对应的域名映射关系,如果找了直接返回 IP 地址,没有就会询问根域名服务器;
3、根域名服务器会告诉本地域名服务器,下一次查询的顶级域名服务器的 IP 地址;
4、本地服务器继续向顶级域名服务器发起查询请求;
5、顶级域名服务器找到了就返回结果,如果没找到就会告诉本地域名服务器,下一次查询的权限域名服务器的 IP 地址;
6、本地服务器继续向权限域名服务器发起查询请求;
7、权限域名服务器会告诉本地域名服务器,查询的主机 IP 地址,当一个权限域名服务器,还不能给出最后的查询回答时,就会告诉发出请求的 DNS 客户端,下一步应当找哪个权限域名服务器;
8、本地域名服务器最终把查询结果返回给主机,主机就能和目标建立连接了。
传统 DNS 存在的问题1、域名缓存问题
会在本地做一个缓存,这样就不用每一个请求都去请求权威 DNS 服务器,当再次访问直接拿取本地的缓存即可。
既然是有缓存,就会存在缓存同步不及时的情况,这样一些请求就会发送到旧的页面。
再就是本地的缓存,往往使得全局负载均衡失败,因为上次进行缓存的时候,缓存中的地址不一定是这次访问离客户最近的地方,如果把这个地址返回给客户,那肯定就会绕远路。
2、域名转发问题
经过域名转发,域名查询可能会跨运营商。
栗如:
如果是A运营商的客户,访问自己运营商的 DNS 服务器,如果 A 运营商去权威 DNS 服务器查询的话,权威 DNS 服务器知道你是A运营商的,就返回给一个部署在 A 运营商的网站地址,这样针对相同运营商的访问,速度就会快很多。
但是A运营商偷懒,将解析的请求转发给 B 运营商,B 运营商去权威 DNS 服务器查询的话,权威服务器会误认为,你是 B 运营商的,那就返回给你一个在 B 运营商的网站地址吧,结果客户的每次访问都要跨运营商,速度就会很慢。
3、出口 NAT 问题
我们知道,网络出口的时候解析域名的命令,很多机房都会配置NAT,也即网络地址转换,使得从这个网关出去的包,都换成新的IP地址。NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。当然请求返回的时候,在这个网关,再将IP地址转换回去解析域名的命令,所以对于访问来说是没有任何问题。
但是一旦做了网络地址的转换,权威的DNS服务器,就没办法通过这个地址,来判断客户到底是来自哪个运营商,而且极有可能因为转换过后的地址,误判运营商,导致跨运营商的访问。
4、DNS 域名更新问题
本地DNS服务器是由不同地区、不同运营商独立部署的。对域名解析缓存的处理上,实现策略也有区别,有的会偷懒,忽略域名解析结果的TTL时间限制,在权威DNS服务器解析变更的时候,解析结果在全网生效的周期非常漫长。但是有的时候,在DNS的切换中,场景对生效时间要求比较高。
例如双机房部署的时候,跨机房的负载均衡和容灾多使用DNS来做。当一个机房出问题之后,需要修改权威DNS,将域名指向新的IP地址,但是如果更新太慢,那很多用户都会出现访问异常。
5、解析延迟问题
DNS的查询过程需要递归遍历多个DNS服务器,才能获得最终的解析结果,这会带来一定的时延,甚至会解析超时。
6、运营商劫持
本地运营商可能对某些域名进行劫持、屏蔽。
DNS劫持就是劫持 DNS 服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原 IP 地址转入到修改后的指定 IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。
1、本站资源针对会员完全免费,站点中所有资源大部分为投稿作者付费教程,切勿轻易添加教程上除本站信息外的任何联系方式,谨防被割,如有疑问请随时联系客服。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。