В течение долгого времени (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 отдельных VLans к виртуальной машине, и разделить их на 3 отдельных порта коммутатора. Это фактически обеспечивает прямой (виртуальный) кабель от каждого модема к блоку pfsense, а другой кабель - к локальной сети. Затем вы можете настроить модемы для сквозной передачи, которая варьируется от поставщика к поставщику.
Это правда, что это обходит проблему, а не решает ее напрямую, но установка NAT на самих модемах кажется мне просто вызовом проблемы. Кроме того, PFSense специально разработан в качестве готового решения для маршрутизатора, поэтому он поддерживает и будет продолжать тестироваться с подобными конфигурациями, обеспечивая лучшую надежность посредством обновлений.
источник