a first cut from notes
This commit is contained in:
parent
7114ee4aed
commit
0ba265ab8c
3 changed files with 749 additions and 188 deletions
336
draft-ymbk-bgp-discovery-layers.txt
Normal file
336
draft-ymbk-bgp-discovery-layers.txt
Normal file
|
|
@ -0,0 +1,336 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Network Working Group R. Bush
|
||||||
|
Internet-Draft Arrcus, Inc. & Internet Initiative Japan
|
||||||
|
Updates: 6811 (if approved) May 25, 2020
|
||||||
|
Intended status: Informational
|
||||||
|
Expires: November 26, 2020
|
||||||
|
|
||||||
|
|
||||||
|
Trade-offs in BGP Peer Discovery
|
||||||
|
draft-ymbk-bgp-discovery-layers-00
|
||||||
|
|
||||||
|
Abstract
|
||||||
|
|
||||||
|
This draft is an exploration of the alternatives and trade-offs in
|
||||||
|
BGP peer discovery at various layers in the stack. It is based on
|
||||||
|
discussions in the IDR WG BGP Discovery Design Team. The current
|
||||||
|
target environment is the datacenter; while keeping an eye not to
|
||||||
|
preclude WAN deployment. This document is not intended to become an
|
||||||
|
RFC.
|
||||||
|
|
||||||
|
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 https://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 November 26, 2020.
|
||||||
|
|
||||||
|
Copyright Notice
|
||||||
|
|
||||||
|
Copyright (c) 2020 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
|
||||||
|
(https://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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bush Expires November 26, 2020 [Page 1]
|
||||||
|
|
||||||
|
Internet-Draft Trade-offs in BGP Peer Discovery May 2020
|
||||||
|
|
||||||
|
|
||||||
|
the Trust Legal Provisions and are provided without warranty as
|
||||||
|
described in the Simplified BSD License.
|
||||||
|
|
||||||
|
1. Introduction
|
||||||
|
|
||||||
|
This draft is an exploration of the alternatives and trade-offs in
|
||||||
|
BGP peer discovery at various layers in the stack. It is based on
|
||||||
|
discussions in the IDR WG BGP Discovery Design Team. The current
|
||||||
|
target environment is the datacenter; while keeping an eye not to
|
||||||
|
preclude WAN deployment. This document is not intended to become an
|
||||||
|
RFC.
|
||||||
|
|
||||||
|
2. Background
|
||||||
|
|
||||||
|
Previous design team discussions converged on a number of aspects of
|
||||||
|
the problem.
|
||||||
|
|
||||||
|
2.1. BGP is the Underlay
|
||||||
|
|
||||||
|
The assumedenvironment has BGP used as the underlay routing protocol
|
||||||
|
in data center.
|
||||||
|
|
||||||
|
2.2. Some Requirements
|
||||||
|
|
||||||
|
Some requirements have been agreed by the design team as follows:
|
||||||
|
|
||||||
|
o Support IPv4 and IPv6 address families, but do not assume both are
|
||||||
|
available.
|
||||||
|
o Support discovery of the peering addresses for the BGP session
|
||||||
|
endpoints.
|
||||||
|
o Support using either a device's external interface or one of its
|
||||||
|
loopback addresses for the BGP session endpoint.
|
||||||
|
o Support discoverery of the peers' ASs.
|
||||||
|
o Agree on any BGP session authentication and parameters.
|
||||||
|
o Enable Layer 3 link liveness detection, such as BFD.
|
||||||
|
|
||||||
|
2.3. Simplicity
|
||||||
|
|
||||||
|
The goal is to provide the minimal set of configuration parameters
|
||||||
|
needed by BGP OPEN to successfully start a BGP peering. The goal is
|
||||||
|
specifically not to replace or conflict with data exchanged during
|
||||||
|
BGP OPEN. Multiple sources of truth are a recipe for complexity and
|
||||||
|
hence painful errors.
|
||||||
|
|
||||||
|
Simplicity is key. Features not absolutely needed will not be
|
||||||
|
included in the design.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bush Expires November 26, 2020 [Page 2]
|
||||||
|
|
||||||
|
Internet-Draft Trade-offs in BGP Peer Discovery May 2020
|
||||||
|
|
||||||
|
|
||||||
|
3. Assumptions
|
||||||
|
|
||||||
|
BGP OPEN will do the heavy lifting.
|
||||||
|
|
||||||
|
BGP discovery should not do anything that could be done by BGP OPEN.
|
||||||
|
Two sources of the same data are a recipe for errors.
|
||||||
|
|
||||||
|
BGP peering will be selective; every BGP speaker may not want to peer
|
||||||
|
with every other speaker.
|
||||||
|
|
||||||
|
Before BGP OPEN, there is discovery and there is choosing peers.
|
||||||
|
|
||||||
|
After discovery, it would be nice if another exchange was not needed
|
||||||
|
before BGP OPEN.
|
||||||
|
|
||||||
|
4. Needs of Discovery
|
||||||
|
|
||||||
|
In discovery, an aspiring BGP speaker needs to discover:
|
||||||
|
|
||||||
|
o The set of possible peers,
|
||||||
|
o To start, discovery does not know the potential peers' layer three
|
||||||
|
IP addresses.
|
||||||
|
o Each one's attributes, a deployment defined set, e.g.: leaf,
|
||||||
|
spine, ice cream flavor, ... These attributes are arbitrary and
|
||||||
|
operator dependednt. No assumptions should be made, code points
|
||||||
|
assigned,, etc.
|
||||||
|
o Each one's layer three peering address(es), and
|
||||||
|
o Other attributes required for BGP OPEN to succeed, e.g.
|
||||||
|
authentication data.
|
||||||
|
|
||||||
|
5. Operator Configuration
|
||||||
|
|
||||||
|
Operator configuration should be able to decide at lest the
|
||||||
|
following:
|
||||||
|
|
||||||
|
o Select or otherwise filter which peers to actually try to BGP
|
||||||
|
OPEN,
|
||||||
|
o What parameters to use, e.g.:
|
||||||
|
o
|
||||||
|
|
||||||
|
* IP addressing: IPv4, IPv6, Loopback, or Direct
|
||||||
|
* Any special forwarding or routing needed for reaching the
|
||||||
|
prospective peer, e.g., loopback,
|
||||||
|
* AS numbering, and
|
||||||
|
* BGP Authentication Options.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bush Expires November 26, 2020 [Page 3]
|
||||||
|
|
||||||
|
Internet-Draft Trade-offs in BGP Peer Discovery May 2020
|
||||||
|
|
||||||
|
|
||||||
|
6. Success Criteria
|
||||||
|
|
||||||
|
What are the criteria for success and failure of the design
|
||||||
|
decisions, and how do we measure them?
|
||||||
|
|
||||||
|
7. Discovery at Layer Two
|
||||||
|
|
||||||
|
BGP Discovery at Layer-2 would entail finding potential peers on a
|
||||||
|
LAN or on Point-to-Point links, discovering their Layer-3 attributes
|
||||||
|
such as IP addresses, etc.
|
||||||
|
|
||||||
|
There are two available candidates for peer discovery at Layer-2,
|
||||||
|
Link Layer Discovery Protocol, LLDP, and Layer 3 Discovery Protocol,
|
||||||
|
L3DL [I-D.ietf-lsvr-l3dl].
|
||||||
|
|
||||||
|
7.1. Link Layer Discovery Protocol (LLDP)
|
||||||
|
|
||||||
|
LLDP is a widely deployed protocol with implementations for most
|
||||||
|
devices. Unfortunately it does not currently reveal Layer-3 IP
|
||||||
|
addresses. There is an early LLDPv2 development to extend it in
|
||||||
|
IEEE.
|
||||||
|
|
||||||
|
7.2. Layer-3 Discovery Protocol (L3dl)
|
||||||
|
|
||||||
|
L3DL [I-D.ietf-lsvr-l3dl] is an ongoing development in the IETF LSVR
|
||||||
|
Working Group with the goals of discovering IP Layer-3 attributes of
|
||||||
|
links, such as neighbor IP addressing, logical link IP encapsulation
|
||||||
|
abilities, and link liveness which may then be disseminated using
|
||||||
|
BGP-SPF and similar protocols.
|
||||||
|
|
||||||
|
This is similar but not quite the sane as the needs of this IDR
|
||||||
|
Design Team. E.g., the result is likely more complex than is needed.
|
||||||
|
A week's work could customize the design for the IDR Design Team's
|
||||||
|
needs. But ...
|
||||||
|
|
||||||
|
Unlike LLDP, L3DL has only one implementation and is not widely
|
||||||
|
deployed.
|
||||||
|
|
||||||
|
8. Discovery at Layer Three
|
||||||
|
|
||||||
|
Discovery at Layer-3 can assume IP addressability, though the IP
|
||||||
|
addresses of potential peers are not known a priori and need to be
|
||||||
|
discovered before further negotiation.
|
||||||
|
|
||||||
|
The principal problem would appear to be discovery at Layer-3,
|
||||||
|
because one neither knows whether to use IPv4 or IPv6. This is
|
||||||
|
exacerbated by the possibility of a potential peer not being on the
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bush Expires November 26, 2020 [Page 4]
|
||||||
|
|
||||||
|
Internet-Draft Trade-offs in BGP Peer Discovery May 2020
|
||||||
|
|
||||||
|
|
||||||
|
local subnet, and hence broadcast and simiar techniques may not be
|
||||||
|
applicable.
|
||||||
|
|
||||||
|
If one can assume point-to-point links , then discovery might try
|
||||||
|
IPv6 link-local or even IPv4 link-local. Or maybe a link broadcast
|
||||||
|
protocol.
|
||||||
|
|
||||||
|
For switched or bridged multi-point which is at least on the same
|
||||||
|
subnet, VLAN, etc., broadcasts might be a viable approach.
|
||||||
|
|
||||||
|
There will be difficulty if one or both peers wish to use a loopback
|
||||||
|
for peering.
|
||||||
|
|
||||||
|
9. Discovery at Layer Seven
|
||||||
|
|
||||||
|
Peer discovery at Layer-7 requires application layer rendezcous
|
||||||
|
mechanisms analogous to those used by LISP, [RFC6830] or the Bitcoin
|
||||||
|
Protocol.
|
||||||
|
|
||||||
|
If the infrastructure is at all complex, e.g. multi-segment or worse,
|
||||||
|
then it will need prior routing/forwarding knowledge in order to
|
||||||
|
reach the rendezvous. In a BGP centric deployment this could pose a
|
||||||
|
chicken and egg problem.
|
||||||
|
|
||||||
|
Rendezvous approaches may appeal to deployments which favor a central
|
||||||
|
control framework.
|
||||||
|
|
||||||
|
On the other hand, those who favor distributed protocols will have
|
||||||
|
the classic worries about fragility, redundancy, reliability, etc.
|
||||||
|
|
||||||
|
10. Security Considerations
|
||||||
|
|
||||||
|
None yet, but there will be many.
|
||||||
|
|
||||||
|
11. Acknowledgments
|
||||||
|
|
||||||
|
The IDR BGP Discovery Design Team.
|
||||||
|
|
||||||
|
12. IANA Considerations
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
13. Normative References
|
||||||
|
|
||||||
|
[I-D.ietf-lsvr-l3dl]
|
||||||
|
Bush, R., Austein, R., and K. Patel, "Layer 3 Discovery
|
||||||
|
and Liveness", draft-ietf-lsvr-l3dl-04 (work in progress),
|
||||||
|
May 2020.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bush Expires November 26, 2020 [Page 5]
|
||||||
|
|
||||||
|
Internet-Draft Trade-offs in BGP Peer Discovery May 2020
|
||||||
|
|
||||||
|
|
||||||
|
[RFC6830] Farinacci, D., Fuller, V., Meyer, D., and D. Lewis, "The
|
||||||
|
Locator/ID Separation Protocol (LISP)", RFC 6830,
|
||||||
|
DOI 10.17487/RFC6830, January 2013,
|
||||||
|
<https://www.rfc-editor.org/info/rfc6830>.
|
||||||
|
|
||||||
|
Appendix A. Acknowledgements
|
||||||
|
|
||||||
|
The authors wish to thank .
|
||||||
|
|
||||||
|
Author's Address
|
||||||
|
|
||||||
|
Randy Bush
|
||||||
|
Arrcus, Inc. & Internet Initiative Japan
|
||||||
|
5147 Crystal Springs
|
||||||
|
Bainbridge Island, Washington 98110
|
||||||
|
US
|
||||||
|
|
||||||
|
Email: randy@psg.com
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Bush Expires November 26, 2020 [Page 6]
|
||||||
413
draft-ymbk-bgp-discovery-layers.xml
Normal file
413
draft-ymbk-bgp-discovery-layers.xml
Normal file
|
|
@ -0,0 +1,413 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
|
||||||
|
<?rfc comments="yes"?>
|
||||||
|
<?rfc compact="yes"?>
|
||||||
|
<?rfc inline="yes"?>
|
||||||
|
<?rfc sortrefs="yes"?>
|
||||||
|
<?rfc subcompact="yes"?>
|
||||||
|
<?rfc symrefs="yes"?>
|
||||||
|
<?rfc toc="no"?>
|
||||||
|
<?rfc tocdepth="3"?>
|
||||||
|
<?rfc tocindent="yes"?>
|
||||||
|
<?rfc tocompact="yes"?>
|
||||||
|
|
||||||
|
<rfc category="info" docName="draft-ymbk-bgp-discovery-layers-00" updates="6811" ipr="trust200902">
|
||||||
|
|
||||||
|
<front>
|
||||||
|
|
||||||
|
<title>Trade-offs in BGP Peer Discovery</title>
|
||||||
|
|
||||||
|
<author fullname="Randy Bush" initials="R." surname="Bush">
|
||||||
|
<organization>Arrcus, Inc. & Internet Initiative Japan</organization>
|
||||||
|
<address>
|
||||||
|
<postal>
|
||||||
|
<street>5147 Crystal Springs</street>
|
||||||
|
<city>Bainbridge Island</city>
|
||||||
|
<region>Washington</region>
|
||||||
|
<code>98110</code>
|
||||||
|
<country>US</country>
|
||||||
|
</postal>
|
||||||
|
<email>randy@psg.com</email>
|
||||||
|
</address>
|
||||||
|
</author>
|
||||||
|
|
||||||
|
<date />
|
||||||
|
|
||||||
|
<abstract>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
This draft is an exploration of the alternatives and trade-offs in
|
||||||
|
BGP peer discovery at various layers in the stack. It is based on
|
||||||
|
discussions in the IDR WG BGP Discovery Design Team. The current
|
||||||
|
target environment is the datacenter; while keeping an eye not to
|
||||||
|
preclude WAN deployment. This document is not intended to become
|
||||||
|
an RFC.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</abstract>
|
||||||
|
|
||||||
|
</front>
|
||||||
|
|
||||||
|
<middle>
|
||||||
|
|
||||||
|
<section anchor="Intro" title="Introduction">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
This draft is an exploration of the alternatives and trade-offs in
|
||||||
|
BGP peer discovery at various layers in the stack. It is based on
|
||||||
|
discussions in the IDR WG BGP Discovery Design Team. The current
|
||||||
|
target environment is the datacenter; while keeping an eye not to
|
||||||
|
preclude WAN deployment. This document is not intended to become
|
||||||
|
an RFC.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="background" title="Background">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Previous design team discussions converged on a number of aspects
|
||||||
|
of the problem.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<section anchor="underlay" title="BGP is the Underlay">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
The assumedenvironment has BGP used as the underlay routing
|
||||||
|
protocol in data center.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="reqs" title="Some Requirements">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Some requirements have been agreed by the design team as
|
||||||
|
follows:
|
||||||
|
</t>
|
||||||
|
<t>
|
||||||
|
<list style="symbols">
|
||||||
|
<t>
|
||||||
|
Support IPv4 and IPv6 address families, but do not assume
|
||||||
|
both are available.
|
||||||
|
</t>
|
||||||
|
<t>
|
||||||
|
Support discovery of the peering addresses for the BGP
|
||||||
|
session endpoints.
|
||||||
|
</t>
|
||||||
|
<t>
|
||||||
|
Support using either a device's external interface or one of
|
||||||
|
its loopback addresses for the BGP session endpoint.
|
||||||
|
</t>
|
||||||
|
<t>
|
||||||
|
Support discoverery of the peers' ASs.
|
||||||
|
</t>
|
||||||
|
<t>
|
||||||
|
Agree on any BGP session authentication and parameters.
|
||||||
|
</t>
|
||||||
|
<t>
|
||||||
|
Enable Layer 3 link liveness detection, such as BFD.
|
||||||
|
</t>
|
||||||
|
</list>
|
||||||
|
</t>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="simplicity" title="Simplicity">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
The goal is to provide the minimal set of configuration
|
||||||
|
parameters needed by BGP OPEN to successfully start a BGP
|
||||||
|
peering. The goal is specifically not to replace or conflict
|
||||||
|
with data exchanged during BGP OPEN. Multiple sources of
|
||||||
|
truth are a recipe for complexity and hence painful errors.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Simplicity is key. Features not absolutely needed will not be
|
||||||
|
included in the design.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="assumptions" title="Assumptions">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
BGP OPEN will do the heavy lifting.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
BGP discovery should not do anything that could be done by BGP
|
||||||
|
OPEN. Two sources of the same data are a recipe for errors.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
BGP peering will be selective; every BGP speaker may not want to
|
||||||
|
peer with every other speaker.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Before BGP OPEN, there is discovery and there is choosing peers.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
After discovery, it would be nice if another exchange was not
|
||||||
|
needed before BGP OPEN.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="needs" title="Needs of Discovery">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
In discovery, an aspiring BGP speaker needs to discover:
|
||||||
|
</t>
|
||||||
|
<t>
|
||||||
|
<list style="symbols">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
The set of possible peers,
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
To start, discovery does not know the potential peers' layer
|
||||||
|
three IP addresses.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Each one's attributes, a deployment defined set, e.g.: leaf,
|
||||||
|
spine, ice cream flavor, ... These attributes are arbitrary
|
||||||
|
and operator dependednt. No assumptions should be made, code
|
||||||
|
points assigned,, etc.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Each one's layer three peering address(es), and
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Other attributes required for BGP OPEN to succeed, e.g.
|
||||||
|
authentication data.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</list>
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="op-config" title="Operator Configuration">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Operator configuration should be able to decide at lest the
|
||||||
|
following:
|
||||||
|
</t>
|
||||||
|
<t>
|
||||||
|
<list style="symbols">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Select or otherwise filter which peers to actually try to BGP
|
||||||
|
OPEN,
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
What parameters to use, e.g.:
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
<list style="symbols">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
IP addressing: IPv4, IPv6, Loopback, or Direct
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Any special forwarding or routing needed for reaching the
|
||||||
|
prospective peer, e.g., loopback,
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
AS numbering, and
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
BGP Authentication Options.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</list>
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</list>
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="success" title="Success Criteria">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
What are the criteria for success and failure of the design
|
||||||
|
decisions, and how do we measure them?
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="layer2" title="Discovery at Layer Two">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
BGP Discovery at Layer-2 would entail finding potential peers on a
|
||||||
|
LAN or on Point-to-Point links, discovering their Layer-3
|
||||||
|
attributes such as IP addresses, etc.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
There are two available candidates for peer discovery at Layer-2,
|
||||||
|
Link Layer Discovery Protocol, LLDP, and Layer 3 Discovery
|
||||||
|
Protocol, L3DL <xref target="I-D.ietf-lsvr-l3dl"/>.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<section anchor="lldp" title="Link Layer Discovery Protocol (LLDP)">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
LLDP is a widely deployed protocol with implementations for most
|
||||||
|
devices. Unfortunately it does not currently reveal Layer-3 IP
|
||||||
|
addresses. There is an early LLDPv2 development to extend it in
|
||||||
|
IEEE.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="l3dl" title="Layer-3 Discovery Protocol (L3dl)">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
L3DL <xref target="I-D.ietf-lsvr-l3dl"/> is an ongoing
|
||||||
|
development in the IETF LSVR Working Group with the goals of
|
||||||
|
discovering IP Layer-3 attributes of links, such as neighbor IP
|
||||||
|
addressing, logical link IP encapsulation abilities, and link
|
||||||
|
liveness which may then be disseminated using BGP-SPF and
|
||||||
|
similar protocols.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
This is similar but not quite the sane as the needs of this IDR
|
||||||
|
Design Team. E.g., the result is likely more complex than is
|
||||||
|
needed. A week's work could customize the design for the IDR
|
||||||
|
Design Team's needs. But ...
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Unlike LLDP, L3DL has only one implementation and is not widely
|
||||||
|
deployed.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="layer3" title="Discovery at Layer Three">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Discovery at Layer-3 can assume IP addressability, though the IP
|
||||||
|
addresses of potential peers are not known a priori and need to be
|
||||||
|
discovered before further negotiation.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
The principal problem would appear to be discovery at Layer-3,
|
||||||
|
because one neither knows whether to use IPv4 or IPv6. This is
|
||||||
|
exacerbated by the possibility of a potential peer not being on
|
||||||
|
the local subnet, and hence broadcast and simiar techniques may
|
||||||
|
not be applicable.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
If one can assume point-to-point links , then discovery might try
|
||||||
|
IPv6 link-local or even IPv4 link-local. Or maybe a link
|
||||||
|
broadcast protocol.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
For switched or bridged multi-point which is at least on the same
|
||||||
|
subnet, VLAN, etc., broadcasts might be a viable approach.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
There will be difficulty if one or both peers wish to use a
|
||||||
|
loopback for peering.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="layer7" title="Discovery at Layer Seven">
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Peer discovery at Layer-7 requires application layer rendezcous
|
||||||
|
mechanisms analogous to those used by LISP, <xref
|
||||||
|
target="RFC6830"/> or the Bitcoin Protocol.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
If the infrastructure is at all complex, e.g. multi-segment or
|
||||||
|
worse, then it will need prior routing/forwarding knowledge in
|
||||||
|
order to reach the rendezvous. In a BGP centric deployment this
|
||||||
|
could pose a chicken and egg problem.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
Rendezvous approaches may appeal to deployments which favor a
|
||||||
|
central control framework.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t>
|
||||||
|
On the other hand, those who favor distributed protocols will have
|
||||||
|
the classic worries about fragility, redundancy, reliability, etc.
|
||||||
|
</t>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="seccons" title="Security Considerations">
|
||||||
|
<t>
|
||||||
|
None yet, but there will be many.
|
||||||
|
</t>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="acks" title="Acknowledgments">
|
||||||
|
<t>
|
||||||
|
The IDR BGP Discovery Design Team.
|
||||||
|
</t>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section anchor="IANA" title="IANA Considerations">
|
||||||
|
<t>
|
||||||
|
None
|
||||||
|
</t>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</middle>
|
||||||
|
|
||||||
|
<back>
|
||||||
|
|
||||||
|
<references title="Normative References">
|
||||||
|
<!--
|
||||||
|
[IEEE8021AB]
|
||||||
|
IEEE, "IEEE Standard for Local and Metropolitan Area
|
||||||
|
Networks - Station and Media Access Control Connectivity
|
||||||
|
Discovery", IEEE 802.1AB.
|
||||||
|
-->
|
||||||
|
<?rfc include="reference.RFC.6830"?>
|
||||||
|
<?rfc include="reference.I-D.ietf-lsvr-l3dl"?>
|
||||||
|
</references>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<references title="Informative References">
|
||||||
|
</references>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<section anchor="Acknowledgements" title="Acknowledgements">
|
||||||
|
<t>
|
||||||
|
The authors wish to thank .
|
||||||
|
</t>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
</back>
|
||||||
|
|
||||||
|
</rfc>
|
||||||
|
|
@ -1,188 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
|
|
||||||
<?rfc comments="yes"?>
|
|
||||||
<?rfc compact="yes"?>
|
|
||||||
<?rfc inline="yes"?>
|
|
||||||
<?rfc sortrefs="yes"?>
|
|
||||||
<?rfc subcompact="yes"?>
|
|
||||||
<?rfc symrefs="yes"?>
|
|
||||||
<?rfc toc="no"?>
|
|
||||||
<?rfc tocdepth="3"?>
|
|
||||||
<?rfc tocindent="yes"?>
|
|
||||||
<?rfc tocompact="yes"?>
|
|
||||||
|
|
||||||
<rfc category="std" docName="draft-ietf-sidrops-ov-egress-00" updates="6811" ipr="trust200902">
|
|
||||||
|
|
||||||
<front>
|
|
||||||
<title>BGP RPKI-Based Origin Validation on Export</title>
|
|
||||||
|
|
||||||
<author fullname="Randy Bush" initials="R." surname="Bush">
|
|
||||||
<organization>Internet Initiative Japan & Arrcus</organization>
|
|
||||||
<address>
|
|
||||||
<postal>
|
|
||||||
<street>5147 Crystal Springs</street>
|
|
||||||
<city>Bainbridge Island</city>
|
|
||||||
<region>Washington</region>
|
|
||||||
<code>98110</code>
|
|
||||||
<country>US</country>
|
|
||||||
</postal>
|
|
||||||
<email>randy@psg.com</email>
|
|
||||||
</address>
|
|
||||||
</author>
|
|
||||||
|
|
||||||
<author fullname="Rüdiger Volk" initials="R." surname="Volk">
|
|
||||||
<organization>Deutsche Telekom</organization>
|
|
||||||
</author>
|
|
||||||
|
|
||||||
<author fullname="Jakob Heitz" initials="J. " surname="Heitz">
|
|
||||||
<organization>Cisco</organization>
|
|
||||||
<address>
|
|
||||||
<postal>
|
|
||||||
<street>170 West Tasman Drive</street>
|
|
||||||
<city>San Jose</city>
|
|
||||||
<region>CA</region>
|
|
||||||
<code>95134</code>
|
|
||||||
<country>USA</country>
|
|
||||||
</postal>
|
|
||||||
<email>jheitz@cisco.com</email>
|
|
||||||
</address>
|
|
||||||
</author>
|
|
||||||
|
|
||||||
<date />
|
|
||||||
|
|
||||||
<abstract>
|
|
||||||
|
|
||||||
<t>A BGP speaker may perform RPKI origin validation not only on
|
|
||||||
routes received from BGP neighbors and routes that are redistributed
|
|
||||||
from other routing protocols, but also on routes it sends to BGP
|
|
||||||
neighbors. For egress policy, it is important that the
|
|
||||||
classification uses the effective origin AS of the processed route,
|
|
||||||
which may specifically be altered by the commonly available knobs
|
|
||||||
such as removing private ASs, confederation handling, and other
|
|
||||||
modifications of the origin AS.</t>
|
|
||||||
|
|
||||||
</abstract>
|
|
||||||
|
|
||||||
<note title="Requirements Language">
|
|
||||||
|
|
||||||
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
|
|
||||||
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
|
|
||||||
are to be interpreted as described in <xref target="RFC2119"/> only
|
|
||||||
when they appear in all upper case. They may also appear in lower
|
|
||||||
or mixed case as English words, without normative meaning.</t>
|
|
||||||
|
|
||||||
</note>
|
|
||||||
|
|
||||||
</front>
|
|
||||||
|
|
||||||
<middle>
|
|
||||||
|
|
||||||
<section anchor="intro" title="Introduction">
|
|
||||||
|
|
||||||
<t>This document does not change the protocol or semantics of <xref
|
|
||||||
target="RFC6811"/> of RPKI-based origin validation. It highlights
|
|
||||||
an important use case of origin validation in eBGP egress policies,
|
|
||||||
explaining specifics of correct implementation in this context.</t>
|
|
||||||
|
|
||||||
<t>As the origin AS may be modified by outbound policy, policy
|
|
||||||
semantics based on RPKI Origin Validation state MUST be able to be
|
|
||||||
applied separately on distribution into BGP and on egress.</t>
|
|
||||||
|
|
||||||
<t>When applied to egress policy, the effective origin AS MUST be
|
|
||||||
used to determine the Origin Validation state. The effective origin
|
|
||||||
AS is that which will actually be the origin AS in the announcement.
|
|
||||||
It might be affected by removal of private AS(s), confederation, AS
|
|
||||||
migration, etc. If there are any AS_PATH modifications resulting in
|
|
||||||
origin AS change, then these MUST be taken into account.</t>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section anchor="reading" title="Suggested Reading">
|
|
||||||
|
|
||||||
<t>It is assumed that the reader understands BGP, <xref
|
|
||||||
target="RFC4271"/>, the RPKI, <xref target="RFC6480"/>, Route Origin
|
|
||||||
Authorizations (ROAs), <xref target="RFC6482"/>, RPKI-based
|
|
||||||
Prefix Validation, <xref target="RFC6811"/>, and Origin Validation
|
|
||||||
Clarifications, <xref target="RFC8481"/>.</t>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section anchor="all" title="Egress Processing">
|
|
||||||
|
|
||||||
<t>BGP implementations supporting RPKI-based origin validation
|
|
||||||
SHOULD provide the same policy configuration primitives for
|
|
||||||
decisions based on validation state available for use in ingress,
|
|
||||||
redistribution, and egress policies. When applied to egress policy,
|
|
||||||
validation state MUST be determined using the effective origin AS of
|
|
||||||
the route as it will (or would) be announced to the peer. The
|
|
||||||
effective origin AS may differ from that of the route in the RIB due
|
|
||||||
to commonly available knobs such as: removal of private ASs, AS path
|
|
||||||
manipulation, confederation handling, etc.</t>
|
|
||||||
|
|
||||||
<t>Egress policy handling can provide more robust protection for
|
|
||||||
outbound eBGP than relying solely on ingress (iBGP, eBGP, connected,
|
|
||||||
static, etc.) redistribution being configured and working correctly
|
|
||||||
- better support for the robustness principle.</t>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section anchor="impl" title="Operational Considerations">
|
|
||||||
|
|
||||||
<t>Configurations may have complex policy where the final announced
|
|
||||||
origin AS may not be easily predicted before all policies have been
|
|
||||||
run. Therefore it SHOULD be possible to specify an origin
|
|
||||||
validation policy which MUST BE run after such non-deterministic
|
|
||||||
policies.</t>
|
|
||||||
|
|
||||||
<t>An operator SHOULD be able to list what announcements are not
|
|
||||||
sent to a peer because they were marked Invalid, as long as the
|
|
||||||
router still has them in memory.</t>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section anchor="seccons" title="Security Considerations">
|
|
||||||
|
|
||||||
<t>This document does not create security considerations beyond
|
|
||||||
those of <xref target="RFC6811"/> and <xref target="RFC8481"/>.</t>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section anchor="iana" title="IANA Considerations">
|
|
||||||
|
|
||||||
<t>This document has no IANA Considerations.</t>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<t>Note to RFC Editor: this section may be replaced on publication
|
|
||||||
as an RFC.</t>
|
|
||||||
-->
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<section anchor="acks" title="Acknowledgments">
|
|
||||||
|
|
||||||
<t>Many thanks to John Scudder who had the patience to give
|
|
||||||
constructive review multiple times, and to Keyur Patel who noted
|
|
||||||
that the AS might have to be specified.</t>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
-->
|
|
||||||
|
|
||||||
</middle>
|
|
||||||
|
|
||||||
<back>
|
|
||||||
|
|
||||||
<references title="Normative References">
|
|
||||||
<?rfc include="reference.RFC.2119"?>
|
|
||||||
<?rfc include="reference.RFC.6482"?>
|
|
||||||
<?rfc include="reference.RFC.6811"?>
|
|
||||||
<?rfc include="reference.RFC.8481"?>
|
|
||||||
</references>
|
|
||||||
|
|
||||||
<references title="Informative References">
|
|
||||||
<?rfc include="reference.RFC.4271"?>
|
|
||||||
<?rfc include="reference.RFC.6480"?>
|
|
||||||
</references>
|
|
||||||
|
|
||||||
</back>
|
|
||||||
|
|
||||||
</rfc>
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue