LINUX.ORG.RU
решено ФорумAdmin

Отказоустойчивая маршрутизация


2

1

Здравствуйте. Прошу Вашей квалифицированной помощи вот в каком вопросе:

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.

Заранее благодарен за любую информацию.



Последнее исправление: kel (всего исправлений: 1)

Зачем три роутера то?

Сделай два роутера, один рабочий для роутинга в инет и в эту вторую сеть, второй резервный.

Объедени их через VRRP (смотри keepalived) и при падении одного из них второй будет брать на себя роль первого. Два дефолтных шлюза это решение очень так себе.

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

«Зачем три роутера то?»

А как же безопасность?

«Сделай два роутера, один рабочий для роутинга в инет и в эту вторую сеть, второй резервный.»

Сломав роутер, злоумышленник попадает напрямую ко всем сервакам. Э нет, так дело не пойдет.

Так он видит только шлюз, и сломав его попадает в технологическую сеть, в которой ничего нет. Кроме двух rt.

А также мы разделяем нагрузку интернета от нагрузки сети. Сеть не натиться, обрабатывается rt, инет натиться, обрабатывается gw. Также gw решает задачу проброса множества портов, vpn сервера.А теперь представьте один роутер на котором: apache, php, dhcp, dns, mysql, vpn, openvpn, firewall, nat, проброс множества портов. Красиво? Мне кажется не очень, учитывая еще структуру сети с 10 vlan, более 300 клиентов. 100 из которых ломятся из внешних сетей.

kel
() автор топика
Ответ на: комментарий от kel

А как же безопасность?
Сломав роутер, злоумышленник попадает напрямую ко всем сервакам. Э нет, так дело не пойдет.

По-моему ты путаешь безопасность и извращение. Если у тебя поломают роутер, то и так получат доступ ко всей сети, т.к. роутинг между DMZ сетью и основной сетью у тебя и так уже настроен а «Firewall ничего не запрещает». Если грамотно настроить файрволл между DMZ и нормальной сетью, то это еще может как-то повысить безопасность, но при этом у тебя этот единственный роутер будет единой точкой отказа в сети - он сдох и интернет тютю.

А теперь представьте один роутер на котором: apache, php, dhcp, dns, mysql, vpn, openvpn, firewall, nat, проброс множества портов. Красиво?

Вполне нормально, учитывая крайне небольшую нагрузку («300 пользователей и 10 vlan» это для современного железа ничто при заявленных задачах). Если настроить идентичные сервера, настроить синхронизацию конфигов и прочих файлов с одного на другой и настроить там нормальную отказоустойчивость (либо через тот же VRRP, либо можно вообще сделать DRBD + Pacemaker и все общие данные хранить на DRBD диске), то всё будет работать отлично и при отказе мастер-сервера второй подхватит сразу.

Если очень хочется попараноить, то поставить над всем этим в DMZ еще два сервера в той же отказоустойчивой конфигурации для выхода в инет и грамотно настроить файрволлы между внешними и внутренними серверами. Тогда это будет иметь какой-то смысл.

blind_oracle ★★★★★
()

если не вносить радикальных изменений, как предлагали предыдущие ораторы, то следует использовать любой протокл динамической маршрутизации между gw, rt1, rt2, например, OSPF

Bloody ★★
()

Откройте для себя HA-cluster и не «городите огород». Тогда клиенты вашей внутренней сети будут здать только разделяемый адрес (адрес кластера) ройтеров rt1 и rt2.

Для отказойстойчивости сервера gw - точно также сделайте его клон и настройте HA-cluster.

Slipeer
()

Debian GNU/Linux 7.0. Firewall ничего не запрещает

FreeBSD 9.1. Firewall ничего не запрещает

О какой безопасности вообще может иди речь? root на серверах хотя бы отключен? Вам нужен кластер из двух нод.

vxzvxz ★★★
()
Ответ на: комментарий от vxzvxz

Прошу прощения за фразу «Firewall ничего не запрещает». Хотел сделать как лучше, получилось как всегда. Просто хотел сразу отмести все коменты о firewall и его настройке, сделать акцент именно на маршрутах. Firewall настроен и исправно работает.

Говорю спасибо за указание на HA-cluster. Пойду просвещаться по этому поводу.

«это для современного железа ничто при заявленных задачах» - к сожалению все сервера (gw, rt) используют 475 socket и проц p4 2.4. Так что о современном железе речи не идет.

kel
() автор топика
Ответ на: комментарий от kel

В таком случае можно поднять сервера в active-active режиме, когда один обслуживает одну половину клиентов, второй - вторую. Клиентов поделить на две подсети и выдавать одной группе первый сервер в качестве шлюза, второй - второй сервер.

А вообще на такую кучу народа нужно просто выбить у начальства пару новых серверов, а не издеваться над собой с пнями 4 :) Хотя и пень4 то не самый слабый процессор...

blind_oracle ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.