Повисание роутера BGP при падении роутера NAT

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Повисание роутера BGP при падении роутера NAT

Непрочитанное сообщение HEDG_SS » 2011-08-04 18:50:24

Доброго дня всем форумчанам.
Есть следующая схема сети (cхемка ниже):
На всех роутерах стоит FreeBSD 8.x. Сетевые карточки igb.
Роутер BGP с 3-мя сетевыми net0 - интернет (подняты сессии BGP ), net1 - кабель напрямую в net0 NAT, net2 - зона DMZ. В качестве BGP работает quagga 0.99.17
Дальше соответственно идут сервер NAT (используется PF), за ним шейпер (ipfw pipe) и абоненты.
В сети работает статика.

Столкнулся со следующей проблемой:
При падении сервера NAT, отваливается для внешки BGP сервер (зайти невозможно).
DMZ зона также теряет связь с инетом (непонятно почему...).
При поднятии сервера NAT, сервера NAT и BGP не видят друг друга по MAC. При этом сетевые линкуются нормально.
Down затем Up интерфейсов не помогает. Приходится перезагружать и BGP сервер, тогда все начинает рабоать нормально.

Подскажите пожалуйста, почему может происходить такая ситуация?
Что не дает нормально работать BGP серверу?
Если нужна еще какая-то инфа - говорите, постараюсь выложить...

Собственно сама схемка
Вложения
схема сети.png
схема сети.png (9.81 КБ) 925 просмотров

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

lap
лейтенант
Сообщения: 608
Зарегистрирован: 2010-08-13 23:39:29
Откуда: Moscow
Контактная информация:

Re: Повисание роутера BGP при падении роутера NAT

Непрочитанное сообщение lap » 2011-08-05 9:18:02

А логи-то какиенибудь есть? Может проблема всетаки в сервере БГП, при зависании которого начинает плохо чувствовать и натовский сервер из за того что он пакетики выплюнуть не может...
Не сломалось - не чини.

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Повисание роутера BGP при падении роутера NAT

Непрочитанное сообщение HEDG_SS » 2011-08-05 21:45:10

Внесу немного ясности..
Была проблема с БП на NAT, соответственно отвалились все абоненты, но DMZ по идее должно было работать...
В логах системы
Aug 2 21:16:14 bgp kernel: net1: link state changed to DOWN
В логах BGP есть следующее
Aug 2 21:17:45 mart bgpd[1490]: SLOW THREAD: task bgp_scan_timer (104b560) ran for 7676ms (cpu time 587ms)
Aug 2 21:19:06 bgp bgpd[1490]: SLOW THREAD: task bgp_scan_timer (104b560) ran for 29244ms (cpu time 588ms)
Aug 2 21:19:06 bgp bgpd[1490]: Terminating on signal
Aug 2 21:19:06 bgp bgpd[1490]: %NOTIFICATION: sent to neighbor x.x.x.x 6/3 (Cease/Peer Unconfigured) 0 bytes
Aug 2 21:19:06 bgp bgpd[1490]: %NOTIFICATION: sent to neighbor xx.xx.xx.xx 6/3 (Cease/Peer Unconfigured) 0 bytes
Aug 2 21:19:06 bgp bgpd[1490]: %NOTIFICATION: sent to neighbor xxx.xxx.xxx.xxx 6/3 (Cease/Peer Unconfigured) 0 bytes
Aug 2 21:19:07 bgp bgpd[1490]: %ADJCHANGE: neighbor x.x.x.x Down Neighbor deleted
Aug 2 21:19:08 bgp bgpd[1490]: %ADJCHANGE: neighbor xx.xx.xx.xx Down Neighbor deleted
Aug 2 21:19:08 bgp bgpd[1490]: %ADJCHANGE: neighbor xxx.xxx.xxx.xxx Down Neighbor deleted
Вот логи zebra
2011/08/02 21:17:43 ZEBRA: SLOW THREAD: task work_queue_run (210a4e40) ran for 12659ms (cpu time 0ms)
2011/08/02 21:17:57 ZEBRA: SLOW THREAD: task work_queue_run (210a4e40) ran for 8199ms (cpu time 0ms)
2011/08/02 21:18:10 ZEBRA: SLOW THREAD: task work_queue_run (210a4e40) ran for 12952ms (cpu time 0ms)
2011/08/02 21:18:22 ZEBRA: SLOW THREAD: task work_queue_run (210a4e40) ran for 6021ms (cpu time 0ms)
2011/08/02 21:18:41 ZEBRA: SLOW THREAD: task work_queue_run (210a4e40) ran for 10484ms (cpu time 0ms)
2011/08/02 21:18:55 ZEBRA: SLOW THREAD: task work_queue_run (210a4e40) ran for 13995ms (cpu time 0ms)
2011/08/02 21:57:44 ZEBRA: SLOW THREAD: task work_queue_run (210a4e40) ran for 2317764ms (cpu time 0ms)
Роуты на сети которые обслуживает NAT прописаны в zebra.
По логам видно, что упал демоны BGPd и zebra, непонятно почему...
Для анонса сетей использовалась команда network, никаких redistribute не использовалось.
Не понятно, почему происходил такой баг. В любом случае сервера NAT и BGP должны были видеть друг друга.

Опять же непонятно почему сервера не видели друг друга после поднятия сервера NAT.
Даже если учесть переполнение буфера сетевой, то он должен был освобождаться при Down Up интерфеса (делался программно, а также при выниманием патча). Не помогло.
Сервера начинали видеть друг друга только при перезагрузке BGP.

По логам большего накопать не удалось :(

lap
лейтенант
Сообщения: 608
Зарегистрирован: 2010-08-13 23:39:29
Откуда: Moscow
Контактная информация:

Re: Повисание роутера BGP при падении роутера NAT

Непрочитанное сообщение lap » 2011-08-06 10:00:51

Может процес бгп в качестве роутер ид берет адрес от net1, и когда он (интервейс) падает чтото както перекоряживает полностью в сетевой части...
Не сломалось - не чини.

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Повисание роутера BGP при падении роутера NAT

Непрочитанное сообщение HEDG_SS » 2011-08-09 16:31:45

Если я правильно понимаю router id используется в OSPF,а в BGP используются номера AS.

lap
лейтенант
Сообщения: 608
Зарегистрирован: 2010-08-13 23:39:29
Откуда: Moscow
Контактная информация:

Re: Повисание роутера BGP при падении роутера NAT

Непрочитанное сообщение lap » 2011-08-09 16:45:55

роутер ас да, но роутер бгп ид тоже есть.
В цыске настраивается так:

Код: Выделить всё

router bgp ХХХХХ
 bgp router-id ХХХ.ХХХ.ХХХ.ХХХ
отображается в шапке команды sh ip bgp su, также его видно на маршрутах полученных от него.
Не сломалось - не чини.

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Повисание роутера BGP при падении роутера NAT

Непрочитанное сообщение HEDG_SS » 2011-08-09 17:30:14

Вы правы. В качестве router-id был ip адрес интерфейса который "смотрит" на NAT.
ip адрес не является ни минимальным, ни максимальным.
В качестве router-id был первый ip адрес при выводе ifconfig, хотя в мане описано по другом...

Код: Выделить всё

bgp router-id A.B.C.D 
This command specifies the router-ID. If bgpd connects to zebra it gets interface and
address information. In that case default router ID value is selected as the largest IP
Address of the interfaces. When router zebra is not enabled bgpd can’t get interface
information so router-id is set to 0.0.0.0. So please set router-id by hand.


Какой router-id выставлять?
Можно ли поставить 127.0.0.1 или что-то в этом роде?
Как обезопасить себя от подобного в будущем (упасть может любой интерфейс, кроме localhost)?

lap
лейтенант
Сообщения: 608
Зарегистрирован: 2010-08-13 23:39:29
Откуда: Moscow
Контактная информация:

Re: Повисание роутера BGP при падении роутера NAT

Непрочитанное сообщение lap » 2011-08-09 19:57:39

Мне чаще приходистся общаться с "железными" роутерами, там обычно создается интерфейс loopback0, на который вешают адрес с маской /32 и который чаще всего становится и роутер ид, и сорс адрес для всяких ibgp сессий и прочее. теоретически в качестве роутер ид можно прописать любое число похожее на ип адрес (один раз вставил кусок кофига с новыми ротер ид не на ту железку (цыска), косяк вылез только в том что перезапустились всякие разные протокольчики (оспф/бгп/лдп) %) ).
Не сломалось - не чини.

HEDG_SS
сержант
Сообщения: 198
Зарегистрирован: 2008-11-22 20:37:07

Re: Повисание роутера BGP при падении роутера NAT

Непрочитанное сообщение HEDG_SS » 2011-08-10 9:51:42

Спасибо!! Так и сделаю, провешу какой то адрес на lo0 и его же поставлю в качестве router-id.
Надеюсь поможет.