Здравствуйте. Прошу Вашей квалифицированной помощи вот в каком вопросе:
1. gw. Debian GNU/Linux 7.0. Firewall ничего не запрещает. Настроен Nat. Работает как gateway. Параметры сети: а) eth0 - интерфейс для провайдера. б) eth1 - интерфейс для технологической сети 10.1.100.0/24
2. rt1. FreeBSD 9.1. Firewall ничего не запрещает. Nat нет. Работает как router между технологической сетью 10.1.100.0/24 и локальной сетью пользователей 192.168.40.0/24. Настроен DHCP, DNS.
3. rt2. FreeBSD 9.1. Полная копия rt1, резервный router. Полная синхронизация DHCP, DNS
rt1 и rt2 работают как часы. У пользователей сети (все ПК на windows) 192.168.40.0/24 указываем два шлюза по умолчанию, два dns и т.д. При падении одного из них второй подхватывает все на лету. И все бы хорошо, но есть одно НО! Для похода в инет нужно пройти через rt (любой из двух, без NAT), а затем через gw, который должен знать маршрут до сети 192.168.40.0/24, так как сам находится в 10.1.100.0/24. Маршрут статический и задается через router (rt1 или rt2): ip route add 192.168.40.0/24 via 10.1.100.20 (через rt1). Но вдруг rt1 пропадает. Маршрут должен измениться на rt2, естественно и наоборот. А если два в сети, то хотелось бы делать балансировку.
А теперь вопрос: ЕСТЬ ЛИ ВСТРОЕННЫЕ СРЕДСТВА РЕАЛИЗАЦИИ АВТОМАТИЧЕСКОГО ВЫБОРА МАРШРУТА?
Решения, которые пробовал: 1. Скрипт изменения маршрута согласно пинга - способ хороший, но это костыль. Хотелось бы организовать внутренними средствами.
2. Пробовал организовать с помощью метрики: ip route add 192.168.40.0/24 via 10.1.100.20 metric 1 dev eth1 ip route add 192.168.40.0/24 via 10.1.100.30 metric 10 dev eth 1 Не катит. Пока маршрут есть в таблице маршрутизации, gw будет выбирать с меньшей метрикой, в независимости от его доступности.
3. Пробовал с помощью балансировки: 192.168.40.0/24 nexthop via 10.1.100.20 dev eth1 weight 10 nexthop via 10.1.100.30 dev eth1 weight 20 Не катит. Начинает ломиться на второй маршрут при попадании первого согласно веса, 1 раз из 10 попыток. Остальные 9 приходятся на недоступный маршрут. Жутко тормозит. Пинги вообще не ходят.
4. Пробовал делать gw на FreeBSD 9.1 с параметром в ядре options RADIX_MPATH (http://skeletor.org.ua/?p=2187). Не заработало.
5. NAT на rt тоже не вариант, так как невозможно будет пробрасывать порты в локальную сеть из инета.
Подскажите куда копать. Читал про динамическую маршрутизацию. Но что-то пока не уверен что поможет. Может у кого есть ссылки на статьи. Готов читать и просвещаться. Гугл уже весь загуглил и на англоязычных сайтах. Ничего похожего не видел.
Другой вопрос, когда два провайдера, но у них и интерфейсы на gw разные, что позволяет решать вопросы с помощью таблиц маршрутизации. А тут один интерфейс для 10.1.100.0/24.
Заранее благодарен за любую информацию.