Internet DRAFT - draft-jdurand-idr-next-hop-liveliness
draft-jdurand-idr-next-hop-liveliness
Internet Engineering Task Force J. Durand
Internet-Draft CISCO
Intended status: Standards Track February 22, 2015
Expires: August 26, 2015
Path validation toward BGP next-hop
draft-jdurand-idr-next-hop-liveliness-00.txt
Abstract
This proposal introduces a new BGP attribute that can be used by BGP
routers to advertise their capability to support any kind of host
liveliness checking protocols (for example BFD). This attribute can
be used to avoid black-holes scenarios seen when BGP next-hop is not
the peer, in particular on Internet eXchange Points (IXPs)
implementing BGP Route-Servers. IXP member routers can exchange
their capability to implement a given host liveliness checking
Foreword
A placeholder to list general observations about this document.
Requirements Language
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 [1].
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 26, 2015.
Durand Expires August 26, 2015 [Page 1]
Internet-Draft BGP Next-Hop Liveliness February 2015
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Definitions and Accronyms . . . . . . . . . . . . . . . . . . 3
3. Solution Requirements . . . . . . . . . . . . . . . . . . . . 4
4. Solution Overview . . . . . . . . . . . . . . . . . . . . . . 4
5. NH_REACHABLE_CAPABILITY attribute description . . . . . . . . 5
5.1. Attribute Flags . . . . . . . . . . . . . . . . . . . . . 5
5.2. Attribute Type Code . . . . . . . . . . . . . . . . . . . 6
5.3. Attribute Length . . . . . . . . . . . . . . . . . . . . 6
5.4. TLV Definition . . . . . . . . . . . . . . . . . . . . . 6
5.4.1. BFD TLV . . . . . . . . . . . . . . . . . . . . . . . 6
6. Protocol description . . . . . . . . . . . . . . . . . . . . 7
6.1. Generating and sending the attribute . . . . . . . . . . 7
6.2. Upon reception of the NH_REACHABLE_CAPABILITY BGP
attribute . . . . . . . . . . . . . . . . . . . . . . . . 7
7. Possible other use cases . . . . . . . . . . . . . . . . . . 8
8. Future Work . . . . . . . . . . . . . . . . . . . . . . . . . 9
8.1. Possible Optimization . . . . . . . . . . . . . . . . . . 9
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
11. Security Considerations . . . . . . . . . . . . . . . . . . . 9
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
12.1. Normative References . . . . . . . . . . . . . . . . . . 10
12.2. Informative References . . . . . . . . . . . . . . . . . 10
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10
1. Introduction
Internet eXchange Points (IXPs) implement BGP Route-Servers (RS) [4]
so that connected members do not need to configure BGP peerings with
every other member to exchange routes. Through a single peering with
the RS, a member will receive routes of all the other members peering
Durand Expires August 26, 2015 [Page 2]
Internet-Draft BGP Next-Hop Liveliness February 2015
with the RS. The RS redistributes routes and could simply be
described as a Route-Reflector for eBGP peerings.
Usually, deployed RS do not modify BGP next-hop of exchanged routes
so traffic exchanged between IXP members do not pass through the RS,
which keeps only a control-plane role, exactly as for a BGP RR. The
drawback is that it may happen that peering stays up between members
and route-server while there is no connectivity between members.
This results in black holes for members with no easy troubleshooting:
usually upon such problem a member just shuts its connectivity to the
IXP. This situation has happened several times on many different
IXPs and many members do not want to peer with route-servers for this
reason.
eBGP UP----> RS <-------eBGP UP
| | |
| | |
----------------IXP LAN---------------------
| | | |
V | | V
Member 1 <================> Member 2
BROKEN
CONNECTIVITY
Figure 1
This proposal intends to solve this situation with a new BGP
attribute that can be used by BGP routers to advertise their
capability to support any kind of host liveliness checking protocols
(for example BFD).
2. Definitions and Accronyms
o BFD: Bidirectional Forwarding Detection protocol [3]
o BGP: Border Gateway Protocol
o IXP: Internet eXchange Point
o RR: Route Reflector (BGP Route-Reflector)
o RS: Route Server (BGP Route-Server)
Durand Expires August 26, 2015 [Page 3]
Internet-Draft BGP Next-Hop Liveliness February 2015
3. Solution Requirements
Solution involves 3 different mechanisms:
o The BGP next-hop liveliness checking protocol
o The advertisement of BGP next-hop capability to support liveliness
checking protocol
o The use of BGP next-hop liveliness status
Host liveliness checking mechanisms have been existing for years
(BFD...) and are not under the scope of this proposal. This document
will focus on how BGP routers can advertise their mutual liveliness
checking mechanisms and what actions to take depending on the actual
liveliness.
Solution should be as simple as possible and avoid if possible the
creation of a new protocol. As goal is to make sure BGP next-hops
can check their mutual liveliness, it appears quickly that BGP can be
easily adapted to announce the liveliness checking protocol
capability.
Solution should be independent of liveliness checking protocol. It
should be possible to integrate future protocols without changing
main aspects of the solution.
BGP next-hops should not rely on any implementation on the IXP route-
server to exchange their liveliness checking capability. In other
words the RS should be transparent for next-hops when they advertise
their liveliness checking capabilities.
4. Solution Overview
Connected member will announce their capability to implement host
liveliness mechanisms (for example BFD) through new proposed BGP
attribute called NH_REACHABLE_CAPABILITY. This attribute needs to be
transitive optional so it can be re-advertised by route-server which
may not support it. Upon reception of routes with this attribute, a
given member may know capability of the advertising next-hop and may
decide to start probing its reachability.
In previous example, in case member 1 and 2 support BFD, they would
send their routes to the RS with NH_REACHABLE_CAPABILITY attribute
with TLV describing BFD capability. RS will redistribute the routes
with the attribute untouched (as this is a transitive optional
attribute). Upon reception of the routes, member 1 will know member
2 next-hop is BFD-capable and vice-versa. They may start probing
Durand Expires August 26, 2015 [Page 4]
Internet-Draft BGP Next-Hop Liveliness February 2015
each other and detect when there is broken connectivity between them.
When that occurs they will be able to decide what to do with
corresponding routes (withdraw, change local preference...)
5. NH_REACHABLE_CAPABILITY attribute description
The NH_REACHABLE_CAPABILITY attribute follows the following schema in
full conformance with BGP specifications [2]:
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
+---------------+---------------+---------------+---------------+
| Attr. Flags |Attr. Type Code| Attr. Length | |
+---------------+---------------+---------------+ |
| List of TLVs |
. .
. .
Figure 2
Fields of this BFD_CAPABILITY attribute are described in the
following sub-sections.
5.1. Attribute Flags
Attribute flags are following:
o bit 0 - Optional bit: MUST be 1 as the NH_REACHABLE_CAPABILITY
attribute is optional and may not be implemented on all BGP
routers.
o bit 1 - Transitive bit: MUST be 1 as it should pass at least the
BGP RS which may not implement NH_REACHABLE_CAPABILITY attribute
processing.
o bit 2 - Partial bit. It MUST be 1 if the router attaching the
NH_REACHABLE_CAPABILITY attribute is not the originator. It MUST
be 0 if the router attaching the NH_REACHABLE_CAPABILITY attribute
is the originator.
o bit 3 - Extended Length bit: MUST be 0 as attribute length is 1
octet.
o The lower-order four bits of the Attribute Flags octet are unused
and MUST be 0.
Durand Expires August 26, 2015 [Page 5]
Internet-Draft BGP Next-Hop Liveliness February 2015
5.2. Attribute Type Code
Attribute type code is to be provided by IANA.
5.3. Attribute Length
Represents the total attribute length (in bytes) and is dependent on
used TLVs.
5.4. TLV Definition
Each associated TLV indicates a host liveliness capability. TLV data
structure is used to make it possible to use different protocols to
check BGP next-hop liveliness. At the time being only BFD TLV is
envisaged and therefore described in this document. TLVs have the
following format:
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
+---------------+---------------+---------------+----------- - -
| Type | Length | Value
+---------------+---------------+---------------+----------- - -
Figure 3
5.4.1. BFD TLV
BFD TLV is used to indicate BFD capability of the BGP router. It is
described with a Type set to numerical value 1. BFD TLV have Value
field format:
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
+---------------+---------------+---------------+--------------+
| BFD Flags | Next-Hop IP address |
+---------------+ |
| |
. .
Figure 4
5.4.1.1. BFD Flags
The high-order bit of the flag field is the BFD-Capable flag. It
MUST be set to 1 in case the next-hop is BFD capable. It is set to 0
otherwise.
Durand Expires August 26, 2015 [Page 6]
Internet-Draft BGP Next-Hop Liveliness February 2015
All the other bits are left unused.
5.4.1.2. Next-Hop IP address
Contains the IP address (IPv4 or IPv6) of the router that can be
probed with BFD. It MUST be the IP address used to advertise the
route (ie. the BGP next-hop).
6. Protocol description
This section details router operations with the aforementioned BGP
attribute.
6.1. Generating and sending the attribute
When a router wants to advertise that it supports a host liveliness
protocol, it SHOULD attach the NH_REACHABLE_CAPABILITY with
appropriate TLVs to prefixes it advertises.
A router MUST NOT attach the NH_REACHABLE_CAPABILITY if it is not
announcing itself as the BGP next-hop. For example BGP route-servers
and BGP route-reflectors MUST NOT attach NH_REACHABLE_CAPABILITY for
routes they relay.
A BGP router will most likely attach the attribute to all prefixes it
advertises. There is apparently no reason why some prefixes would be
checked against router liveliness while other would not benefit of
this mechanism. But attribute structure makes it possible to attach
the attribute only to part of the prefixes so there is no protocol
restriction for attaching the attribute to only a subset of
advertised routes.
For sake of limiting the number of bytes sent for each BGP
transaction, it is important that the routes are grouped in BGP
communications to transmit the attribute once for all impacted
prefixes as BGP protocol [2] allows.
6.2. Upon reception of the NH_REACHABLE_CAPABILITY BGP attribute
As the attribute is optional transitive it will be received by
downstream BGP routers. Any router implementing
NH_REACHABLE_CAPABILITY MUST do the following actions in following
order:
o If the router is a BGP route-server or a BGP route-reflector, it
MUST NOT process or change this attribute.
Durand Expires August 26, 2015 [Page 7]
Internet-Draft BGP Next-Hop Liveliness February 2015
o If the router is not a BGP RR or RS, and has no BGP route with BGP
next-hop corresponding to address embedded in
NH_REACHABLE_CAPABILITY then it MUST remove the attribute from
subsequent advertisements to avoid useless downstream propagation
of this attribute.
o If the router is not a BGP RR or RS, and has at least one BGP
route with BGP next-hop corresponding to address embedded in
NH_REACHABLE_CAPABILITY then:
* It MAY start the host liveliness checking mechanisms
advertised. Choice of parameters for the mechanism... is out
of the scope of this document. For example, in case a BFD TLV
is received, the routers will negociate this parameters with
BFD control packets as described in [3].
* It SHOULD NOT have more than one host liveliness checking
mechanism with a given next-hop. If multiple routes are
received with the same NH_REACHABLE_CAPABILITY, having a single
host liveliness checking "session" is sufficient to validate
reachability of the BGP next-hop.
* It MAY take any action for a received route based on host
liveliness provided by that mechanism. It is important to
understand that while ordinary BGP session is shut when remote
peer is detected as dead, the action has to occur this time at
the route level as there is no BGP peering with the probed
router. For example the router MAY withdraw the route, change
its local preference, add a NO_EXPORT community...
* It MUST remove the attribute from subsequent advertisements to
avoid useless propagation of this attribute.
7. Possible other use cases
While the primary focus of the authors is to solve the issue met with
BGP route-servers on IXPs described in section Section 1, the
proposed solution may also apply to the following use cases:
o iBGP route-reflector: the scenario described for BGP route-server
could also apply for iBGP route-reflector. The solution described
in this draft could be used to validate received iBGP routes
against real reachability of BGP next-hop (a router in same AS in
case next-hop self is used, or the eBGP next-hop announcing the
route.
o Any eBGP peering: the proposed solution would enable host
liveliness protocols auto-deployment on every eBGP peering. Peers
Durand Expires August 26, 2015 [Page 8]
Internet-Draft BGP Next-Hop Liveliness February 2015
would just exchange their BGP parameters and host liveliness
protocol would automatically "harden" the peering without the need
of any additional configuration.
8. Future Work
8.1. Possible Optimization
To avoid attachment of the attribute to all prefixes and useless
pollution of downstream, a "magic prefix" with this attribute could
be sufficient to declare host liveliness checking capability of the
peer.
At a first glance, the "magic prefix" that would appear most relevant
would be the host address of the next-hop. A BGP router would
announce its own next-hop address (/32 for IPv4 and /128 for IPv6) in
addition to all other regular prefixes. Nevertheless this approach
goes against filtering policies usually applied on IXPs [5] and
cannot be selected here.
Another solution would be to reserve a new special use addresses and
have a unique well-known "magic prefix" across the Internet. This
raises other problems such as security, useless address use, BGP best
path selection algorithm modification to interprete differently this
well known magic prefix...
At the time of writing this document such an optimization needs to be
further studied.
9. Acknowledgements
The authors would like to thank the following people for their
comments and support: [TBD].
10. IANA Considerations
A new BGP Attribute Type Code is requested to IANA for this new
NH_REACHABLE_CAPABILITY attribute.
11. Security Considerations
As the proposed attribute is transitive optional, it will be passed
onward by all routers. There is no way to keep the attribute local
to the IXP.
The attribute may contain IP address of an advertising router (this
is the case if BFD TLV is used for instance). It is then possible
that any downstream BGP router knows that the route has transited
Durand Expires August 26, 2015 [Page 9]
Internet-Draft BGP Next-Hop Liveliness February 2015
through it and that the router is capable of supporting some host
liveliness protocol. This may be used by an attacker aware of
vulnerabilities on such protocol.
12. References
12.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[2] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway
Protocol 4 (BGP-4)", RFC 4271, January 2006.
[3] Katz, D. and D. Ward, "Bidirectional Forwarding Detection
(BFD)", RFC 5880, June 2010.
[4] "Internet Exchange Route Server",
<http://tools.ietf.org/id/
draft-ietf-idr-ix-bgp-route-server-00.txt>.
12.2. Informative References
[5] Durand, J., Pepelnjak, I., and G. Doering, "BGP Operations
and Security", BCP 194, RFC 7454, February 2015.
Author's Address
Jerome Durand
CISCO Systems, Inc.
11 rue Camille Desmoulins
Issy-les-Moulineaux 92782 CEDEX
FR
Email: jerduran@cisco.com
Durand Expires August 26, 2015 [Page 10]