一、什么是DNS委派?
DNS委派,简单来说,就是一台DNS服务器把某个子域名的解析权限交给另一台DNS服务器来负责。打个比方,一家公司总部在上海,分公司在北京,总公司和分公司的网站部署在不同的服务器上。总公司DNS服务器负责主域名wyz.com的解析,同时需要把bj.wyz.com这个子域名的解析工作委派给分公司的DNS服务器来处理。这样一来,用户访问分公司的网站时,DNS查询会从总公司服务器转到分公司服务器,最终拿到正确的IP地址。
从技术层面看,DNS是一个分层结构的系统。根域名服务器、顶级域名服务器、权威域名服务器构成了一个树状查询链条。每一层只负责自己区域内的域名解析,对于子区域的解析请求,则通过委派机制转交给下一层负责。委派就是在这个链条中把某个节点的控制权“交接”出去。
二、NS记录在委派中的角色
NS记录的全称是Name Server Record,即域名服务器记录。它的核心作用是标明哪个DNS服务器对某个域名具有权威性。通俗地说,NS记录告诉全球的DNS查询系统:“关于这个域名的解析问题,你应该去找这台服务器。”
在委派的场景中,NS记录是连接父域和子域的“桥梁”。父域中配置的NS记录指向子域的DNS服务器,子域中配置的NS记录和SOA记录则确认该服务器对子域具有管理权限。父域和子域的NS记录必须保持一致,如果父域的NS记录指向了某台服务器,但那台服务器并没有对应的子域配置,就会出现委派失效,DNS查询报错。
三、正确配置NS记录的步骤
1.准备工作
在进行DNS委派之前,需要先确认几个基本信息:
(1)父域的名称和当前负责解析的DNS服务器
(2)子域的名称(比如example.com这个主域中分出sub.example.com子域)
(3)子域授权的DNS服务器的域名和IP
(4)子域授权的DNS服务器上已经建好了对应的区域(如sub.example.com)
2.在父域中添加NS记录
第一步,登录父域所在的DNS管理平台。可以是自建的DNS服务器也可以是云服务商的DNS控制台(如国科云解析、阿里云解析、DNSPOD、Cloudflare等)。
第二步,找到父域的DNS解析配置页面,选择添加记录,记录类型选择NS。
第三步,填写主机记录(即子域名的前缀)。例如要把sub.example.com委派出去,主机记录就填“sub”。如果要委派的是主域名本身(如把example.com交给其他DNS服务商),主机记录填“@”。
第四步,填写记录值,即要授权的DNS服务器的域名。DNS服务商通常会提供多个服务器地址,需要全部添加进去。
第五步,设置TTL(缓存时间)。TTL值决定了各地DNS缓存的生存时间,采用默认的600秒(10分钟)就能适用于大多数场景。
3.在子域中完成区域配置
父域添加了NS记录之后,子域的DNS服务器也需要完成对应的配置。这通常包括:
(1)在子域DNS服务器上创建与子域同名的区域(如sub.example.com)
(2)在该区域中添加SOA记录和NS记录
(3)添加该子域下各类具体的解析记录(A记录、CNAME记录等)
4.关于粘合记录
粘合记录是DNS委派中一个容易被忽视但很重要的细节。当被委派的DNS服务器域名本身属于被委派的子域时(例如把sub.example.com委派给ns1.sub.example.com),就会出现循环依赖的问题——要查询ns1.sub.example.com的IP地址,需要先解析sub.example.com,而解析sub.example.com又需要先知道ns1.sub.example.com的IP地址。
解决这个问题的方法是,在父域的DNS服务器中,除了添加NS记录之外,再添加一条A记录,把ns1.sub.example.com这个域名直接对应到一个具体的IP地址。这条A记录就是粘合记录。有了粘合记录,DNS查询系统就可以直接拿到NS服务器的IP地址,从而打破循环依赖。
四、配置中的注意事项
(1)NS记录的数量。根据RFC1912的建议,同一个委派名称下的NS记录不宜超过7条。实际操作中,大多数DNS服务商会限制最多10条。
(2)NS记录不能指向CNAME记录。NS记录的目标必须是一个具体的域名服务器域名,不能指向一个别名记录。
(3)父域和子域的NS记录必须匹配。父域中配置的NS记录,必须在子域的DNS服务器上有对应的区域配置。否则会出现“lame delegation”(无效委派)的问题,导致域名解析失败。
(4)子域已有记录的处理。如果父域中已经存在子域名的解析记录(如A记录、CNAME记录),再添加NS记录进行委派时,这些已有记录会失效,因为解析权已经移交给了子域的DNS服务器。配置前需要确认这一点,避免影响线上业务。
(5)TTL值的设置。TTL值影响解析变更后的生效速度。数值越小,修改后各地生效越快。但对于NS记录这类稳定性要求较高的配置,可以适当设置较大的TTL值(如172800秒,即48小时),减少DNS查询量。
推荐阅读:



