EdgeMAX - función Dual WAN balanceo de carga

Tutorial en vídeo


Este es un ejemplo video tutorial que muestra equilibrio de carga entre dos conexiones WAN en 50% cada uno.

Resumen


Los lectores aprenderán acerca de la característica de balanceo de carga WAN entre interfaces en el EdgeRouter, basado en la versión EdgeOS v1.4.0.  El 1er paso de nuestra función de balanceo de carga WAN está limitado a 2 interfaces WAN, pero tenemos la intención de apoyar más.

Existen unos requisitos para este tipo de configuración:

1) una sección de equilibrio de carga que define la interfaces y opcionalmente objetivos ping, intervalos de tiempo, prueba de ruta, etc.
2) un cortafuegos modificar reglas que define los criterios de partido.
3) al menos 1 interfaz LAN que tiene el cortafuegos modificar reglas aplicadas a la firewall en.

Nota : antes de configurar lo equilibrio de carga es una buena práctica 1 º verificar que ambas interfaces WAN están configurados correctamente con nat/firewall/etc.  Derribar una interfaz WAN, verificar clientes LAN acceder a Internet. Luego hacer lo mismo con la otra interfaz WAN.

Este artículo se aplica a EdgeOS 1.4.0 y para arriba.

Configuración mínima


A continuación es un ejemplo de configuración que utiliza sobre todo los valores por defecto (usando comandos "show" en el modo de configuración):

ubnt@ER-Pro# show load-balance 
 group WLB {
     interface eth0 {
     }
     interface pppoe0 {
     }
 }

ubnt@ER-Pro# show firewall modify 
 modify WAN_WLB {
     rule 10 {
         action modify
         modify {
             lb-group WLB
         }
     }
 }

ubnt@ER-Pro# show interfaces ethernet eth2
 description LAN
 address 192.168.16.1/24
 firewall {
     in {
         modify WAN_WLB
     }
 }

Con esta configuración el tráfico el tráfico entrante en eth2 estará sujeto a balanceo de carga (por defecto 50/50 por WAN). Esta configuración también pondrá en marcha un subproceso de vigilancia para cada interfaz WAN ping www.ubnt.com cada 10 segundos. Si hay 3 fallos consecutivos, todo el tráfico no sobre la otra interfaz WAN.  Por supuesto si no te gusta esos valores predeterminados, puede configurar. 

Comando de operación: Mostrar


El primer "show" comando muestra el "estado" de las interfaces asociadas con el grupo de balanceo de carga WAN.

ubnt@ER-Pro:~$ show load-balance status 
Group WLB
  interface   : eth7
  carrier     : up
  status      : active
  gateway     : 22.0.0.1
  weight      : 50
  flows
      WAN Out : 7451
      WAN In  : 0
    Local Out : 8854

  interface   : pppoe0
  carrier     : up
  status      : active
  gateway     : pppoe0
  weight      : 50
  flows
      WAN Out : 7566
      WAN In  : 0
    Local Out : 3904

El comando "show" segundo muestra información relacionada, incluyendo estado, pings fallidos y ping gateway "watchdog".

 

ubnt@ER-Pro:~$ show load-balance watchdog 
Group G
  eth7
  status: Running 
  pings: 98
  fails: 1
  run fails: 0/2
  route drops: 0
  ping gateway: www.ubnt.com - REACHABLE

  pppoe0
  status: Running 
  pings: 27
  fails: 0
  run fails: 0/3
  route drops: 0
  ping gateway: www.ubnt.com - REACHABLE

  Nota : Si su interfaz WAN PPPoE, es una buena idea para obligar a introducir una ruta de kernel PPP :

 

configure
set interfaces ethernet eth1 pppoe 0 default-route force
commit
save
exit

Opciones de configuración


Para aquellos que quieren modificar los valores por defecto, hay varias opciones de configuración (notas siguen después de la salida)

 

load-balance {
	group <name> {
		interface <name> {
			route {
				default
				table <name>
			}
			weight <number>
			failover-only
			route-test {
				type {
					default
					ping {
						target <host>
					}
					script <name>
				}
				initial-delay <number>
				interval <number>
				count {
					success <number>
					failure <number>
				}
			}
		}
	}
}

Sección de la ruta

En la sección de "ruta", EdgeOS va por defecto intenta determinar la puerta de entrada para la interfaz. El gateway que selecciones aparecerán en "Mostrar control de balanceo de carga". Si encuentra una puerta de enlace predeterminada o si desea tener control sobre la puerta de entrada, puede utilizar PBR para definir su propia tabla de enrutamiento, así:

 

configure
set protocols static table <num> route 0.0.0.0/0 next-hop <gateway IP>
set load-balance group <name> interface <name> route table <num>
commit
save
exit

Ruta-test sección
en la sección "prueba de ruta" puede cambiar el comportamiento predeterminado de la "prueba de ruta, watchdog" según los parámetros siguientes:

  • El "objetivo de ping" opción le permite decidir qué anfitrión a ping.
  • La opción "script" le permite decidir completamente si la interfaz WAN debe considerarse activos o inactivos. La secuencia de comandos será llamada con 3 parámetros (nombre de grupo, nombre de la interfaz y estado actual como "OK" o "Abajo"). Si el script sale con 0 entonces la prueba de ruta se considera buena y cualquier otro valor se considera un error.

Nota : A pesar de los contadores de tiempo del perro guardián son multi-threaded, todavía no sería una buena idea que el script funcione durante un largo período de tiempo. 

Exclusión de LAN a LAN


El funcionamiento de la característica de equilibrio de carga es mediante la creación de nuevas tablas de enrutamiento para las interfaces WAN que utilice.  Funciona muy bien para LAN a tráfico WAN, pero no queremos tráfico de equilibrio de la carga que va desde LAN a LAN.  La forma más fácil de manejar esto es crear un grupo de cortafuegos con las redes LAN y añadir una regla a las reglas de "modificar" para utilizar la tabla de encaminamiento principal para ésos destitnations. Nota: esta regla tiene que venir antes de la regla de equilibrio de la carga.

 

configure
set firewall group network-group LAN_NETS network 192.168.0.0/24
set firewall group network-group LAN_NETS network 192.168.1.0/24
set firewall group network-group LAN_NETS network 172.16.0.0/24
commit
set firewall modify WAN_WLB rule 10 destination group network-group LAN_NETS
set firewall modify WAN_WLB rule 10 action modify
set firewall modify WAN_WLB rule 10 modify table main
commit
ubnt@WLB# show firewall modify 
modify WAN_WLB {
    rule 10 {
        action modify
        destination {
            group {
                network-group LAN_NETS
            }
        }
        modify {
            table main
        }
    }
    rule 20 {
        action modify
        modify {
            lb-group WLB
        }
    }
}
[edit]

Reenvío de puertos


También no queremos tráfico de equilibrio de la carga enviada por el puerto.  Para agregar otra regla para excluir la dirección pública del router.  Desde la dirección de la pública podría ser dinámica, utilice el alias de la dirección.  En este caso mis reglas de reenvío de Puerto ir a pppoe0:

 

firewall {
    modify WAN_WLB {
        rule 10 {
            action modify
            description "do NOT load balance lan to lan"
            destination {
            group {
                network-group LAN_NETS
            }
            modify {
                table main
            }
        }
        rule 20 {
            action modify
            description "do NOT load balance destination public address"
            destination {
                group {
                    address-group ADDRv4_pppoe0
                }
            }
            modify {
                table main
            }
        }
        rule 30 {
            action modify
            modify {
                lb-group WLB
            }
        }
    }

  Más ejemplos:

-Mejores prácticas Multi WAN - LINK.

-Simple dual wan, pero sólo utilizar WAN2 para failover - LINK

-Restringir algunos dispositivos al enlace WAN 1 a menos que fail-over - LINK.

-Restringir el tráfico https a 1 enlace WAN a menos fail-over - LINK.

-Utilizando una secuencia de comandos para determinar salud de ruta en vez de ping - LINK.

-WAN balanceo de carga rompe horquilla NAT y LAN a LAN - LINK.

-LAN1 uno para WAN1, LAN2 a WAN2 con fail-over - LINK

-Ejecutar un script en failover - LINK.