В течение долгого времени (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 специально разработан как готовое решение для маршрутизатора, поэтому он поддерживает и будет продолжать тестироваться с подобными конфигурациями, обеспечивая лучшую надежность за счет обновлений.