web-dev-qa-db-fra.com

Créer un équilibreur de charge Linux multi-hébergé avec deux connexions Internet et une connexion LAN

OK, ... cela a peut-être été répondu, malheureusement, je n'ai rien trouvé qui pourrait ressembler à la résolution.

J'ai regardé ces pages et elles contiennent des informations utiles, mais pas des résolutions complètes:

  1. Équilibrage de charge et NAT-ing plusieurs connexions ISP sous Linux
  2. Deux connexions Internet et 1 carte réseau, possible?
  3. Linux split access (plusieurs connexions Internet avec équilibrage de charge)
  4. pare-feu Linux + connexions ISP d'équilibrage de charge

J'utiliserai soit Debian 8, Ubuntu 16.04 Desktop ou Ubuntu 16.04 Server (pour être honnête, probablement Debian).

OK, j'ai donc installé trois NIC, deux gigabits et la connexion LAN 100 Mbps intégrée. Les connexions ISP utiliseront les cartes LAN gigabit via PPPoE authentification sur les deux cartes réseau (si cela est même possible sinon, je me contenterai du mode non pontage sur les modems DSL). Et les deux réseaux ont une adresse IP statique qui leur est affectée. Actuellement (ce qui changera), la connexion principale a un groupe de cinq personnes. J'ai besoin d'acheminer le trafic provenant de l'une de ces adresses IP vers le serveur approprié sur le réseau.

Voici mes questions:

  1. Comment configurer cela? Dois-je utiliser NATing, IP Chans, IP Masquerading, Routing, etc ...?
  2. Comment acheminer le trafic entrant dans le système de l'extérieur vers une adresse IP spécifique sur le réseau?

Soyez gentil, c'est la première fois que je tente quelque chose comme ça avant :).

EDIT 1

Vous avez oublié d'ajouter la topologie du réseau:

Internal Network layout

EDIT 2

Je viens de réaliser quelque chose ... Pour faire l'authentification PPPoE, je vais devoir forcer l'authentification des informations d'identification sur une interface spécifique. Comment cela se fait-il?

J'ai posté cette question ici:

Créer un équilibreur de charge Linux multi-hébergé avec deux connexions Internet et une connexion LAN

MISE À JOUR 1

Toujours incapable de faire fonctionner le tournoi à la ronde à sauts multiples. J'ai essayé de suivre les étapes décrites dans les sites suivants sans succès:

  1. Équilibrage de charge et NAT-ing plusieurs connexions ISP sous Linux
  2. Linux - Double connexion Internet/équilibrage de charge
  3. HOWTO: Multirouting avec Linux

Je reçois toujours un message indiquant que le fichier existe déjà ou un périphérique non valide. Voici/sont mes paramètres/informations

[~ # ~] 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)

Configuration des 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

Ceci est ma principale connexion WAN.

ETH1

Ceci est ma connexion secondaire WAN.

ETH2

Ceci est ma connexion LAN interne.

J'ai pu faire fonctionner le routage sur une seule interface WAN et liée au LAN interne, cependant, je ne peux pas répliquer cela et je n'ai aucune idée pourquoi.

10
John Schultz

Avec l'aide de quelques amis qui m'ont aidé à faire des recherches, j'ai finalement pu le faire fonctionner.

J'ai dû exécuter ce script afin de transmettre correctement le trafic 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

Ensuite, j'ai installé Net-ISP-Balance . Une fois les scripts exécutés et installés, je suis allé à WhatsMyIP deux fois et bien sûr, les deux interfaces acheminent le trafic car Whatsmyip a montré les deux adresses IP après avoir appuyé sur le rafraîchissement.

[~ # ~] clause de non-responsabilité [~ # ~] Cela a fonctionné pour la configuration, la configuration et les paramètres de mon réseau. Vos résultats peuvent varier.

4
John Schultz