组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:ouyang@china-pub.com 译者:万怡敏(scottwan greatgod@163.net) 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须 保留本文档的翻译及版权信息。 Network Working Group E. Rosen Request for Comments: 3032 D. Tappan Category: Standards Track G. Fedorkow Cisco Systems, Inc. Y. Rekhter Juniper Networks D. Farinacci T. Li Procket Networks, Inc. A. Conta TranSwitch Corporation January 2001 RFC3032 MPLS标记栈编码 (RFC3032 MPLS Label Stack Encoding) 本备忘录状态 This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. 版权声明 Copyright (C) The Internet Society (2001). All Rights Reserved. 摘要 MPLS需要一组用于为网络层数据包加上“标记栈”,从而将其转化为“标记包”。 支持MPLS的路由器称为“标记交换路由器”,或“LSR”。为了在一条特定链路上传 送一个标记包,LSR必须支持一种可以为给定的一个标记栈和一个网络包产生一个标 记包的编码技术。本文档详细说明了一个LSR为了在点到点(PPP)数据链路上、在 局域网数据链路上、以及其它可能的数据链路上传送数据包,所使用的编码技术。在某 些数据链路上,标记栈顶部的标记可能被以不同的方式编码,但是这里所阐述的技术必 然会被用于编码标记栈剩余的部分。本文档也详细说明了用于处理标记栈编码的不同区 域的法则和进程。 目录 1 介绍   1.1 要求的详细说明 2 标记栈 2.1 对标记栈编码 2.2 确定网络层协议 2.3 为标记包产生ICMP消息 2.3.1  隧道封装地通过一个过渡段路由域 2.3.2  隧道封装私有地址通过一条公共主干 2.4 处理存活周期域 2.4.1  定义     2.4.2 独立于协议的规则 2.4.3 依赖于IP的规则 2.4.4 在不同的封装方法间互译       3 分片和路径MTU发现 3.1 术语 3.2 最大原始的被标记的IP数据容量 3.3 什么时候被标记的IP数据太大了? 3.4 对太大的被标记的Ipv4数据的处理 3.5 对太大的被标记的Ipv6数据的处理 3.6 关于“路径MTU发现”的含义 4 在PPP链路上传输标记包 4.1 介绍 4.2 用于MPLS的一个PPP网络控制协议 4.3 发送标记包 4.4 标记交换控制协议配置选项 5 在局域网介质上传输标记包 6 IANA的考虑 7 安全方面的考虑 8 知识的所有权 9 作者的地址 10 参考资料 11 版权说明 1. 介绍   MPLS需要一组用于为网络层数据包加上“标记栈”,从而将其转化为“标记包”。支持 MPLS的路由器称为“标记交换路由器”,或“LSR”。为了在一条特定链路上传送一个标记 包,LSR必须支持一种可以为给定的一个标记栈和一个网络包产生一个标记包的编码技术。 本文档详细说明了一个LSR为了在PPP数据链路上、和在局域网数据链路上传送数据 包,所使用的编码技术。这里特定的编码技术同时对其他数据链路也有用。 本文档也详细说明了用于处理标记栈编码的不同区域的法则和进程。因为MPLS 是独立于任何网络层协议的,所以大多数这些进程也是独立于网络层协议的。但是,少 数则根据协议的不同而不同。在本文档中,我们详细说明了这些独立于协议的进程,并 且我们还详细说明了依赖于IPv4和IPv6协议的进程。 在某些交换设备(如ATM交换机)上被实现的LSR可以在对标记栈顶部的一个或 两个条目编码时使用不同的编码技术。但是,在此标记栈有另外的条目时,本文档所阐 述的编码技术必然可以用于另外的标记栈条目。 1. 要求的详细说明     本文档中的这些关键词"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"的意义通过RFC 2119   [2]的阐述来解释。 2. 标记栈 2.1 对标记栈编码 标记栈表现为一个“标记栈条目”序列。每个标记栈条目用4个字节来表示。见 图1所示。    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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Label | Label | Exp |S| TTL | Stack +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Entry Label: 标记值,20位 Exp: 实验用,3位 S: 标记栈底部标志,1位 TTL: 存活时间,8位 图1   标记栈条目出现在数据链路层头的后面,但在任何网络层头的前面。标记栈的顶部  最先在数据包中出现,而底部最后出现。网络层数据包紧跟着S位置1的标记栈条目。   每个标记栈条目被分为下面几个区域: 1. 标记栈的底部(S) 某个标记栈条目的S位被置1,则表示它是标记栈的最后一个条目(如标记栈的底 部),而在标记栈的其他条目中S位都为0。 2. 存活时间(TTL) 这个8位域被用于对一个存活时间值编码。此域的处理将在2.4节中阐述。 3. 实验用 这个3位域被保留作实验用。 4. 标记值 这个20位域搭载实际的标记值。当LSR收到一个标记包时,将查看标记栈顶部的 标记值。在查看成功后获得的结果是: a) 这个数据包将被转发到的下一跳。 b) 在转发此数据包之前对标记栈顶部的操作:可以是用另一条标记代替标记栈顶 部的标记;或是将标记栈顶部的标记弹出;或是压入一条或多条另外的条目到 此标记栈中以取代当前这条条目。          除了获知下一跳和对标记栈的操作以外,LSR也可以获知出口链路的封装,以及 其  它可能需要的用于正确转发数据包的信息。   几个保留的标记值: i. 0表示“IPv4显式空标记”。此标记值仅在标记栈的底部条目中合法。它表明此 标记栈必须被弹出,而必须基于这个数据包的IPv4头来转发数据包。 ii. 1表示“路由器报警标记”。此标记值除了在标记栈的底部条目中非法外,其它 位置都合法。   iii. 2表示“IPv6显式空标记”。此标记值仅在标记栈的底部条目中合法。它表明此 标记栈必须被弹出,而必须基于这个数据包的IPv6头来转发数据包。 iv. 3表示“模糊空标记”。这是一条LSR可分配和设置的但从不出现在封装头中的 标记。在一LSR用一条新标记来取代栈顶标记的时候,如果新标记是“模糊空”, 这个LSR将弹出标记栈而不进行取代。虽然这个值从不在封装头中出现,但它 需要由标记分配协议来指定,所以这个值被保留。 2.2 确定网络层协议 当最后一条标记被从标记栈中弹出时(结果是此标记栈为空),对这个数据包的进 一 步的处理就基于数据包的网络层头。所以LSR将标记栈中最后一条标记弹出时随后必  须能识别出此数据包的网络层协议。然而,标记栈并没有任何一个显式地标识网络层协       议的域。这意味着对网络层协议的标识可能连同网络层头自身的内容一起,必须可以从 被从栈底弹出的标记值中推断出来。   于是,在将第一条标记压入一个网络层数据包的时候,要么这条标记一定仅被用于 一个特定网络层的数据包中;要么这条标记一定仅被用在一组特定网络层协议中,而此 特定网络层的数据包可以通过检查网络层头来辩识。进一步的说,在一个包的传送中无 论什么时候用一个新的标记值取代旧的标记值,新的标记值也必须遵守同一标准。如果 不是这样,当LSR将最后一条标记弹出时,将不能标识此数据包的网络层协议。   遵守这种规则,就不要求中间节点必须能识别一个数据包的网络层协议。在普通情 况下,这不是必要条件,但在出错情况下就是必要条件。例如,如果一个中间LSR确 定一条标记不可发送,则希望此LSR产生此数据包网络层特定的错误信息。这仅意味 着,中间LSR通过检查标记栈顶标记和网络层头来识别网络层。于是如果中间节点能 为标记包产生协议特定的错误信息,标记栈中所有的标记必须满足以上为出现在栈底的 标记而指定的标准。   如果一个数据包因为某种原因不能被转发(如它超出了数据链路MTU),并且要么 它的网络层协议不能被识别,要么没有特定的协议隶属的规则来处理此错误情况,那么 此数据包会被无声的丢弃。 2.3 为标记IP数据包产生ICMP消息     第2.4节和第3节讨论了希望为标记IP包产生ICMP消息的情景。为了让一个特 定    的LSR能产生一个ICMP数据包,并且将此包传送到IP包的源地址,必须支持下列两 个条件: 1. 此LSR必须能确定一个特定标记包是一个IP数据包。 2. 此LSR必须能路由到此数据包的IP源地址。     条件1已经在2.2节中讨论了。下面的小节讨论条件2。但是,可能有一些条件2 完全不支持的情况,那么在这些情况下LSR不能产生ICMP消息。 2.3.1 隧道封装地通过一个过渡路由域   考虑到使用MPLS技术“隧道封装”地通过一个过渡路由域时,在此外部路由不 会渗漏进该域的内部路由器。例如,内部路由器可能正运行OSPF,并且仅可能知道 如何到达此OSPF域内的目的地。此域可以有一些用BGP相互交谈的ASBR(AS边 界路由器)。但是,在此例中来自BGP的路由不会被分配给OSPF,并且不是ASBR 的LSR不运行BGP。   在此例中,仅一个ASBR知道如何路由到一些任意数据包的源地址。如果一个内 部LSR需要发送一个ICMP消息到一IP数据包的源地址,它将不知道如何路由此ICMP 消息。   解决方案之一是让一或多个ASBR注入到IGP的“缺省路由”中。这将保证任何 要离开此域的无标记数据包(如一个ICMP消息)被发送到一个有完整路由信息的路 由器。这个有完整路由信息的路由器给这个包加上标记后使它通过过渡路由域发送回 源地址,从而在此过渡路由域中采用缺省路由不会导致环回。   2.3.2 隧道封装私有地址通过一条公共主干     在MPLS技术被用于“隧道封装”穿过一个路由域的情况下,完全不可能路由到 一个分片包的源地址。例如下面情况,在一个IP数据包中搭载的IP地址是私有地 址(不是全球唯一的),并且使用MPLS技术来“隧道封装”那些穿过一条公共主干 的数据包。在此环境中到一个ASBR的缺省路由不能工作。   在这种环境下,为了发送一个ICMP消息到一个数据包的源地址,LSR可以从原 始数据包中拷贝标记栈给ICMP消息,然后用标记交换此ICMP消息。这将导致该消 息被沿着到原始数据包的目的地址的方向,而不是源地址的方向进行标记交换。除非 此消息一直被标记交换到目的主机,否则它将因为无标记而终止在一个知道如何路由 到原始数据包源地址的路由器处,在这个节点处,该消息被以正确方向重新发送。   当ICMP消息是“Time Exceeded”消息或“Destination Unreachable because   fragmentation needed and DF set”消息时这项技术就很有用。   当从原始数据包中将标记栈拷贝到ICMP消息时,标记值必须被精确拷贝。但在标 记栈中的TTL值将被ICMP消息的IP头中的TTL值取代。这个TTL值必须足够大使得此ICMP 消息能被往返路由。   注意如果一个数据包的TTL过期是因为要表示一个路由环回,那么如果使用这项技 术,此ICMP消息也可能环回。因为一条ICMP消息从不作为收到一条ICMP消息的结果来发 送,并且因为一些工具调节产生ICMP消息的速度,所以这不会造成任何问题。 2.4 处理存活周期域   2.4.1 定义    一个标记数据包的“输入TTL”的定义是:当一个数据包被收到时,顶部标记栈 条目的TTL域的值。   一个标记数据包的“输出TTL”被定义为下面值的较大的一个: a) 输入TTL减1 b) 0 2.4.2 独立于协议的规则     如果一个标记数据包的TTL值是0,那么此数据包必然不能被进一步转发;或者 此 数据包的标记栈被剥离然后作为一个非标记包被转发。在此网络中这个数据包的“生命” 被认为是结束了。   根据标记栈条目中标记值,这个数据包可能被简单的丢弃,或者被传到恰当的“原  始”网络层来错误处理。(例如产生一个ICMP消息,参见第2.3节)   当一个标记包被转发时,标记栈顶部条目的TTL域值必须被设置为输出TTL值。   注意输出TTL值是输入TTL值单一函数,与数据包被转发前是否有标记被压入或 弹出无关。而不在标记栈顶部的任意条目的TTL值都没有意义。 2.4.3 依赖于IP的规则     无论使用那一个IP协议,我们定义“IP TTL”域的值为IPv4 TTL域的值,或是IPv6 站点限制域的值。   在第一次为一个IP数据包加标记时,此标记栈条目的TTL域的值必须被设置为该  数据包的TTL域值。(如果作为IP进程的一部分,此数据包的TTL域值需要被减一, 此处假设已经作了)。   当一条标记被弹出后,且剩余的标记栈为空,那么按照上面的定义,此数据包的 TTL 域值必须被输出TTL域值所取代。在IPv4环境中这还需要IP头校验的变换。   公认的情况是:网络管理员宁愿在标记包穿越一个MPLS域时将IPv4 TTL域值减 一, 而不是用IPv4 TTL域值来减去此域的LSP跳的数目。    2.4.4 在不同的封装方法间互译     有时一个LSR可能在一个标记交换控制的ATM接口(LC-ATM)中收到一个标记 包,且可能基于一个PPP或LAN链路将它发送出去。那么这个输入数据包将不使用本 文档中指定的封装方法来接收,但是输出数据包将用本文档中指定的封装方法来发送。   在此环境中,由在LC-ATM接口中使用的搭载标记包的进程来确定此“输入TTL” 域值。TTL进程然后按上面所述来进行。    有时一个LSR可能在一个PPP或LAN链路上收到一个标记包,且可能基于 LC-ATM 接口将它发送出去。那么这个输入数据包将使用本文档中指定的封装方法来接收,但是 输出数据包将不用本文档中指定的封装方法来发送。在此环境中,由在LC-ATM接口 中       使用的搭载标记包的进程来确定此“输出TTL”域值。 3. 分片和路径MTU发现     LSR有可能收到一个非标记数据包,因为太大而不能被在它的输出链路上传输; 就 有可能收到一个标记数据包,因为太大而不能被在它的输出链路上传输。   也有可能收到的一个数据包(标记或无标记)最初足够小可以被在链路上传输,但 在压入一个或多个额外的标记到它的的标记栈后,就因为太大不能被在链路上传输。在 标记交换中,一个数据包可能因为被压入额外的标记而增加它的规模。即如果LSR收 到一个带有1500字节帧载荷的标记包,并且另外压入一条标记,那么就必须转发这个 带有1504字节帧载荷的标记包。   本节详细说明了处理“太大”标记包的规则。特别的是,它提供了让实现Path MTU Discovery的主机,和使用IPv6的主机,能产生不需要被分片的IP数据包,即使它们 的 数据包穿越网络时可能被加上标记。   通常,IPv4主机不能对发送小于576字节的IP数据包执行Path MTU Discovery。 因为目前在大多数数据链路上使用的MTU大于或等于1500字节,所以即使这些数据 包被加上标记,需要被分片来发送的机会也很小。   当数据包的IP源地址和目的地址在同一个子网时,有些不能实现Path MTU Discovery主机会产生1500字节的IP数据包。但这些数据包不会通过路由器,于是 也不会被分片。   不幸的是,当数据包的IP源地址和目的地址是同一类网络数时,有些主机会产生 1500字节的IP数据包。这里就存在这些数据包被加上标记后需要被分片的危险性。   本文档详细说明了允许配置网络,使得来自不能实现Path MTU Discovery的主机 的大数据包仅在它第一次被加上标记时被分片的方法。这些方法避免了对任何那些已 经被加上标记的数据包再分片。 3.1 术语   根据一条特定的数据链路,我们使用以下的术语: - 帧载荷:   除了所有数据链路层头部或尾部外,一个数据链路帧的容量。    当一个帧正搭载一个无标记IP数据包时,此帧载荷仅是IP数据包自身。当一个 帧正搭载一个标记包时,此帧载荷包含此IP数据包和标记栈条目。 - 通用的最大帧载荷容量:   接口硬件能正确发送和接收的最大帧载荷容量附属于此数据链路。     在以太网和802.3网络中,相信实际最大帧载荷容量比通用的最大帧载荷容量大4 到8个字节。例如:至少只要此数据包以太层头部没有一个802.1Q或802.1p域,相 信大多数以太设备能正确发送和接收一个搭载1504甚至1508字节载荷的数据包。     在PPP链路上,真正的最大帧载荷容量实际上可以不受限制。 - 对于标记包有实际意义的最大帧载荷容量:   取决于此数据链路的设备的容量和被使用的数据链路头的容量,要么是通用的最 大帧载荷容量,或者是实际的最大帧载荷容量。   - 初始的标记IP数据:   假设一个特定的LSR收到一个无标记数据包,并且这个LSR在转发此数据包之 前为它加上一个标记。那么称这样一个数据为那个LSR的初始的标记IP数据。 - 早先的标记IP数据:   一个IP数据,在一个特定的LSR收到它之前已经被加上标记。 3.2 最大初始的标记IP数据容量 每个LSR都有以下的能力: a) 接收一个无标记IP数据; b) 为这个数据加上一个标记栈; c) 转发所得到的标记包。     应该支持一个名为“最大初始的标记IP数据容量”的配置参数,此参数被设置为 一个非负值。      如果此配置参数被设为0,则无意义。      如果此配置参数被设为负值,则有以下的应用。   如果: a) 收到一个无标记IP数据; b) 此数据的IP头中DF位未被设置为1; c) 此数据在被转发前需要加上标记; d) 此数据的大小(被加标记前)超出了该参数的值。     那么 a) 此数据必须被分片,每片大小不能大于该参数的值; b) 每片必须被加上标记再转发。          例如,如果此参数被设置为1488,那么任何包含大于1488字节的无标记数据包 将再被加上标记前先被分片。每个分片即使再有三个之多的标记被压入它的标记栈中, 也不用被再进一步分片,就可以被搭载在一个1500字节的数据链路上。   换句话说,将此参数设置为一个非0值使得LSR不用对早先的标记IP数据分片, 但也可能导致对某些初始的标记IP数据的不必要的分片。   要注意的是:此参数的设置不能影响对DF位为1的IP数据的处理;因此Path MTU Discovery的结果不受此参数设置的影响。 3.3 什么时候标记IP数据是太大?       当一个标记IP数据被在一条数据链路上转发时,它的容量超出了此数据链路的通 用的最大帧载荷容量,那么这个数据就被认为“太大”。     当一个标记IP数据被在一条数据链路上转发时,它的容量超出了此数据链路的实 际的最大帧载荷容量,那么这个数据就被认为“太大”。   一个不是“太大”的标记IP数据必须不被分片而转发。 3.4 对太大的标记IPv4数据的处理     如果一个标记IPv4数据是“太大”,并且它的IP头的DF位不是1,则LSR可能 无 声地丢弃此数据。   要注意地是:仅当网络中的LSR有能力给一个无标记的IP数据加上一个标记栈, 并且LSR的“最大初始的标记IP数据容量”被设置为非0值的时候,丢弃这些数据 才是一个可以被察觉的过程。   如果此LSR选择了不丢弃一个太大的标记IPv4数据,或者此数据的DF位被设置 为1,那么LSR必须执行下面的算法: 1.  取下标记栈条目,得到IP数据。 2.  给N赋值为标记栈的字节数(即标记栈条目数的4倍)。 3.  如果此IP数据的IP头DF位不是1:       a. 分片这个数据,每片大小至少比现行的最大帧载荷容量小N个字节。          b. 预先为每个分片加上一样的标记头可以使得初始数据不须分片。       c. 转发这些分片。   4. 如果此IP数据的IP头DF位是1: a. 这个数据必然不能被转发。 b. 产生一个ICMP目的地不可到达消息: i. 将它的Code域设为“需要分片和DF为1”, ii. 将它的下一跳MTU域值设为现行的最大帧载荷容量和N的差值。 c. 如果可能的话,将这个ICMP目的地不可到达消息传送到此被丢弃数据的         源地址。 3.5 对太大的标记IPv6数据的处理   为了处理一个太大的标记IPv6数据,那么LSR必须执行下面的算法: 1. 取下标记栈条目,得到IP数据。 2. 给N赋值为标记栈的字节数(即标记栈条目数的4倍)。 3. 如果此IP数据大于1280字节(不算标记栈条目),或者它没有一个分片头, 那么: a. 产生一个ICMP数据包太大消息,将它的下一跳MTU域值设为现行的最 大帧载荷容量和N的差值。 b. 如果可能的话,将这个ICMP数据包太大消息传送到此被数据的源地址。 c. 丢弃这个标记IPv6数据。 4. 如果此IP数据不大于1280字节,并且它有一个分片头,那么: a. 分片这个数据,每片大小至少比现行的最大帧载荷容量小N个字节。 b. 预先为每个分片加上一样的标记头可以使得初始数据不须分片。 c. 转发这些分片。    对这些分片的重新组合将在目的地主机上进行。 3.6 关于Path MTU Discovery的含义     上述关于处理DF位为1,但“太大”的数据的过程对于RFC1191的Path MTU Discovery过程有一点影响。实施此过程的主机将会发现一个足够小的MTU使得不用 分片就可以将n个标记压入这个数据,在此n是沿着当前使用的路线实际上被压入的 标记数目。     换句话说,来自实施Path MTU Discovery过程的主机的数据将从不会因为被压入 一个标记头,或者被为一个现存的标记头增加一条新标记,而需要被分片。(来自实施 Path MTU Discovery过程的主机的数据的DF位通常为1)。 需要注意的是:如果Path MTU Discovery仅在一个标记IP数据需要被分片的节点 正常工作的话,这将可能导致一个ICMP目的地不可到达消息被路由到这个数据包的 源地址。参见2.3节。   如果不能从一条MPLS“隧道”中转发一个ICMP消息到一个数据包的源地址,但 网络配置使得在隧道传输端点的LSR可能会收到必须要穿过此隧道的数据包,而此数 据包太大以至于不能不被分片就通过此隧道,那么:   - 在隧道传输端点的LSR必须能确定整个隧道的MTU。这可以通过在将数据包 穿过隧道发送到隧道的接收端点的同时,对那些数据包实施Path MTU Discovery的方 法来实现。   - 任何时候隧道传输端点需要发送一个数据包到隧道中,而此数据包的DF位为 1, 并且它超过了此隧道的MTU,则隧道传输端点必须发送一条按上述“需要分片DF 位设置”编码,及下一跳MTU域值设置的ICMP目的地不可到达消息给此数据包的源 地址。 4. 在PPP链路上传输标记包     PPP协议为在点到点链路上传输多协议数据提供了一个标准方法。PPP定义了一个 扩展的链路控制协议,并且提出了一组网络控制协议用于建立和配置不同的网络层协 议。   本节详细说明了用于在PPP上建立和配置标记交换的网络控制协议。 4.1 简介     PPP有三个主要构件: 1. 一种封装多协议数据的方法。 2. 一种建立、配置、和测试数据链路连接的链路控制协议(LCP)。 3. 一组建立和配置不同网络层协议的网络控制协议。     为了在一条点到点链路上建立通信,此PPP链路每一端必须首先发送LCP数据包 以配置和测试这条数据链路。当这条链路已经被建立,并且按LCP的要求协商了任选 的设备后,PPP必须发送“MPLS控制数据包”使得可以传送标记包。一旦这个“MPLS 控制数据包”已到达开放状态,则可以在这条链路上发送标记包了。   除非显式LCP或MPLS控制协议数据包关闭这条链路,或者某些外部事件发生(一 个不活动的计时器过期或网络管理员介入),这条链路将保持通信的配置。 4.2 一个MPLS的网络控制协议     MPLS网络控制协议(MPLSCP)负责一条PPP链路上是否允许使用标记交换。它 使用于LCP一样的数据包交换机制。MPLSCP数据包直到PPP已到达网络层协议阶段 才被交换。在此阶段到来之前收到的MPLSCP数据包被无声地丢弃。   MPLSCP与LCP除了下面的不同外其它都完全一样:   1. 帧的变型      在链路建立阶段这个数据包将使用已协商的基本帧格式的变型。   2. 数据链路层协议域     准确地说MPLSCP数据包是被在PPP信息域中封装,PPP域表示H0281类型    (MPLS)。   3. 代码域     仅使用代码1到7(配置请求,配置确认,配置_Nak,配置拒绝,中断请求,     中断确认和代码拒绝)。其它代码将不被识别并导致代码拒绝。   4. 暂停     MPLSCP数据包直到PPP已到达网络层协议阶段才被交换。在暂停等待一个     配置确认或其它响应之前,将准备执行等待完成鉴证和确定链路质量。在此建     议在用户介入或一个配置的时间数后放弃执行。     5. 配置选项类型       无。 4.3 发送标记包     在任意标记包可以被交换之前,PPP必须到达网络层协议阶段,并且MPLSCP必 须到达开放状态。   准确地说一个标记包数据包是被在PPP信息域中封装,PPP域表示H0281类型 MPLS)或H0283类型(MPLS组播)。在一条PPP链路上传输的一个标记包的最大长 度与一个PPP封装数据包的信息域的最大长度相同。   第2节定义了信息域自身的格式。   要注意的是为标记包定义了两个码点;一个用于单播一个用于组播。一旦MPLSCP 已到达开放状态,标记交换组播和标记交换单播都可以在PPP链路上被发送。 4.4 标记交换控制协议配置选项     没有配置选项。 5. 在局域网介质上传输标记包     每类帧都可以搭载标记包。     标记栈条目跟在任一数据链路层头(包括可能的802.1Q头)之后,紧跟它的是网 络层头。     以太类值H8847被用于表示一个正搭载一个MPLS单播数据包的帧。   以太类值H8848被用于表示一个正搭载一个MPLS组播数据包的帧。   这些以太类值可以用在通过以太封装或802.3 LLC/SNAP封装来搭载标记包的时 候。关于选择那一种封装的方法超出了本文档的范围。 6. IANA的考虑     按照本文档的说明,或由IANA的进一步分配,标记值0-15有特别的意义。     在本文档第2.1节说明了标记值0-3。     IANA将根据IETF的意见分配标记值4-15。 RFC3032 MPLS Label Stack Encoding    RFC3032 MPLS标记栈编码 1 RFC文档中文翻译计划