PRNG Опубликовано 29 августа, 2017 · Жалоба Добрый день! Коллеги, подскажите советом. На ESXi HA строим небольшой проект. Настроены пока два маршрутизатора на VM (FreeBSD). Есть автономка с PA /24. Каждый маршрутизатор подключен по bgp к своим аплинкам: маршрутизатор A - ISP1, маршрутизатор Б - ISP2. Получают full view в обоих случаях. Между маршрутизаторами ibgp. Все это крутится на bird. В проекте предполагаются как внешние сервисы, так и внутренние. Для внутренних будет настроен на тех же машинах CARP с pfsync, поднят NAT. Как быть с маршрутизацией внешних сервисов из анонсируемой PA /24? Так как хочется обеспечить отказоустойчивость маршрутизации, хотелось бы чтобы при выключении одного из роутеров connectivity не нарушалась. Правильно ли я понимаю, что в этом случае на каждый внешний сервис (сервер) вешают bird и строят ibgp к своим ASBR? Есть примеры/схемы сетей как это делают? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 29 августа, 2017 · Жалоба Я официально заявляю: bird это говно! Используйте FRRouting. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Prototype-X Опубликовано 29 августа, 2017 · Жалоба Поднимать на каждом сервере с сервисом ibgp, это слишком. Вариант с CARP(VRRP) для внешних сервисов не рассматривали, получается тоже что и для внутренних сервисов, только без NAT. Нужны будут скрипты что бы если отвалилось ebgp одного из провайдеров, CARP(VRRP) переключил master на живого ISP. Еще один нюанс трафик из LAN -> WAN будет идти через master с активным виртуальным ip, обратно же трафик WAN -> LAN будет идти от обоих роутеров, так как Вы анонсируете сеть двум операторам, т.е. часть пакетов будет приходить в LAN не только с master роутера но и с slave, по идее синхронизация таблицы соединений поможет (pfsync) решает такую проблему. Второй вариант поднять на каждом роутере EBGP к ISP1 и ISP2 и анонсировать сеть PA /24 только с CARP master роутера, при переключении убирать анонс сети и начинать анонсировать сеть на новом master роутере. Таким образом трафик в обе стороны будет ходить симметрично, через один роутер. Третий вариант попробовать vSRX от Juniper, это будет стоить денег. Соберете кластер из двух vSRX. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 30 августа, 2017 · Жалоба Можно сделать на одной из виртуальных машин route server. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
PRNG Опубликовано 30 августа, 2017 (изменено) · Жалоба ne-vlezay80 Я так и сделал. 16 часов назад, Prototype-X сказал: Поднимать на каждом сервере с сервисом ibgp, это слишком. Вариант с CARP(VRRP) для внешних сервисов не рассматривали, получается тоже что и для внутренних сервисов, только без NAT. Нужны будут скрипты что бы если отвалилось ebgp одного из провайдеров, CARP(VRRP) переключил master на живого ISP. Еще один нюанс трафик из LAN -> WAN будет идти через master с активным виртуальным ip, обратно же трафик WAN -> LAN будет идти от обоих роутеров, так как Вы анонсируете сеть двум операторам, т.е. часть пакетов будет приходить в LAN не только с master роутера но и с slave, по идее синхронизация таблицы соединений поможет (pfsync) решает такую проблему. Спасибо! Наверное, так и сделаю. Единственная проблема в том, что вроде бы Bird не умеет запускать скрипт при падении ebgp. Проверять по крону - минимальная задержка 60с, это плохо, с учетом того что на апстриме есть BFD. Разве что смотреть в сторону другого решения. В инете советуют ExaBGP. Но я не уверен, что он умеет BFD :) Изменено 30 августа, 2017 пользователем PRNG Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 30 августа, 2017 · Жалоба 22 часа назад, Prototype-X сказал: Второй вариант поднять на каждом роутере EBGP к ISP1 и ISP2 и анонсировать сеть PA /24 только с CARP master роутера, при переключении убирать анонс сети и начинать анонсировать сеть на новом master роутере. Таким образом трафик в обе стороны будет ходить симметрично, через один роутер. анонсировать с обеих, но резервный с более низким приоритетом в CARP - анонсить с препендами. ну или если 1 роутер = 1 аплинк - завязать их в RR, связать жирным линком между собой, и пускай себе трафик бегает между ними на нужный аплинк... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Prototype-X Опубликовано 30 августа, 2017 · Жалоба 11 часов назад, PRNG сказал: ne-vlezay80 Я так и сделал. Спасибо! Наверное, так и сделаю. Единственная проблема в том, что вроде бы Bird не умеет запускать скрипт при падении ebgp. Проверять по крону - минимальная задержка 60с, это плохо, с учетом того что на апстриме есть BFD. Разве что смотреть в сторону другого решения. В инете советуют ExaBGP. Но я не уверен, что он умеет BFD :) ExaBGP не умеет BFD. Можно посмотреть еще в сторону PFsense и VyOS, но там тоже нет BFD. BFD есть у Mikrotik CHR, но он платный и там нет синхронизация таблицы соединений, так что придется рассматривать варианты где трафик будет идти симметрично. Вместо BFD можно поиграться с интервалами BGP keepalive и hold, например keepalive = 1с, hold = 3с Скорее всего можно мониторить логи Bird на событие что bgp пир отвалился и дергать CARP. В общем писать свои велосипеды и костыли. 6 часов назад, NiTr0 сказал: анонсировать с обеих, но резервный с более низким приоритетом в CARP - анонсить с препендами. использование препендов не дает никаких гарантий что трафик не будет приходить из мира на резервный роутер. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
NiTr0 Опубликовано 31 августа, 2017 · Жалоба 13 часов назад, Prototype-X сказал: использование препендов не дает никаких гарантий что трафик не будет приходить из мира на резервный роутер. открою бОльший секрет - вообще не никаких гарантий, что трафик будет на 100% симметричным. и ничего вы тут не сделаете. ну придет 2-3% трафика на роутер, отредиректится на основной - в чем проблема? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 31 августа, 2017 · Жалоба 14 часов назад, Prototype-X сказал: ExaBGP не умеет BFD. Можно посмотреть еще в сторону PFsense и VyOS, но там тоже нет BFD. BFD есть у Mikrotik CHR, но он платный и там нет синхронизация таблицы соединений, так что придется рассматривать варианты где трафик будет идти симметрично. Вместо BFD можно поиграться с интервалами BGP keepalive и hold, например keepalive = 1с, hold = 3с Скорее всего можно мониторить логи Bird на событие что bgp пир отвалился и дергать CARP. В общем писать свои велосипеды и костыли. использование препендов не дает никаких гарантий что трафик не будет приходить из мира на резервный роутер. Ещё есть gobgp Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
uxcr Опубликовано 31 августа, 2017 · Жалоба В 30.08.2017 в 09:21, PRNG сказал: ne-vlezay80 Проверять по крону - минимальная задержка 60с, это плохо, с учетом того что на апстриме есть BFD. Разве что смотреть в сторону другого решения. В инете советуют ExaBGP. Но я не уверен, что он умеет BFD :) Если нужно реагирование сразу - можно например писать логи в пайп, который будет слушать ваш скрипт. Или будет например тупо парсить tail -F /var/log/bla-bla.log И по некоему патерну из логов будет что-нибудь запускать через fork/exec. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
gruber Опубликовано 18 сентября, 2017 · Жалоба Если речь идет о резервировании, то поднимайте с каждым ISP две сессии, от А и от Б. Внутри на мой взгляд лучше OSPF. Если очень хочется попробовать BFD, то поглядите в сторону OpenBGPd. Я не уверен что в нем уже запилили поддержку BFD, но планы такие были https://www.mail-archive.com/tech@openbsd.org/msg36989.html Если хочется мониторить состояние интерфейсов, есть еще ifstated. (для CARP самое то) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...