DNS及域名相关

域名生效原理

域名解析流程涉及节点较多,以www.jdcloud.com为例,简化流程图如下所示:

域名生效.png

1.用户发起DNS查询请求,携带域名www.jdcloud.com

2.Local DNS接收到DNS解析请求,如果有缓存直接返回

3.Local DNS接收到DNS解析请求,没有缓存,则向根域权威服务器发起请求

4.根域权威服务器返回顶级域com服务器地址

5.Local DNS发送请求到顶级域com服务器,查询jdcloud.com域所属权威服务器

6.顶级域com服务器返回jdcloud.com域所属权威服务器

7.Local DNS发送请求到jdcloud.com权威服务器,即云解析服务器

8.云解析服务器,根据用户通过控制台下发的配置进行解析,返回www.jdcloud.com域名对应IP地址

以上就是简化的完整域名解析流程,客户发起DNS查询请求到Local DNS,Local DNS负责逐级获取解析结果,最终通过云解析获取到所需数据

域名NS修改生效时间

域名NS记录只能通过域名注册商修改,修改之后需要同步到根域服务器才能在全网生效,各地同步时间不一致,通常需要24-48小时,超过48小时还未生效,需要联系对应的域名注册商进行定位分析。

解析记录添加及修改生效流程

1、 新增解析记录

云解析服务器会快速同步到所有节点,解析配置秒级生效。客户发起DNS请求,由于Local DNS不存在缓存,会直接进行迭代查询,获取到新增解析记录。客户端理论生效时间也是秒级,但是某些Local DNS会在没有缓存的情况下,劫持到自身的广告通知等页面,实际生效时间取决于客户端所在地区Local DNS行为,通常不会超过1个小时。

2、 修改解析记录

云解析服务器也会快速同步到所有节点,解析配置秒级生效。整个域名解析流程各节点均存在缓存,缓存时效按照记录值的TTL进行约束,只有TTL过期之后,Local DNS才会重新进行迭代查询获取新的记录值。理论刷新时间大致与记录TTL保持一致。但是某些Local DNS会修改从权威服务器获取的TTL值,实际刷新时间,取决于客户端配置的Local DNS行为。

TTL介绍

一、什么是域名的 TTL 值?

TTL是域名解析的生命周期,TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上的缓存时间。每一次访问网站A,不会每次都到DNS服务器域名解析,而是第一次访问时才到DNS服务器进行解析,然后解析的结果会缓存到当地的递归DNS服务器上,当地的第二个用户访问网站A时,递归服务器会直接返回解析结果,而不会再向DNS服务器请求解析,那么多久之后递归服务器才会更新这个解析结果呢?这就是TTL来决定的。

例如:

有一个域名www.aaa.com,对应IP地址为1.1.1.1,把它的TTL设为3600秒,这条记录存储在一台DNS服务器上。现在有一个用户在访问www.aaa.com时,网络服务商的DNS就会试图为用户解析www.aaa.com,当然网络服务商这台DNS服务器并没有包含www.aaa.com这条信息,因此无法立即解析,但是通过全球DNS的递归查询后,最终定位到www.aaa.com这台DNS服务器对应的IP地址为1.1.1.1并将结果告诉网络服务商的DNS服务器,然后再由网络服务商告诉用户结果。网络服务商为了以后加快对www.aaa.com这条记录的解析,就将刚才的1.1.1.1结果保留一段时间,这段时间就是TTL值,在这段时间内如果用户又有对www.aaa.com这条记录的解析请求,它就直接告诉用户IP地址为1.1.1.1,当TTL到期则又会重复上面的过程。

二、TTL通常设置为多少合适?

如此看来,那我把TTL设置为非常小,比如1秒,岂不是最好,这样我修改了解析那么对于用户来说立即就可以生效。答案是否定的,如果TTL设置为1秒,那么就意味着几乎每次用户的解析,递归服务器都需要向DNS服务器进行解析请求,这样所耗费的时间就会增加很多,而且权威服务器的解析因为要判断用户的来源进行智能解析,比起来直接使用缓存回答耗费的时间会更长,而且失败率也会更高,因此访问体验和解析稳定性都有损害。

当前京东云界面TTL值可以设置范围是60-604800秒。

下表给出一些建议供您参考:

IP经常变动动态IP宕机检测服务器架构建议TTL值(秒)
不使用单服务器600
使用多服务器180
不使用单服务器300
不限不限120
大型网站60
热备、容灾、IP固定

显性URL和隐性URL

显性URL 转发:

例如: http://b.com/ 指向 http://a.com/example/(任意目录); 当在浏览器地址栏中敲入http://b.com/ 后回车, IE浏览器的地址栏里显示的地址会由原来您敲入的http://b.com/ 自动变为显示真正的目标地址 http://a.com/example/

隐性URL 转发:

例如:http://b.com/ 指向 http://a.com/example/ (任意目录);当在浏览器地址栏中敲入 http://b.com/ 后回车,IE 浏览器的地址栏里显示的地址保持不变,仍是 http://b.com/ ,但实际访问到的是 http://a.com/xxx/ 的内容。

反向解析

什么是反向解析?

域名反向解析即从 IP 地址到域名的映射,由于正向的解析是从域名到 IP 地址的映射,如果要确认一个 IP 地址是否对应一个或者多个域名,需要从 IP 出发遍历整个域名系统,这是无法实现的,因此 RFC1035 定义了 PTR(Pointer Record)记录,指针记录是邮箱系统中的一个数据类型,与 A 记录对应,PTR 记录将 IP 地址指向域名。

反向解析的应用场景

反向解析主要应该在邮件服务器中,启用反向解析,可以拒绝接收所有没有注册域名发来的信息。因为多数垃圾邮件发送方使用动态分配或者没有注册域名的 IP 发送垃圾邮件,以逃避追踪,所以可以在邮件服务器中拒绝接收来自无法反向解析到域名的 IP 地址发送的信息,作为一种拒收垃圾邮件的手段。

京东云如何实现反向解析?

反向解析需要向运营商(ISP)进行申请添加反向解析,所以京东云仅支持 IP 地址属于京东云资源的反向解析。反向解析需要提交工单申请审核,审核通过后方可使用。

注意:

申请非bgp IP的反向解析会产生费用(建议您使用bgp IP),请您知悉,详细费用请咨询京东云技术服务咨询人员。

提交工单时申请时请向京东云工程师说明:域名、公网IP(属于京东云资源)、申请用途。

Leave a Reply

Your email address will not be published. Required fields are marked *