mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
examples: add wan load balancing examples
This commit is contained in:
parent
d5428638ff
commit
45793d2d71
BIN
docs/_static/images/Wan_load_balancing1.png
vendored
Normal file
BIN
docs/_static/images/Wan_load_balancing1.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 365 KiB |
BIN
docs/_static/images/Wan_load_balancing_exclude1.png
vendored
Normal file
BIN
docs/_static/images/Wan_load_balancing_exclude1.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 374 KiB |
@ -17,3 +17,4 @@ This chapter contains various configuration Examples
|
||||
azure-vpn-dual-bgp
|
||||
tunnelbroker-ipv6
|
||||
dhcp-relay-through-gre-bridge
|
||||
wan-load-balancing
|
||||
|
||||
170
docs/appendix/examples/wan-load-balancing.rst
Normal file
170
docs/appendix/examples/wan-load-balancing.rst
Normal file
@ -0,0 +1,170 @@
|
||||
.. _wan-load-balancing:
|
||||
|
||||
WAN Load Balancer examples
|
||||
==========================
|
||||
|
||||
|
||||
Example 1: Distributing load evenly
|
||||
-----------------------------------
|
||||
|
||||
The setup used in this example is shown in the following diagram:
|
||||
|
||||
.. image:: /_static/images/Wan_load_balancing1.png
|
||||
:width: 80%
|
||||
:align: center
|
||||
:alt: Network Topology Diagram
|
||||
|
||||
|
||||
Overview
|
||||
^^^^^^^^
|
||||
* All traffic coming in trough eth2 is balanced between eth0 and eth1
|
||||
on the router.
|
||||
* Pings will be sent to four targets for health testing (33.44.55.66,
|
||||
44.55.66.77, 55.66.77.88 and 66.77.88.99).
|
||||
* All outgoing packets are assigned the source address of the assigned
|
||||
interface (SNAT).
|
||||
* eth0 is set to be removed from the load balancer's interface pool
|
||||
after 5 ping failures, eth1 will be removed after 4 ping failures.
|
||||
|
||||
Create static routes to ping targets
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Create static routes through the two ISPs towards the ping targets and
|
||||
commit the changes:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set protocols static route 33.44.55.66/32 next-hop 11.22.33.1
|
||||
set protocols static route 44.55.66.77/32 next-hop 11.22.33.1
|
||||
set protocols static route 55.66.77.88/32 next-hop 22.33.44.1
|
||||
set protocols static route 66.77.88.99/32 next-hop 22.33.44.1
|
||||
|
||||
Configure the load balancer
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Configure the WAN load balancer with the parameters described above:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set load-balancing wan interface-health eth0 failure-count 5
|
||||
set load-balancing wan interface-health eth0 nexthop 11.22.33.1
|
||||
set load-balancing wan interface-health eth0 test 10 type ping
|
||||
set load-balancing wan interface-health eth0 test 10 target 33.44.55.66
|
||||
set load-balancing wan interface-health eth0 test 20 type ping
|
||||
set load-balancing wan interface-health eth0 test 20 target 44.55.66.77
|
||||
set load-balancing wan interface-health eth1 failure-count 4
|
||||
set load-balancing wan interface-health eth1 nexthop 22.33.44.1
|
||||
set load-balancing wan interface-health eth1 test 10 type ping
|
||||
set load-balancing wan interface-health eth1 test 10 target 55.66.77.88
|
||||
set load-balancing wan interface-health eth1 test 20 type ping
|
||||
set load-balancing wan interface-health eth1 test 20 target 66.77.88.99
|
||||
set load-balancing wan rule 10 inbound-interface eth2
|
||||
set load-balancing wan rule 10 interface eth0
|
||||
set load-balancing wan rule 10 interface eth1
|
||||
|
||||
Example 2: Failover based on interface weights
|
||||
----------------------------------------------
|
||||
|
||||
This examples uses the failover mode.
|
||||
|
||||
Overview
|
||||
^^^^^^^^
|
||||
In this example eth0 is the primary interface and eth1 is the secondary
|
||||
interface to provide simple failover functionality. If eth0 fails, eth1
|
||||
takes over.
|
||||
|
||||
Create interface weight based configuration
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
The configuration steps are the same as in the previous example, except
|
||||
rule 10 so we keep the configuration, remove rule 10 and add a new rule
|
||||
for the failover mode:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
delete load-balancing wan rule 10
|
||||
set load-balancing wan rule 10 failover
|
||||
set load-balancing wan rule 10 inbound-interface eth2
|
||||
set load-balancing wan rule 10 interface eth0 weight 10
|
||||
set load-balancing wan rule 10 interface eth1 weight 1
|
||||
|
||||
Example 3: Failover based on rule order
|
||||
---------------------------------------
|
||||
|
||||
The previous example used the failover command to send traffic thorugh
|
||||
eth1 if eth0 fails. In this example failover functionality is provided
|
||||
by rule order.
|
||||
|
||||
Overview
|
||||
^^^^^^^^
|
||||
Two rules will be created, the first rule directs traffic coming in
|
||||
from eth2 to eth0 and the second rule directs the traffic to eth1. If
|
||||
eth0 fails the first rule is bypassed and the second rule matches,
|
||||
directing traffic to eth1.
|
||||
|
||||
Create rule order based configuration
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
We keep the configurtation from the previous example, delete rule 10
|
||||
and create the two new rules as described:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
delete load-balancing wan rule 10
|
||||
set load-balancing wan rule 10 inbound-interface eth2
|
||||
set load-balancing wan rule 10 interface eth0
|
||||
set load-balancing wan rule 20 inbound-interface eth2
|
||||
set load-balancing wan rule 20 interface eth1
|
||||
|
||||
Example 4: Failover based on rule order - priority traffic
|
||||
----------------------------------------------------------
|
||||
|
||||
A rule order for prioritising traffic is useful in scenarios where the
|
||||
secondary link has a lower speed and should only carry high priority
|
||||
traffic. It is assumed for this example that eth1 is connected to a
|
||||
slower connection than eth0 and should prioritise VoIP traffic.
|
||||
|
||||
Overview
|
||||
^^^^^^^^
|
||||
A rule order for prioritising traffic is useful in scenarios where the
|
||||
secondary link has a lower speed and should only carry high priority
|
||||
traffic. It is assumed for this example that eth1 is connected to a
|
||||
slower connection than eth0 and should prioritise VoIP traffic.
|
||||
|
||||
Create rule order based configuration with low speed secondary link
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
We keep the configuration from the previous example, delete rule 20 and
|
||||
create a new rule as described:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
delete load-balancing wan rule 20
|
||||
set load-balancing wan rule 20 inbound-interface eth2
|
||||
set load-balancing wan rule 20 interface eth1
|
||||
set load-balancing wan rule 20 destination port sip
|
||||
set load-balancing wan rule 20 protocol tcp
|
||||
set protocols static route 0.0.0.0/0 next-hop 11.22.33.1
|
||||
|
||||
Example 5: Exclude traffic from load balancing
|
||||
----------------------------------------------
|
||||
|
||||
In this example two LAN interfaces exist in different subnets instead
|
||||
of one like in the previous examples:
|
||||
|
||||
.. image:: /_static/images/Wan_load_balancing_exclude1.png
|
||||
:width: 80%
|
||||
:align: center
|
||||
:alt: Network Topology Diagram
|
||||
|
||||
Adding a rule for the second interface
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Based on the previous example, another rule for traffic from the second
|
||||
interface eth3 can be added to the load balancer. However, traffic meant
|
||||
to flow between the LAN subnets will be sent to eth0 and eth1 as well.
|
||||
To prevent this, another rule is required. This rule excludes traffic
|
||||
between the local subnets from the load balancer. It also excludes
|
||||
locally-sources packets (required for web caching with load balancing).
|
||||
eth+ is used as an alias that refers to all ethernet interfaces:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
set load-balancing wan rule 5 exclude
|
||||
set load-balancing wan rule 5 inbound-interface eth+
|
||||
set load-balancing wan rule 5 destination address 10.0.0.0/8
|
||||
Loading…
x
Reference in New Issue
Block a user