Я настраиваю сервер Linux (CentOS) для работы в качестве маршрутизатора с балансировкой нагрузки и аварийным переключением (когда одна интернет-линия не работает, другая должна действовать). Клиенты, подключенные к eth1 (LAN), должны иметь доступ к Интернету.
Моя ссылка ( http://fatalsite.net/?p=90 )
Интерфейсы:
eth1 = LAN
eth2 = WAN1 - 192.168.1.100 / шлюз 192.168.1.1 - ISP1
eth3 = WAN2 - 192.168.10.5 / шлюз 192.168.10.1 - ISP2
Как я могу это сделать?
Спасибо!
хорошо. поэтому я настроил нат и включил пересылку, но все еще могу подключиться к Интернету через интерфейс LAN.
я тоже сделал это, но не повезло:
iptables -A INPUT -i eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth3 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface eth2 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface eth3 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT
Собственно предоставленная вами ссылка описывает решение для вашего шлюзового маршрутизатора. Что не хватает, так это настройка локальной сети. Вот оно:
iptables -t nat -A POSTROUTING -o eth2 -s -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth3 -s -j MASQUERADE
убедитесь, что вы включили пересылку (sysctl -w net.ipv4.ip_forward=1
)
проверьте, жив ли facebook.com, выполнив ping или попробовав http-запрос - если он жив, ничего не делайте ;-) Вы можете предположить, что если facebook.com жив, ваша WAN-ссылка работает нормально. Если он не работает - люди все равно будут звонить вам и кричать, что Интернет не работает, потому что facebook больше не работает. Для этого вы можете написать сценарий.
в случае, если соединение не работает - вам нужно выполнить только одну задачу: добавить правило IP и направить свой трафик через ссылку WAN переключения при отказе. Снова включен первичный WAN - удалите правило и очистите кеш. Как это:
ip rule add from 1.2.3.0/24 table WAN2
ip route flush cache
или восстановить трафик:
ip rule delete from 1.2.3.0/24 table WAN2
ip route flush cache
Сделайте ваши изменения постоянными. Я не знаком с CentOS, но sysctl.conf и rc.local должны быть к вашим услугам.
Почему вам не нужно переключать шлюз по умолчанию на вашем компьютере? Согласно вашей ссылке, вы уже добавили маршруты по умолчанию в разные таблицы маршрутизации. Это означает, что ваш ящик будет по-прежнему доступен через вторичную таблицу маршрутизации. И да, даже если первичный шлюз не работает, вы сможете связаться с ним с помощью вторичной таблицы, у которой есть собственный маршрут по умолчанию.
Я бы также избегал балансировки трафика через разные процессоры, поскольку балансировка нагрузки основана на кешировании маршрутов, поэтому это может вызвать множество неопознанных проблем с подключением. Я бы предпочел использовать аварийное переключение.
И последнее: если ваши WAN-ссылки являются частными сетями, вы не сможете получить доступ к своему устройству из-за пределов своей сети, кроме перенаправления портов или настройки vpn-ссылки. В этом случае может потребоваться переключение шлюзов.
Для ссылки на источник проверьте здесь.