EdgeMAX - automática WAN failover com PBR-balanceamento de carga

Nota: A partir da versão 1.4.0 lá é um recurso de balanceamento de carga que atinge o mesmo sem a necessidade de criação de scripts. Veja - LINK.

 

Visão geral


Os leitores aprenderão como a configuração automática WAN failover quando usando EdgeMAX built-in diretiva roteamento baseado com configuração de balanceamento de carga WAN (por conexão balanceamento de carga usando marcação de conexão e a correspondência probabilística).

Esse recurso tem sido disponível desde a versão 1.2.0, embora na época, o gwping.sh não estava funcionando bem e a falta de suporte para um monte de recursos deu origem a um roteiro que pode ser encontrada no github (consulte a etapa 3 abaixo). Também está aberto da fonte para se você for um desenvolvedor e gostaria de ajudar, isso seria ótimo! Eu sou novo para bash programação e eu certeza que há coisas que poderiam ter sido feitas melhor. 

Passos


Para começar, você deve seguir este Guia configurar sua WAN balanceamento de carga de . Com este script você pode usar o estático WANs, WANs de DHCP ou qualquer combinação dos dois. Você ainda pode usar vários WANs. Se você decidir que você está indo usar DHCP WANs, você pode definir o próximo salto para nada para essa interface (IE: 1.1.1.1 / 2.2.2.2 / 3.3.3.3 etc), o script irá sobrescrever essas configurações. 

Nota: este script irá fazer alterações à sua configuração de EdgeMAX enquanto ele está executando. Isso comprometerá a estas mudanças, mas isso não vai salvá-los. Se você estiver executando este script e preciso fazer alterações, eu recomendo que você finalize o processo do roteiro (execução superior, encontre o pid e tipo mataram pid #here). Descartar as alterações ou reiniciar seu router (disable script inicialização) antes de alterar / salvar sua configuração. Caso contrário sua config serão salva todas as alterações feitas pelo script!

Etapa 1: Siga este guia - EdgeOS Policy-Based Routing com WAN-balanceamento de carga .

Lembre-se de definir o próximo salto para WANs de DHCP como por cima. Para facilidade de uso você também deve manter as coisas simples - WAN1 = tabela 1 = Mark 1, WAN2 = tabela 2 = Mark 2, etc. 

Passo 2: uma vez que você tem a configuração sua configuração para balanceamento de carga de PBR, salvar e reiniciar o router. No mínimo fazer certo muda confirmar e salvar a sua configuração. O script irá mudar essas configurações se você estiver usando DHCP, mas não salvará, então é bom ter uma configuração de linha de base!

Etapa 3: Baixe o script: https://github.com/jivetek/EdgeOS-Failover_PBR

  • Coloque o arquivo EdgeOS_Failover_PBR.sh no diretório /config/scripts.

Maneira mais rápida é com o uso do wget

  • SSH em seu roteador
  • sudo su
  • CD/config/scripts
  • wget https://raw.github.com/jivetek/EdgeOS-Failover_PBR/Master/EdgeOS_Failover_PBR.sh

(este link é para a versão mais recente no ramo principal do projeto)

Etapa 4: chmod para 755

  • chmod 755 EdgeOS_Failover_PBR.sh

Passo 5: configurar variáveis para seu ambiente

  • vi EdgeOS_Failover_PBR.sh
  • Pressione "i" para o modo de inserção
  • Altere as variáveis para combinar com seu ambiente (abaixo)
  • Salve as alterações (esc, "shift +:" x, digite)

Passo 6: executar o script e teste!./EdgeOS_Failover_PBR.sh (Ctrl + C) para sair. 

Variáveis de interface

  • Conjunto =(eth1.500 eth2.600) INTERFACE para coincidir com as interfaces do sua WAN em ordem, cada WAN devem ser separados por um espaço. Fazer não remove (o). 
  • Conjunto TRAFFIC_MARK =(0x1 0x2) para a marca que se aplica a cada interface. Certifica-se de que é na mesma ordem como as interfaces ou quem sabe que tipo de caos que você irá causar!
  • Conjunto LOOKUP_TABLE =(1 2) para as tabelas que se aplicam a cada interfaces. Novamente, isso precisa ser na mesma ordem como suas interfaces!
  • Definir USING_DHCP como true ou false. Se você estiver usando DHCP, em qualquer uma das suas interfaces, defina isto como true
  • Conjunto USE_DHCP =(true true) para combinar com suas interfaces. Se suas interfaces são WAN1 estático WAN2-DHCP WAN3-DHCP, em seguida, seria USE_DHCP =(false true true). Novamente, certifique-se que estas são na mesma ordem como suas interfaces! Notou uma tendência aqui?
  • Definir DHCP_CHECK = 30 a freqüência em segundos que você deseja que o script para ver se há novos endereços DHCP. Eu gosto de 30 segundos como o script irá marcar uma conexão como para baixo se as mudanças de endereço e irá re-encaminhar o tráfego. 30 segundos não vai matar o processamento no roteador. 

Variáveis de seleção de ping

  • Definir TEST_ADDRESS = 8.8.8.8 para um endereço externo, você quer fazer o ping para certificar-se de que sua conexão está funcionando. Esse endereço deve estar sempre disponível. 8.8.8.8 é googles DNS público, não consigo pensar em muitas coisas, com maior disponibilidade do que o google. Isto também provavelmente não deve ser um endereço de dns, tente mantê-lo para um endereço ip
  • Definir o TIMEOUT = 1 para o tempo limite de ping, isto muito provavelmente não precisa de ser mudado, mas se tiver uma ligação de má qualidade, você pode aumentar esse número. 
  • Definir falha = 2 para o número de pings, perdido em uma linha que você considerar a sua rede para baixo. Eu recomendo 3-4. 
  • Definir sucesso = 2 para o número de pings bem-sucedida em uma linha que você considera sua rede acima. 
  • Definir PING_TIMER = 3 para o número de segundos que você gostaria de esperar antes de ping novamente através de todas suas interfaces. 

Variáveis de saída mensagem

  • MENSAGEM = espiras de verdadeiro/falso em algumas mensagens de programa geral, se você quer ver quanto tempo demora para inicialização, qual versão você está executando, como entrar em contato com o autor, etc. Virar o jogo
  • MUDANÇAS = verdadeiro/falso, quando este estiver ligado, você produzirá em um arquivo de log sempre que o script detecta uma alteração de rede, faz uma mudança de rede, ou mudanças de rotas, etc. Eu recomendo deixar isso no.
  • Depurar = mensagens de depuração de voltas de verdadeiro/falso, ligado e desligado (isso vai encher seu log e principalmente somente é sua para o desenvolvimento, está desativado por padrão e eu recomendo deixar dessa forma)
  • DHCP_DEBUG/PING_DEBUG não são implementadas neste momento, pretendo separar as mensagens de depuração no futuro para facilitar o desenvolvimento. 

Passo 7: Set script para auto executar em segundo plano na inicialização. 

  • SSH no roteador
  • sudo su
  • CD /config/scripts/post-config.d
  • vi launch.sh
  • Pressione "i" para o modo de inserção

#! / bin/sh - e

comandos de inicialização de #enter abaixo

#Start borda Failover / Script de balanceamento de carga
nohup /config/scripts/EdgeOS_Failover_PBR.sh & > /var/log/EdgeOS_Failover.log &

saída 0

  • Salve o script (esc, "shift +:", x)
  • chmod 755 launch.sh

É isso! O script deverá executar na inicialização e saída de seus dados para /var/log/EdgeOS_Failover.log (você pode alterar esse local na etapa 7).