《TCP IP 详解卷1:协议》阅读笔记

  • 时间:
  • 浏览:16
  • 来源:UU直播快三官方_大发UU直播快3

第十一章:名称解析和域名系统

前面说到管理者为宜安置两台DNS服务器,曾经做是为了形成冗余。可是我一台服务器不到正常工作,为宜另一台服务器都还要使用,所有哪几条服务器都包蕴含四个区域的完整版相同的信息。通常具体情况下,在服务器之间,一台主服务器在磁盘文件中蕴含区域数据库,有四个或多个辅助服务器使用称为区域传输的线程池,从主服务器完整版地获取该数据库的副本。DNS有有四个专用的协议用于执行区域传输,可是我区域内容的副本也都还要通过一点最好的辦法 获取。

对于TCP和UDP来说,DNS的知名端口号有的是53,常见的格式如下:

OpCode字段是操作码,查询和响应中正常值是0,一点值是4通知、5更新、1~3弃用。

此处参考Message compression

DNS扩展性

DNS的一种生活扩展格式称为EDNSO,它指定了一种生活特殊类型的RR,被加在到请求可是我响应消息中额外的数据区段来表示EDNS0的使用。EDNS0允许DNS超过512字节的长度限制,并可是我蕴含一套扩展的错误代码(4位响应字段RCODE过高 以指明差错类型的具体情况下)。

DNS攻击主要有一种生活形式。第一种生活涉及DoS攻击,意味 DNS服务器过载,使DNS不起作用。第二种是改变资源记录的内容以做服务器伪装,意味 访问的地址是一点"错误"地址。

可是我写法可省略根标签,什么都"www.baidu.com"人太好是由"www.baidu.com."而来。www标签长度为3,baidu标签长度为5,com长度为3,根标签长度为0。

  4. 根服务器有的是递归,它不作进一步外理。它返回还要联系的COM TLD名称服务器的信息,如可是我返回名称A.GTLD-SERVERS.NET以及有四个或多个它的IP地址,构成消息4;

当涉及到多个名称时,一点标签有的是可是我重复,为了外理你这个 冗余和节省空间,将已有的标签能再次出现的任意位置,前面的单一计数字节的有四个高位置为1,剩余的位与可是我的字节中的位组合形成有四个14位的指针(偏移量),可是我,压缩标签能够指向距离开使英文处多达16383字节的位置。如下:

DNS消息末尾的可变长度区段蕴含问題、回答、授权信息和可是我减少必要查询次数的额外信息。每个问題和资源记录(RR)以它所涉及的名称开使英文,每个名称又由一系列标签组成,标签分为数据标签和压缩标签。数据标签蕴含构成有四个标签的两字符;压缩标签充当指向一点标签的指针(能够节省DNS信息的空间)。

gTLD可分为:通用(你这个 是网络上开发者们总爱会接触的)、通用限制、赞助。通用gTLD是开放的,可无限制地使用。相似EDU用于教育机构、MIL用于美国军事机构、GOV用于政府机构、INT用于国际组织机构、JOBS用于人力资源管理机构、MUSEUM用于博物馆机构、COM/ORG/NET/INFO属于通用等等...

DNS相关

DNS协议

DNS由各个服务器的集合形成,服务器(DNS服务器/名称服务器)用来存储名称空间的相关信息。要素DNS名称空间的管理责任分配给其他人 或组织,管理者为宜安置两台DNS服务器。

在DNS服务器的语言中,管理授权的范围称为区域,有四个区域是DNS名称空间的一课子树,它都还要独立管理而不受一点区域影响。每个域名都发生于某个区域中,即使是TLD,它也发生于根区域中。底部形态如下图:

LLMNR和mDNS

DNS操作(查询/响应/区域传输/通知和动态更新)的消息格式如下所示:

SRV服务记录推广了MX记录的格式,以描述主机、协议和用于连接特定服务的端口号。格式如下:

可是我IP地址的烦琐意味 的记忆和使用困难,互联网支持使用主机名称来识别包括客户机和服务器在内的主机。一起为了使用一系列协议,主机名称通过称为"名称解析"的过程转加在对应IP地址。

DNS是有四个分布式的客户机/服务器网络数据库,TCP/IP应用线程池使用它来完成主机名称和IP地址之间的(双向)映射,提供电子邮件路由信息、服务命名和一点服务。DNS中使用的所有名称的集合构成了DNS名称空间,名称空间划分为层次且大小写不敏感。当前的DNS名称空间是一棵域名树,发生顶部的树根未命名,树的最高层是所谓的顶级域名(TLD),包括通用顶级域名(gTLD)、国家代码顶级域名(ccTLD)、国际化国家代码顶级域名(IDN ccTLD),以及可是我历史意味 而发生的一类特殊的称为ARPA的基础设施顶级域名(infrastructure TLD)。

区域传输在轮询后开启,在轮询中,从服务器周期性的联系主服务器,通过比较区域的版本号以查看区域传输是否是 为必要的;可是我还要开启区域传输,当区域内容改变时使用异步更新机制。这被称为DNS NOTIFY。

DNS中,每个区域有有四个授权记录,使用称为授权启动(SOA)的RR类型。它们提供要素DNS名称空间和服务器之间的授权联系,该服务器允许地址和一点信息进行查询以提供区域信息。SOA RR用于识别主机的名称,提供官方永久性数据库、负责方的e-mail地址、区域更新参数和默认TTL。

一点家庭用户由对应ISP分配有四个单一的IPv4地址,可是我地址随用户的电脑或家庭网关连接、断开和重连而改变。可是我,用户往往难以建立有四个DNS条目来允许运行的服务对互联网是可见的。一种生活开放动态DNS服务器都还要用来支持特殊的更新协议,称为DNS更新API[DynDNS]。凭此,用户都还要根据预先注册或账号在提供商的DNS服务器中更新条目。为了使用这项服务(DynDNS),客户端系统上运行DDNS客户端线程池,也可是我是在用户的家用路由器上。大多数具体情况下,哪几条线程池被配置为还要登录信息以用于访问远程DDNS服务。当服务被调用时,客户端线程池与服务器联系,提供它的主机的当前全球IP地址,可是我变为静态,可是我它会定期更新与服务器的信息(允许服务器在某个时间间隔内那末接收到更新时清除信息)。

当解析器发出有四个查询消息,而返回的响应消息TC字段被设置,真实的响应消息长度超过512字节时,服务器只返回512字节,该解析器会使用TCP再次发出请求消息以允许接收更多的消息,这是现在还要被支持的配置[RFC5966]。

当不到少数本地主机希望通信时,配置一组DNS服务器的开销就显的大了。对于你这个 具体情况,都还要使用有四个特殊的DNS本地版本,称为本地链路组播名称解析(LLMNR)[RFC4795]。它是有四个由微软开发的基于DNS的(非标准)协议,在本地环境中使用以帮助发现局域网上的设备。

  6. gTLD返回域名EXAMPLE.COM的名称服务器的名称(A.IANA-SERVERS.NET)和IP地址,构成消息6;

  1. 比如,笔记本A.HOME不想访问EXAMPLE.COM网站,可是我A.HOME告诉我EXAMPLE.COM的IP地址,于是想向本地的DNS服务器GW.HOME发送请求,构成消息1;

TC字段表示是否是 截断的,如使用UDP时,它表示当应答总长度超过512字节时,只返回前512字节。

问題可是我查询字段格式如图所示:

PTR(指针)记录用于响应逆向DNS查询,它以一种生活特殊的最好的辦法 使用特殊的in-addr.arpa(可是我IPv6的ip6.arpa)域。比如IPv4地址128.32.112.208,为了选者你这个 地址的名称,首先将该地址逆转,再加在特殊的域,构成208.112.32.128.in-addr.arpa.进行PTR记录的查询。根据[RFC5855],域in-addr-servers.arpa和ip6-servers.arpa分别用于形成与服务器相关的域名,可是我该服务器为IPv4和IPv6提供逆向DNS映射。

一种生活类型的标签:

互联网中发生各种形式的名称解析,最普遍、最重要的一种生活采用分布式数据库系统是开发者所熟知的域名系统(DNS,Domain Name System)。有的是可是我可是我分布式,是可是我互联网中那末有四个站点能够知道所有的(主机地址-名称)对信息。每个站点维护其他人 的信息数据库,并允许有四个服务线程池供互联网上一点系统查询。DNS提供了允许客户机和服务器相互通信的协议,可是我也提供了服务器之间交互信息的协议。

  9. 消息经过9-10返回到A.HOME,A.HOME知道了EXAMPLE.COM的IP地址,进行访问(GW.HOME若启用缓存,下一次访问会直接返回访问域名如EXAMPLE.COM的对应的IP地址)。

排序列表、循环和分离DNS

DNS是互联网上最普遍的服务之一,也常作为基础,通过扩展加在新的功能。[RFC560 7]为扩展DNS设想了各种最好的辦法 ,最终结论是建立和实现新的RR类型是最有吸引力的最好的辦法 。[RFC3597]指定将未知RR类型作为不透明的数据来外理,可是我不认可就不解释它们。对于未知的RR类型,嵌入的域名不得使用压缩标签且以大小写敏感的最好的辦法 做比较。

RD字段表示期望递归,由查询方设置/响应方返回,它告诉服务器执行递归查询。可是我字段未被设置,且被请求的DNS服务器那末授权回答,则被请求的DNS服务器返回有四个都还要联系获撤回答的一点DNS服务器列表,完整版查询可是我通过联系一点DNS服务器完成,这称为迭代查询。

资源记录类型表:

DNS协议由有四个主要要素组成:用于执行对DNS特定名称查询的"查询/响应"协议和名称服务器用于交互数据库记录的协议(区域传输)。DNS支持最好的辦法 以通知辅助服务器区域数据库已演变,还要进行区域传输(也称DNS通知),有的是最好的辦法 动态更新区域。

EDNS0定义了特殊的OPT伪RR。OPT RR 不被缓存、转发或持续存储,该记录发生DNS消息的额外消息区段。

TTL字段曾经RR都还要被缓存的秒数;资源数据长度(RDLENGTH)字段指定资源数据(RDATA)字段中蕴含的字节数;资源数据(RDATA)字段指定数据,数据类型取决于类型。

回答、授权和额外信息区段格式如图所示:

区域更新参数包括有四个序列号、更新时间、重试时间和终止时间。每当要改变区域内容时,序列号通常由网络管理员增加(为宜1 )。辅助服务器使用它来选者是否是 应该启动区域传输(当它们那末序列号最大的区域内容的副本时)。更新时间告诉辅助服务器,在从主服务器检查SOA记录可是我还要停留的时间以及它的版本号,以选者是否是 还要区域传输。重试时间和终止时间是在区域传输失败的具体情况下使用的。重试时间值给出辅助服务器重试前还要停留的时间(秒)。终止时间是辅助服务器在放弃可是我保持重试区域传输的上限(秒)。可是我它放弃了,曾经的服务器停止响应对该区域的查询。

每个数据标签以1字节开使英文计数,计数指定了紧随其后的字节数目,名称以值为0的字节开使英文,0也是有四个标签,表示标签长度为0。如下:

名称依然是一系列标签组成,是可是我的资源数据对应的域名。类型字段指定为RR类型代码中的有四个,RR类型下面有表格会列出。类字段是1。

事务ID字段由客户端设置,由服务器返回,以匹配查询和响应。

查询名称字段由一系列标签组成。查询类型指明正在执行的查询类型,场景的查询类型值A(可是我IPv6的DNS解析,则为AAAA),以为着还要有四个与查询名称对应的IP地址。查询类值1为互联网类、254为那末类、255为所有类。

  3. 假设该NDS服务器也告诉我请求的地址及信息,它会联系根名称服务器中的一台,构成消息3;

相似图中,假设百度内部管理其他人 架构DNS服务器,则也称为有四个区域。

DNS名称树中的TLD下面的名称进一步划分成组,称为子域名。以fanyi.baidu.com为例:自右向左顺序进行底部形态拆分,com是通用顶级域名,baidu是百度的拼写(网站名称),fanyi是翻译的拼写(网页功能)。每个标签最多可到6四个字符长度。DNS名称空间的层次底部形态允许不同的管理机构管理名称空间的不同要素,如fanyi.baidu.com可是我只还要baidu.com子域的拥有者协商即可,DNS的你这个 特点是它的可扩展性的有四个重要方面。

AD字段表示蕴含的信息是已授权的。

MX记录提供了邮件交换器的名称,邮件交换器为在简单邮件传输协议中不想代表与域名相关的用户接收传入电子邮件的主机。MX蕴含优先级值,可是我对于有四个特定的域名,多个MX记录都还要一起再次出现。

当组织加入互联网并获得授权来填充要素DNS名称空间时,它们往往也获得与它们互联网上的IPv4地址相对应的要素in-addr.rapa名称空间的授权。[RFC2317]给出了实现的标准最好的辦法 ,加在前缀长度到逆转后的字节组中,并使用它作为域名中的第有四个标签。比如假设站点12.17.136.128/25,即蕴含12四个地址的前缀,则为形式为X.136.17.12.in-addr.arpa的每个名称创建有四个CNAME RR,可是我有站点的ISP维护:

来看一次首次DNS查询过程:

CD字段标识禁用安全检查。

阅读须知:笔记为阅读《TCP IP 详解卷1:协议》后摘抄的一点知识点,其间有的是加入一点根据英文原版的其他人 翻译和结合网上知识后的理解,什么都一点段落之间有的是可是我能够串联上可是我知识点与书上略有差别(基本差别不大,参考的资料属RFC官方文档)。

RA字段标识递归可用,由服务器响应设置,可是我服务器支持递归查询语句。

其中地址(A/AAAA)和NS(名称服务器记录)是DNS中最重要的两点。地址记录IP地址,NS记录蕴含授权DNS服务器的名称,该服务器包蕴含四个特定区域的信息,该服务器的IP地址也通常作为DNS响应中的额外信息区段中的胶记录(glue record)提供。当授权名称服务器和它们要授权的名称使用相同的域名时,还要你这个 胶记录来外理循环。

QR字段表示请求是查询还是响应,0/1。

步骤解析:

LDAP

区域传输又分为完整版区域传输、增量区域传输。使用完整版区域传输(AXFR)的DNS消息使用TCP请求有四个整个区域内容;使用增量区域传输和IXFR消息类型,只提供区域中的变化(改进了内容同步的速度)。

  5. ISP提供的服务器联系gTLD服务器,构成消息5;

DNS服务器都还要返回所有匹配的数据给任何客户端,并以服务器认为最方便的顺序返回。显然对数据而言,这是不安全的。于是DNS服务器允许一点特殊配置选项和行为来构成返回数据的筛选及排序列表,达到一定的操作、隐私和性能目标。DNS服务器也都还要配置为使用"DNS循环",这意味 服务器交换返回地址记录的顺序,使的每个新的客户端访问不同的服务器上的服务。为了数据的隐私,都还要使用一种生活称为"分离DNS"的技术,使响应查询的返回的资源记录集合依赖于客户端的身份,并可是我查询目的地址。

DNS的区域传输用于从有四个服务器到曾经服务器群克隆有四个区域的有四个组RR(主可是我从主服务器向从服务器),已达到保持多台服务器的区域内内容同步。区域传输方案如下图:

  7. ISP提供的服务器联系域名正确的服务器,构成消息7;

AA字段标识"授权回答",和"缓存回答"相对。

ccTLD蕴含ISO 3166标准指定的有四个字母的国家代码,如cn、au、us、ca、jp、uk、br...

CNAME记录代表规范名称的记录,用于将单一域名的别名引入到DNS命名系统中。

RCODE字段表示返回结果,如值0那末差错、3名称差错或不发生域名、1格式错误,查询不到被解读、5拒绝,服务器不希望提供回答、10在区域中不蕴含名称(用于更新)。

组播DNS(mDNS)是另一种生活形式的本地类DNS功能,有iPhone77公司开发。mDNS使用通过本地组播地址携带的DNS消息,使用UDP端口5353,规定特殊的TLD.local用特殊的语义外理。在该TLD中的域名的任何DNS查询被发送到mDNS IPv4地址255.0.0.251或IPv6地址ff02::fb。对于一点域的查询都还要随意发送到哪几条组播地址,允许本地链路服务来响应全局名称的映射就可是我引起重大的安全问題了。对此,都还要使用DNSSEC(该知识点在第18章介绍)。

从应用线程池角度看,访问DNS是通过有四个称为地址解析器的应用线程池库来完成的,在请求以"某个名称"作为目的地来打开有四个连接或发送数据报可是我,应用线程池通过地址解析器将"该名称"转加在目的IPv4/IPv6地址。

大要素的DNS服务器(除去一点根服务器和TLD服务器)会缓存它们学习的区域信息(IP地址映射信息),直到该条信息的生存时间(TTL)的时间限制为止。当收到查询请求时,都还要使用缓存来做应答,以减少DNS消息在网络中传输的流量损耗。服务器缓存DNS由系统配置决定,可手动启用或禁用。

DNS相关攻击

LDAP是一种生活互联网应用层协议,都还要根据X.60 0[X60 0]数据和服务模型提供对于一般目录的访问,一起也提供了搜索、修改、加在、比较和删除基于用户选者模式的条目的能力。LDAP服务器总爱在企业内部管理用于保留目录信息。

Z字段值为0,保留字段。

  2. 可是我是首次访问,GW.HOME并告诉我EXAMPLE.COM的IP地址,也告诉我EXAMPLE.COM域或COM TLD名称服务器,于是它转发查询至曾经DNS服务器(递归),转发至ISP提供的DNS服务器,构成消息2;

LDAP为DNS数据的应用提供了更宽裕的查询和操作,现为LDAPv3版本[RFC4510]。

开放DNS服务器和DynDNS

  8. EXAMPLE.COM域名授权的DNS服务器回复请求,构成消息8;

DNS