摘要:
在IPv6中,可选的网络层信息被分别编码在头部中,这些头部被放置在IPv6头部和传输层头部之间。目前只定义了少数的头部。本文档描述了定义新扩展头部时引起的问题,讨论了IPv6中的另一种扩展机制。同时也为在必要时,定义新IPv6扩展头部提供了一个通用的格式。
1. Introduction
基本的IPv6标准[RFC2460]定义了扩展头部,用来作为携带可选网络信息的扩张机制。除了Hop-by-Hop选项头之外,其他扩展头通常不被中间节点处理。但是,许多现在部署的IPv6路由器和防火墙都违背了[RFC2460],在线速时有能力解析或忽略所有目前定义的IPv6扩展头。因此,一个必须的考虑就是任何新的IPv6扩展头会影响使用这些特性的IPv6部署。
任何包含了逐跳行为的IPv6头部或选项,如果尝试在公开的IPv6网络上使用,都可以导致对处理包含这个头部或选项的报文的路由器的攻击。相关领域的报告显示一些部署在全球网络的IP路由器被配置成忽略或丢弃具有逐跳行为的头部。
2. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT","SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
3. Applicability
基本的IPv6标准[RFC2460]允许使用扩展头部和目的选项来讲可选的目的信息编码在IPv6报文中。使用目的选项来编码这些信息与使用扩展头部相比,提供了更好的处理特性的灵活性,以及更好的兼容性。因此,实现SHOULD使用目的选项作为编码可选目的信息的首选机制,并且只有在目的选项不能满足需求的时候才使用新扩展头部。创造新IPv6扩展头部要求MUST具有一份特殊说明,解释为何目的选项不能用来传输这样的信息。
基本的IPv6标准[RFC2460]定义了3个新IPv6选项可以使用的扩展头部(例如,路由头部,目的选项头部,逐跳选项头部)。在这个标准中,只允许在受限的环境下创建新的扩展头部([RFC2460],4.6节)。
由于前面提到过的原因,任何具有逐跳行为的选项的使用,都会是全球公共网络的问题。具有逐跳行为的新IPv6扩展头部MUST NOT创建。在逐跳选项头部中也SHOULD NOT创建新的选项,除非没有其他解决方案。任何建立在逐跳选项头部中建立新选项的建议MUST包括一个详细的解释,为何逐跳行为是绝对必要的。
使用目的选项来编码信息与使用扩展头部相比,提供了更好的处理特性的灵活性,以及更好的兼容性。因此,传输新选项信息SHOULD放置在现在的IPv6目的选项头中。
由于对现存IPv6部署兼用性要求的注意,新IPv6扩展头MUST NOT创建,除非现在的IPv6扩展头不能被新选项使用。任何建立新IPv6扩展头的建议MUST提供一份详细的技术说明文档,解释为何现在的IPv6扩展头不能使用。
4. Proposed IPv6 Extension Header Format
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Next Header | Hdr Ext Len | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| |
. .
. Header Specific Data .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Next Header 8-bit selector. Identifies the type of header immediately following the extension header.
Uses the same values as the IPv4 Protocol field [IANA_IP_PARAM].
Hdr Ext Len 8-bit unsigned integer. Length of the extension header in 8-octet units, not including the first 8 octets.
Header Specific Variable length. Fields specific to the extension header.
Data
Figure 1: Extension Header Layout