У меня есть старый брандмауэр / маршрутизатор Linux HA, который никогда не работал. Поскольку он никогда не был полностью запущен в настоящую производственную среду (только тестирование и демонстрация), мне всегда приходилось отключать один брандмауэр, чтобы он работал. Теперь мы планируем запустить это в производство, мне нужно заставить это работать.
Итак, что я хочу сделать, так это попытаться заставить его наконец правильно работать в режиме аварийного переключения HA.
У меня есть два Linux-сервера, которые работают как брандмауэр / маршрутизаторы. Каждый из них получает питание напрямую от оптических кабелей 10G и сети точка-точка / 30. Они используют BGP. И они маршрутизируют Infiniband, который является стороной локальной сети. Это объясняет, почему я использую для этой цели не обычный маршрутизатор, а сервер.
Эти 10-гигабитные отбросы при установке, как я полагаю, назывались мульти-провайдерами или подобными, но, насколько я понимаю, они поступают от одного и того же провайдера, и у них много восходящего потока HA.
Глядя на каждую настройку высокой доступности, можно увидеть плавающий IP как на публичной, так и на частной стороне. Я предполагаю, что это связано с обеспечением правильной репликации потоков на резервную машину при использовании conntrackd. И обычно keepalived используется в Linux для предоставления плавающих IP-адресов на стороне WAN и LAN соединения.
Что-то вроде этого:
Вместо того, чтобы подробно объяснять старые установки, которые не работали. Я прошу указать, как я могу сделать эту работу правильно, учитывая, что у меня нет переключателя на общедоступной стороне 10G. Однако у меня есть канал eth2 напрямую между двумя маршрутизаторами. И еще один канал eth3, которые соединены между собой через коммутатор. Я предполагаю, что я хочу попытаться избежать асимметричной маршрутизации, когда потоки поступают на один сервер и уходят на другой. В идеале он попадет на активный сервер.
Как уже упоминалось, диапазон сети предоставляется BGP и составляет / 25.
Мне интересно, смогу ли я сделать с Linux что-то вроде следующего:
Могу ли я использовать сеть eth2 как своего рода коммутатор, чтобы, если пакет попал на сервер резервного копирования, он мог быть передан другому серверу через eth2, а затем от мастера к локальной сети? Это сработает?
Другая вещь, о которой я думал, это иметь два маршрута по умолчанию в локальной сети и забыть о плавающих IP-адресах. Но прав ли я, думая, что это может быть проблематично? как я могу обеспечить 1 сеанс на сервер. Я не мог понять политику маршрутизации в Linux.
Кстати: у меня нет серверов Windows за брандмауэрами. Он будет кормить только серверы Linux.
На самом деле, Марк напомнил мне, что я действительно просил о помощи на раннем этапе, но я не собирался ничего с этим делать в то время, когда пришел ответ. Мы все были заняты и забыли об этом. Я нашел письмо.
Ответ был:
Привет, извините за поздний ответ. В большинстве случаев вы можете использовать HA и одновременно работать с обоими брандмауэрами, но здесь это невозможно. Я бы здесь использовал карты маршрутов, чтобы направлять трафик в одну сторону против другой. На маршрутизаторе, который вам не нужен, вы должны добавить маршрут (ы), который вы нам отправляете. Это удлиняет путь к этому устройству, поэтому наши маршрутизаторы выбирают другой путь.
route-map Net:Out
set as-path prepend 65007 65007
router bgp 65007
neighbor <Net IP> route-map out NetDC:Out
On the same router you would then lower the preference of the routes we send you.
route-map Net:In
set local-preference 10
rotuer bgp 65007
neighbor <Net IP> route-map in Net:In
Пожалуйста, дай мне знать, если возникнут какие-либо вопросы. Синтаксис, который я опубликовал, был для Brocade, но Quagga должен быть очень похожим.
Где «Net» - это на самом деле имя провайдера, который я не хочу раскрывать.
Как это будет работать на практике? Я знаю, что keepalive может запускать скрипт.
т.е. vrrp_instance MyVRRPInstance {[...] notify /usr/local/bin/keepalivednotify.sh}
Ах, неужели можно просто остановить демон BGP в состоянии резервного копирования и запустить его в состоянии мастера?