Назад | Перейти на главную страницу

iproute множественный балансировщик нагрузки ADSL через виртуальную машину

В течение долгого времени (2 года?) Я запускал виртуальную машину (сервер Ubuntu 12.04) с очень простой возможностью балансировки исходящей нагрузки, отправляя различные исходящие соединения из разных маршрутизаторов ADSL.

Настроенный просто с помощью iproute без маскировки NAT, NAT управляется самими исходящими ADSL-маршрутизаторами, позволяя соединениям маршрутизироваться напрямую обратно к отправителю, минуя виртуальную машину маршрутизатора балансировки нагрузки. На виртуальной машине маршрутизатора также нет правил межсетевого экрана (iptables).

echo 1 > /proc/sys/net/ipv4/ip_forward

# flush initially
ip route flush cache

# remove whatever is there for the default to begin with
ip route delete default

# default load balancing rule
ip route add default scope global \
    nexthop via ${ROUTER2} dev ${INTERFACE} weight 6 \
    nexthop via ${ROUTER1} dev ${INTERFACE} weight 4

Это хорошо работало долгое время.

Недавно я обновил (do-release-upgrade -d) балансировщик нагрузки (виртуальная машина сервера Ubuntu 12.04) до Ubuntu 14.04.

Поскольку обновление интернет-соединений с использованием указанной выше команды «ip route add default» вызывает спорадические проблемы с подключением и создает непригодный для использования интерфейс. Как будто отдельные пакеты отправляются через оба маршрутизатора, а не через полные соединения.

Это было сделано с тем же эффектом на второй виртуальной машине 14.04.

Мне бы хотелось иметь такую ​​же функциональность в Ubuntu 14.04 (текущее ядро: 3.13.0-24). Я не понимаю, что изменилось.

Какие-либо предложения?

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

Я бы лично предложил более надежную настройку с использованием виртуальной машины PFSense для балансировки нагрузки соединений. Я бы, вероятно, также предложил выполнять NAT на самом блоке PFSense, а не на модемах. У меня есть что-то подобное, настроенное на виртуальной машине, и оно хорошо работает.

Для соединений между модемами и виртуальной машиной PFSense я использую коммутатор с поддержкой vlan для подключения 3 отдельных виртуальных локальных сетей к виртуальной машине и разделения их на 3 отдельных порта на коммутаторе. Фактически это обеспечивает прямой (виртуальный) кабель от каждого модема к блоку pfsense и другой кабель к локальной сети. Затем вы можете настроить модемы для сквозной передачи, которая варьируется от поставщика к поставщику.

Это правда, что это обходит проблему, а не решает ее напрямую, но установка NAT на самих модемах кажется мне просто напоминанием о проблемах. Кроме того, PFSense специально разработан как готовое решение для маршрутизатора, поэтому он поддерживает и будет продолжать тестироваться с подобными конфигурациями, обеспечивая лучшую надежность за счет обновлений.