Создайте многодомный балансировщик нагрузки Linux с двумя интернет-соединениями и одним сетевым соединением

11

Хорошо, ... на это, возможно, ответили, к сожалению, я не нашел ничего похожего на решение.

Я посмотрел на эти страницы, и у них есть некоторая полезная информация, но не полные решения:

  1. Балансировка нагрузки и NAT-соединение нескольких ISP-соединений в Linux
  2. Два интернет-соединения и 1 сетевой адаптер, возможно?
  3. Разделенный доступ в Linux (несколько подключений к Интернету с балансировкой нагрузки)
  4. брандмауэр linux + балансировка нагрузки интернет-соединений

Я буду использовать Debian 8, Ubuntu 16.04 Desktop или Ubuntu 16.04 Server (если честно, скорее всего, Debian).

Итак, у меня будет три сетевых адаптера, два гигабитных и встроенное соединение со скоростью 100 Мбит / с. Соединения ISP будут использовать гигабитные сетевые карты через PPPoE-аутентификацию на обоих устройствах (если это вообще возможно, я остановлюсь на режиме без моста на модемах DSL). И обеим сетям будет присвоен статический IP-адрес. В настоящее время (что изменится) первичное соединение имеет группу из пяти человек. Мне нужно направить трафик, который поступает на один из этих IP-адресов, на соответствующий сервер в сети.

Вот мои вопросы:

  1. Как мне это настроить? Использую ли я NATing, IP Chans, IP Masquerading, Routing и т.д ...?
  2. Как перенаправить трафик, поступающий в систему извне, на определенный IP-адрес в сети?

Пожалуйста, будьте осторожны, это первый раз, когда я пытался сделать что-то подобное раньше :).

РЕДАКТИРОВАТЬ 1

Забыл добавить топологию сети:

Макет внутренней сети

РЕДАКТИРОВАТЬ 2

Только что-то понял ... Для того, чтобы сделать аутентификацию PPPoE, мне придется принудительно аутентифицировать учетные данные на определенном интерфейсе. Как это сделать?

Я разместил этот вопрос здесь:

Создайте многодомный балансировщик нагрузки Linux с двумя интернет-соединениями и одним сетевым соединением

ОБНОВЛЕНИЕ 1

Все еще не может заставить работать мультивыборочный раунд. Я безуспешно пытался выполнить действия, описанные на следующих сайтах:

  1. Балансировка нагрузки и NAT-соединение нескольких ISP-соединений в Linux
  2. Linux - Двойные интернет-соединения / балансировка нагрузки
  3. HOWTO: мультирутинг с 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

Это мое внутреннее подключение к локальной сети.

Мне удалось заставить работать маршрутизацию на одном интерфейсе глобальной сети и подключиться к внутренней локальной сети, однако я не могу воспроизвести это и понятия не имею, почему.

Джон Шульц
источник
Я думаю, что у вас есть ответ в первой ссылке, которую вы опубликовали. Если серверы находятся в вашей локальной сети и имеют частные адреса, вам определенно нужен NAT. По сути, вам нужно разделить вашу проблему на две проблемы: 1) входящий трафик, 2) выходящий трафик. Тогда ... вам это нужно только для балансировки нагрузки или для высокой доступности? Вам нужно иметь разные таблицы маршрутизации для разных провайдеров (правило ip), затем пометить входящие пакеты, чтобы они возвращались к одному и тому же провайдеру. Для исходящего трафика вы можете его сбалансировать.
Jure1873
Хорошо, ... да, если подумать, мне нужно будет соответствующим образом маршрутизировать трафик (NATing), и мне определенно нужно сбалансировать нагрузку двух входящих соединений. Таким образом, эффективно удваивая скорость, а не одну скорость. Я правильно об этом думаю?
Джон Шульц
У вас есть BGP снаружи? Если у вас есть отдельные интернет-ссылки, вы можете только «удвоить скорость» на исходящей стороне. Входящая сторона будет только отслеживать входящие пакеты и следить за тем, чтобы они выходили на той же линии, что и
входящие
Я вроде решил, что это будет так. Нет, у меня нет 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%.
Джон Шульц