Створіть багатоквартирний балансир завантаження Linux з двома підключеннями до Інтернету та одним підключенням до локальної мережі


11

Гаразд ... на це, можливо, відповіли, на жаль, я не знайшов нічого такого, що могло б стати резолюцією.

Я переглянув ці сторінки, і вони мають корисну інформацію, але не повну резолюцію:

  1. Завантажте балансування та NAT-ing декількох підключень ISP в Linux
  2. Можливо, два підключення до Інтернету та 1 мережа NIC?
  3. Linux розділений доступ (безліч підключень до Інтернету з балансуванням навантаження)
  4. Linux брандмауер + баланс навантаження підключення ISP

Я буду використовувати Debian 8, Desktop Ubuntu 16.04 або Ubuntu 16.04 Server (якщо чесно, швидше за все Debian).

Гаразд, тож у мене буде встановлено три NIC, встановлені два гігабіти та вбудоване LAN-з'єднання 100 Мбіт / с. Підключення провайдера використовуватимуть гігабітні локальні картки через аутентифікацію PPPoE на обох моделях (якщо це можливо навіть інакше, я погоджуся на режим, що не пов’язаний з мостом на модемах DSL). І в обох мережах буде призначений їм статичний IP. Наразі (що зміниться) основне з'єднання має групу з п'яти. Мені потрібно направити трафік, який надходить на одну з цих IP-адрес, на належний сервер у мережі.

Ось мої запитання:

  1. Як це встановити? Чи потрібно використовувати NATING, IP-чани, IP-маскирування, маршрутизацію тощо?
  2. Як маршрутизувати трафік, що надходить у систему ззовні, на певну IP-адресу в мережі?

Будь ласка, будь ласка, це вперше я спробував щось інше, як це раніше :).

РЕДАКТ 1

Забули додати топологію мережі:

Макет внутрішньої мережі

EDIT 2

Щось щось зрозумів ... Для того, щоб зробити аутентифікацію PPPoE, мені доведеться змусити перевірити автентифікацію облікових даних на певному інтерфейсі. Як це робиться?

Я розмістив це питання тут:

Створіть багатоквартирний балансир завантаження Linux з двома підключеннями до Інтернету та одним підключенням до локальної мережі

ОНОВЛЕННЯ 1

Ще не в змозі змусити багатокутну круглої робіни працювати. Я намагався без успіху виконувати кроки, описані на наступних сайтах:

  1. Завантажте балансування та NAT-ing декількох підключень ISP в Linux
  2. Linux - подвійне підключення до Інтернету / балансування завантаження
  3. ЯК: Мультипрограма з Linux

Я або отримую повідомлення про те, що файл вже існує або недійсний пристрій. Ось / є мої налаштування / інформація

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)

Налаштування МЕЖДУНАРОДІ

# 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

Це моє основне WAN-з'єднання.

ETH1

Це мій вторинний WAN-з'єднання.

ETH2

Це мій внутрішній LAN-з'єднання.

Мені вдалося змусити маршрутизацію працювати на одному інтерфейсі WAN і підключитися до внутрішньої локальної мережі, проте я не можу це повторити і не знаю, чому.


Я думаю, що у вас є відповідь у першому посиланні, яке ви опублікували. Якщо сервери перебувають у вашій локальній мережі та мають приватні адреси, вам обов'язково потрібен NAT. В основному вам потрібно розділити свою проблему на дві проблеми: 1) трафік, що надходить, 2) рух трафіку. Тоді ... вам це потрібно лише для балансування навантаження або також для високої доступності? Потрібно мати різні таблиці маршрутизації для різних провайдерів (правило ip), а потім позначте вхідні пакети, щоб вони повернулися до того ж постачальника. Для вихідного трафіку ви можете його збалансувати.
Jure1873

Гаразд ... так, подумайте про це, мені потрібно буде мати можливість маршрутизувати трафік відповідно (NATING), і мені, безумовно, потрібно збалансувати два вхідні з'єднання. Тож ефективно мати подвійну швидкість, а не одиничну швидкість. Чи я правильно думаю про це?
Джон Шульц

У вас є BGP зовні? Якщо у вас є окремі Інтернет-посилання, ви можете лише "подвоїти швидкість" на стороні, що йде. Вхідна сторона буде відслідковувати лише вхідні пакети та переконуватись, що вони виходять на тій же лінії, що і зайшла.
Jure1873

Я якось подумав, що так буде. Ні, у мене немає BGP за межами цього місця розташування :( (Навіть не знаю, що це таке)
Джон Шульц

Відповіді:


4

За сприяння кількох друзів, які допомагали мені дослідити це, я НАРЕШТУВАННЯ змогла змусити його працювати.

Довелося запустити цей скрипт для належного пересилання трафіку 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

Потім я встановив Net-ISP-Balance . Після запуску та встановлення скриптів я перейшов до WhatsMyIP двічі і досить впевнений, що обидва інтерфейси спрямовують трафік, оскільки Whatsmyip показав обидві IP адреси після того, як я натиснув оновлення.

ВІДМОВА ВІДПОВІДАЛЬНІСТЬ Це спрацювало для мого конкретного плану, налаштування та налаштувань мережі. Ваші результати можуть відрізнятися.


Зробив тест на швидкість .... У мене на 24% збільшився завантаження трафіку і на 90% збільшився мій завантажувальний трафік.
Джон Шульц
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.