summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/routing/static.rst12
-rw-r--r--docs/vpn/wireguard.rst114
-rw-r--r--docs/vrf.rst43
3 files changed, 109 insertions, 60 deletions
diff --git a/docs/routing/static.rst b/docs/routing/static.rst
index 52a73354..523627fa 100644
--- a/docs/routing/static.rst
+++ b/docs/routing/static.rst
@@ -34,6 +34,9 @@ Static Routes
Range is 1 to 255, default is 1.
+ .. note:: Routes with a distance of 255 are effectively disabled and not
+ installed into the kernel.
+
.. cfgcmd:: set protocols static route6 <subnet> next-hop <address>
Configure next-hop `<address>` for an IPv6 static route. Multiple static
@@ -50,8 +53,8 @@ Static Routes
Range is 1 to 255, default is 1.
-.. note:: Routes with a distance of 255 are effectively disabled and not
- installed into the kernel.
+ .. note:: Routes with a distance of 255 are effectively disabled and not
+ installed into the kernel.
Interface Routes
@@ -125,6 +128,7 @@ Blackhole
Alternate Routing Tables
========================
-Alternate routing tables are used with policy based routing.
-
TBD
+
+Alternate routing tables are used with policy based routing of by utilizing
+:ref:`vrf`.
diff --git a/docs/vpn/wireguard.rst b/docs/vpn/wireguard.rst
index 6348fb01..9b3d36f4 100644
--- a/docs/vpn/wireguard.rst
+++ b/docs/vpn/wireguard.rst
@@ -11,61 +11,66 @@ information.
Configuration
=============
-WireGuard requires the generation of a keypair, a private key which will decrypt
-incoming traffic and a public key, which the peer(s) will use to encrypt traffic.
+WireGuard requires the generation of a keypair, a private key which will
+decrypt incoming traffic and a public key, which the peer(s) will use to
+encrypt traffic.
Generate keypair
----------------
-Generate the keypair, which creates a public and private part and stores it
-within VyOS. It will be used per default on any configured WireGuard interface,
-even if multiple interfaces are being configured.
+.. opcmd:: generate wireguard default-keypair
-.. code-block:: none
+It generates the keypair, that is its public and private part and stores
+it within VyOS. It will be used per default on any configured WireGuard
+interface, even if multiple interfaces are being configured.
- wg01:~$ configure
- wg01# run generate wireguard keypair
-The public key is being shared with your peer(s), your peer will encrypt all
-traffic to your system using this public key.
-.. code-block:: none
+.. opcmd:: show wireguard keypairs pubkey default
+
+It shows the public key which needs to be shared with your peer(s). Your
+peer will encrypt all traffic to your system using this public key.
+
+
+
+ .. code-block:: none
+
+ vyos@vyos:~$ show wireguard keypairs pubkey default
+ hW17UxY7zeydJNPIyo3UtGnBHkzTK/NeBOrDSIU9Tx0=
- wg01# run show wireguard pubkey
- u41jO3OF73Gq1WARMMFG7tOfk7+r8o8AzPxJ1FZRhzk=
Generate named keypair
----------------------
-Named keypairs can be used on a interface basis, if configured.
-If multiple WireGuard interfaces are being configured, each can have
-their own keypairs.
+Named keypairs can be used on a interface basis, if configured. If
+multiple WireGuard interfaces are being configured, each can have their
+own keypairs.
-The commands below will generate 2 keypairs, which are not related
-to each other.
+The commands below will generate 2 keypairs, which are not related to
+each other.
.. code-block:: none
- wg01:~$ configure
- wg01# run generate wireguard named-keypairs KP01
- wg01# run generate wireguard named-keypairs KP02
+ vyos@vyos:~$ generate wireguard named-keypairs KP01
+ vyos@vyos:~$ generate wireguard named-keypairs KP02
Interface configuration
-----------------------
-The next step is to configure your local side as well as the policy based
-trusted destination addresses. If you only initiate a connection, the listen
-port and endpoint is optional, if you however act as a server and endpoints
-initiate the connections to your system, you need to define a port your clients
-can connect to, otherwise it's randomly chosen and may make it difficult with
-firewall rules, since the port may be a different one when you reboot your
-system.
+The next step is to configure your local side as well as the policy
+based trusted destination addresses. If you only initiate a connection,
+the listen port and endpoint is optional, if you however act as a server
+and endpoints initiate the connections to your system, you need to
+define a port your clients can connect to, otherwise it's randomly
+chosen and may make it difficult with firewall rules, since the port may
+be a different one when you reboot your system.
-You will also need the public key of your peer as well as the network(s) you
-want to tunnel (allowed-ips) to configure a WireGuard tunnel. The public key
-below is always the public key from your peer, not your local one.
+You will also need the public key of your peer as well as the network(s)
+you want to tunnel (allowed-ips) to configure a WireGuard tunnel. The
+public key below is always the public key from your peer, not your local
+one.
**local side**
@@ -79,24 +84,25 @@ below is always the public key from your peer, not your local one.
set interfaces wireguard wg01 port '12345'
set protocols static interface-route 10.2.0.0/24 next-hop-interface wg01
-.. note:: The `endpoint` must be an IP and not a fully qualified domain name
- (FQDN). Using a FQDN will result in unexpected behavior.
+.. note:: The `endpoint` must be an IP and not a fully qualified domain
+ name (FQDN). Using a FQDN will result in unexpected behavior.
-The last step is to define an interface route for 10.2.0.0/24 to get through
-the WireGuard interface `wg01`. Multiple IPs or networks can be defined and
-routed, the last check is allowed-ips which either prevents or allows the
-traffic.
+The last step is to define an interface route for 10.2.0.0/24 to get
+through the WireGuard interface `wg01`. Multiple IPs or networks can be
+defined and routed, the last check is allowed-ips which either prevents
+or allows the traffic.
-To use a named key on an interface, the option private-key needs to be set.
+To use a named key on an interface, the option private-key needs to be
+set.
.. code-block:: none
set interfaces wireguard wg01 private-key KP01
set interfaces wireguard wg02 private-key KP02
-The command ``run show wireguard keypairs pubkey KP01`` will then show the public key,
-which needs to be shared with the peer.
+The command ``run show wireguard keypairs pubkey KP01`` will then show
+the public key, which needs to be shared with the peer.
**remote side**
@@ -111,8 +117,8 @@ which needs to be shared with the peer.
set interfaces wireguard wg01 port '12345'
set protocols static interface-route 10.1.0.0/24 next-hop-interface wg01
-Assure that your firewall rules allow the traffic, in which case you have a
-working VPN using WireGuard
+Assure that your firewall rules allow the traffic, in which case you
+have a working VPN using WireGuard
.. code-block:: none
@@ -134,9 +140,9 @@ asymmetric crypto, which is optional.
wg01# run generate wireguard preshared-key
rvVDOoc2IYEnV+k5p7TNAmHBMEGTHbPU8Qqg8c/sUqc=
-Copy the key, as it is not stored on the local file system. Make sure you
-distribute that key in a safe manner, it's a symmetric key, so only you and
-your peer should have knowledge of its content.
+Copy the key, as it is not stored on the local file system. Make sure
+you distribute that key in a safe manner, it's a symmetric key, so only
+you and your peer should have knowledge of its content.
.. code-block:: none
@@ -146,11 +152,11 @@ your peer should have knowledge of its content.
Road Warrior Example
--------------------
-With WireGuard, a Road Warrior VPN config is similar to a site-to-site VPN. It
-just lacks the ``endpoint`` address.
+With WireGuard, a Road Warrior VPN config is similar to a site-to-site
+VPN. It just lacks the ``endpoint`` address.
-In the following example, the IPs for the remote clients are defined in the
-peers. This would allow the peers to interact with one another.
+In the following example, the IPs for the remote clients are defined in
+the peers. This would allow the peers to interact with one another.
.. code-block:: none
@@ -173,9 +179,9 @@ peers. This would allow the peers to interact with one another.
port 2224
}
-The following is the config for the iPhone peer above. It's important to note
-that the ``AllowedIPs`` setting directs all IPv4 and IPv6 traffic through the
-connection.
+The following is the config for the iPhone peer above. It's important to
+note that the ``AllowedIPs`` setting directs all IPv4 and IPv6 traffic
+through the connection.
.. code-block:: none
@@ -191,8 +197,8 @@ connection.
PersistentKeepalive = 25
-This MacBook peer is doing split-tunneling, where only the subnets local to the
-server go over the connection.
+This MacBook peer is doing split-tunneling, where only the subnets local
+to the server go over the connection.
.. code-block:: none
diff --git a/docs/vrf.rst b/docs/vrf.rst
index 3cf7e6ad..75075be6 100644
--- a/docs/vrf.rst
+++ b/docs/vrf.rst
@@ -106,8 +106,9 @@ Static Routes
Range is 1 to 255, default is 1.
-.. note:: Routes with a distance of 255 are effectively disabled and not
- installed into the kernel.
+ .. note:: Routes with a distance of 255 are effectively disabled and not
+ installed into the kernel.
+
Leaking
"""""""
@@ -126,6 +127,44 @@ Leaking
routing table to reach a `<subnet>` via a next-hop gatewys `<address>` in
a different VRF or leak it into the default VRF.
+
+Interface Routes
+""""""""""""""""
+
+.. cfgcmd:: set protocols vrf <name> static interface-route <subnet> next-hop-interface <interface>
+
+ Allows you to configure the next-hop interface for an interface-based IPv4
+ static route. `<interface>` will be the next-hop interface where trafic is
+ routed for the given `<subnet>`.
+
+.. cfgcmd:: set protocols vrf <name> static interface-route <subnet> next-hop-interface <interface> disable
+
+ Disables interface-based IPv4 static route.
+
+.. cfgcmd:: set protocols vrf <name> static interface-route <subnet> next-hop-interface <interface> distance <distance>
+
+ Defines next-hop distance for this route, routes with smaller administrative
+ distance are elected prior those with a higher distance.
+
+ Range is 1 to 255, default is 1.
+
+.. cfgcmd:: set protocols vrf <name> static interface-route6 <subnet> next-hop-interface <interface>
+
+ Allows you to configure the next-hop interface for an interface-based IPv6
+ static route. `<interface>` will be the next-hop interface where trafic is
+ routed for the given `<subnet>`.
+
+.. cfgcmd:: set protocols vrf <name> static interface-route6 <subnet> next-hop-interface <interface> disable
+
+ Disables interface-based IPv6 static route.
+
+.. cfgcmd:: set protocols vrf <name> static interface-route6 <subnet> next-hop-interface <interface> distance <distance>
+
+ Defines next-hop distance for this route, routes with smaller administrative
+ distance are elected prior those with a higher distance.
+
+ Range is 1 to 255, default is 1.
+
Blackhole
"""""""""