diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/routing/static.rst | 12 | ||||
-rw-r--r-- | docs/vpn/wireguard.rst | 114 | ||||
-rw-r--r-- | docs/vrf.rst | 43 |
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 """"""""" |