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

  • 时间:
  • 浏览:7

DNS

DNS相关攻击

DNS攻击主要有有并与非 形式。第有并与非 涉及DoS攻击,因为DNS服务器过载,使DNS不起作用。第二种是改变资源记录的内容以做服务器伪装,因为访问的地址是有些"错误"地址。

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

DNS协议

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

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

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

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

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

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

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

LLMNR和mDNS

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

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

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

每个数据标签以1字节现在开始了了计数,计数指定了紧随其后的字节数目,名称以值为0的字节现在开始了,0也是那我标签,表示标签长度为0。如下:

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

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

问题图片不可能 查询字段格式如图所示:

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

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

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

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

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

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

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

DNS扩展性

MX记录提供了邮件交换器的名称,邮件交换器为在简单邮件传输协议中我想要代表与域名相关的用户接收传入电子邮件的主机。MX含有 优先级值,已经 对于那我特定的域名,多个MX记录里能同时出現。

资源记录类型表:

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

DNS由各个服务器的集合形成,服务器(DNS服务器/名称服务器)用来存储名称空间的相关信息。每段DNS名称空间的管理责任分配给另一方或组织,管理者大约安置两台DNS服务器。

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

RD字段表示期望递归,由查询方设置/响应方返回,它告诉服务器执行递归查询。不可能 字段未被设置,且被请求的DNS服务器这样 授权回答,则被请求的DNS服务器返回那我里能联系获撤销答的有些DNS服务器列表,全版查询不可能 通过联系有些DNS服务器完成,这称为迭代查询。

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

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

有并与非 类型的标签:

互联网中发生各种形式的名称解析,最普遍、最重要的有并与非 采用分布式数据库系统是开发者所熟知的域名系统(DNS,Domain Name System)。并不一定不可能 分布式,是不可能 互联网中这样 那我站点里能知道所有的(主机地址-名称)对信息。每个站点维护另一方的信息数据库,并允许那我服务守护任务管理器供互联网上有些系统查询。DNS提供了允许客户机和服务器相互通信的协议,已经 也提供了服务器之间交互信息的协议。

从应用守护任务管理器深度图看,访问DNS是通过那我称为地址解析器的应用守护任务管理器库来完成的,在请求以"某个名称"作为目的地来打开那我连接或发送数据报前一天,应用守护任务管理器通过地址解析器将"该名称"转加上目的IPv4/IPv6地址。

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

开放DNS服务器和DynDNS

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

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

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

前面说到管理者大约安置两台DNS服务器,那我做是为了形成冗余。不可能 一台服务器里能 正常工作,大约另一台服务器里能使用,所有有有哪些服务器都含有 那我区域的全版相同的信息。通常情况下,在服务器之间,一台主服务器在磁盘文件含有 晒 区域数据库,那我或多个辅助服务器使用称为区域传输的守护任务管理器,从主服务器全版地获取该数据库的副本。DNS有那我专用的协议用于执行区域传输,已经 区域内容的副本也里能通过有些法律法律依据获取。

RA字段标识递归可用,由服务器响应设置,不可能 服务器支持递归查询一句话。

步骤解析:

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

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

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

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

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

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

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

组播DNS(mDNS)是另有并与非 形式的本地类DNS功能,有iPhoneiPhoneiPhoneiPhone手机公司开发。mDNS使用通过本地组播地址携带的DNS消息,使用UDP端口5353,规定特殊的TLD.local用特殊的语义解决。在该TLD中的域名的任何DNS查询被发送到mDNS IPv4地址255.0.0.251或IPv6地址ff02::fb。对于有些域的查询里能随意发送到有有哪些组播地址,允许本地链路服务来响应全局名称的映射就不可能 引起重大的安全问题图片了。对此,里能使用DNSSEC(该知识点在第18章介绍)。

当涉及到多个名称时,有些标签都是 不可能 重复,为了解决有些冗余和节省空间,将已有的标签能出現的任意位置,前面的单一计数字节的那我高位置为1,剩余的位与已经 的字节中的位组合形成那我14位的指针(偏移量),已经 ,压缩标签里能指向距离现在开始了了处多达16383字节的位置。如下:

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

排序列表、循环和分离DNS

DNS协议由那我主要每段组成:用于执行对DNS特定名称查询的"查询/响应"协议和名称服务器用于交互数据库记录的协议(区域传输)。DNS支持法律法律依据以通知辅助服务器区域数据库已演变,里能能 进行区域传输(也称DNS通知),都是 法律法律依据动态更新区域。

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

DNS相关

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

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

不可能 写法可省略根标签,统统有"www.baidu.com"虽然是由"www.baidu.com."而来。www标签长度为3,baidu标签长度为5,com长度为3,根标签长度为0。

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

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

LDAP是有并与非 互联网应用层协议,里能根据X.4000[X4000]数据和服务模型提供对于一般目录的访问,同时也提供了搜索、修改、加上、比较和删除基于用户选则模式的条目的能力。LDAP服务器突然在企业内部管理用于保留目录信息。

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

此处参考Message compression

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

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

TTL字段那我RR里能被缓存的秒数;资源数据长度(RDLENGTH)字段指定资源数据(RDATA)字段含有 晒 的字节数;资源数据(RDATA)字段指定数据,数据类型取决于类型。

LDAP

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服务器,则也称为那我区域。

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

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

DNS的区域传输用于从那我服务器到那我服务器复制那我区域的那我组RR(主已经 从主服务器向从服务器),已达到保持多台服务器的区域内内容同步。区域传输方案如下图:

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

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

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

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