summaryrefslogtreecommitdiff
path: root/docs/configuration/interfaces
diff options
context:
space:
mode:
authorrebortg <github@ghlr.de>2024-05-28 12:24:30 +0200
committerrebortg <github@ghlr.de>2024-05-28 12:24:30 +0200
commit96039bd2f44018ae767930e252305bedece57156 (patch)
tree650373a9398085999f8bbb45b09b4896ca489f5f /docs/configuration/interfaces
parent0a3febc9524e7f5d3df856bd9cf58aafb3500252 (diff)
parent2be191247b2f10f1bc3ae38f8bcb565ce0af0635 (diff)
downloadvyos-documentation-96039bd2f44018ae767930e252305bedece57156.tar.gz
vyos-documentation-96039bd2f44018ae767930e252305bedece57156.zip
Merge branch 'current' of github.com:vyos/vyos-documentation into current
Diffstat (limited to 'docs/configuration/interfaces')
-rw-r--r--docs/configuration/interfaces/bonding.rst54
-rw-r--r--docs/configuration/interfaces/ethernet.rst37
-rw-r--r--docs/configuration/interfaces/openvpn.rst82
3 files changed, 165 insertions, 8 deletions
diff --git a/docs/configuration/interfaces/bonding.rst b/docs/configuration/interfaces/bonding.rst
index 3c8ebd0d..27f1bbed 100644
--- a/docs/configuration/interfaces/bonding.rst
+++ b/docs/configuration/interfaces/bonding.rst
@@ -156,6 +156,11 @@ Bond options
The default value is slow.
+.. cfgcmd:: set interfaces bonding <interface> system-mac <mac address>
+
+ This option allow to specifies the 802.3ad system MAC address.You can set a
+ random mac-address that can be used for these LACPDU exchanges.
+
.. cfgcmd:: set interfaces bonding <interface> hash-policy <policy>
* **layer2** - Uses XOR of hardware MAC addresses and packet type ID field
@@ -286,6 +291,54 @@ Port Mirror (SPAN)
: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>
+.. cfgcmd:: set interfaces bonding <interface> evpn es-sys-mac <xx:xx:xx:xx:xx:xx>
+
+ 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
*******
@@ -590,4 +643,3 @@ Operation
Partner Churn State: churned
Actor Churned Count: 1
Partner Churned Count: 1
-
diff --git a/docs/configuration/interfaces/ethernet.rst b/docs/configuration/interfaces/ethernet.rst
index bbf52112..dd524035 100644
--- a/docs/configuration/interfaces/ethernet.rst
+++ b/docs/configuration/interfaces/ethernet.rst
@@ -61,6 +61,22 @@ Offloading
Enable different types of hardware offloading on the given NIC.
+ :abbr:`LRO (Large Receive Offload)` is a technique designed to boost the
+ efficiency of how your computer's network interface card (NIC) processes
+ incoming network traffic. Typically, network data arrives in smaller chunks
+ called packets. Processing each packet individually consumes CPU (central
+ processing unit) resources. Lots of small packets can lead to a performance
+ bottleneck. Instead of handing the CPU each packet as it comes in, LRO
+ instructs the NIC to combine multiple incoming packets into a single, larger
+ packet. This larger packet is then passed to the CPU for processing.
+
+ .. note:: Under some circumstances, LRO is known to modify the packet headers
+ of forwarded traffic, which breaks the end-to-end principle of computer
+ networking. LRO is also only able to offload TCP segments encapsulated in
+ IPv4 packets. Due to these limitations, it is recommended to use GRO
+ (Generic Receive Offload) where possible. More information on the
+ limitations of LRO can be found here: https://lwn.net/Articles/358910/
+
:abbr:`GSO (Generic Segmentation Offload)` is a pure software offload that is
meant to deal with cases where device drivers cannot perform the offloads
described above. What occurs in GSO is that a given skbuff will have its data
@@ -87,13 +103,13 @@ Offloading
placing the packet on the desired CPU's backlog queue and waking up the CPU
for processing. RPS has some advantages over RSS:
- - it can be used with any NIC,
- - software filters can easily be added to hash over new protocols,
- - it does not increase hardware device interrupt rate (although it does
- introduce inter-processor interrupts (IPIs)).
+ - it can be used with any NIC
+ - software filters can easily be added to hash over new protocols
+ - it does not increase hardware device interrupt rate, although it does
+ introduce inter-processor interrupts (IPIs)
- .. note:: In order to use TSO/LRO with VMXNET3 adaters one must also enable
- the SG offloading option.
+ .. note:: In order to use TSO/LRO with VMXNET3 adapters, the SG offloading
+ option must also be enabled.
Authentication (EAPoL)
----------------------
@@ -102,6 +118,14 @@ Authentication (EAPoL)
:var0: ethernet
:var1: eth0
+EVPN Multihoming
+----------------
+
+Uplink/Core tracking.
+
+.. cmdinclude:: /_include/interface-evpn-uplink.txt
+ :var0: ethernet
+ :var1: eth0
VLAN
====
@@ -273,4 +297,3 @@ Operation
Date code : 0506xx
.. stop_vyoslinter
-
diff --git a/docs/configuration/interfaces/openvpn.rst b/docs/configuration/interfaces/openvpn.rst
index 8cf579de..f51dfa94 100644
--- a/docs/configuration/interfaces/openvpn.rst
+++ b/docs/configuration/interfaces/openvpn.rst
@@ -652,6 +652,88 @@ Will add ``push "keepalive 1 10"`` to the generated OpenVPN config file.
quotes. This is done through a hack on our config generator. You can pass
quotes using the ``&quot;`` statement.
+***************************
+Multi-factor Authentication
+***************************
+
+VyOS supports multi-factor authentication (MFA) or two-factor authentication
+using Time-based One-Time Password (TOTP). Compatible with Google Authenticator
+software token, other software tokens.
+
+MFA TOTP options
+================
+
+.. cfgcmd:: set interfaces openvpn <interface> server mfa totp challenge <enable | disable>
+
+ If set to enable, openvpn-otp will expect password as result of challenge/
+ response protocol.
+
+.. cfgcmd:: set interfaces openvpn <interface> server mfa totp digits <1-65535>
+
+ Configure number of digits to use for totp hash (default: 6)
+
+.. cfgcmd:: set interfaces openvpn <interface> server mfa totp drift <1-65535>
+
+ Configure time drift in seconds (default: 0)
+
+.. cfgcmd:: set interfaces openvpn <interface> server mfa totp slop <1-65535>
+
+ Configure maximum allowed clock slop in seconds (default: 180)
+
+.. cfgcmd:: set interfaces openvpn <interface> server mfa totp step <1-65535>
+
+ Configure step value for totp in seconds (default: 30)
+
+Example
+=======
+
+.. code-block:: none
+
+ set interfaces openvpn vtun20 encryption cipher 'aes256'
+ set interfaces openvpn vtun20 hash 'sha512'
+ set interfaces openvpn vtun20 mode 'server'
+ set interfaces openvpn vtun20 persistent-tunnel
+ set interfaces openvpn vtun20 server client user1
+ set interfaces openvpn vtun20 server mfa totp challenge 'disable'
+ set interfaces openvpn vtun20 server subnet '10.10.2.0/24'
+ set interfaces openvpn vtun20 server topology 'subnet'
+ set interfaces openvpn vtun20 tls ca-certificate 'openvpn_vtun20'
+ set interfaces openvpn vtun20 tls certificate 'openvpn_vtun20'
+ set interfaces openvpn vtun20 tls dh-params 'dh-pem'
+
+For every client in the openvpn server configuration a totp secret is created.
+To display the authentication information, use the command:
+
+.. cfgcmd:: show interfaces openvpn <interface> user <username> mfa <qrcode|secret|uri>
+
+An example:
+
+.. code-block:: none
+
+ vyos@vyos:~$ sh interfaces openvpn vtun20 user user1 mfa qrcode
+ █████████████████████████████████████
+ █████████████████████████████████████
+ ████ ▄▄▄▄▄ █▀▄▀ ▀▀▄▀ ▀▀▄ █ ▄▄▄▄▄ ████
+ ████ █ █ █▀▀▄ █▀▀▀█▀██ █ █ █ ████
+ ████ █▄▄▄█ █▀█ ▄ █▀▀ █▄▄▄█ █▄▄▄█ ████
+ ████▄▄▄▄▄▄▄█▄█ █ █ ▀ █▄▀▄█▄▄▄▄▄▄▄████
+ ████▄▄ ▄ █▄▄ ▄▀▄█▄ ▄▀▄█ ▄▄▀ ▀▄█ ▀████
+ ████ ▀██▄▄▄█▄ ██ █▄▄▄▄ █▄▀█ █ █▀█████
+ ████ ▄█▀▀▄▄ ▄█▀ ▀▄ ▄▄▀▄█▀▀▀ ▄▄▀████
+ ████▄█ ▀▄▄▄▀ ▀ ▄█ ▄ █▄█▀ █▀ █▀█████
+ ████▀█▀ ▀ ▄█▀▄▀▀█▄██▄█▀▀ ▀ ▀ ▄█▀████
+ ████ ██▄▄▀▄▄█ ██ ▀█ ▄█ ▀▄█ █▀██▀████
+ ████▄███▄█▄█ ▀█▄ ██▄▄▄█▀ ▄▄▄ █ ▀ ████
+ ████ ▄▄▄▄▄ █▄█▀▄ ▀▄ ▀█▀ █▄█ ██▀█████
+ ████ █ █ █ ▄█▀█▀▀▄ ▄▀▀▄▄▄▄▄▄ ████
+ ████ █▄▄▄█ █ ▄ ▀ █▄▄▄██▄▀█▄▀▄█▄ █████
+ ████▄▄▄▄▄▄▄█▄██▄█▄▄▄▄▄█▄█▄█▄██▄██████
+ █████████████████████████████████████
+ █████████████████████████████████████
+
+Use the QR code to add the user account in Google authenticator application and
+on client side, use the OTP number as password.
+
**********************************
OpenVPN Data Channel Offload (DCO)