EdgeMAX - recurso de Dual WAN-balanceamento de carga

Vídeo Tutorial


Este é um tutorial de vídeo de exemplo que mostra o balanceamento de carga entre duas conexões WAN em 50% cada.

Visão geral


Os leitores aprenderão sobre o recurso WAN-balanceamento de carga entre interfaces sobre o EdgeRouter, baseado na versão EdgeOS v 1.4.0.  O 1º passe do nosso recurso WAN-balanceamento de carga é limitado a 2 interfaces WAN, mas pretendemos apoiar mais.

Existem alguns requisitos para este tipo de configuração:

1) uma seção de balanceamento de carga que define a interfaces e, opcionalmente, alvos de ping, intervalos de temporizador, rota-teste, etc.
2) um firewall de modificar o conjunto de regras que define os critérios de correspondência.
3) pelo menos 1 LAN interface que tem o firewall modificar o conjunto de regras aplicado para a firewall em.

Nota : antes de configurar balanceamento de carga-de é uma boa prática para 1º verificar que ambas as interfaces WAN são configuradas corretamente com nat/firewall/etc.  Derrubar uma interface WAN, verifique se os clientes de LAN podem acessar a Internet. Então faça o mesmo com a outra interface WAN.

Este artigo aplica-se a EdgeOS 1.4.0 e acima.

Configuração mínima


Abaixo está um exemplo de configuração que usa principalmente os valores padrão (usando o comando "show" enquanto estiver no modo de configuração):

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
     }
 }

Com essa configuração de todo o tráfego tráfego de entrada na eth2 será objecto de balanceamento de carga (padrão 50/50 por WAN). Esta configuração também irá iniciar um thread de cão de guarda para cada interface WAN que efetua ping www.ubnt.com em 10 segundos. Se lá 3 falhas consecutivas, todo o tráfego vão desviar para a outra interface WAN.  Claro se você não gosta desses padrões, eles podem ser configurados. 

Comando de operação: mostrar


O primeiro "Mostrar" comando exibe o "status" das interfaces associadas ao grupo de balanceamento de carga de 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

O segundo comando "Mostrar" exibe "cão de guarda" obter informações relacionadas, incluindo status, pings falhou e gateway de ping.

 

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 : se sua interface WAN PPPoE, é uma boa idéia para forçar o PPP para inserir uma rota do kernel :

 

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

Opções de configuração


Para aqueles que querem ajustar os valores padrão, existem várias opções de configuração (notas seguem após a saída)

 

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>
				}
			}
		}
	}
}

Seção de rota

Sob a seção "rota", EdgeOS será por padrão tenta determinar a porta de entrada para usar para a interface. O gateway apanha vai aparecer em "cão de guarda do balanceamento de carga de Mostrar". Se ele encontrar um gateway padrão ou se você quer ter controle sobre a porta de entrada, você pode usar o PBR para definir sua própria tabela de roteamento, da seguinte forma:

 

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

Rota-teste seção
na seção "teste de rota", você pode alterar o comportamento padrão do "watchdog rota-teste," de acordo com os parâmetros abaixo:

  • A opção "ping de destino" permite que você decidir qual host ping.
  • A opção "script" deixá-lo completamente decidir se a interface WAN deve ser considerada ativo ou inativo. O script será chamado com 3 parâmetros (nome do grupo, nome de interface e status atual como "OK" ou "Para baixo"). Se o script é encerrado com 0, então o rota-teste é considerado boa e qualquer outro valor é considerado uma falha.

Nota : mesmo que os temporizadores de watchdog são multithread, ainda não seria uma boa idéia ter o script executado durante um longo período de tempo. 

Exclusão de LAN para LAN


Como funciona o recurso de balanceamento de carga é através da criação de novas tabelas de roteamento para as interfaces WAN usar.  Isso funciona muito bem para LAN para tráfego WAN, mas não queremos tráfego de balanceamento de carga que vai de LAN para LAN.  A maneira mais fácil de lidar com isso é criar um grupo de firewall com as redes de LAN e adicionar uma regra para o conjunto de regras "Modificar" para usar a tabela de roteamento principal para essas destitnations. Nota: esta regra precisa vir antes da regra de balanceamento de 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]

Encaminhamento de porta


Também não queremos tráfego de balanceamento de carga Porto encaminhadas.  Para adicionar outra regra para excluir o endereço público do roteador.  Desde que o endereço público pode ser dinâmico, use o alias de endereço.  Neste caso, minhas regras de porta para a frente vai para tun0:

 

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
            }
        }
    }

  Mais exemplos:

-Práticas recomendadas de Multi WAN - LINK.

-Simples dual wan, mas só uso WAN2 para failover - LINK

-Restringir alguns dispositivos para 1 link WAN, a menos que failover - LINK.

-Restringir o tráfego https para 1 link WAN a menos failover - LINK.

-Usando um script para determinar a rota de saúde em vez de ping - LINK.

-Balanceamento de carga WAN quebra prendendor NAT e LAN para LAN - LINK.

-Um LAN1 para WAN1, LAN2 para WAN2 com failover - LINK

-Executar um script no failover - LINK.