Cria um balanceador de carga linux multi-homed com duas conexões de internet e uma conexão LAN

7

OK, ... isso possivelmente foi respondido, infelizmente, não encontrei nada que pareça ser a resolução.

Eu olhei para estas páginas e elas têm algumas informações úteis, mas não resoluções completas:

  1. Balanceamento de carga & NAT-ing várias conexões ISP no Linux
  2. Duas conexões de Internet e 1 NIC, possíveis?
  3. Acesso dividido ao Linux (várias conexões de internet com balanceamento de carga )
  4. firewall do linux + conexões ISP do balanceamento de carga

Eu vou estar usando Debian 8, Ubuntu 16.04 Desktop ou Ubuntu 16.04 Server (para ser honesto, provavelmente o Debian).

OK, então terei três NICs instaladas com dois gigabits e a conexão LAN a bordo de 100 mbps. As conexões ISP usarão as placas LAN Gigabit via autenticação PPPoE em ambas as nics (se isso for possível, caso contrário, eu vou aceitar o modo não-ponte nos modems DSL). E ambas as redes terão um IP estático atribuído a elas. Atualmente (o que irá mudar) a conexão primária tem um grupo de cinco. Eu preciso rotear o tráfego que vem em um desses endereços IP para o servidor adequado na rede.

Aqui estão minhas perguntas:

  1. Como configuro isso? Eu uso NAT, IP Chans, IP Masquerading, Routing, etc ...?
  2. Como direcionar o tráfego que chega ao sistema a partir do exterior para um endereço IP específico na rede?

Por favor, seja gentil, esta é a primeira vez que eu tentei algo assim antes:).

EDIT 1

Esqueceu de adicionar a topologia de rede:

EDIT2

Apenaspercebialgo...ParafazeraautenticaçãoPPPoE,precisareiforçaraautenticaçãodecredenciaisemumainterfaceespecífica.Comoissoéfeito?

Euposteiessaperguntaaqui:

Criar um balanceador de carga linux multi-homed com duas conexões de internet e uma conexão LAN

UPDATE 1

Ainda não é possível fazer o round robin multihop funcionar. Tentei seguir as etapas descritas nos seguintes sites sem sorte:

  1. Balanceamento de carga & NAT-ing várias conexões ISP no Linux
  2. Linux - Conexões de Internet Duplas / Balanceamento de Carga
  3. COMO FAZER: Multirouting com o Linux

Ou recebo uma mensagem informando que o arquivo já existe ou dispositivo inválido. Aqui está / estão minhas configurações / informações

IFCONFIG

eth0      Link encap:Ethernet  HWaddr ec:08:6b:04:8e:ac  
          inet addr:172.16.0.2  Bcast:172.16.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ee08:6bff:fe04:8eac/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9525 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7722 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9306973 (8.8 MiB)  TX bytes:949815 (927.5 KiB)

eth1      Link encap:Ethernet  HWaddr ec:08:6b:04:8c:95  
          inet addr:172.16.1.2  Bcast:172.16.1.255  Mask:255.255.255.0
          inet6 addr: fe80::ee08:6bff:fe04:8c95/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:558 (558.0 B)  TX bytes:6344 (6.1 KiB)

eth2      Link encap:Ethernet  HWaddr 00:16:76:90:49:b7  
          inet addr:172.16.2.1  Bcast:172.16.2.255  Mask:255.255.255.0
          inet6 addr: fe80::216:76ff:fe90:49b7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3793 errors:0 dropped:0 overruns:0 frame:0
          TX packets:79 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:283119 (276.4 KiB)  TX bytes:10338 (10.0 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:1858 (1.8 KiB)  TX bytes:1858 (1.8 KiB)

Configuração de INTERFACES

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
    address 172.16.0.2
    netmask 255.255.255.0
    gateway 172.16.0.1
    network 172.16.0.0
    broadcast 172.16.0.255

auto eth1
allow-hotplug eth1
iface eth1 inet static
    address 172.16.1.2
    netmask 255.255.255.0
    gateway 172.16.1.1
    network 172.16.1.0
    broadcast 172.16.1.255

auto eth2
allow-hotplug eth2
iface eth2 inet static
    address 172.16.2.1
    netmask 255.255.255.0
    network 172.16.2.0
    broadcast 172.16.2.255

ETH0

Esta é minha conexão WAN principal.

ETH1

Esta é minha conexão WAN secundária.

ETH2

Esta é minha conexão de LAN interna.

Consegui que o roteamento funcionasse em uma interface da WAN e estivesse vinculado à LAN interna; no entanto, não posso replicar isso e não tenho a menor idéia do motivo.

    
por John Schultz 09.05.2016 / 20:58

1 resposta

3

Com a ajuda de alguns amigos que me ajudaram a pesquisar isso, finalmente consegui que funcionasse.

Teve que executar este script para encaminhar corretamente o tráfego TCP / IP:

#!/bin/sh

PATH=/usr/sbin:/sbin:/bin:/usr/bin

# Primary Connection - 2085426230
   IF1=eth0
   IP1=172.16.0.2
    P1=172.16.0.1
P1_NET=172.16.0.0

# Secondary Connection - 2085420213
   IF2=eth1
   IP2=172.16.1.2
    P2=172.16.1.1
P2_NET=172.16.1.0

# Local Network
   IF3=eth2
   IP3=172.16.2.2
    P3=172.16.2.1
P3_NET=172.16.2.0

T1=WAN1
T2=WAN2

# delete all existing rules.
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

# Always accept loopback and WAN traffic
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i ${IF1} -j ACCEPT

# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ${IF1} -o ${IF3} -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i ${IF3} -o ${IF1} -j ACCEPT

# Masquerade.
iptables -t nat -A POSTROUTING -o ${IF1} -j MASQUERADE

# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward

Em seguida, instalei o Net-ISP-Balance . Depois que os scripts foram executados e instalados, fui para WhatsMyIP duas vezes e, com certeza, as duas interfaces rotearam o tráfego, já que o whatsmyip mostrou os dois endereços IP depois que eu toquei a atualização.

ISENÇÃO DE RESPONSABILIDADE Isso funcionou para o layout, a configuração e as configurações da minha rede em particular. Seus resultados podem variar.

    
por 14.05.2016 / 01:17