用户与互联网中的某台主机通信的时,必须知道对方的 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,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。


娜娜项目网每日更新创业和副业教程

网址:nanaxm.cn 点击前往娜娜项目网

站 长 微 信: nanadh666

声明: 本站内容转载于网络,版权归原作者所有,仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任,若侵犯到你的版权利益,请联系我们,会尽快删除处理!