《RFC6388》部分理解翻译
3. Setting up MP2MP LSPs with LDP
An MP2MP LSP is much like a P2MP LSP in that it consists of a single root node, zero or more transit nodes, and one or more Leaf LSRs acting equally an as Ingress or Egress LSR.
一个MP2MP LSP的组成:有且仅有1个Root,[0 - n]个Transit,[1 - n]个Leaf。
A leaf node participates in the setup of an MP2MP LSP by establishing both a downstream LSP, which is much like a P2MP LSP from the root, and an upstream LSP, which is used to send traffic toward the root and other leaf nodes. Transit nodes support the setup by propagating the upstream and downstream LSP setup toward the root and installing the necessary MPLS forwarding state.
Leaf和Transit在建立MP2MP LSP时发挥的作用:Leaf通过建立downstream LSP(流量从Root向下的LSP)和upstream LSP(流量从Leaf向根或其它Leaf的LSP)的方式参与MP2MP LSP的建立。Transit则通过传递上下游发起的建立来建立必要的转发状态。
The transmission of packets from the root node of an MP2MP LSP to the receivers is identical to that for a P2MP LSP. Traffic from a downstream node follows the upstream LSP toward the root node and branches downward along the downstream LSP as required to reach other leaf nodes. A packet that is received from a downstream node MUST never be forwarded back out to that same node. Mapping traffic to the MP2MP LSP may happen at any leaf node. How that mapping is established is outside the scope of this document.
流量如何转发:由上至下的流量(从Root发送到receivers)方式与P2MP中一致。而从下游来的流量则沿着u pstream LSP向根转发的同时也通过downstream LSP向其它下游的分支转发(如果该节点上存在其它downstream LSP的话)。
防止收到自己的packet:一个从下游收到的packet决不能发回到那个下游去。
Leaf是MP2MP LSP域的流量出入口:任何Leaf节点都可能发生流量映射,如何建立映射不再本文讨论范围。(“流量映射”的一个理解:决定哪些流量需要进入MP2MP域内,哪些不适用LSP转发的规则)
Due to how an MP2MP LSP is built, a Leaf LSR that is sending packets on the MP2MP LSP does not receive its own packets. There is also no additional mechanism needed on the root or Transit LSR to match upstream traffic to the downstream forwarding state. Packets that are forwarded over an MP2MP LSP will not traverse a link more than once, with the possible exception of LAN links (see Section 3.3.1), if the procedures of [RFC5331] are not provided.
由于MP2MP LSP建立的方式,向上游发packets的Leaf不会收到它自己发的packets,因此Root和Transit也不需要额外的机制来比较上游流量和下游转发状态。
MP2MP LSP上的packets不会经过一个节点两次,可能的例外是Section 3.3.1提及的LAN links。
3.1. Support for MP2MP LSP Setup with LDP
Support for the setup of MP2MP LSPs is advertised using LDP capabilities as defined in [RFC5561]. An implementation supporting the MP2MP procedures specified in this document MUST implement the procedures for Capability Parameters in Initialization messages.
MP2MP LSPs 是使用LDP能力来建立的。本文档规定的有关建立MP2MP LSP的步骤实现的前提是必须能够实现在初始化消息中的能力参数协商。
A new Capability Parameter TLV is defined, the MP2MP Capability. Following is the format of the MP2MP Capability Parameter.
为MP2MP定义了新的能力参数TLV。
The MP2MP Capability TLV MUST be advertised in the LDP Initialization message. Advertisement of the MP2MP Capability indicates support of the procedures for MP2MP LSP setup detailed in this document. If the peer has not advertised the corresponding capability, then label messages using the MP2MP upstream and downstream FEC Elements SHOULD NOT be sent to the peer.
MP2MP能力TLV必须在LDP初始化消息中通知,如果没有通知相应的能力,就不应该向其它节点发送与MP2MP相关的消息。
3.2. The MP2MP Downstream and Upstream FEC Elements
For the setup of an MP2MP LSP with LDP, we define 2 new protocol entities, the MP2MP downstream FEC and upstream FEC Element. Both elements will be used as FEC Elements in the FEC TLV. Note that the MP2MP FEC Elements do not necessarily identify the traffic that must be mapped to the LSP, so from that point of view, the use of the term FEC is a misnomer. The description of the MP2MP FEC Elements follow.
为了通过LDP建立MP2MP LSP,定义了2种新的protocol entity:MP2MP downstream FEC Element和MP2MP upstream FEC Element,这两种entity都在FEC TLV中作FEC Element。注意,……,所以从这个角度说,用“FEC”这个术语是有些用词不当。
The structure, encoding, and error handling for the MP2MP downstream and upstream FEC Elements are the same as for the P2MP FEC Element described in Section 2.2. The difference is that two new FEC types are used: MP2MP downstream type (0x08) and MP2MP upstream type (0x07).
有关MP2MP downstream FEC Element和MP2MP upstream FEC Element的结构、编码、差错处理与Section 2.2中描述的P2MP FEC Element相同。唯一的差别是type字段用了新的编号:MP2MP downstream为(0x08)MP2MP upstream为(0x07)。
If a FEC TLV contains an MP2MP FEC Element, the MP2MP FEC Element MUST be the only FEC Element in the FEC TLV.
单个FEC TLV中FEC Element的唯一性:如果一个FEC TLV中包含有一个MP2MP FEC Element,那么该MP2MP FEC Element必须是这个FEC TLV中唯一的FEC Element。
Note, except when using the procedures of [RFC5331], the MPLS labels used are “downstream-assigned” [RFC5332], even if they are bound to the “upstream FEC Element”.
注意:除非使用了【RFC5331】中的步骤,MPLS标签是“下游分配”的,即使他们受到“upstream FEC Element”的约束。
3.3. Using the MP2MP FEC Elements
This section defines the rules for the processing and propagation of the MP2MP FEC Elements. The following notation is used in the processing rules:
MP2MP downstream LSP (or simply downstream ): an MP2MP LSP downstream path with root node address X and opaque value Y.
downstream :流量向下的LSP(带有信息:root IP = X, opaque value = Y)
MP2MP upstream LSP (or simply upstream ): an MP2MP LSP upstream path for downstream node D with root node address X and opaque value Y.
upstream :为下游D建立的流量向上的LSP(带有信息:root IP = X, opaque value = Y)
MP2MP downstream FEC Element : a FEC Element with root node address X and opaque value Y used for a downstream MP2MP LSP.
MP2MP upstream FEC Element : a FEC Element with root node address X and opaque value Y used for an upstream MP2MP LSP.
MP2MP downstream(upstream) FEC Element :用于建立downstream(upstream) MP2MP LSP的FEC Element(带有信息:root IP = X, opaque value = Y)
(也即downstream FEC Element是用在D-Mapping中的,upstream FEC Element是用在U-Mapping中的。)
MP2MP-D Label Mapping : a Label Mapping message with a FEC TLV with a single MP2MP downstream FEC Element and label TLV with label L. Label L MUST be allocated from the per-platform label space (see [RFC3031], Section 3.14) of the LSR sending the Label Mapping message. The use of the interface label space is outside the scope of this document.
MP2MP-U Label Mapping : a Label Mapping message with a FEC TLV with a single MP2MP upstream FEC Element and label TLV with label Lu. Label Lu MUST be allocated from the per-platform label space (see [RFC3031], Section 3.14) of the LSR sending the Label Mapping message. The use of the interface label space is outside the scope of this document.
MP2MP-D(MP2MP-U) Label Mapping :带有FEC TLV的标签映射消息,其中FEC TLV中带有一个MP2MP downstream(upstream) FEC Element ,Label TLV中带有标签L(Lu)。其中L(Lu)分配自各平台的标签命名空间。
(MP2MP-D Label Mapping下游向上游发的,MP2MP-U Label Mapping是上游向下游发的)
MP2MP-D Label Withdraw : a Label Withdraw message with a FEC TLV with a single MP2MP downstream FEC Element and label TLV with label L.
MP2MP-U Label Withdraw : a Label Withdraw message with a FEC TLV with a single MP2MP upstream FEC Element and label TLV with label Lu.
MP2MP-D(MP2MP-U) Label Withdraw :带有FEC TLV的标签撤回消息,其中FEC TLV中带有一个MP2MP downstream(upstream) FEC Element ,Label TLV中带有标签L(Lu)。
MP2MP-D Label Release : a Label Release message with a FEC TLV with a single MP2MP downstream FEC Element and Label TLV with label L.
MP2MP-U Label Release : a Label Release message with a FEC TLV with a single MP2MP upstream FEC Element and label TLV with label Lu.
MP2MP-D Label Release :带有FEC TLV的标签释放消息,其中FEC TLV中带有一个MP2MP downstream(upstream) FEC Element ,Label TLV中带有标签L(Lu)。
The procedures below are organized by the role which the node plays in the MP2MP LSP. Node Z knows that it is a leaf node by a discovery process that is outside the scope of this document. During the course of the protocol operation, the root node recognizes its role because it owns the root node address. A transit node is any node (other then the root node) that receives an MP2MP Label Mapping message (i.e., one that has leaf nodes downstream of it).
关于一个节点如何确定自身的角色是Root还是Transit还是Leaf:Leaf节点的认定方式超出了本文范围(事实上多为上层业务触发或人为静态配置)。而Root和Transit节点则根据收到MP2MP-D(MP2MP-U) Label Mapping 消息中的IP与自己的IP是否相同来判断:若相同,则知道自己是对应于该LSP的Root,不同则为Transit。
Note that a transit node (and indeed the root node) may also be a leaf node and the root node does not have to be an Ingress LSR or a leaf of the MP2MP LSP.
注意1:某节点可能即使Transit也是Leaf(这种节点被称作Bud节点)。
注意2:在MP2MP LSP中Root节点不一定是Ingress或Leaf(Ingress:流量从MP2MP域外流入域内的入口)。
3.3.1. MP2MP Label Mapping
The remainder of this section specifies the procedures for originating MP2MP Label Mapping messages and for processing received MP2MP Label Mapping messages for a particular LSP. The procedures for a particular LSR depend upon the role that the LSR plays in the LSP (Ingress, Transit, or Egress).
All labels discussed here are downstream-assigned [RFC5332] except those that are assigned using the procedures of Section 6.
余下的部分介绍标准所规定的有关标签映射消息(MP2MP Label Mapping messages)收发处理的步骤。这些特定的步骤的处理取决于节点在LSP中的角色。
3.3.1.1. Determining one’s upstream MP2MP LSR
Determining the upstream LDP peer U for an MP2MP LSP follows the procedure for a P2MP LSP described in Section 2.4.1.1.
对于MP2MP LSP而言的的上游节点U的决定方式与P2MP LSP相同,见Section 2.4.1.1.
3.3.1.2. Determining One’s Downstream MP2MP LSR
An LDP peer U that receives an MP2MP-D Label Mapping from an LDP peer D will treat D as downstream MP2MP LSR.
若当前节点U收到来自节点D的MP2MP-D Label Mapping,则将D视作是自己的下游。
3.3.1.3. Installing the Upstream Path of an MP2MP LSP
There are two methods for installing the upstream path of an MP2MP LSP to a downstream neighbor.
- We can install the upstream MP2MP path (to a downstream neighbor) based on receiving an MP2MP-D Label Mapping from the downstream neighbor. This will install the upstream path on a hop-by-hop basis.
- We install the upstream MP2MP path (to a downstream neighbor) based on receiving an MP2MP-U Label Mapping from the upstream neighbor. An LSR does not need to wait for the MP2MP-U Label Mapping if it is the root of the MP2MP LSP or if it already received an MP2MP-U Label Mapping from the upstream neighbor. We call this method ordered mode. The typical result of this mode is that the downstream path of the MP2MP is built hop by hop towards the root. Once the root is reached, the root node will trigger an MP2MP-U Label Mapping to the downstream neighbor(s).
对于下游节点来说,有两种方法建立upstream LSP:
方法1.通过接收从下游邻居发来的MP2MP-D Label Mapping建立上游路径。
方法2.通过等待接收从上游邻居发来的MP2MP-U Label Mapping。但如果节点为Root角色或已经从上游收到过MP2MP-U Label Mapping,则不需要等待。这种方式称为“Ordered Mode”。这种模式下典型的结果是:由下游向上游一跳一跳地建立downstream LSP,一旦到达Root节点,Root节点向下游邻居们发送MP2MP-U Label Mapping。
For setting up the upstream path of an MP2MP LSP, ordered mode SHOULD be used. Due to ordered mode, the upstream path of the MP2MP LSP is installed at the leaf node once the path to the root has completed. The advantage is that when a leaf starts sending immediately after the upstream path is installed, packets are able to reach the root node without being dropped due to an incomplete LSP. Method 1 is not able to guarantee that the upstream path has completed before the leaf starts sending.
建立上游路径应该使用“Ordered Mode”。优点是当上游路径建立好时Leaf节点可以立即发送流量,且流量总是能到达Root不会因LSP未完成而被丢弃。方法1无法保证上游路径在Leaf发送流量前建立完成。
3.3.1.4. MP2MP Leaf Node Operation
A leaf node Z of an MP2MP LSP determines its upstream LSR U for as per Section 3.3.1.1, allocates a label L, and sends an MP2MP-D Label Mapping to U.
Leaf节点Z通过Section 3.3.1.1中的方法确定出上游节点U,然后分配标签L向上游U发送MP2MP-D Label Mapping 。
Leaf node Z expects an MP2MP-U Label Mapping from node U in response to the MP2MP-D Label Mapping it sent to node U. Z checks whether it already has forwarding state for upstream . If not, Z creates forwarding state to push label Lu onto the traffic that Z wants to forward over the MP2MP LSP. How it determines what traffic to forward on this MP2MP LSP is outside the scope of this document.
作为发送MP2MP-D Label Mapping 的回应,Leaf节点Z等待来自上游U的MP2MP-U Label Mapping 。收到来自U的MP2MP-U Label Mapping时,Z检查是否已经建好(upstream 的)上游:
如果没有:Z建立相应转发状态(为了之后给想要进入MP2MP域的流量加上标签)。
如果已有:不操作。
3.3.1.5. MP2MP Transit Node Operation
Suppose node Z receives an MP2MP-D Label Mapping from LSR D. Z checks whether it has forwarding state for downstream . If not, Z determines its upstream LSR U foras per Section 3.3.1.1. Using this Label Mapping to update the label forwarding table MUST NOT be done as long as LSR D is equal to LSR U. If LSR U is different from LSR D, Z will allocate a label L’ and install downstream forwarding state to swap label L’ with label L over interface I associated with LSR D and send an MP2MP-D Label Mapping
假如Z收到了来自节点D的MP2MP-D Label Mapping 。
如果Z没有建好下游转发状态:Z通过Section 3.3.1.1.中定义的方法选出上游节点U,检查表保证D不等于U后,分配标签L’向上游U发送MP2MP-D Label Mapping
后Z建立下游转发状态。 (若D等于U,保留该MP2MP-D Label Mapping但不进行其它操作)
If Z already has forwarding state for downstream , all that Z needs to do in this case is check that LSR D is not equal to the upstream LSR of and update its forwarding state. Assuming its old forwarding state was L’-> { …, }, its new forwarding state becomes L’-> { …, , }. If the LSR D is equal to the installed upstream LSR, the Label Mapping from LSR D MUST be retained and MUST NOT update the label forwarding table.
如果Z已经建好下游转发状态:那么如果新的下游D与当前上游U不相等则更新下游转发状态(在转发表中加入表示去往新下游D标签交换路径)。
如果D与上游节点相等,Z必须保留来自D的MP2MP-D Label Mapping ,但不能更新转发表项。
Node Z checks if upstream LSR U already assigned a label Lu to . If not, transit node Z waits until it receives an MP2MP-U Label Mapping from LSR U (see Section 3.3.1.3). Once the MP2MP-U Label Mapping is received from LSR U, node Z checks whether it already has forwarding state upstream . If it does, then no further action needs to happen. If it does not, it allocates a label Lu’ and creates a new label swap for Lu’ with label Lu over interface Iu. Interface Iu is determined via the procedures in Section 2.4.1.2. In addition, it also adds the label swap(s) from the forwarding state downstream , omitting the swap on interface I for node D. The swap on interface I for node D is omitted to prevent a packet originated by D to be forwarded back to D.
Z检查是否收到过上游的标签Lu。如果没有,Z等待直到收到上游节点U的MP2MP-U Label Mapping消息。一旦收到该消息,Z检查是否已经建好流量向上的LSP,如果已经建好则忽略该消息。如果没建好则分配标签Lu’并更新转发表项。
Node Z determines the downstream MP2MP LSR as per Section 3.3.1.2, and sends an MP2MP-U Label Mapping
节点Z响应MP2MP-U Label Mapping建好流量向上的LSP后,给每一个下游D发送MP2MP-U Label Mapping
消息。
3.3.1.6. MP2MP Root Node Operation
3.3.1.6.1. Root Node Is Also a Leaf
Suppose root/leaf node Z receives an MP2MP-D Label Mapping from node D. Z checks whether it already has forwarding state downstream . If not, Z creates downstream forwarding state to push label L on traffic that Z wants to forward down the MP2MP LSP. How it determines what traffic to forward on this MP2MP LSP is outside the scope of this document. If Z already has forwarding state for downstream , then Z will add the label push for L over interface I to it. Interface I is determined via the procedures in Section 2.4.1.2.
假如节点Z(即是Root也是Leaf)收到了下游的MP2MP-D Label Mapping 消息,Z检查是否已经建好流量向下的LSP。如果没有,Z建立相应转发状态(为之后给想要进入MP2MP域的流量push标签),Z如何决定哪些流量要进入MP2MP域超出了本文的范围。如果已经建好,则更新转发状态增加一条流量向下的LSP。
Node Z checks if it has forwarding state for upstream . If not, Z allocates a label Lu’ and creates upstream forwarding state to swap Lu’ with the label swap(s) from the forwarding state downstream , except the swap on interface I for node D. This allows upstream traffic to go down the MP2MP to other node(s), except the node from which the traffic was received. Node Z determines the downstream MP2MP LSR as per section Section 3.3.1.2, and sends an MP2MP-U Label Mapping
建(或更新)好流量向下的LSP后(接上段),Z检查是否建好流量向上的LSP:
若没有:分配标签Lu’并建立相应转发表项。这使得上行流量到达Root节点后可以通过Root节点转到其它流量向下的LSP的同时剔除流量到达的那路LSP。然后Z给每个下游发送MP2MP-U Label Mapping
消息。 (因为Z节点是根,Z不会发送MP2MP-D Label Mapping消息,也不会受到MP2MP-U Label Mapping消息。)
3.3.1.6.2. Root Node is Not a Leaf
Suppose the root node Z receives an MP2MP-D Label Mapping from node D. Z checks whether it already has forwarding state for downstream . If not, Z creates downstream forwarding state and installs a outgoing label L over interface I. Interface I is determined via the procedures in Section 2.4.1.2. If Z already has forwarding state for downstream , then Z will add label L over interface I to the existing state.
假设Z收到来自D的MP2MP-D Label Mapping 消息。Z检查是否已建好流量向下的LSP,若没有则建立相应转发表项(也即建LSP),若已经建好则更新转发表项增加一个下游LSP分支。
Node Z checks if it has forwarding state for upstream . If not, Z allocates a label Lu’ and creates forwarding state to swap Lu’ with the label swap(s) from the forwarding state downstream , except the swap for node D. This allows upstream traffic to go down the MP2MP to other node(s), except the node from which it was received. Root node Z determines the downstream MP2MP LSR D as per Section 3.3.1.2, and sends an MP2MP-U Label Mapping
建(或更新)好流量向下的LSP后(接上段),Z检查是否建好流量向上的LSP:
如果没有:分配标签Lu’并建立相应转发表项。这使得上行流量到达Root节点后可以通过Root节点转到其它流量向下的LSP的同时剔除流量到达的那路LSP。然后Z给每个下游发送MP2MP-U Label Mapping
消息。 (因为Z节点是根,Z不会发送MP2MP-D Label Mapping消息,也不会受到MP2MP-U Label Mapping消息。)
3.3.2. MP2MP Label Withdraw
The following section lists procedures for generating and processing MP2MP Label Withdraw messages for nodes that participate in an MP2MP LSP. An LSR should apply those procedures that apply to it, based on its role in the MP2MP LSP.
接下来的部分介绍参与建立MP2MP LSP的节点如何处理MP2MP Label Withdraw消息。节点根据自身在MP2MP LSP中的角色(Leaf、Transit或Root)来处理MP2MP Label Withdraw消息。
3.3.2.1. MP2MP Leaf Operation
If a leaf node Z discovers (by means outside the scope of this document) that it has no downstream neighbors in that LSP and that it has no need to be an Egress LSR for that LSP (by means outside the scope of this document), then it SHOULD send an MP2MP-D Label Withdraw to its upstream LSR U for , where L is the label it had previously advertised to U for . Leaf node Z will also send an unsolicited label release to U to indicate that the upstream path is no longer used and that label Lu can be removed.
Leaf节点Z发现自己没有下游邻居并且不再需要成为Egress节点时,Z节点应该发送向自己的上游节点U发送MP2MP-D Label Withdraw消息,其中的L是此前向U发送的Mapping消息中的标签。同时Z也向U发送Label Release消息表明上游路径已经不再会使用了,而Lu标签可以回收了。
Leaf node Z expects the upstream router U to respond by sending a downstream label release for L.
节点Z期望收到上游节点U的Release回复。(该Release消息对应此前Z向U发送的MP2MP-D Label Withdraw消息的回应)
3.3.2.2. MP2MP Transit Node Operation
If a transit node Z receives an MP2MP-D Label Withdraw message from node D, it deletes label L from its forwarding state downstream and from all its upstream states for . Node Z sends an MP2MP-D Label Release message with label L to D. Since node D is no longer part of the downstream forwarding state, Z cleans up the forwarding state upstream . There is no need to send an MP2MP-U Label Withdraw to D because node D already removed Lu and sent a label release for Lu to Z.
如果Transit节点Z从下游节点D收到Withdraw消息,Z删除为流量向下的LSP分配的标签L并更新转发状态。然后Z向下游D回复Release消息。(Withdraw中带有D给Z发送的Mapping消息中的标签L)
此时,因为D已经不存在于Z的下游转发状态中,Z清除了与upstream有关的转发状态。Z不需要向D发送MP2MP-U Label Withdraw 因为D已经移除了标签Lu并发送了有关Lu的release给Z。
If deleting L from Z’s forwarding state for downstream results in no state remaining for , then Z propagates the MP2MP-D Label Withdraw to its upstream node U for and will also send an unsolicited MP2MP-U Label Release to U to indicate that the upstream path is no longer used and that label Lu can be removed.
如果删除下游导致Z没有剩余的下游,Z向上游U发送D-Withdraw和U-Release撤回标签L表明上游路径不再使用且Z可以移除标签Lu(Lu是U为了建立流量向上的LSP而给Z发送的U-Mapping中所带的标签)。
3.3.2.3. MP2MP Root Node Operation
When the root node of an MP2MP LSP receives an MP2MP-D Label Withdraw message, the procedure is the same as that for transit nodes, except that the root node will not propagate the Label Withdraw upstream (as it has no upstream).
Root节点收到D-Withdraw消息的操作与Transit节点相同,除了Root节点不会再向上游发送Withdraw(因为Root没有上游)。
3.3.3. MP2MP Upstream LSR Change
The procedure for changing the upstream LSR is the same as documented in Section 2.4.3, except it is applied to MP2MP FECs, using the procedures described in Section 3.3.1 through Section 3.3.2.3.
上游切换的过程与2.4.3节中的相同,使用3.3.1节和3.3.2.3.节中的方法,除了这里使用的是MP2MP FEC(而不是P2MP)。
4. ~ 7. …
8. Make Before Break (MBB)
An LSR selects the LSR that is its next hop to the root of the LSP as its upstream LSR for an MP LSP. When the best path to reach the root changes, the LSR must choose a new upstream LSR. Sections 2.4.3 and 3.3.3 describe these procedures.
LSR选下一跳的依据是通往root的最佳路由,路由改变引起最佳路径改变,此时LSR必须选择出一个新上游。
When the best path to the root changes, the LSP may be broken temporarily resulting in packet loss until the LSP “reconverges” to a new upstream LSR. The goal of MBB when this happens is to keep the duration of packet loss as short as possible. In addition, there are scenarios where the best path from the LSR to the root changes but the LSP continues to forward packets to the previous next hop to the root. That may occur when a link comes up or routing metrics change. In such a case, a new LSP should be established before the old LSP is removed to limit the duration of packet loss. The procedures described below deal with both scenarios in a way that an LSR does not need to know which of the events described above caused its upstream router for an MBB LSP to change.
当到root的最佳路径发生变化时,LSP可能会暂时中断,导致数据包丢失,直到LSP“重新收敛”到新的上游LSR。MBB的目标是在这种情况发生时尽可能缩短数据包丢失的持续时间。 此外,在某些情况下,从LSR到根的最佳路径会发生变化,但LSP会继续将数据包转发到原来的下一跳。当链接出现或路由指标发生变化时,可能会发生这种情况。 在这种情况下,应该在删除旧LSP之前建立新的LSP,以限制丢包的持续时间。 下面描述的过程中,LSR不感知导致上游路由器变化的原因。
The MBB procedures are an optional extension to the MP LSP building procedures described in this document. The procedures in this section offer a make-before-break behavior, except in cases where the new path is part of a transient routing loop involving more than 2 LSRs (also see Section 4).
MBB过程是LSP构建过程中的可选扩展。 本节提供了一种make-before-break(先接后断)的行为。
8.1. MBB Overview
The MBB procedures use additional LDP signaling.
MBB过程使用LDP的扩展信令。
Suppose some event causes a downstream LSR-D to select a new upstream LSR-U for FEC-A. The new LSR-U may already be forwarding packets for FEC-A; that is, to downstream LSRs other than LSR-D. After LSR-U receives a label for FEC-A from LSR-D, it will notify LSR-D when it knows that the LSP for FEC-A has been established from the root to itself. When LSR-D receives this MBB notification, it will change its next hop for the LSP root to LSR-U.
假设某个事件导致下游LSR-D为FEC-A选择新的上游LSR-U。新的LSR-U可能已建好上下游LSP并为LSR-D以外的下游LSR转发数据包。在LSR-U从LSR-D收到FEC-A的标签后,当LSR-U知道FEC-A的LSP已经从根建立到自身时,LSR-U将通知LSR-D。当LSR-D收到此MBB notification时,它会将LSP根的下一跳更改为LSR-U。
The assumption is that if LSR-U has received an MBB notification from its upstream router for the FEC-A LSP and has installed forwarding state, the LSR is capable of forwarding packets on the LSP. At that point LSR-U should signal LSR D by means of an MBB notification that it has become part of the tree identified by FEC-A and that LSR-D should initiate its switchover to the LSP.
假设如果LSR-U已经从其上游路由器接收到针对FEC-A LSP的MBB notification且已经建立了转发状态,则LSR能够在LSP上转发分组。此时,LSR-U应通过MBB notification向LSR D发信号通知它已成为FEC-A识别的树的一部分,并且LSR-D应该开始切换到LSP。
At LSR-U, the LSP for FEC-A may be in 1 of 3 states.
- There is no state for FEC-A.
- State for FEC-A exists and LSR-U is waiting for MBB notification
that the LSP from the root to it exists. - State for FEC-A exists and the MBB notification has been received
or it is the root node for FEC-A.LSR-U关于FEC-A有以下3中状态:
1.LSR-U不属于FEC-A。
2.LSR-U属于FEC-A,且LSR-U在等待MBB notification。
3.LSR-U属于FEC-A,且LSR-U已经收到过MBB notification,或LSR-U自己就是FEC-A的root。
After LSR-U receives LSR-D’s Label Mapping message for FEC-A, LSR-U MUST NOT reply with an MBB notification to LSR-D until its state for the LSP is state #3 above. If the state of the LSP at LSR-U is state from LSR-D while waiting for an MBB notification from its upstream LSR for the LSP. When LSR-U receives the MBB notification from LSR-U, it transitions to LSP state #3 and sends an MBB notification to LSR-D.
在LSR-U收到LSR-D的标签映射消息后,如果LSR-U不处于上述的状态#3,绝不能向LSR-D回复MBB notification(如果处于状态#3则直接回复MBB notification)。如果LSR-U的LSP状态和LSR-D的状态相同,则等待来自其上游LSR的LSP的MBB notification。当LSR-U收到来自LSR-U的MBB notification时,它转换到LSP状态#3并向LSR-D发送MBB notification。
8.2. The MBB Status Code
As noted in Section 8.1, the procedures for establishing an MBB MP LSP are different from those for establishing normal MP LSPs.
如第8.1节所述,建立MBB MP LSP的过程与建立普通MP LSP的过程不同。
When a downstream LSR sends a Label Mapping message for MP LSP to its upstream LSR, it MAY include an LDP MP Status TLV that carries an MBB Status Code to indicate that MBB procedures apply to the LSP. This new MBB Status Code MAY also appear in an LDP Notification message used by an upstream LSR to signal LSP state #3 to the downstream LSR; that is, that the upstream LSRs state for the LSP exists and that it has received notification from its upstream LSR that the LSP is in state #3.
当下游LSR向其上游LSR发送MP LSP的Label Mapping消息时,它可以包含LDP MP Status TLV,其携带MBB状态码以指示MBB过程适用于LSP。 这个新的MBB状态码也可以出现在上游LSR用来向下游LSR发送LSP状态#3信号的LDP Notification消息中; 也就是说,存在LSP的上游LSR状态,并且已经从其上游LSR接收到LSP处于状态#3的通知。
The MBB Status is a type of the LDP MP Status Value Element as
described in Section 5.1. It is encoded as follows:
| MBB Type | Length | Status Code |
|---|---|---|
| MBB Type: Type 1 | Length: 1 | 1 = MBB request(2 = MBB ack) |
8.3. The MBB Capability
An LSR MAY advertise that it is capable of handling MBB LSPs using the capability advertisement as defined in [RFC5561].
LSR可以使用[RFC5561]中定义的能力通告来宣传它能够处理MBB LSP。
If an LSR has not advertised that it is MBB capable, its LDP peers MUST NOT send it messages that include MBB parameters. If an LSR receives a Label Mapping message with an MBB parameter from downstream LSR-D and its upstream LSR U has not advertised that it is MBB capable, the LSR MUST send an MBB notification immediately to LSR-U (see Section 8.4). If this happens, an MBB MP LSP will not be established, but a normal MP LSP will be the result.
如果LSR没有宣告它具有MBB能力,则其LDP对等体不得向其发送包含MBB参数的消息。如果LSR从下游LSR-D收到带有MBB参数的Label Mapping消息,并且其上游LSR U没有通告它具有MBB能力,则LSR必须立即向LSR-U发送MBB通知(参见第8.4节)。 如果发生这种情况,将不会建立MBB MP LSP,但结果是普通的MP LSP。
8.4. The MBB Procedures
8.4.1. Terminology
MBB LSP
: A P2MP or MP2MP Make Before Break (MBB) LSP entry with root node address X and opaque value Y. 具有root地址X和opaque value值Y的P2MP或MP2MP的MBB LSP。
A(N, L): An accepting element that consists of an upstream neighbor N and Local label L. This LSR assigned label L to neighbor N for a specific MBB LSP. For an active element, the corresponding label is stored in the label forwarding database.
A(N, L):由上游邻居N和本地标签L组成的Accepting Element。LSR为MBB LSP向邻居N分配标签L。对于active元素,本地数据库要记录。
iA(N, L): An inactive accepting element that consists of an upstream neighbor N and local label L. This LSR assigned label L to neighbor N for a specific MBB LSP. For an inactive element,the corresponding label is not stored in the label forwarding database.
iA(N, L):由上游邻居N本地标签L组成的inactive Accepting Element。LSR为MBB LSP向邻居N分配标签L。对于inactive元素,本地数据库不记录。
F(N, L): A Forwarding state that consists of downstream neighbor N and inactive label L. This LSR is sending label packets with label L to neighbor N for a specific FEC.
F(N, L):由下游邻居N和inactive标签L组成的转发状态。该LSR正在向特定FEC的邻居N发送带有标签L的标签分组。
F’(N, L): A Forwarding state that has been marked for sending an MBB Notification message to neighbor N with label L.
F’(N, L):已标记为使用标签L向邻居N发送MBB Notification消息的转发状态。
MBB Notification
: An LDP notification message with an MP LSP , label L, and MBB Status code 2. MBB Notification
:带有标签L、状态码2的LDP notification消息。 MBB Label Mapping
: A MP2MP Label Mapping downstream with a FEC element , label L, and MBB Status code 1. MBB Label Mapping
:带有FEC element 、标签L、状态码1的MP2MP MBB标签映射消息。
8.4.2. Accepting Elements
An accepting element represents a specific label value L that has been advertised to a neighbor N for an MBB LSP
An active element is the element for which the label value has been installed in the label forwarding database. An inactive accepting element is created after a new upstream LSR is chosen and replacement the active element in the label forwarding database is pending.
Inactive elements only exist temporarily while switching to a new upstream LSR. Once the switch has been completed, only one active element remains. During network convergence, it is possible that an inactive accepting element is created while another inactive accepting element is pending. If that happens, the older inactive accepting element MUST be replaced with a newer inactive element.
If an accepting element is removed, a Label Withdraw has to be sent for label L to neighbor N for
Accepting Element表示已经通告给邻居N的用于MBB LSP
的特定标签值L,并且是用于接受标签交换分组的候选者。对于特定的MBB LSP LSP,一个LSR对一个特定的MBB LSP 可以有两个Accepting Element,其中有且仅有一个必须是活动的。 活动元素是其标签值已下表的元素。inactive accepting element是LSR选出新上游后为新上游创建并为替换老的活动元素创建的。
inactive accepting element仅在切换到新的上游LSR时临时存在。一旦切换完成,只有活动元素被保留。在网络收敛期间,有可能出现一个inactive accepting element被创建的时产生另一个inactive accepting element。如果发生这种情况,必须用较新的inactive accepting element替换较旧的inactive accepting element。如果删除了Accepting Element,则必须为标签L的删除发送Withdraw给邻居N.
8.4.3. Procedures for Upstream LSR Change
Suppose a node Z has an MBB LSP
假设节点Z具有MBB LSP
,其具有A(N1,L1)。由于路由改变,它发现新到达根X的最佳上游N2。节点Z分配新的本地标签L2并创建iA(N2,L2)。节点Z向N2发送MBB Label Mapping ,并等待新N2响应与MBB Label Mapping 对应的Notification。在该过渡阶段期间,存在两个accepting element(A和iA),而流量仍然通过N1转发。
While waiting for the MBB Notification from upstream LSR N2, it is possible that another transition occurs due to a routing change. Suppose the new upstream LSR is N3. An inactive element iA(N3, L3) is created and the old inactive element iA(N2, L2) MUST be removed. A Label Withdraw MUST be sent to N2 for
在等待来自上游LSR N2的MBB Notification时,可能由于路由改变而发生另一个转换。假设新的上游LSR是N3。则创建iA(N3,L3),此外必须向N2发送撤回iA(N2,L2)的Withdraw消息并移除较旧的iA(N2,L2)。由于iA(N2,L2)已被移除,来自N2的
的MBB Notification将被忽略。
It is possible that the MBB Notification from upstream LSR is never received due to link or node failure. To prevent waiting indefinitely for the MBB Notification, a timeout SHOULD be applied. As soon as the timer expires, the procedures in Section 8.4.5 are applied as if an MBB Notification was received for the inactive element. If a downstream LSR detects that the old upstream LSR went down while waiting for the MBB Notification from the new upstream LSR, the downstream LSR can immediately proceed without waiting for the timer to expire.
由于链路或节点故障,MBB Notification一直收不到。为了防止无限期地等待,应该设计超时逻辑。一旦计时器到期,就会应用第8.4.5节中的过程,就像收到inactive element的MBB Notification一样。如果下游在等待来自新上游的MBB Notification时检测到旧的上游发生故障,则立即视为定时器超时。
8.4.4. Receiving a Label Mapping with MBB Status Code
Suppose node Z has state for an MBB LSP
假如Z存在有关MBB LSP
的状态而收到了来自N2的MBB Label Mapping 。MP LSP会增加新的转发状态F(N2,L2)。如果active accepting element或者Z是root节点,就向N2发送MBB notification 。如果Z有inactive accepting element则转发状态为 。如果路由器Z上游LSR恰好是N2,则Z不能立即向N2发送MBB notification。只有在Z上游不再是N2之后,才能将MBB notification发送到N2。
8.4.5. Receiving a Notification with MBB Status Code
Suppose node Z receives an MBB Notification
假如Z收到来自N的与MBB Label Mapping
对应的的MBB Notification,如果Z处于MBB状态、有iA(N, L),则启用该路。如果有其它的active状态的上游LSP,移除相应的标签。
If this MBB LSP
如果已经收到过在MBB Notification,例如
,MBB Notifications要向各个下游LSR发送。如果收到的MBB Notification不是活着标签值不匹配,则忽略该Notification。
8.4.6. Node Operation for MP2MP LSPs
The procedures described above apply to the downstream path of an MP2MP LSP. The upstream path of the MP2MP is set up as normal without including an MBB Status code. If the MBB procedures apply to an MP2MP downstream FEC element, the upstream path to a node N is only installed in the label-forwarding database if node N is part of the active accepting element. If node N is part of an inactive accepting element, the upstream path is installed when this inactive accepting element is activated.
【未译】上述过程适用于MP2MP LSP的下游路径。 MP2MP的上游路径正常设置,不包括MBB状态代码。 如果MBB过程适用于MP2MP下游FEC元素,则节点N的上游路径仅安装在标签转发数据库中,如果节点N是活动接受元素的一部分。 如果节点N是非活动接受元素的一部分,则在激活该非活动接受元素时安装上游路径。