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

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(属于京东云资源)、申请用途。