Default EBGP Route Propagation Behavior Without PoliciesAkamai Technologies8285 Reese LaneMichigan 48103Ann ArborUSjared@akamai.comNTT CommunicationsTheodorus Majofskistraat 1001065 SZAmsterdamNLjob@ntt.netNokia777 E. Middlefield RoadMountain ViewCA94043USAgreg.hankins@nokia.com
Routing
Global Routing OperationsrejectBGPEBGP
This document updates RFC4271 by defining the default behavior of a BGP speaker when there is no Import or Export Policy associated with an External BGP session.
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 RFC 2119.
BGP routing security issues need to be addressed in order to make the Internet more stable.
Route leaks are part of the problem, but software defects or operator misconfiguration can contribute too.
This document updates so that routes are neither imported nor exported unless specifically enabled by configuration.
This change reduces the consequences of these problems, and improves the default level of Internet routing security.
Many deployed BGP speakers send and accept any and all route announcements between their BGP neighbors by default.
This practice dates back to the early days of the Internet, where operators were permissive in sending routing information to allow all networks to reach each other.
As the Internet has become more densely interconnected, the risk of a misbehaving BGP speaker poses significant risks to Internet routing.
This specification intends to improve this situation by requiring the explicit configuration of both BGP Import and Export Policies for any External BGP (EBGP) session such as customers, peers, or confederation boundaries for all enabled address families.
Through codification of the aforementioned requirement, operators will benefit from consistent behaviour across different BGP implementations.
BGP speakers following this specification do not use or send routes on EBGP sessions, unless specifically configured to do so.
describes a Policy Information Base (PIB) which contains local policies that can be applied to the information in the Routing Information Base (RIB).
This document distinguishes the type of a policy based on its application.
Import Policy: a local policy to be applied to the information contained in the Adj-RIBs-In.
As described in Section 3.2, the Adj-RIBs-In contain information learned from other BGP speakers, and the application of the Import Policy results in the routes that will be considered in the Decision Process by the local BGP speaker.
Export Policy: a local policy to be applied in selecting the information contained in the Adj-RIBs-Out.
As described in Section 3.2, the Adj-RIBs-Out contain information that has been selected for advertisement to other BGP speakers.
This section updates to specify the default behavior of a BGP speaker when there are no Import or Export Policies associated with a particular EBGP session.
A BGP speaker MAY provide a configuration option to deviate from the following updated behaviors.
The following paragraph is added to Section 9.1 (Decision Process) after the fifth paragraph, which ends in "route aggregation and route information reduction":
Routes contained in an Adj-RIB-In associated with an EBGP peer SHALL NOT be considered eligible in the Decision Process if no explicit Import Policy has been applied.
The following paragraph is added to Section 9.1.3 (Phase 3: Route Dissemination) after the third paragraph, which ends in "by means of an UPDATE message (see 9.2).":
Routes SHALL NOT be added to an Adj-RIB-Out associated with an EBGP peer if no explicit Export Policy has been applied.
The authors would like to thank the following people for their comments, support and review: Shane Amante, Christopher Morrow, Robert Raszuk, Greg Skinner, Adam Chappell, Sriram Kotikalapudi, Brian Dickson, Jeffrey Haas, John Heasley, Ignas Bagdonas, Donald Smith, Dale Worley, Alvaro Retana, John Scudder, and Dale Worley.
Permissive default routing policies can result in inadvertent effects such as route leaks , in general resulting in routing of traffic through an unexpected path.
While it is possible for an operator to use monitoring to detect unexpected flows, there is no general framework that can be applied.
These policies also have the potential to expose software defects or misconfiguration that could have unforeseen technical and business impacting effects.
The update to specified in this document is intended to eliminate those inadvertent effects.
Operators must explicitly configure Import and Export Policies to achieve their expected goals.
There is of course no protection against a malicious or incorrect explicit configuration.
The security considerations described in and the vulnerability analysis discussed in also apply to this document.
This document has no actions for IANA.
The following people contributed to successful deployment of solution described in this document:
This appendix is non-normative.
For an implementer, transitioning to a compliant BGP implementation may require a process that can take several years.
It is understood and acknowledged that operators who are taking advantage of an undefined behavior will always be surprised by changes to said behavior.
An implementer could leverage an approach described as the "N+1 and N+2" release strategy.
In release N+1, the implementer introduces a new default configuration parameter to indicate that the BGP speaker is operating in "ebgp insecure-mode".
In addition to the introduction of the new parameter, an implementer could begin to display informational warnings to the operator that certain parts of the configuration are incomplete.
In release N+1, operators of the BGP implementation become aware that a configurable default exists in the implementation, and can prepare accordingly.
In release N+2 or later, the inverse of the previous default configuration parameter that was introduced in release N+1 becomes the new default.
As a result, any new installation of release N+2 will adhere to this document. Installations upgraded from version release N+1 will adhere to the previous insecure behavior, if no modification was made to the "ebgp insecure-mode" configuration parameter.