Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

evpn: T6306: add multihoming documentation (backport #1443) #1446

Merged
merged 1 commit into from
May 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions docs/_include/interface-evpn-uplink.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
.. cfgcmd:: set interfaces {{ var0 }} <interface> evpn uplink

When all the underlay links go down the PE no longer has access
to the VxLAN +overlay. To prevent blackholing of traffic the
server/ES links are protodowned on the PE.

A link can be setup for uplink tracking via the following example:

.. code-block:: none

set interfaces {{ var0 }} {{ var1 }} evpn uplink
49 changes: 48 additions & 1 deletion docs/configuration/interfaces/bonding.rst
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,54 @@
:var1: bond1
:var2: eth3

EVPN Multihoming
----------------

All-Active Multihoming is used for redundancy and load sharing. Servers are
attached to two or more PEs and the links are bonded (link-aggregation).
This group of server links is referred to as an :abbr:`ES (Ethernet Segment)`.

An Ethernet Segment can be configured by specifying a system-MAC and a local
discriminator or a complete ESINAME against the bond interface on the PE.

.. cfgcmd:: set interfaces bonding <interface> evpn es-id <<1-16777215|10-byte ID>

Check warning on line 304 in docs/configuration/interfaces/bonding.rst

View workflow job for this annotation

GitHub Actions / lint

Line too long: len=82
.. cfgcmd:: set interfaces bonding <interface> evpn es-sys-mac <xx:xx:xx:xx:xx:xx>

Check warning on line 305 in docs/configuration/interfaces/bonding.rst

View workflow job for this annotation

GitHub Actions / lint

Line too long: len=82

The sys-mac and local discriminator are used for generating a 10-byte, Type-3
Ethernet Segment ID. ESINAME is a 10-byte, Type-0 Ethernet Segment ID -
"00:AA:BB:CC:DD:EE:FF:GG:HH:II".

Type-1 (EAD-per-ES and EAD-per-EVI) routes are used to advertise the locally
attached ESs and to learn off remote ESs in the network. Local Type-2/MAC-IP
routes are also advertised with a destination ESI allowing for MAC-IP syncing
between Ethernet Segment peers. Reference: RFC 7432, RFC 8365

EVPN-MH is intended as a replacement for MLAG or Anycast VTEPs. In multihoming
each PE has an unique VTEP address which requires the introduction of a new
dataplane construct, MAC-ECMP. Here a MAC/FDB entry can point to a list of
remote PEs/VTEPs.

.. cfgcmd:: set interfaces bonding <interface> evpn es-df-pref <1-65535>

Type-4 (ESR) routes are used for Designated Forwarder (DF) election.
DFs forward BUM traffic received via the overlay network. This
implementation uses a preference based DF election specified by
draft-ietf-bess-evpn-pref-df.

The DF preference is configurable per-ES.

BUM traffic is rxed via the overlay by all PEs attached to a server but
only the DF can forward the de-capsulated traffic to the access port.
To accommodate that non-DF filters are installed in the dataplane to drop
the traffic.

Similarly traffic received from ES peers via the overlay cannot be forwarded
to the server. This is split-horizon-filtering with local bias.

.. cmdinclude:: /_include/interface-evpn-uplink.txt
:var0: bonding
:var1: bond0

*******
Example
*******
Expand Down Expand Up @@ -595,4 +643,3 @@
Partner Churn State: churned
Actor Churned Count: 1
Partner Churned Count: 1

9 changes: 8 additions & 1 deletion docs/configuration/interfaces/ethernet.rst
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,14 @@
:var0: ethernet
:var1: eth0

EVPN Multihoming
----------------

Uplink/Core tracking.

.. cmdinclude:: /_include/interface-evpn-uplink.txt
:var0: ethernet
:var1: eth0

VLAN
====
Expand Down Expand Up @@ -289,4 +297,3 @@
Date code : 0506xx

.. stop_vyoslinter

Loading