draft-ietf-grow-bgp-gshut-09.txt | draft-ietf-grow-bgp-gshut-10.txt | |||
---|---|---|---|---|
Network Working Group P. Francois | Network Working Group P. Francois, Ed. | |||
Internet-Draft Individual Contributor | Internet-Draft Individual Contributor | |||
Intended status: Informational B. Decraene | Intended status: Informational B. Decraene, Ed. | |||
Expires: January 4, 2018 Orange | Expires: January 28, 2018 Orange | |||
C. Pelsser | C. Pelsser | |||
Strasbourg University | Strasbourg University | |||
K. Patel | K. Patel | |||
Arrcus, Inc. | Arrcus, Inc. | |||
C. Filsfils | C. Filsfils | |||
Cisco Systems | Cisco Systems | |||
July 3, 2017 | July 27, 2017 | |||
Graceful BGP session shutdown | Graceful BGP session shutdown | |||
draft-ietf-grow-bgp-gshut-09 | draft-ietf-grow-bgp-gshut-10 | |||
Abstract | Abstract | |||
This draft describes operational procedures aimed at reducing the | This draft describes operational procedures aimed at reducing the | |||
amount of traffic lost during planned maintenances of routers or | amount of traffic lost during planned maintenances of routers or | |||
links, involving the shutdown of BGP peering sessions. It defines a | links, involving the shutdown of BGP peering sessions. It defines a | |||
well-known BGP community, called GRACEFUL_SHUTDOWN, to signal the | well-known BGP community, called GRACEFUL_SHUTDOWN, to signal the | |||
graceful shutdown of paths. | graceful shutdown of paths. | |||
Status of This Memo | Status of This Memo | |||
skipping to change at page 1, line 41 ¶ | skipping to change at page 1, line 41 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on January 4, 2018. | This Internet-Draft will expire on January 28, 2018. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 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 | |||
skipping to change at page 2, line 25 ¶ | skipping to change at page 2, line 25 ¶ | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Packet loss upon manual EBGP session shutdown . . . . . . . . 4 | 3. Packet loss upon manual EBGP session shutdown . . . . . . . . 4 | |||
4. Practices to avoid packet losses . . . . . . . . . . . . . . 4 | 4. Practices to avoid packet losses . . . . . . . . . . . . . . 4 | |||
4.1. Improving availability of alternate paths . . . . . . . . 4 | 4.1. Improving availability of alternate paths . . . . . . . . 4 | |||
4.2. Make before break convergence: graceful shutdown . . . . 5 | 4.2. Make before break convergence: graceful shutdown . . . . 5 | |||
4.3. Forwarding modes and transient forwarding loops during | 4.3. Forwarding modes and transient forwarding loops during | |||
convergence . . . . . . . . . . . . . . . . . . . . . . . 5 | convergence . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
5. EBGP graceful shutdown procedure . . . . . . . . . . . . . . 5 | 5. EBGP graceful shutdown procedure . . . . . . . . . . . . . . 5 | |||
5.1. Pre-configuration . . . . . . . . . . . . . . . . . . . . 5 | 5.1. Pre-configuration . . . . . . . . . . . . . . . . . . . . 5 | |||
5.2. Operations at maintenance time . . . . . . . . . . . . . 6 | 5.2. Operations at maintenance time . . . . . . . . . . . . . 6 | |||
5.3. BGP implementation support for g-Shut . . . . . . . . . . 6 | 5.3. BGP implementation support for graceful shutdown . . . . 6 | |||
6. Beyond EBGP graceful shutdown . . . . . . . . . . . . . . . . 7 | 6. Beyond EBGP graceful shutdown . . . . . . . . . . . . . . . . 7 | |||
6.1. IBGP graceful shutdown . . . . . . . . . . . . . . . . . 7 | 6.1. IBGP graceful shutdown . . . . . . . . . . . . . . . . . 7 | |||
6.2. Link Up cases . . . . . . . . . . . . . . . . . . . . . . 7 | 6.2. EBGP session establishment . . . . . . . . . . . . . . . 7 | |||
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 9 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 9 | 10.2. Informative References . . . . . . . . . . . . . . . . . 9 | |||
Appendix A. Alternative techniques with limited applicability . 10 | Appendix A. Alternative techniques with limited applicability . 10 | |||
A.1. Multi Exit Discriminator tweaking . . . . . . . . . . . . 10 | A.1. Multi Exit Discriminator tweaking . . . . . . . . . . . . 10 | |||
A.2. IGP distance Poisoning . . . . . . . . . . . . . . . . . 10 | A.2. IGP distance Poisoning . . . . . . . . . . . . . . . . . 10 | |||
Appendix B. Configuration Examples . . . . . . . . . . . . . . . 10 | Appendix B. Configuration Examples . . . . . . . . . . . . . . . 10 | |||
B.1. Cisco IOS XR . . . . . . . . . . . . . . . . . . . . . . 11 | B.1. Cisco IOS XR . . . . . . . . . . . . . . . . . . . . . . 11 | |||
B.2. BIRD . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | B.2. BIRD . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
B.3. OpenBGPD . . . . . . . . . . . . . . . . . . . . . . . . 12 | B.3. OpenBGPD . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
1. Introduction | 1. Introduction | |||
Routing changes in BGP can be caused by planned, maintenance | Routing changes in BGP can be caused by planned maintenance | |||
operations. This document discusses operational procedures to be | operations. This document discusses operational procedures to be | |||
applied in order to reduce or eliminate losses of packets during the | applied in order to reduce or eliminate loss of packets during the | |||
maintenance. These losses come from the transient lack of | maintenance. These losses come from the transient lack of | |||
reachability during the BGP convergence following the shutdown of an | reachability during the BGP convergence following the shutdown of an | |||
EBGP peering session between two Autonomous System Border Routers | EBGP peering session between two Autonomous System Border Routers | |||
(ASBR). | (ASBR). | |||
This document presents procedures for the cases where the forwarding | This document presents procedures for the cases where the forwarding | |||
plane is impacted by the maintenance, hence when the use of Graceful | plane is impacted by the maintenance, hence when the use of Graceful | |||
Restart does not apply. | Restart does not apply. | |||
The procedures described in this document can be applied to reduce or | The procedures described in this document can be applied to reduce or | |||
avoid packet loss for outbound and inbound traffic flows initially | avoid packet loss for outbound and inbound traffic flows initially | |||
forwarded along the peering link to be shut down. These procedures | forwarded along the peering link to be shut down. These procedures | |||
trigger, in both involved ASes, rerouting to the alternate path, | trigger, in both ASes, rerouting to the alternate path if one exists | |||
while allowing routers to keep using old paths until alternate ones | within the AS, while allowing the use of the old path until alternate | |||
are learned, installed in the RIB and in the FIB. This ensures that | ones are learned. This ensures that routers always have a valid | |||
routers always have a valid route available during the convergence | route available during the convergence process. | |||
process. | ||||
The goal of the document is to meet the requirements described in | The goal of the document is to meet the requirements described in | |||
[RFC6198] at best, without changing the BGP protocol. | [RFC6198] at best, without changing the BGP protocol. | |||
This document defines a well-known community [RFC1997], called | This document defines a well-known community [RFC1997], called | |||
GRACEFUL_SHUTDOWN, for the purpose of reducing the management | GRACEFUL_SHUTDOWN, for the purpose of reducing the management | |||
overhead of gracefully shutting down BGP sessions. The well-known | overhead of gracefully shutting down BGP sessions. The well-known | |||
community allows implementers to provide an automated graceful | community allows implementers to provide an automated graceful | |||
shutdown mechanism that does not require any router reconfiguration | shutdown mechanism that does not require any router reconfiguration | |||
at maintenance time. | at maintenance time. | |||
skipping to change at page 4, line 11 ¶ | skipping to change at page 4, line 11 ¶ | |||
Loss of Connectivity (LoC: the state when a router has no path toward | Loss of Connectivity (LoC: the state when a router has no path toward | |||
an affected prefix. | an affected prefix. | |||
3. Packet loss upon manual EBGP session shutdown | 3. Packet loss upon manual EBGP session shutdown | |||
Packets can be lost during a manual shutdown of an EBGP session for | Packets can be lost during a manual shutdown of an EBGP session for | |||
two reasons. | two reasons. | |||
First, routers involved in the convergence process can transiently | First, routers involved in the convergence process can transiently | |||
lack of paths toward an affected prefix, and drop traffic destined to | lack paths toward an affected prefix, and drop traffic destined to | |||
this prefix. This is because alternate paths can be hidden by nodes | this prefix. This is because alternate paths can be hidden by nodes | |||
of an AS. This happens when the paths are not selected as best by | of an AS. This happens when the paths are not selected as best by | |||
the ASBR that receive them on an EBGP session, or by Route Reflectors | the ASBR that receive them on an EBGP session, or by Route Reflectors | |||
that do not propagate them further in the IBGP topology because they | that do not propagate them further in the IBGP topology because they | |||
do not select them as best. | do not select them as best. | |||
Second, within the AS, the FIB of routers can be transiently | Second, within the AS, the FIB of routers can be transiently | |||
inconsistent during the BGP convergence and packets toward affected | inconsistent during the BGP convergence and packets toward affected | |||
prefixes can loop and be dropped. Note that these loops only happen | prefixes can loop and be dropped. Note that these loops only happen | |||
when ASBR-to-ASBR encapsulation is not used within the AS. | when ASBR-to-ASBR encapsulation is not used within the AS. | |||
skipping to change at page 4, line 33 ¶ | skipping to change at page 4, line 33 ¶ | |||
This document only addresses the first reason. | This document only addresses the first reason. | |||
4. Practices to avoid packet losses | 4. Practices to avoid packet losses | |||
This section describes means for an ISP to reduce the transient loss | This section describes means for an ISP to reduce the transient loss | |||
of packets upon a manual shutdown of a BGP session. | of packets upon a manual shutdown of a BGP session. | |||
4.1. Improving availability of alternate paths | 4.1. Improving availability of alternate paths | |||
All solutions that increase the availability of alternate BGP paths | All solutions that increase the availability of alternate BGP paths | |||
at routers performing packet lookups in BGP tables such as | at routers performing forwarding lookups from BGP routes such as | |||
[I-D.ietf-idr-best-external] and [RFC7911] help in reducing the LoC | [I-D.ietf-idr-best-external] and [RFC7911] help in reducing the LoC | |||
bound with manual shutdown of EBGP sessions. | bound with the shutdown of EBGP sessions. | |||
One of such solutions increasing diversity in such a way that, at any | Any such solution where, at any single step of the convergence | |||
single step of the convergence process following the EBGP session | process following the EBGP session shutdown, a BGP router does not | |||
shutdown, a BGP router does not receive a message withdrawing the | receive a message withdrawing the only path it currently knows for a | |||
only path it currently knows for a given NLRI, allows for a | given NLRI, allows for a simplified graceful shutdown procedure. | |||
simplified graceful shutdown procedure. | ||||
Note that the LoC for the inbound traffic of the maintained router, | Note that the LoC for the inbound traffic of graceful shutdown | |||
induced by a lack of alternate path propagation within the IBGP | initiator, due to the lack of an alternate path on the graceful | |||
topology of a receiver AS is not under the control of the operator | shutdown receiver is not under the control of the Initiator AS. The | |||
performing the maintenance. The part of the procedure aimed at | part of the procedure aimed at avoiding LoC for incoming traffic | |||
avoiding LoC for incoming paths can thus be applied even if no LoC | should thus be applied even if no LoC are expected for the outgoing | |||
are expected for the outgoing paths. | traffic. | |||
4.2. Make before break convergence: graceful shutdown | 4.2. Make before break convergence: graceful shutdown | |||
The goal of this procedure is to retain the paths to be shutdown | The goal of this procedure is to retain the paths to be shutdown | |||
between the peers, but with a lower LOCAL_PREF value, allowing the | between the peers, but with a lower LOCAL_PREF value, allowing the | |||
paths to remain in use while alternate paths are selected and | paths to remain in use while alternate paths are selected and | |||
propagated, rather than simply withdrawing the paths. | propagated, rather than simply withdrawing the paths. The LOCAL_PREF | |||
value must be lower than the one of the alternate path. 0 being the | ||||
lowest value, it can be used in all cases, except if it already has a | ||||
special meaning within the AS. | ||||
Section 5 describes configurations and actions to be performed for | Section 5 describes configurations and actions to be performed for | |||
the graceful shutdown of BGP sessions. | the graceful shutdown of BGP sessions. | |||
4.3. Forwarding modes and transient forwarding loops during convergence | 4.3. Forwarding modes and transient forwarding loops during convergence | |||
The graceful shutdown procedure or the solutions improving the | The graceful shutdown procedure or the solutions improving the | |||
availability of alternate paths, do not change the fact that BGP | availability of alternate paths, do not change the fact that BGP | |||
convergence and the subsequent FIB updates are run independently on | convergence and the subsequent FIB updates are run independently on | |||
each router of the ASes. If the AS applying the solution does not | each router of the ASes. If the AS applying the solution does not | |||
skipping to change at page 6, line 16 ¶ | skipping to change at page 6, line 16 ¶ | |||
On the graceful shutdown initiator, upon maintenance time, it is | On the graceful shutdown initiator, upon maintenance time, it is | |||
required to: | required to: | |||
o apply an outbound BGP route policy on the EBGP session to be | o apply an outbound BGP route policy on the EBGP session to be | |||
shutdown. This policy tags the paths propagated over the session | shutdown. This policy tags the paths propagated over the session | |||
with the GRACEFUL_SHUTDOWN community. This will trigger the BGP | with the GRACEFUL_SHUTDOWN community. This will trigger the BGP | |||
implementation to re-advertise all active routes previously | implementation to re-advertise all active routes previously | |||
advertised, and tag them with the GRACEFUL_SHUTDOWN community. | advertised, and tag them with the GRACEFUL_SHUTDOWN community. | |||
o apply an inbound BGP route policy on the maintained EBGP session | o apply an inbound BGP route policy on the EBGP session to be | |||
to tag the paths received over the session with the | shutdown. This policy tags the paths received over the session | |||
GRACEFUL_SHUTDOWN community. | with the GRACEFUL_SHUTDOWN community and sets LOCAL_PREF to a low | |||
value. | ||||
o wait for convergence to happen. | o wait for convergence to happen. | |||
o shutdown the EBGP session, optionally using | o shutdown the EBGP session, optionally using | |||
[I-D.ietf-idr-shutdown] to communicate the reason of the shutdown. | [I-D.ietf-idr-shutdown] to communicate the reason of the shutdown. | |||
In the case of a shutdown of the whole router, in addition to the | In the case of a shutdown of the whole router, in addition to the | |||
graceful shutdown of all EBGP sessions, there is a need to graceful | graceful shutdown of all EBGP sessions, there is a need to graceful | |||
shutdown the routes originated by this router (e.g, BGP aggregates | shutdown the routes originated by this router (e.g, BGP aggregates | |||
redistributed from other protocols, including static routes). This | redistributed from other protocols, including static routes). This | |||
can be performed by tagging such routes with the GRACEFUL_SHUTDOWN | can be performed by tagging such routes with the GRACEFUL_SHUTDOWN | |||
community. | community and setting LOCAL_PREF to a low value. | |||
5.3. BGP implementation support for g-Shut | 5.3. BGP implementation support for graceful shutdown | |||
A BGP router implementation MAY provide features aimed at automating | A BGP router implementation MAY provide features aimed at automating | |||
the application of the graceful shutdown procedures described above. | the application of the graceful shutdown procedures described above. | |||
Upon a session shutdown specified as graceful by the operator, a BGP | Upon a session shutdown specified as graceful by the operator, a BGP | |||
implementation supporting a graceful shutdown feature SHOULD: | implementation supporting a graceful shutdown feature SHOULD: | |||
1. Update all the paths propagated over the corresponding EBGP | 1. Update all the paths propagated over the corresponding EBGP | |||
session, tagging the GRACEFUL_SHUTDOWN community to them. Any | session, tagging the GRACEFUL_SHUTDOWN community to them. Any | |||
subsequent update sent over the session being gracefully shut | subsequent update sent over the session being gracefully shut | |||
down would be tagged with the GRACEFUL_SHUTDOWN community. | down SHOULD be tagged with the GRACEFUL_SHUTDOWN community. | |||
2. Lower the LOCAL_PREF value of the paths received over the EBGP | 2. Lower the LOCAL_PREF value of the paths received over the EBGP | |||
session being shut down. | session being shut down and set the GRACEFUL_SHUTDOWN community. | |||
3. Optionally shut down the session after a configured time. | 3. Optionally shut down the session after a configured time. | |||
4. Prevent the GRACEFUL_SHUTDOWN community from being inherited by a | 4. Prevent the GRACEFUL_SHUTDOWN community from being inherited by a | |||
path that would aggregate some paths tagged with the GSHUT | path that would aggregate some paths tagged with the GSHUT | |||
community. This behavior avoids the GSHUT procedure to be | community. This behavior avoids the GSHUT procedure to be | |||
applied to the aggregate upon the graceful shutdown of one of its | applied to the aggregate upon the graceful shutdown of one of its | |||
covered prefixes. | covered prefixes. | |||
A BGP implementation supporting a graceful shutdown feature SHOULD | A BGP implementation supporting a graceful shutdown feature SHOULD | |||
skipping to change at page 7, line 23 ¶ | skipping to change at page 7, line 24 ¶ | |||
6.1. IBGP graceful shutdown | 6.1. IBGP graceful shutdown | |||
For the shutdown of an IBGP session, provided the IBGP topology is | For the shutdown of an IBGP session, provided the IBGP topology is | |||
viable after the maintenance of the session, i.e, if all BGP speakers | viable after the maintenance of the session, i.e, if all BGP speakers | |||
of the AS have an IBGP signaling path for all prefixes advertised on | of the AS have an IBGP signaling path for all prefixes advertised on | |||
this graceful shutdown IBGP session, then the shutdown of an IBGP | this graceful shutdown IBGP session, then the shutdown of an IBGP | |||
session does not lead to transient unreachability. As a consequence, | session does not lead to transient unreachability. As a consequence, | |||
no specific graceful shutdown action is required. | no specific graceful shutdown action is required. | |||
6.2. Link Up cases | 6.2. EBGP session establishment | |||
We identify two potential causes for transient packet losses upon an | We identify two potential causes for transient packet losses upon the | |||
EBGP link up event. The first one is local to the graceful no-shut | establishment of an EBGP session. The first one is local to the | |||
initiator, the second one is due to the BGP convergence following the | startup initiator, the second one is due to the BGP convergence | |||
injection of new best paths within the IBGP topology. | following the injection of new best paths within the IBGP topology. | |||
6.2.1. Unreachability local to the ASBR | 6.2.1. Unreachability local to the ASBR | |||
An ASBR that selects as best a path received over a newly brought up | An ASBR that selects as best a path received over a newly established | |||
EBGP session may transiently drop traffic. This can typically happen | EBGP session may transiently drop traffic. This can typically happen | |||
when the NEXT_HOP attribute differs from the IP address of the EBGP | when the NEXT_HOP attribute differs from the IP address of the EBGP | |||
peer, and the receiving ASBR has not yet resolved the MAC address | peer, and the receiving ASBR has not yet resolved the MAC address | |||
associated with the IP address of that "third party" NEXT_HOP. | associated with the IP address of that "third party" NEXT_HOP. | |||
A BGP speaker implementation could avoid such losses by ensuring that | A BGP speaker implementation may avoid such losses by ensuring that | |||
"third party" NEXT_HOPs are resolved before installing paths using | "third party" NEXT_HOPs are resolved before installing paths using | |||
these in the RIB. | these in the RIB. | |||
If the link up event corresponds to an EBGP session that is being | Alternatively, the operator (script) may ping third party NEXT_HOPs | |||
manually brought up, over an already up multi-access link, then the | that are expected to be used before establishing the session. By | |||
operator can ping third party NEXT_HOP that are expected to be used | proceeding like this, the MAC addresses associated with these third | |||
before actually bringing the session up, or ping directed broadcast | party NEXT_HOPs are resolved by the startup initiator. | |||
the subnet IP address of the link. By proceeding like this, the MAC | ||||
addresses associated with these third party NEXT_HOP will be resolved | ||||
by the graceful no-shut initiator. | ||||
6.2.2. IBGP convergence | 6.2.2. IBGP convergence | |||
Corner cases leading to LoC can occur during an EBGP link up event. | Corner cases leading to LoC can occur during the establishment of an | |||
EBGP session. | ||||
A typical example for such transient unreachability for a given | A typical example for such transient unreachability for a given | |||
prefix is the following: | prefix is the following: | |||
Let's consider 3 route reflectors RR1, RR2, RR3. There is a full | Let's consider 3 route reflectors RR1, RR2, RR3. There is a full | |||
mesh of IBGP session between them. | mesh of IBGP sessions between them. | |||
1. RR1 is initially advertising the current best path to the | 1. RR1 is initially advertising the current best path to the | |||
members of its IBGP RR full-mesh. It propagated that path within | members of its IBGP RR full-mesh. It propagated that path within | |||
its RR full-mesh. RR2 knows only that path toward the prefix. | its RR full-mesh. RR2 knows only that path toward the prefix. | |||
2. RR3 receives a new best path originated by the "graceful no- | 2. RR3 receives a new best path originated by the startup | |||
shut" initiator, being one of its RR clients. RR3 selects it as | initiator, being one of its RR clients. RR3 selects it as best, | |||
best, and propagates an UPDATE within its RR full-mesh, i.e., to | and propagates an UPDATE within its RR full-mesh, i.e., to RR1 and | |||
RR1 and RR2. | RR2. | |||
3. RR1 receives that path, reruns its decision process, and picks | 3. RR1 receives that path, reruns its decision process, and picks | |||
this new path as best. As a result, RR1 withdraws its previously | this new path as best. As a result, RR1 withdraws its previously | |||
announced best-path on the IBGP sessions of its RR full-mesh. | announced best-path on the IBGP sessions of its RR full-mesh. | |||
4. If, for any reason, RR3 processes the withdraw generated in | 4. If, for any reason, RR3 processes the withdraw generated in | |||
step 3, before processing the update generated in step 2, RR3 | step 3, before processing the update generated in step 2, RR3 | |||
transiently suffers from unreachability for the affected prefix. | transiently suffers from unreachability for the affected prefix. | |||
The use of [I-D.ietf-idr-best-external] among the RR of the IBGP | The use of [I-D.ietf-idr-best-external] among the RR of the IBGP | |||
skipping to change at page 9, line 17 ¶ | skipping to change at page 9, line 17 ¶ | |||
By providing the graceful shutdown service to a neighboring AS, an | By providing the graceful shutdown service to a neighboring AS, an | |||
ISP provides means to this neighbor and possibly its downstream ASes | ISP provides means to this neighbor and possibly its downstream ASes | |||
to lower the LOCAL_PREF value assigned to the paths received from | to lower the LOCAL_PREF value assigned to the paths received from | |||
this neighbor. | this neighbor. | |||
The neighbor could abuse the technique and do inbound traffic | The neighbor could abuse the technique and do inbound traffic | |||
engineering by declaring some prefixes as undergoing a maintenance so | engineering by declaring some prefixes as undergoing a maintenance so | |||
as to switch traffic to another peering link. | as to switch traffic to another peering link. | |||
If this behavior is not tolerated by the ISP, it SHOULD monitor the | If this behavior is not tolerated by the ISP, it SHOULD monitor the | |||
use of the graceful shutdown community by this neighbor. | use of the graceful shutdown community. | |||
9. Acknowledgments | 9. Acknowledgments | |||
The authors wish to thank Olivier Bonaventure, Pradosh Mohapatra and | The authors wish to thank Olivier Bonaventure, Pradosh Mohapatra, Job | |||
Job Snijders for their useful comments on this work. | Snijders and John Heasley for their useful comments. | |||
10. References | 10. References | |||
10.1. Normative References | 10.1. Normative References | |||
[RFC1997] Chandra, R., Traina, P., and T. Li, "BGP Communities | [RFC1997] Chandra, R., Traina, P., and T. Li, "BGP Communities | |||
Attribute", RFC 1997, DOI 10.17487/RFC1997, August 1996, | Attribute", RFC 1997, DOI 10.17487/RFC1997, August 1996, | |||
<http://www.rfc-editor.org/info/rfc1997>. | <http://www.rfc-editor.org/info/rfc1997>. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
skipping to change at page 11, line 21 ¶ | skipping to change at page 11, line 21 ¶ | |||
route-policy AS64497-ebgp-inbound | route-policy AS64497-ebgp-inbound | |||
! normally this policy would contain much more | ! normally this policy would contain much more | |||
if community matches-any comm-graceful-shutdown then | if community matches-any comm-graceful-shutdown then | |||
set local-preference 0 | set local-preference 0 | |||
endif | endif | |||
end-policy | end-policy | |||
! | ! | |||
router bgp 64496 | router bgp 64496 | |||
neighbor 2001:db8:1:2::1 | neighbor 2001:db8:1:2::1 | |||
remote-as 64497 | remote-as 64497 | |||
description a fantastic EBGP neighbor | ||||
address-family ipv6 unicast | address-family ipv6 unicast | |||
send-community-ebgp | send-community-ebgp | |||
route-policy AS64497-ebgp-inbound in | route-policy AS64497-ebgp-inbound in | |||
route-policy AS65040v6-bgp-out out | ||||
! | ! | |||
! | ! | |||
! | ! | |||
B.2. BIRD | B.2. BIRD | |||
function honor_graceful_shutdown() { | function honor_graceful_shutdown() { | |||
if (65535, 0) ~ bgp_community then { | if (65535, 0) ~ bgp_community then { | |||
bgp_local_pref = 0; | bgp_local_pref = 0; | |||
} | } | |||
} | } | |||
filter AS64497_ebgp_inbound | filter AS64497_ebgp_inbound | |||
{ | { | |||
# normally this policy would contain much more | # normally this policy would contain much more | |||
honor_graceful_shutdown(); | honor_graceful_shutdown(); | |||
} | } | |||
protocol bgp peer_64497_1 { | protocol bgp peer_64497_1 { | |||
description "a fantastic EBGP neighbor"; | ||||
neighbor 2001:db8:1:2::1 as 64497; | neighbor 2001:db8:1:2::1 as 64497; | |||
local as 64496; | local as 64496; | |||
import keep filtered; | import keep filtered; | |||
import filter AS64497_ebgp_inbound; | import filter AS64497_ebgp_inbound; | |||
export filter AS64497_ebgp_outbound; | ||||
} | } | |||
B.3. OpenBGPD | B.3. OpenBGPD | |||
AS 64496 | AS 64496 | |||
router-id 192.0.2.1 | router-id 192.0.2.1 | |||
neighbor 2001:db8:1:2::1 { | neighbor 2001:db8:1:2::1 { | |||
descr "a fantastic EBGP neighbor" | ||||
remote-as 64497 | remote-as 64497 | |||
} | } | |||
# normally this policy would contain much more | # normally this policy would contain much more | |||
match from any community GRACEFUL_SHUTDOWN set { localpref 0 } | match from any community GRACEFUL_SHUTDOWN set { localpref 0 } | |||
Authors' Addresses | Authors' Addresses | |||
Pierre Francois | Pierre Francois (editor) | |||
Individual Contributor | Individual Contributor | |||
Email: pfrpfr@gmail.com | Email: pfrpfr@gmail.com | |||
Bruno Decraene | Bruno Decraene (editor) | |||
Orange | Orange | |||
Email: bruno.decraene@orange.com | Email: bruno.decraene@orange.com | |||
Cristel Pelsser | Cristel Pelsser | |||
Strasbourg University | Strasbourg University | |||
Email: pelsser@unistra.fr | Email: pelsser@unistra.fr | |||
Keyur Patel | Keyur Patel | |||
End of changes. 40 change blocks. | ||||
69 lines changed or deleted | 64 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/ |