draft-ietf-rtgwg-bgp-pic-03.txt | draft-ietf-rtgwg-bgp-pic-04.txt | |||
---|---|---|---|---|
Network Working Group A. Bashandy, Ed. | Network Working Group A. Bashandy, Ed. | |||
Internet Draft C. Filsfils | Internet Draft C. Filsfils | |||
Intended status: Informational Cisco Systems | Intended status: Informational Cisco Systems | |||
Expires: May 2017 P. Mohapatra | Expires: November 2017 P. Mohapatra | |||
Sproute Networks | Sproute Networks | |||
November 22, 2016 | May 22, 2017 | |||
BGP Prefix Independent Convergence | BGP Prefix Independent Convergence | |||
draft-ietf-rtgwg-bgp-pic-03.txt | draft-ietf-rtgwg-bgp-pic-04.txt | |||
Abstract | Abstract | |||
In the network comprising thousands of iBGP peers exchanging millions | In the network comprising thousands of iBGP peers exchanging millions | |||
of routes, many routes are reachable via more than one next-hop. | of routes, many routes are reachable via more than one next-hop. | |||
Given the large scaling targets, it is desirable to restore traffic | Given the large scaling targets, it is desirable to restore traffic | |||
after failure in a time period that does not depend on the number of | after failure in a time period that does not depend on the number of | |||
BGP prefixes. In this document we proposed an architecture by which | BGP prefixes. In this document we proposed an architecture by which | |||
traffic can be re-routed to ECMP or pre-calculated backup paths in a | traffic can be re-routed to ECMP or pre-calculated backup paths in a | |||
timeframe that does not depend on the number of BGP prefixes. The | timeframe that does not depend on the number of BGP prefixes. The | |||
skipping to change at page 2, line 17 ¶ | skipping to change at page 2, line 17 ¶ | |||
documents at any time. It is inappropriate to use Internet-Drafts | documents at any time. It is inappropriate to use Internet-Drafts | |||
as reference material or to cite them other than as "work in | as reference material or to cite them other than as "work in | |||
progress." | progress." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt | http://www.ietf.org/ietf/1id-abstracts.txt | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html | http://www.ietf.org/shadow.html | |||
This Internet-Draft will expire on May 22, 2016. | This Internet-Draft will expire on November 22, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with | carefully, as they describe your rights and restrictions with | |||
respect to this document. Code Components extracted from this | respect to this document. Code Components extracted from this | |||
document must include Simplified BSD License text as described in | document must include Simplified BSD License text as described in | |||
Section 4.e of the Trust Legal Provisions and are provided without | Section 4.e of the Trust Legal Provisions and are provided without | |||
skipping to change at page 2, line 44 ¶ | skipping to change at page 2, line 44 ¶ | |||
Table of Contents | Table of Contents | |||
1. Introduction...................................................3 | 1. Introduction...................................................3 | |||
1.1. Conventions used in this document.........................4 | 1.1. Conventions used in this document.........................4 | |||
1.2. Terminology...............................................4 | 1.2. Terminology...............................................4 | |||
2. Overview.......................................................6 | 2. Overview.......................................................6 | |||
2.1. Dependency................................................6 | 2.1. Dependency................................................6 | |||
2.1.1. Hierarchical Hardware FIB............................6 | 2.1.1. Hierarchical Hardware FIB............................6 | |||
2.1.2. Availability of more than one primary or secondary BGP | 2.1.2. Availability of more than one primary or secondary BGP | |||
next-hops...................................................7 | next-hops...................................................7 | |||
2.1.3. Pre-Computation of a secondary BGP next-hop.....Error! | ||||
Bookmark not defined. | ||||
2.2. BGP-PIC Illustration......................................7 | 2.2. BGP-PIC Illustration......................................7 | |||
3. Constructing the Shared Hierarchical Forwarding Chain..........9 | 3. Constructing the Shared Hierarchical Forwarding Chain..........9 | |||
3.1. Constructing the BGP-PIC forwarding Chain.................9 | 3.1. Constructing the BGP-PIC forwarding Chain.................9 | |||
3.1.1. Example: Primary-Backup Path Scenario...............10 | 3.2. Example: Primary-Backup Path Scenario....................10 | |||
4. Forwarding Behavior...........................................11 | 4. Forwarding Behavior...........................................11 | |||
5. Handling Platforms with Limited Levels of Hierarchy...........12 | 5. Handling Platforms with Limited Levels of Hierarchy...........12 | |||
5.1. Flattening the Forwarding Chain..........................12 | 5.1. Flattening the Forwarding Chain..........................12 | |||
5.2. Example: Flattening a forwarding chain...................14 | 5.2. Example: Flattening a forwarding chain...................14 | |||
6. Forwarding Chain Adjustment at a Failure......................21 | 6. Forwarding Chain Adjustment at a Failure......................21 | |||
6.1. BGP-PIC core.............................................22 | 6.1. BGP-PIC core.............................................22 | |||
6.2. BGP-PIC edge.............................................23 | 6.2. BGP-PIC edge.............................................23 | |||
6.2.1. Adjusting forwarding Chain in egress node failure...23 | 6.2.1. Adjusting forwarding Chain in egress node failure...23 | |||
6.2.2. Adjusting Forwarding Chain on PE-CE link Failure....23 | 6.2.2. Adjusting Forwarding Chain on PE-CE link Failure....23 | |||
6.3. Handling Failures for Flattened Forwarding Chains........24 | 6.3. Handling Failures for Flattened Forwarding Chains........24 | |||
skipping to change at page 8, line 8 ¶ | skipping to change at page 8, line 8 ¶ | |||
Figure 1 VPN prefix reachable via multiple PEs | Figure 1 VPN prefix reachable via multiple PEs | |||
Referring to Figure 1, suppose the iPE (the ingress PE) receives | Referring to Figure 1, suppose the iPE (the ingress PE) receives | |||
NLRIs for the VPN prefixes VPN-IP1 and VPN-IP2 from two egress PEs, | NLRIs for the VPN prefixes VPN-IP1 and VPN-IP2 from two egress PEs, | |||
ePE1 and ePE2 with next-hop BGP-NH1 and BGP-NH2, respectively. | ePE1 and ePE2 with next-hop BGP-NH1 and BGP-NH2, respectively. | |||
Assume that ePE1 advertise the VPN labels VPN-L11 and VPN-L12 while | Assume that ePE1 advertise the VPN labels VPN-L11 and VPN-L12 while | |||
ePE2 advertise the VPN labels VPN-L21 and VPN-L22 for VPN-IP1 and | ePE2 advertise the VPN labels VPN-L21 and VPN-L22 for VPN-IP1 and | |||
VPN-IP2, respectively. Suppose that BGP-NH1 and BGP-NH2 are resolved | VPN-IP2, respectively. Suppose that BGP-NH1 and BGP-NH2 are resolved | |||
via the IGP prefixes IGP-IP1 and IGP-P2, where each happen to have 2 | via the IGP prefixes IGP-IP1 and IGP-P2, where each happen to have 2 | |||
ECMP paths with IGP-NH1 and IGP-NH2 reachable via the interfaces I1 | ECMP paths with IGP-NH1 and IGP-NH2 reachable via the interfaces I1 | |||
and I2, respectively. Suppose that local labels (whether LDP[5] or | and I2, respectively. Suppose that local labels (whether LDP [5] or | |||
segment routing [14]) on the downstream LSRs for IGP-IP1 are IGP-L11 | segment routing [14]) on the downstream LSRs for IGP-IP1 are IGP-L11 | |||
and IGP-L12 while for IGP-P2 are IGP-L21 and IGP-L22. As such, the | and IGP-L12 while for IGP-P2 are IGP-L21 and IGP-L22. As such, the | |||
routing table at iPE is as follows: | routing table at iPE is as follows: | |||
65000:11.1.1.0/24 | 65000:11.1.1.0/24 | |||
via ePE1 (192.0.2.1), VPN Label: VPN-L11 | via ePE1 (192.0.2.1), VPN Label: VPN-L11 | |||
via ePE2 (192.0.2.2), VPN Label: VPN-L21 | via ePE2 (192.0.2.2), VPN Label: VPN-L21 | |||
65000:11.1.2.0/24 | 65000:11.1.2.0/24 | |||
via ePE1 (192.0.2.1), VPN Label: VPN-L12 | via ePE1 (192.0.2.1), VPN Label: VPN-L12 | |||
skipping to change at page 20, line 37 ¶ | skipping to change at page 20, line 37 ¶ | |||
correct VPN label "VPN-L22", which is the label advertised by | correct VPN label "VPN-L22", which is the label advertised by | |||
ePE2 for the prefix "VPN-IP2" | ePE2 for the prefix "VPN-IP2" | |||
o The third entry has the index "1". This is because the third | o The third entry has the index "1". This is because the third | |||
entry corresponds to ePE3. Hence when the hashing is performed | entry corresponds to ePE3. Hence when the hashing is performed | |||
by the forwarding engine results in using the third entry in | by the forwarding engine results in using the third entry in | |||
the flattened pathlist, the forwarding engine will pick the | the flattened pathlist, the forwarding engine will pick the | |||
correct VPN label "VPN-L32", which is the label advertised by | correct VPN label "VPN-L32", which is the label advertised by | |||
"ePE3" for the prefix "VPN-IP2" | "ePE3" for the prefix "VPN-IP2" | |||
Now let's try and apply the forwarding steps in Section 4. together | Now let's try and apply the forwarding steps in Section 4 together | |||
with the additional step in Section 5.1 to the flattened forwarding | with the additional step in Section 5.1 to the flattened forwarding | |||
chain illustrated in Figure 6. | chain illustrated in Figure 6. | |||
o Suppose a packet arrives at "iPE" and matches the VPN prefix | o Suppose a packet arrives at "iPE" and matches the VPN prefix | |||
"VPN-IP2" | "VPN-IP2" | |||
o The forwarding engine walks to the parent of the "VPN-IP2", which | o The forwarding engine walks to the parent of the "VPN-IP2", which | |||
is the flattened pathlist and applies a hashing algorithm to pick | is the flattened pathlist and applies a hashing algorithm to pick | |||
a path | a path | |||
skipping to change at page 25, line 34 ¶ | skipping to change at page 25, line 34 ¶ | |||
that flattening forwarding chains usually results in moderate loss | that flattening forwarding chains usually results in moderate loss | |||
of BGP-PIC benefits. Further analysis is needed to corroborate and | of BGP-PIC benefits. Further analysis is needed to corroborate and | |||
quantify this statement. | quantify this statement. | |||
7. Properties | 7. Properties | |||
7.1. Coverage | 7.1. Coverage | |||
All the possible failures, except CE node failure, are covered, | All the possible failures, except CE node failure, are covered, | |||
whether they impact a local or remote IGP path or a local or remote | whether they impact a local or remote IGP path or a local or remote | |||
BGP next-hop as described in Section 6. This section provides | BGP next-hop as described in Section 6. This section provides | |||
details for each failure and now the hierarchical and shared FIB | details for each failure and now the hierarchical and shared FIB | |||
structure proposed in this document allows recovery that does not | structure proposed in this document allows recovery that does not | |||
depend on number of BGP prefixes. | depend on number of BGP prefixes. | |||
7.1.1. A remote failure on the path to a BGP next-hop | 7.1.1. A remote failure on the path to a BGP next-hop | |||
Upon IGP convergence, the IGP leaf for the BGP next-hop is updated | Upon IGP convergence, the IGP leaf for the BGP next-hop is updated | |||
upon IGP convergence and all the BGP depending routes leverage the | upon IGP convergence and all the BGP depending routes leverage the | |||
new IGP forwarding state immediately. Details of this behavior can | new IGP forwarding state immediately. Details of this behavior can | |||
be found in Section 6.1. | be found in Section 6.1. | |||
End of changes. 10 change blocks. | ||||
11 lines changed or deleted | 9 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |