mirror of
				https://github.com/vyos/vyos-documentation.git
				synced 2025-10-26 08:41:46 +01:00 
			
		
		
		
	Merge pull request #373 from currite/crux-wlb-examples2
examples: add wan load balancing examples
This commit is contained in:
		
						commit
						7ed4a5eb80
					
				
							
								
								
									
										
											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