什么是智能 DNS解析?
,在收到解析请求时,并不会判断访问者来源,而是会返回一个固定的 IP 地址或者随机选择一个 IP 地址返回给访问者,这样容易产生较高的延时或造成线路的拥堵。而智能解析,可以智能判断访问者来源,并为其匹配不同的 IP 地址,这样就能够减少解析时延,提升网站访问速度。
传统 DNS 解析
我们以域名 为例,它有三台服务器,我们通过域名解析分别将其指向移动 IP ( 192.1.1.1 )、联通 IP ( 192.1.1.2 )和电信 IP ( 192.1.1.3 )。
那么当用户在访问 时,传统 DNS 解析不会判断用户的来源,会将三个 IP 地址全部返回给用户的本地 ,再由本地 DNS 服务器随机将其中一个 IP 地址返回给访问者,如果访问者 IP 是移动线路,返回给一个电信或联通 IP ,那么就会造成跨网访问,提高了访问延迟。
智能 DNS 云解析
会根据访问者 IP 所属运营商返回对应的解析地址,如果访问者是移动 IP ,就返回移动服务器地址( 192.1.1.1 ),如果访问者是联通 IP ,就返回联通服务器地址( 192.1.1.2 ),如果访问者是电信 IP ,就返回电信服务器地址( 192.1.1.3 )。这样就避免了访问者跨网访问产生的高延迟,解析访问速度都大大提升。
实现原理
智能云解析通过识别 LocalDNS 的出口 IP ,来判断访问者的来源。
( 1 )如果客户端的 LocalDNS 支持 EDNS
智能云解析会优先 获取 edns-client-subnet 扩展里携带的 IP ,如果 edns-client-subnet 扩展里存在 IP ,云解析 DNS 会以该 IP 来判断访问者的地理位置 ;如果不存在,则以 LocalDNS 出口 ip 来判断访问者的地理位置。
( 2 ) 如客户端 LocalDNS 不支持 EDNS
LocalDNS 会迭代请求至 智能云解析,云解析根据访问者 LocalDNS 出口 IP 判断其所在的地理位置,匹配对应的解析结果。
( 3 ) 如客户端 LocalDNS 变相支持 EDNS
用户发起 DNS 请求,递归到 LocalDNS ,则 LocalDNS 将本次请求发送到二级节点,通过二级节点向 发起请求,此时云解析 DNS 会根据 LocalDNS 二级节点的地域位置返回具体的细分线路解析结果。