Я пытаюсь настроить брандмауэр Linux (ubuntu 14.04) для использования двух связанных линий ADSL для балансировки нагрузки. Я нашел на форуме ссылку на это: http://lartc.org/howto/lartc.rpdb.multiple-links.html но в моем случае это не работает, так как у меня нет двух физических интерфейсов для разделения ADSL-соединений.
Моя установка сейчас
WAN1 - ADSLrouter1 (192.168.1.1) \
- 192.168.1.3 Firewall - private IP LAN
WAN2 - ADSLrouter2 (192.168.1.2) /
Я добавил два маршрута по умолчанию с весом 1 для балансировки нагрузки. Все отлично работает от брандмауэра до интернета. Однако FW также нуждается в маскараде. От хостов во внутренних локальных сетях пинг во внешний мир работает нормально. Я только что добавил
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
где eth0 имеет IP-адрес 192.168.1.3. TCP-соединения работают не очень хорошо; Я просто получаю сброс соединения через одноранговые сообщения. Я знаю, что проблема в двух маршрутах, как будто я удалю один, все работает плавно.
Я предполагаю, что проблема в маскировке, и что-то идет не так, когда потоки TCP маршрутизируются по разным маршрутам. Могу я как-то это исправить или мне нужна другая сетевая карта, чтобы следовать найденным мной инструкциям?
Ханну
Вы на правильном пути. Вам нужны две сетевые карты, в основном потому, что ваш брандмауэр Linux отправляет исходящие пакеты циклически, когда дело доходит до выбора маршрута, поскольку они оба имеют одинаковую метрику.
Наличие двух сетевых адаптеров будет просто выполнять циклический перебор для каждого сетевого адаптера, а не для каждого маршрута, сохраняя каждое TCP-соединение на одном и том же сетевом адаптере.
Имейте в виду, что это может вызвать проблемы с некоторыми приложениями, например онлайн банкинг. Большинство веб-приложений будут поддерживать действительный сеанс до тех пор, пока у вас есть действующий файл cookie, однако банкинг обычно связывает его также с исходным IP-адресом, и, вы, вероятно, уже это знаете, HTTP использует несколько TCP-соединений для получения все ресурсы на сайте. Как только одно из этих TCP-соединений будет отправлено с другого сетевого адаптера (то есть другого поставщика ADSL, следовательно, другого исходного IP-адреса), ваш файл cookie будет признан недействительным и банковский сеанс завершится.
Если бы вы могли каким-то образом реализовать некоторую привязку (пользователь UA, который переходит на сайт SA, использует ссылку LA), у вас не будет этой проблемы, и пока вы истечете эти записи в разумное время, у вас не будет проблем с ОЗУ на вашем брандмауэре Linux.
Возможно, вы просто предпочтете профилировать использование сети на основе источника и добавить маршрутизацию на основе политик (также известную как маршрутизация от источника), чтобы статически сбалансировать службу среди доступных ссылок.