dns udp tcp

1 篇文章 0 订阅

目录

解BUG的过程中碰到了DNS相关的内容,折腾网站和域名邮箱时也对DNS做了一些配置,发现对一些细节有点记不清晰了,因此很有必要重新温习一下这方面的知识。学过网络的应该记得现代计算机通信的基石是TCP/IP协议,计算机A想要与计算机B进行通信,首先就必须要知道计算机B的IP地址,就像打电话一样,你给别人打电话首先必须得知道别人的电话号码吧,电话号码都不知道还搞个毛。但是问题来了,让人们去记忆这又臭又长的IP地址或是电话号码,无疑是不人道的,当然,这个小问题也并莫有难倒勤劳勇敢的人民群众。很快就发明了通讯录这个东西,用于将人名与电话号码联系起来。在计算机领域也出现了DNS(Domain Name System),即域名系统,用于将域名解析成对应的IP地址。本文将介绍DNS协议的基本理论及其报文格式,最后给出了用Wireshark抓取DNS报文的记录。如果需要了解更为详细的内容,请参考 RFC1034 和 RFC1035。


回到顶部

一. DNS协议理论知识

1.1. 域名结构

域名系统并不像电话号码通讯录那么简单,通讯录主要是单个个体在使用,同一个名字出现在不同个体的通讯录里并不会出现问题,但域名是群体中所有人都在用的,必须要保持唯一性。为了达到唯一性的目的,因特网在命名的时候采用了层次结构的命名方法。每一个域名(本文只讨论英文域名)都是一个标号序列(labels),用字母(A-Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成,标号序列总长度不能超过255个字符,它由点号分割成一个个的标号(label),每个标号应该在63个字符之内,每个标号都可以看成一个层次的域名。级别最低的域名写在左边,级别最高的域名写在右边。域名服务主要是基于UDP实现的,服务器的端口号为53。

比如:本网站的域名 jocent.me,由点号分割成了两个域名jocent 和 me,其中 me是顶级域名(TLD,Top-Level Domain), jocent是二级域名(SLD,Second Level Domain)。关于域名的层次结构,请看下面的示意图。


注意:最开始的域名最后都是带了点号的,比如 jocent.me 搁以前的话应该是 jocent.me. ,最后面的点号表示根域名服务器,后来发现所有的网址都要加上最后的点,就简化了写法,干脆所有的都不加,但是你在网址后面加上点号也是可以正常解析的。

1.2. 域名服务器

有域名结构还不行,还需要有一个东西去解析域名,手机通讯录是由通讯录软件解析的,域名需要由遍及全世界的域名服务器去解析,域名服务器实际上就是装有域名系统的主机。由高向低进行层次划分,可分为以下几大类:

  • 根域名服务器:    最高层次的域名服务器,也是最重要的域名服务器,本地域名服务器如果解析不了域名就会向根域名服务器求助。全球共有13个不同IP地址的根域名服务器,它们的名称用一个英文字母命名,从a一直到m。这些服务器由各种组织控制,并由 ICANN(互联网名称和数字地址分配公司)授权,由于每分钟都要解析的名称数量多得令人难以置信,所以实际上每个根服务器都有镜像服务器,每个根服务器与它的镜像服务器共享同一个 IP 地址,中国大陆地区内只有6组根服务器镜像(F,I(3台),J,L)。当你对某个根服务器发出请求时,请求会被路由到该根服务器离你最近的镜像服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和地址,如果向根服务器发出对 “jocent.me” 的请求,则根服务器是不能在它的记录文件中找到与 “jocent.me” 匹配的记录。但是它会找到 “me” 的顶级域名记录,并把负责 “me” 地址的顶级域名服务器的地址发回给请求者。
  • 顶级域名服务器:负责管理在该顶级域名服务器下注册的二级域名。当根域名服务器告诉查询者顶级域名服务器地址时,查询者紧接着就会到顶级域名服务器进行查询。比如还是查询"jocent.me",根域名服务器已经告诉了查询者“me”顶级域名服务器的地址,“me”顶级域名服务器会找到 “jocent.me”的域名服务器的记录,域名服务器检查其区域文件,并发现它有与 “jocent.me” 相关联的区域文件。在此文件的内部,有该主机的记录。此记录说明此主机所在的 IP 地址,并向请求者返回最终答案。
  • 权限域名服务器:负责一个区的域名解析工作
  • 本地域名服务器:当一个主机发出DNS查询请求的时候,这个查询请求首先就是发给本地域名服务器的。

1.3. 域名解析过程

域名解析总体可分为两大步骤,第一个步骤是本机向本地域名服务器发出一个DNS请求报文,报文里携带需要查询的域名;第二个步骤是本地域名服务器向本机回应一个DNS响应报文,里面包含域名对应的IP地址。从下面对jocent.me进行域名解析的报文中可明显看出这两大步骤。注意:第二大步骤中采用的是迭代查询,其实是包含了很多小步骤的,详情见下面的流程分析。

其具体的流程可描述如下:

  1. 主机10.74.36.90先向本地域名服务器10.74.1.11进行递归查询
  2. 本地域名服务器采用迭代查询,向一个根域名服务器进行查询
  3. 根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器 dns.me的IP地址
  4. 本地域名服务器向顶级域名服务器 dns.me进行查询
  5. 顶级域名服务器me告诉本地域名服务器,下一步查询权限服务器dns.jocent.me 的IP地址
  6. 本地域名服务器向权限服务器 dns.jocent.me进行查询
  7. 权限服务器 dns.jocent.me告诉本地域名服务器所查询的主机的IP地址
  8. 本地域名服务器最后把查询结果告诉 10.74.36.90

其中有两个概念递归查询和迭代查询,其实在整个描述的过程中已经体现的很明显,这里再说明一下:

  • 递归查询:本机向本地域名服务器发出一次查询请求,就静待最终的结果。如果本地域名服务器无法解析,自己会以DNS客户机的身份向其它域名服务器查询,直到得到最终的IP地址告诉本机
  • 迭代查询:本地域名服务器向根域名服务器查询,根域名服务器告诉它下一步到哪里去查询,然后它再去查,每次它都是以客户机的身份去各个服务器查询

回到顶部

二. DNS协议报文格式

2.1 头部

  1. 会话标识(2字节):是DNS报文的ID标识,对于请求报文和其对应的应答报文,这个字段是相同的,通过它可以区分DNS应答报文是哪个请求的响应
  2. 标志(2字节):
    QR(1bit)查询/响应标志,0为查询,1为响应
    opcode(4bit)0表示标准查询,1表示反向查询,2表示服务器状态请求
    AA(1bit)表示授权回答
    TC(1bit)表示可截断的
    RD(1bit)表示期望递归
    RA(1bit)表示可用递归
    rcode(4bit)表示返回码,0表示没有差错,3表示名字差错,2表示服务器错误(Server Failure)
  3. 数量字段(总共8字节):Questions、Answer RRs、Authority RRs、Additional RRs 各自表示后面的四个区域的数目。Questions表示查询问题区域节的数量,Answers表示回答区域的数量,Authoritative namesversers表示授权区域的数量,Additional recoreds表示附加区域的数量

 

2.2 正文

  1. Queries区域1.1 查询名:长度不固定,且不使用填充字节,一般该字段表示的就是需要查询的域名(如果是反向查询,则为IP,反向查询即由IP地址反查域名),一般的格式如下图所示。1.2 查询类型:
    类型助记符说明
    1A由域名获得IPv4地址
    2NS查询域名服务器
    5CNAME查询规范名称
    6SOA开始授权
    11WKS熟知服务
    12PTR把IP地址转换成域名
    13HINFO主机信息
    15MX邮件交换
    28AAAA由域名获得IPv6地址
    252AXFR传送整个区的请求
    255ANY对所有记录的请求

    这里给一个域名,可用来模拟DNS的查询类型,可以选择不同的类型,比如A,PTR等玩一下, https://www.nslookuptool.com/chs/       
    1.3 查询类:通常为1,表明是Internet数据

  2. 资源记录(RR)区域(包括回答区域,授权区域和附加区域)

该区域有三个,但格式都是一样的。这三个区域分别是:回答区域,授权区域和附加区域

2.1. 域名(2字节或不定长):它的格式和Queries区域的查询名字字段是一样的。有一点不同就是,当报文中域名重复出现的时候,该字段使用2个字节的偏移指针来表示。比如,在资源记录中,域名通常是查询问题部分的域名的重复,因此用2字节的指针来表示,具体格式是最前面的两个高位是 11,用于识别指针。其余的14位从DNS报文的开始处计数(从0开始),指出该报文中的相应字节数。一个典型的例子,C00C(1100000000001100,12正好是头部的长度,其正好指向Queries区域的查询名字字段)。

2.2 查询类型:表明资源纪录的类型,见1.2节的查询类型表格所示 

2.3 查询类:对于Internet信息,总是IN

2.4 生存时间(TTL):以秒为单位,表示的是资源记录的生命周期,一般用于当地址解析程序取出资源记录后决定保存及使用缓存数据的时间,它同时也可以表明该资源记录的稳定程度,极为稳定的信息会被分配一个很大的值(比如86400,这是一天的秒数)。

2.5. 资源数据:该字段是一个可变长字段,表示按照查询段的要求返回的相关资源记录的数据。可以是Address(表明查询报文想要的回应是一个IP地址)或者CNAME(表明查询报文想要的回应是一个规范主机名)等。

回到顶部

三. Wireshark分析DNS协议

下面给出wireshark抓包的记录,感兴趣的可以根据上面介绍的协议报文格式手动解析一下,相信会有很大收获。

3.1 请求报文

3.2 响应报文

 

DNS相关的命令小贴士:

  • Windows环境下清空DNS缓存的命令是 ipconfig/flushdns 也可以通过重启DNS client 和 DHCP client 两项服务清空DNS缓存
  • Windows环境下可以用命令 ipconfig /displaydns  来查看DNS缓存的内容
  • nslookup 命令可以用来查看域名对应的IP地址,比如 nslookup jocent.me

===========================================================================================

DNS报文格式


(1)公共报文头格式其中header报文头是必须有的,其他的有没有在报文头里有定义:

标识ID: 请求客户端设置的16位标示,服务器给出应答的时候会带相同的标示字段回来,这样请求客户端就可以区分不同的请求应答了。

标志:
QR 1个比特位用来区分是请求(0)还是应答(1)。

OPCODE 4个比特位用来设置查询的种类,应答的时候会带相同值,可用的值如下:

0 标准查询 (QUERY)

1 反向查询 (IQUERY)

2 服务器状态查询 (STATUS)

3-15 保留值,暂时未使用

AA 授权应答(Authoritative Answer) - 这个比特位在应答的时候才有意义,指出给出应答的服务器是查询域名的授权解析服务器。

注意因为别名的存在,应答可能存在多个主域名,这个AA位对应请求名,或者应答中的第一个主域名。

TC 截断(TrunCation) - 用来指出报文比允许的长度还要长,导致被截断。

RD 期望递归(Recursion Desired) - 这个比特位被请求设置,应答的时候使用的相同的值返回。如果设置了RD,就建议域名服务器进行递归解析,递归查询的支持是可选的。

RA 支持递归(Recursion Available) - 这个比特位在应答中设置或取消,用来代表服务器是否支持递归查询。

Z 保留值,暂时未使用。在所有的请求和应答报文中必须置为0。

RCODE 应答码(Response code) - 这4个比特位在应答报文中设置,代表的含义如下:

0 没有错误。

1 报文格式错误(Format error) - 服务器不能理解请求的报文。

2 服务器失败(Server failure) - 因为服务器的原因导致没办法处理这个请求。

3 名字错误(Name Error) - 只有对授权域名解析服务器有意义,指出解析的域名不存在。

4 没有实现(Not Implemented) - 域名服务器不支持查询类型。

5 拒绝(Refused) - 服务器由于设置的策略拒绝给出应答。比如,服务器不希望对某些请求者给出应答,或者服务器不希望进行某些操作(比如区域传送zone transfer)。

6-15 保留值,暂时未使用。

问题数QDCOUNT 无符号16位整数表示报文请求段中的问题记录数。

资源记录数ANCOUNT 无符号16位整数表示报文回答段中的回答记录数。

授权资源记录数NSCOUNT 无符号16位整数表示报文授权段中的授权记录数。

额外资源记录数ARCOUNT 无符号16位整数表示报文附加段中的附加记录数。

(2)查询报文格式:


查询名QNAME 要查找的名字,是一个或多个标识符的序列。每个标识符以首字节的计数值来说明随后标识符的字节长度,每个名字以最后字节为0结束,长度为0的标识符是根标识符。单个标识符最大长度为63字节。

查询类型QTYPE 每个问题有一个查询类型。2个字节表示查询类型,取值可以为任何可用的类型值,以及通配码来表示所有的资源记录。

名字 数值 描述
A (1) 期望获得查询名的IP地址。
NS (2) 一个授权的域名服务器。
CNAME (5) 规范名称。
PTR (12) 指针记录。
HINFO (13) 主机信息。
MX (15) 邮件交换记录。
AXFR (252) 对区域转换的请求。
ANY (255) 对所有记录的请求。

其他QTYPE类型有

MD 3 a mail destination (Obsolete - use MX)

MF 4 a mail forwarder (Obsolete - use MX)

SOA 6 marks the start of a zone of authority

MB 7 a mailbox domain name (EXPERIMENTAL)

MG 8 a mail group member (EXPERIMENTAL)

MR 9 a mail rename domain name (EXPERIMENTAL)

NULL 10 a null RR (EXPERIMENTAL)

WKS 11 a well known service description

MINFO 14 mailbox or mail list information

TXT 16 text strings

查询类型出现在问题字段中,查询类型是类型的一个超集,所有的类型都是可用的查询类型

AXFR 252 A request for a transfer of an entire zone

MAILB 253 A request for mailbox-related records (MB, MG or MR)

MAILA 254 A request for mail agent RRs (Obsolete - see MX)

255 A request for all records
查询类:
IN (1) 指互联网地址。

CS 2 the CSNET class (Obsolete - used only for examples in some obsolete RFCs)

CH 3 the CHAOS class

HS 4 Hesiod [Dyer 87]

查询类是类的一个超集

* 255 any class

(3)应答报文格式:


域名NAME 资源记录包含的域名

类型TYPE 2个字节表示资源记录的类型,指出RDATA数据的含义

类CLASS 2个字节表示RDATA的类

生存时间TTL 4字节无符号整数表示资源记录可以缓存的时间。0代表只能被传输,但是不能被缓存。

**资源数据长度URDLENGT**H 2个字节无符号整数表示RDATA的长度

资源数据RDATA 不定长字符串来表示记录,格式根TYPE和CLASS有关。比如,TYPE是A,CLASS 是 IN,那么RDATA就是一个4个字节的ARPA网络地址。

(4)报文压缩:

为了减小报文,域名系统使用一种压缩方法来消除报文中域名的重复。使用这种方法,后面重复出现的域名或者labels被替换为指向之前出现位置的指针。

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+
| 1 1 | OFFSET |
+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+–+
前两个比特位都为1。因为lablels限制为不多于63个字节,所以label的前两位一定为0,这样就可以让指针与label进行区分。(10 和 01 组合保留,以便日后使用) 。偏移值(OFFSET)表示从报文开始的字节指针。偏移量为0表示ID字段的第一个字节。

压缩方法让报文中的域名成为:

以0结尾的labels序列

一个指针

指针结尾的labels序列

指针只能在域名不是特殊格式的时候使用,否则域名服务器或解析器需要知道资源记录的格式。目前还没有这种情况,但是以后可能会出现。

如果报文中的域名需要计算长度,并且使用了压缩算法,那么应该使用压缩后的长度,而不是压缩前的长度。

程序可以自由选择是否使用指针,虽然这回降低报文的容量,而且很容易产生截断。不过所有的程序都应该能够理解收到的报文中包含的指针。

比如,一个报文需要使用域名F.ISI.ARPA,FOO.F.ISI.ARPA,ARPA,以及根。忽略报文中的其他字段,应该编码为:


偏移20的是域名F.ISI.ARPA。域名FOO.F.ISI.ARPA偏移40; 这样表示FOO的label后面跟着一个指向之前F.ISI.ARPA的指针。域名ARPA偏移64,使用一个指针指向F.ISI.ARPA的ARPA。注意可以用这个指针是因为ARPA是从偏移位置20开始的labels序列中的最后一个label。 根域名在位置92定义为一个0,没有labels。

一个应答帧的例子:
0000 00 24 8c 87 39 7e 74 ea 3a 5b fe a4 08 00 45 00 .$..9~t. :[….E.
0010 00 91 55 bd 00 00 30 11 62 82 08 08 08 08 c0 a8 ..U…0. b…….
0020 01 65 00 35 ee c4 00 7d 78 64 3a 8b 81 80 00 01 .e.5…} xd:…..
0030 00 01 00 00 00 00 03 77 77 77 07 69 73 6e 6f 77 …….w ww.isnow
0040 66 79 03 63 6f 6d 00 00 1c 00 01 c0 0c 00 05 00 fy.com.. ……..
0050 01 00 00 12 ab 00 02 c0 10 …….. .
其中DNS帧从3a8b开始,3a8b是ID,flag8180,问题数1,回答数1,然后绿色部分是域名,回答是棕色部分,域名是c00c用的前面说的压缩方式
————————————————
====================================================================================

DNS 中的协议字段详细定义

2016-01-31 00:42  Loull  阅读(6295)  评论(0)  编辑  收藏

DNS中的协议字段定义

Table of Contents

  • 1 概述
  • 2 DNS Classes
  • 3 DNS OpCodes
  • 4 DNS RCODEs
  • 5 DNS Label Types
  • 6 DNS资源记录
  • 7 EDNS Version
  • 8 DNS EDNS0 Option Codes (OPT)

1 概述

总结DNS协议中各字段的取值

 

2 DNS Classes

DecimalNameReference
0ReservedRFC6895
1Internet(IN)RFC1035
2Unassigned 
3Chaos(CH) 
4Hesiod(HS) 
5-253Unassigned 
254QCLASS NONERFC2136
255QCLASS * (ANY)RFC1035
256-65279Unassigned 
65280-65534Reserved for Private UseRFC6895
65535ReservedRFC6895

 

3 DNS OpCodes

OpCodeNameReference
0QueryRFC1035
1IQuery(Inverse Query)RFC3425
2StatusRFC1035
3Unsassined 
4NotifyRFC1996
5UpdateRFC2136
6-15Unassigned 

 

4 DNS RCODEs

RcodeNameDescriptionReference
0NoErrorNo ErrorRFC1035
1FormErrFormat ErrorRFC1035
2ServFailServer FailureRFC1035
3NXDomainNon-Existent DomainRFC1035
4NotImpNot ImplementedRFC1035
5RefusedQuery RefusedRFC1035
6YXDomainName Exists when it should notRFC2136
7YXRRSetRR Set Exists when it should notRFC2136
8NXRRSetRR set that should exist does notRFC2136
9NotAuthServer Not Authoritative for zoneRFC2136
10NotZoneNot AUthorizedRFC2845
11-15Unassigned  
16BADVERSBad OPT VersionRFC6891
16BADSIGTSIG Signature FailureRFC2845
17BADKEYKey not revognizedRFC2845
18BADTIMESignature out of time windowRFC2845
19BADMODEBad TKEY ModeRFC2930
20BADNAMEDuplicate key nameRFC2930
21BADALGAlgorithm not supportedRFC2930
22BADTRUNCBad TruncationRFC4635
23-3840Unassigned  
3841-4095Reserved for Private Use  
4096-65534Unassigned  
65535Reserved  

 

5 DNS Label Types

DNS label的最高两位来标识该label的类型

ValueTypeStatusReference
0 0普通label. 低6位是该label的长度StandardRFC1035
1 1压缩label. 低6位和接下来的8位标识它相对于包头的偏移量StandardRFC1035
0 1扩展类型的label. 低6位表示label的类型那个StandardRFC1035
1 0未分配  

 

6 DNS资源记录

TYPEValueMeaningReference
A1a host address[RFC1035]
NS2an authoritative name server[RFC1035]
MD3a mail destination(OBSOLETE - use MX)[RFC1035]
MF4a mail forwarder(OBSOLETE - use MX)[RFC1035]
CNAME5the canonical name for an alias[RFC1035]
SOA6marks the start of a zone of authority[RFC1035]
MB7a mailbox domain name (EXPERIMENTAL)[RFC1035]
MG8a mail group member (EXPERIMENTAL)[RFC1035]
MR9a mail rename domain name (EXPERIMENTAL)[RFC1035]
NULL10a null RR (EXPERIMENTAL) [RFC1035] 
WKS11a well known service description[RFC1035]
PTR12a domain name pointer[RFC1035]
HINFO13host information[RFC1035]
MINFO14mailbox or mail list information[RFC1035]
MX15mail exchange[RFC1035]
TXT16text strings[RFC1035]
RP17for Responsible Person[RFC1183]
AFSDB18for AFS Data Base location[RFC1183][RFC5864]
X2519for X.25 PSDN address[RFC1183]
ISDN20for ISDN address[RFC1183]
RT21for Route Through[RFC1183]
NSAP22for NSAP address, NSAP style A record[RFC1706]
NSAP-PTR23for domain name pointer, NSAP style[RFC1348][RFC1637][RFC1706]
SIG24for security signature 
KEY25for security key 
PX26X.400 mail mapping information[RFC2163]
GPOS27Geographical Position[RFC1712]
AAAA28IP6 Address[RFC3596]
LOC29Location Information[RFC1876]
NXT30Next Domain (OBSOLETE)[RFC3755][RFC2535]
EID31Endpoint Identifier 
NIMLOC32Nimrod Locator 
SRV33Server Selection[RFC2782]
ATMA34ATM Address 
NAPTR35Naming Authority Pointer[RFC2915][RFC2168][RFC3403]
KX36Key Exchanger[RFC2230]
CERT37CERT[RFC4398]
A638A6 (OBSOLETE - use AAAA)[RFC3226][RFC2874][RFC6563]
DNAME39DNAME[RFC6672]
SINK40SINK 
OPT41OPT[RFC6891][RFC3225]
APL42APL[RFC3123]
DS43Delegation Signer[RFC4034][RFC3658]
SSHFP44SSH Key Fingerprint[RFC4255]
IPSECKEY45IPSECKEY[RFC4025]
RRSIG46RRSIG[RFC4034][RFC3755]
NSEC47NSEC[RFC4034][RFC3755]
DNSKEY48DNSKEY[RFC4034][RFC3755]
DHCID49DHCID[RFC4701]
NSEC350NSEC3[RFC5155]
NSEC3PARAM51NSEC3PARAM[RFC5155]
TLSA52TLSA[RFC6698]
Unassigned53-54  
HIP55Host Identity Protocol[RFC5205]
NINFO56NINFO[JimReid]
RKEY57RKEY[JimReid]
TALINK58Trust Anchor LINK[WouterWijngaards]
CDS59Child DS[GeorgeBarwood]
Unassigned60-98  
SPF99[RFC-ietf-spfbis-4408bis-21] 
UINFO100[IANA-Reserved] 
UID101[IANA-Reserved] 
GID102[IANA-Reserved] 
UNSPEC103[IANA-Reserved] 
NID104[RFC6742] 
L32105[RFC6742] 
L64106[RFC6742] 
LP107[RFC6742] 
EUI48108an EUI-48 address[RFC7043]
EUI64109an EUI-64 address[RFC7043]
Unassigned110-248  
TKEY249Transaction Key [RFC2930] 
TSIG250Transaction Signature[RFC2845]
IXFR251incremental transfer[RFC1995]
AXFR252transfer of an entire zone[RFC1035][RFC5936]
MAILB253mailbox-related RRs (MB, MG or MR)[RFC1035]
MAILA254mail agent RRs (OBSOLETE - see MX)[RFC1035]
*255all records the server/cache has available[RFC1035][RFC6895]
URI256URI[PatrikFaltstrom]
CAA257Certification Authority Restriction[RFC6844]
Unassigned258-32767  
TA32768DNSSEC Trust Authorities 
DLV32769DNSSEC Lookaside Validation[RFC4431]
Unassigned32770-65279  
Private use65280-65534  
Reserved65535  

 

7 EDNS Version

RangeDescriptionReference
0EDNS version 0RFC6891
1-255Unassigned 

 

8 DNS EDNS0 Option Codes (OPT)

ValueNameStatusReference
0Reserved [RFC6891]
1LLQOn-hold[http://files.dns-sd.org/draft-sekar-dns-llq.txt]
2ULOn-hold[http://files.dns-sd.org/draft-sekar-dns-ul.txt]
3NSIDStandard[RFC5001]
4Reserved  
5DAUStandard[RFC6975]
6DHUStandard[RFC6975]
7N3UStandard[RFC6975]
8edns-client-subnetOptional 
9-65000Unassigned  
65001-65534Reserved for Local/Experimental Use [RFC6891]
65535Reserved for future expansion [RFC6891]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值