Выравнивание нагрузки iptables

Я пытаюсь использовать iptable для выравнивания нагрузки. Я работаю с virtualbox. Все vm (debian) находятся во внутренних сетях, и дюйм/с статичны. Я хочу к запросам маршрута, прибывающим в мой веб-сервер (apache2) с IPaddress 10.0.0.2:80 к дюйм/с сервера 10.0.0.3:80 и 192.168.0.2:80 в другой сети.

Шлюз делает передачу IP, он имеет два интерфейса eth0 используемый для сети 10.0.0.0 и eth1 для сети 192.168.0.0. Подсистема балансировки нагрузки имеет IP 10.0.0.2. Я пытаюсь установить, это управляет, но это не работало:

iptables-t туземный-A PREROUTING-p tcp - состояние dport 80-m - скажем НОВАЯ-m статистическая величина - энный режим - каждые 3 - пакет 0-j DNAT - к месту назначения 10.0.0.3:80

iptables-t туземный-A PREROUTING-p tcp - состояние dport 80-m - скажем НОВАЯ-m статистическая величина - энный режим - каждые 3 - пакет 1-j DNAT - к месту назначения 192.168.0.2:80

1
задан 9 December 2014 в 18:36
1 ответ

Я бы предложил использовать другое решение, например, haproxy, nginx proxy или практически любой другой реальный метод балансировки нагрузки. Обычно балансировка нагрузки iptables используется для исходящих пакетов на нескольких uplink'ах.

Если вы должны балансировать с помощью iptables, то вам нужно использовать другой метод. Только каждые несколько пакетов будут обрабатывать все ваши запросы. Я видел приличное учебное пособие по подобной установке (here), которое "пересылает" все нечетные адреса исходников на один хост, и все четные адреса на другой. Действительно, каждый сервер получает все запросы на соединение и трафик, но только один устанавливает соединение. Серверам присваивается один и тот же MAC-адрес, а затем им предлагается отбрасывать синтаксические пакеты от четных или нечетных источников. Преимущество этого заключается в том, что вы не добавляете ни одной точки отказа, пока вы пишете сценарий, чтобы перехватить весь трафик на живом, если другой падает.

.
3
ответ дан 3 December 2019 в 18:42

Теги

Похожие вопросы