dns - “多级”网络资源名称。DNS服务器的对应名称
问题描述
(如果我理解)当我的应用程序希望通过 IP 与网络资源通信时,如果使用 DNS 解析(?)/IP 地址的名称如下(*),则基本步骤如下。
考虑一个 3 级资源名称:www.goodeggs.edu
- 本地主机要求 ISP DNS 服务器(?)将名称解析为 IP 地址。未找到。
- 资源名称从右到左读取。
- ISP DNS 服务器询问 ROOT 服务器“哪个服务器知道.edu?” 并获取了解“.edu”的 TLD 服务器的 IP 地址
- ISP 服务器向 .edu TLD 服务器询问知道“.goodeggs.org”的服务器。TLD 服务器将“.goodeggs.org”的名称服务器地址返回给 ISP。
- ISP 向“.goodeggs.org”名称服务器询问实际资源的地址 www.goodeggs.edu。NAME 服务器将资源的地址返回给 ISP DNS 服务器,后者将资源的 IP 转发给本地主机应用程序。
总之:
- ISP DNS 服务器按以下顺序连接到以下服务器
- 根(对于.edu)
- 顶级域名(对于 goodeggs.edu)
- NAME (for www.goodeggs.edu) << 来自这里的资源 IP 地址
问题!
如果我的资源名称有三个以上的节点,例如
www.bbc.co.uk ?
服务器是否命名
- ROOT(适用于 .uk)
- TLD1(适用于 co.uk)
- TLD2(适用于 .bbc.co.uk)
- 名称(对于 www.bbc.co.uk)<< 来自此处的资源 IP 地址
(* 我正在写下来,尽管有人可能(将)抱怨(例如 SE)这不是一个问题,我问的是我对 DNS 的基本理解是否正确 - 或不正确。)
解决方案
你的描述有几个缺陷,所以先纠正一下。
今天,QNAME 最小化不是常态,这意味着在每一步都询问整个名称,而不是被标签分解。
所以,简而言之:
- 您查询递归名称服务器
- 如果它在本地缓存中有答案并且 TTL 没有过期,它会直接回复你,故事结束
- 如果没有,它会为您启动递归过程:从根开始询问名称;每个对名称不具有权威性的权威名称服务器将返回一个 NS 记录列表以供下一步询问(这也将全部被缓存),依此类推,直到一个名称服务器权威地回复您的特定请求,在这种情况下递归名称服务器作业已结束,它将回复存储在其缓存中,然后也将其提供给您。
您可以使用dig +trace
option 来查看它,例如:
$ dig +trace www.bbc.co.uk
; <<>> DiG 9.12.0 <<>> +trace www.bbc.co.uk
;; global options: +cmd
. 352520 IN NS l.root-servers.net.
. 352520 IN NS c.root-servers.net.
. 352520 IN NS d.root-servers.net.
. 352520 IN NS a.root-servers.net.
. 352520 IN NS j.root-servers.net.
. 352520 IN NS f.root-servers.net.
. 352520 IN NS h.root-servers.net.
. 352520 IN NS m.root-servers.net.
. 352520 IN NS g.root-servers.net.
. 352520 IN NS k.root-servers.net.
. 352520 IN NS e.root-servers.net.
. 352520 IN NS b.root-servers.net.
. 352520 IN NS i.root-servers.net.
. 444986 IN RRSIG NS 8 0 518400 (
20180523050000 20180510040000 39570 .
iCesuUeD36Re2VEdzRbmFh28kIeNo/Qpb0fi8r1/vu79
ShjbkB1j2ySalLUYt1AgYQegkU/62/bw+G9i1hbFDGu3
zvbr+VDxQWHX5tkeXNz0+JujJ/ITfFItTSD8LSmXyJcF
QP6YNwNQ5f5WzBy4SiURgXCYhyOrcviIlXOa+9QuEpE+
kGj/NZp2YNR6CMWhv0ImOgwdzZG8gF83LM6a/RLoaFG1
6EwWBgrhZksnUzHS9Hv3MKVpIZMGnQA/QRUJMB+LyZeQ
CcnWoAzchGTVxmTf6Wlhdj+MhuaQ656KMxbTaPrGzjfr
vyYq6KmIrto/kS9Rc9NsaV6IA7fLqxvaIw== )
;; Received 1097 bytes from 192.168.10.229#53(192.168.10.229) in 2 ms
uk. 172800 IN NS dns1.nic.uk.
uk. 172800 IN NS dns4.nic.uk.
uk. 172800 IN NS nsa.nic.uk.
uk. 172800 IN NS nsd.nic.uk.
uk. 172800 IN NS nsc.nic.uk.
uk. 172800 IN NS nsb.nic.uk.
uk. 172800 IN NS dns3.nic.uk.
uk. 172800 IN NS dns2.nic.uk.
uk. 86400 IN DS 43876 8 2 (
A107ED2AC1BD14D924173BC7E827A1153582072394F9
272BA37E2353BC659603 )
uk. 86400 IN RRSIG DS 8 1 86400 (
20180524050000 20180511040000 39570 .
YisP01VEWwakIJeUgDGu+JkWdbEe6DHYwvboX9ngd95e
rbZb3EeDU3ieS8x+qcGWpmXtwLnec2A2aoBvXTZjLdP3
a01mIdOSzlBLXJz6ejXKRyc1/a7DkxxtzCZTa89JVbGy
lIwgCxS/CXdo2A3M+sc7YGBd14XgTu0l1Z1ZZMm9ZWF3
W3gjdKDiGMKFRolZbxyhUwacIhaxIOFsgkHfKiGyONe1
Qx8O1kIy0NhMKOYcw05183tTO4zd1w1UJRidr1jyVwFl
i+UhL5nVsXOwh1HaeiiIMwLLXVeP2d5ISaO/2dA4KEhZ
wC3KPlJvl3gF8e7fiEs6OrbYgCmvZ7o3VQ== )
;; Received 797 bytes from 198.41.0.4#53(a.root-servers.net) in 139 ms
bbc.co.uk. 172800 IN NS ns4.bbc.net.uk.
bbc.co.uk. 172800 IN NS ns3.bbc.net.uk.
bbc.co.uk. 172800 IN NS ns3.bbc.co.uk.
bbc.co.uk. 172800 IN NS ns4.bbc.co.uk.
G9F1KIIHM8M9VHJK7LRVETBQCEOGJIQP.co.uk. 10800 IN NSEC3 1 1 0 - (
G9HKV8PHGJ1NMH94L9RMIQM0J64UCIPK
NS SOA RRSIG DNSKEY NSEC3PARAM
TYPE65534 )
G9F1KIIHM8M9VHJK7LRVETBQCEOGJIQP.co.uk. 10800 IN RRSIG NSEC3 8 3 10800 (
20180614141322 20180510140235 33621 co.uk.
j1bmaifCFfs1u84HWglaeTxZLTAd4b+a7Lr/1+JwrrcB
7TlQhEPkbgTIaLUUkySPJfxY+tdkfaRFrzbheLgXbE+u
qSOmuHxhuhHSFsDhaYfEbSCaWB/J+7JKgQOSHbhVnF0m
rD7DMDKbYTcalNNB0VlTdhiSumd0oGyqohugqvw= )
TP2SFUK8GL59V3TCVHK2DBGOD4LP2VPK.co.uk. 10800 IN NSEC3 1 1 0 - (
TP40D2GKG41E62VT49B179FKD8QU8D56
NS DS RRSIG )
TP2SFUK8GL59V3TCVHK2DBGOD4LP2VPK.co.uk. 10800 IN RRSIG NSEC3 8 3 10800 (
20180610203629 20180506202704 33621 co.uk.
AdiIoWpWjQuUGMqLvWbKidEGsw86ZUTgJFZjeO6qfYKr
MlbkII+8dm6kp2EZsMRuzRcP6/pUYDK0rn99Rmx5JRsj
ISLeyDG4kM2/eDMxfObZEe1zZSxIxoZmRzV6ZWJ3QIFt
9zFT2hq7eLQfHJKzZ8unzsl8r2l6xrncSUsNZxs= )
;; Received 733 bytes from 156.154.102.3#53(nsc.nic.uk) in 74 ms
www.bbc.co.uk. 300 IN CNAME www.bbc.net.uk.
;; Received 68 bytes from 156.154.65.17#53(ns4.bbc.net.uk) in 73 ms
您可以准确地看到查询了哪些名称服务器,从根目录开始,以及回复,首先仅NS
记录将权威名称服务器从一个“级别”链接到下一个“级别”(忽略RRSIG
和NSEC3
记录,但要特别注意查看;; Received
行以准确显示哪个名称服务器回复了什么),最后是答复。
您有在线故障排除工具,可以为您提供带有块和箭头的漂亮图像的相同信息,例如:
http ://dnsviz.net/d/www.bbc.co.uk/WvW_7Q/dnssec/
(有点复杂,因为决赛CNAME
)
所以问题不完全是点的数量。区域切割不一定发生在每个点。例如gouv.fr
andfr
在同一个区域中,没有区域切割,权威名称服务器 forgouv.fr
与 for 相同fr
。这是一种设计选择。
TLD 是一个宽松的术语。它通常是最正确标签的同义词,但这并不总是正确的。以前只能注册.co.uk
域名,.uk
不能直接注册。在这种情况下,您可以说.co.uk
是 TLD。有许多注册机构仍在使用这样的子域。您还有不同级别的多个不同注册机构的案例:例如,您可以在.com
和 下注册域.uk.com
,两者都由不同的“注册机构”处理(他们可以在那里谈论它的业务方面,但我只关注技术它的另一面,说明 DNS 就像一棵树,从技术上讲,一切都可以发生在同一个节点上,与它的深度无关)。你可以说那.uk.com
是一个 SLD二级域名(名称)。但是其他注册表可以在第三级,以此类推(例如过去.US
非常深,至少有 4 或 5 级至少编码美国州,然后是县,然后是学校类型等。你可以在https://en.wikipedia.org/wiki/.us上看到很多例子)
推荐阅读
- java - 在初始化页面对象期间,我在 pagefactory 中缺少什么?在元素识别期间获取 NullpointerException
- javascript - User.id 未定义
- javascript - 如何将数据从 xml 存储到 php 变量,该变量是单个标签内的数据集合,如数组
- acumos - Acumos (oneclick) 安装需要打开哪些端口
- c# - 如何在 DataTable 中搜索相似的字符串
- python - 如何知道python字典中是否存在某些东西
- c++ - 分离 .raw 图像文件的 4 个通道(R、G、G、B)并将它们保存为 C++ 中的有效图像
- php - 如何使用 jwt.auth 中间件将令牌传递给不在正文中的标头:laravel 5.6
- ruby - 将前一个值添加到每个哈希值
- c - 如何在 pthread 中使用 C popen