Carregue o tráfego de saída do saldo para um único destino em dois gateways

1

Na minha rede local, tenho dois roteadores que fornecem conexão à Internet usando dois ISPs diferentes. Eu posso escolher qual ISP usar configurando o roteador apropriado como gateway padrão.

As conexões de internet são assíncronas - ambas têm capacidade de downstream e pouca capacidade de upstream. Infelizmente eu preciso de muito tráfego para enviar vídeos para o Youtube. Eu quero usar as duas conexões de internet simultaneamente para acelerar meus uploads no Youtube.

Muitas perguntas em serverfault apontam para este documento , que descreve como configurar o balanceamento de carga baseado em rota . Mas como a maior parte do meu tráfego vai para o mesmo destino (Youtube) isso não ajuda.

Eu imagino que seja bem simples alternar o envio de pacotes por um ou outro gateway. Se todos os pacotes tiverem o mesmo endereço IP que o endereço de origem (o que significa que o tráfego de entrada sempre usará a mesma interface), não deve haver nenhum problema, existe? O único rompimento de programa em que consigo pensar é o NAT, o que pode impedir que eu defina o endereço IP de origem. Infelizmente ainda não tenho conexão ipv6 e tenho que conviver com NAT.

Então, perguntas:

  1. Como o balanceamento de carga do tráfego de saída pode ser feito (Linux)
  2. Isso pode ser feito durante o uso do NAT?
por yankee 26.05.2013 / 11:02

1 resposta

1

Para poder utilizar a largura de banda de upload de seus gateways, você precisa dividir os pacotes da única conexão de upload para o Youtube, para que eles percorram os dois gateways e voltem a montá-los em uma única conexão.

Uma maneira de fazer isso é se o seu modem / roteador e seu ISP suportam MLPPP. Mas como a maioria dos ISPs não fornece isso, existe outra maneira (menos estável / robusta em gateways assíncronos com latência instável).

Você precisará de um servidor VPS com 2 IPs públicos.

Do seu roteador, você configura 2 conexões VPN para o VPS. Cada conexão usará cada um dos seus gateways (daí os 2 IPs públicos no VPS). Isso pode ser feito com rotas estáticas simples para que cada IP seja roteado por meio de cada gateway.

Então você faz uma ligação entre essas duas VPNs para criar um único link entre o seu roteador e o VPS.

Você então configura seu roteador para rotear todos os pacotes da sua LAN / PC através da interface de ligação.

No lado do VPS, você precisa configurar o SNAT para que os pacotes da interface de ligação saiam pela Internet.

Um diagrama bruto seria assim:

                            ----- GATEWAY 1 -----
                           /                     \
                          /                       \
LAN/PC-------MODEM/ROUTER-  -  -   BONDING -   -  -VPS SERVER------INTENRET
                          \                       /
                           \                     /
                            ------ GATEWAY 2 ----

Eu implementei o acima usando o MikroTik RouterOS, mas isso também pode ser feito no Linux (já que o MikroTik também é baseado em Linux).

Para que a ligação funcione sobre as VPNs, você precisará usar o OpenVPN ou o EoIP (túnel Ethernet sobre IP).

O driver de ligação será configurado no modo balance-rr (modo Round Robin) para que os pacotes de uma única conexão sejam divididos entre as 2 VPNs.

O NAT necessário é um simples mascarado apenas no VPS para permitir que pacotes da sua LAN / PC saiam na Internet com o IP do VPS.

    
por 26.05.2013 / 13:08