NiTr0 Posted July 26, 2014 · Report post Итак, есть бордер 2FV и почти такой же бордер на ua-ix. Квагга 0.99.17. Есть клиентская AS с PI/24 которую надо анонсить. Есть роутер в который воткнут клиент, пирится по iBGP с обеими бордюрами. Пиринг с клиентом поднят, через IX бордер клиент анонсится, через мировой - нет. Конфиги почти идентичны, конфиг проблемного бордера: hostname gw-world log stdout ! router bgp 44686 bgp router-id a.b.c.d network 91.x.x.0/23 network 91.x.x.0/23 network 91.x.x.0/23 network 91.x.x.0/23 neighbor local peer-group neighbor local remote-as 44686 neighbor local next-hop-self neighbor local prefix-list local_out out neighbor local route-map local_in in neighbor local route-map local_out out neighbor 77.88.x.x remote-as 21011 neighbor 77.88.x.x route-map TOPNET-out out neighbor 80.91.x.x remote-as 21219 neighbor 80.91.x.x route-map DATAGROUP-out out neighbor 192.168.x.x peer-group local neighbor 192.168.x.y peer-group local ! ip prefix-list local_out seq 50 permit any ip prefix-list our_as seq 1 permit 91.x.x.0/22 ip prefix-list our_as seq 2 permit 91.x.x.0/22 ip prefix-list our_as seq 3 permit 91.x.x.0/23 ip prefix-list our_as seq 4 permit 91.x.x.0/23 ip prefix-list our_as seq 5 permit 91.x.x.0/23 ip prefix-list our_as seq 6 permit 91.x.x.0/23 ip prefix-list client seq 1 permit 91.y.y.0/24 ! ip as-path access-list our_as permit ^$ ip as-path access-list client permit ^(xxxxx_)*yyyyy(_yyyyy)*$ ! route-map TOPNET-out permit 10 match ip address prefix-list our_as match as-path our_as ! route-map TOPNET-out permit 20 match ip address prefix-list client match as-path client ! route-map TOPNET-in permit 10 ! route-map UARNET-out permit 10 ! route-map DATAGROUP_in permit 10 ! route-map DATAGROUP-out permit 10 match ip address prefix-list our_as match as-path our_as ! route-map DATAGROUP-out permit 20 match ip address prefix-list client match as-path client ! route-map local_in permit 10 match ip address prefix-list client match as-path client set local-preference 1 ! route-map local_out permit 10 set local-preference 1 ! line vty route-map написан верно: gw-world# sh ip bgp route-map DATAGROUP-out BGP table version is 0, local router ID is a.b.c.d Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 91.x.x.0/23 0.0.0.0 0 32768 i *> 91.x.x.0/23 0.0.0.0 0 32768 i * i91.y.y.0/24 91.x.x.41 0 1 0 yyyyy i *> 91.x.x.0/23 0.0.0.0 0 32768 i *> 91.x.x.0/23 0.0.0.0 0 32768 i Total number of prefixes 5 То, что анонсится бордерами: gw-world# sh ip bgp neigh 80.91.x.x advertised-routes BGP table version is 0, local router ID is a.b.c.d Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, R Removed Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 91.x.x.0/23 80.91.x.x 0 32768 i *> 91.x.x.0/23 80.91.x.x 0 32768 i *> 91.x.x.0/23 80.91.x.x 0 32768 i *> 91.x.x.0/23 80.91.x.x 0 32768 i При clear x.x.x.x - один раз как-то появился ненадолго анонс в advertised-routes, потом при следующей проверке - исчез о_0 Рестарт bgpd ничего не дал. Вопрос: в чем причина такого интересного поведения? И что отображается в advertised-routes / может ли на них влиять второй пир? P.S. второй аплинк прислал что обновил фильтры, сделал clean сессии с ним - и анонс появился на оба аплинка... Загадка, магия полосатой лошадки... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
h1vs2 Posted July 26, 2014 · Report post route-reflector client ? ebgp анонсы от ibgp пира к ibgp пиру по дефолту не анонсируются. Это если я правильно понял Вашу схему. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted July 26, 2014 · Report post h1vs2 нет, у него судя по всему (world)e-i-e(customer), что совершенно нормально(да других вариантов особо и нет, только RR, что в данном конкретном случае тоже самое дало бы). Надо было запускать debug и смотреть что к чему Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DVM-Avgoor Posted July 26, 2014 · Report post маршрут с gw-world до клиента есть прямой? точнее связь до него есть? я к тому, что некстхоп полученый по ibgp может быть и не достижим с gw-world, а если это так - он не проанонсит. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted July 26, 2014 · Report post маршрут с gw-world до клиента есть прямой? точнее связь до него есть? Есть, внутри по оспф подсети анонсятся. Опять же, со 2-го бордюра все ок. Сейчас и на этом бордюре анонс появился. Вопрос в том - не исчезнет ли снова :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DVM-Avgoor Posted July 26, 2014 · Report post Есть, внутри по оспф подсети анонсятся. Опять же, со 2-го бордюра все ок. Сейчас и на этом бордюре анонс появился. Вопрос в том - не исчезнет ли снова :) А в БГП таблице префикс клиента нормально выглядит? Вообще это странно, может какой-то рассинхрон, но вряд ли, обычно квагга такие сценарии нормально отрабатывает. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted July 26, 2014 · Report post А в БГП таблице префикс клиента нормально выглядит? Да вроде как да. Опять же - при просмотре route-map маршрут на клиента есть, при просмотре экспортируемых маршрутов - не было. Потом появился волшебным образом. Без каких-либо изменений конфигов с моей стороны. На втором бордере - все нормально, взлетело с полпинка... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DVM-Avgoor Posted July 26, 2014 · Report post Да вроде как да. Опять же - при просмотре route-map маршрут на клиента есть, при просмотре экспортируемых маршрутов - не было. Потом появился волшебным образом. Без каких-либо изменений конфигов с моей стороны. Ну роут мап показывает по-сути лишь префиксы удовлетворяющие условиям. Экспорт префиксов это уже другое. Возможно маршрут на стыковочник клиента отсутствовал или выучен был как-либо не правильно (например извне). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted July 26, 2014 · Report post Ладно, посмотрим что будет дальше... К слову, квагга этой версии при большом кол-ве маршрутов начинает подлагивать спустя время - проц не жрет, а в консоли какие-то залипоны на несколько секунд. Вообще - в планах постепенный уход на птичку, но то в перспективе. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Abram Posted July 26, 2014 · Report post NiTr0, У меня птица как RR в iBGP работает - отлично, нравится. Но по ощущениям именно для маршрутизации Quagga как-то лучше с Linux взаимодействует. Птицой к тому же гораздо проще выстрелить себе в ногу там, где Quagga тупо не позволит такого сделать. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted July 26, 2014 · Report post Ну да, птица - она более конфигурабельна и, соответственно, более внимательно ее надо конфигурить. Заапдейчу дистр на бордюрах - и буду птичку мучить. Пока она на одном брасе крутится - ведет себя стабильно и предсказуемо, особенно как ей починили флуд в лог о пропадании оспф маршрута. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kayot Posted July 27, 2014 · Report post Я бы сказал что грабли именно в наборе аплинков(топнет+дата), и без высшего соизволения и ручной правки фильтров они изученные друг другом префиксы не принимают. Именно поэтому при clear одного префиксы временно появились, и потому же все заработало после правки фильтров. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted July 27, 2014 · Report post тут же вопрос не в том, что кто-то чего-то принимает, а в том, что quagga не анонсирует без видимой причины Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kayot Posted July 27, 2014 · Report post Не факт, sh advertised-routes говорит о наборе уже согласованных маршрутов, а не о том что анонсируется нами. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted July 27, 2014 · Report post kayot Это что-то новенькое. Что такое согласованный маршрут в bgp? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kayot Posted July 27, 2014 · Report post s.lobanov Анонсированный мной и принятый пиром, не? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DVM-Avgoor Posted July 27, 2014 · Report post Квагга умеет магию? Циска, например, не умеет магии. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted July 27, 2014 · Report post s.lobanov Анонсированный мной и принятый пиром, не? bgp так не умеет. просто нет такого в протоколе (оповещать соседа о том, что его префикс принят или не принят) Квагга умеет магию? Циска, например, не умеет магии. Технически неграмотное предположение товарища kayot навело меня на мысль, что возможно у NiTr0 работает orf/5292 и он принял prefix-list inbound от соседа и зафильтровал сам себя на своём outbound'е. Дебаг бы это показал NiTr0 orf capability согласовался с соседом? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DVM-Avgoor Posted July 27, 2014 · Report post orf виден в конфиге так-то обычно :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted July 27, 2014 · Report post может оно в дефолтном конфигах в новых кваггах (я немножко отстал в плане версий квагги). надо смотреть show ip bgp neigh Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted July 27, 2014 · Report post По ходу таки orf работало: BGP neighbor is 77.88.x.x, remote AS xxxxx, local AS xxxxx, external link BGP version 4, remote router ID 88.81.x.x BGP state = Established, up for 19:07:28 Last read 14:43:09, hold time is 90, keepalive interval is 30 seconds Neighbor capabilities: 4 Byte AS: advertised and received Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Graceful Restart Capabilty: received Remote Restart timer is 120 seconds Address families by peer: none Graceful restart informations: End-of-RIB send: IPv4 Unicast End-of-RIB received: Message statistics: Inq depth is 0 Outq depth is 0 Sent Rcvd Opens: 2 2 Notifications: 1 0 Updates: 5 359447 Keepalives: 2477 2573 Route Refresh: 0 0 Capability: 0 0 Total: 2485 362022 Minimum time between advertisement runs is 30 seconds For address family: IPv4 Unicast Community attribute sent to this neighbor(both) Outbound path policy configured Route map for outgoing advertisements is *TOPNET-out 499274 accepted prefixes Connections established 2; dropped 1 Last reset 19:07:38, due to User reset Local host: 77.88.x.x, Local port: 60540 Foreign host: 77.88.x.x, Foreign port: 179 Nexthop: 77.88.x.x Nexthop global: fe80::216:31ff:fefb:8d53 Nexthop local: :: BGP connection: non shared network Read thread: on Write thread: off BGP neighbor is 80.91.x.x, remote AS 21219, local AS xxxxx, external link BGP version 4, remote router ID 80.91.x.x BGP state = Established, up for 20:50:47 Last read 14:43:09, hold time is 90, keepalive interval is 30 seconds Neighbor capabilities: 4 Byte AS: advertised and received Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Graceful Restart Capabilty: received Remote Restart timer is 120 seconds Address families by peer: none Graceful restart informations: End-of-RIB send: IPv4 Unicast End-of-RIB received: Message statistics: Inq depth is 0 Outq depth is 0 Sent Rcvd Opens: 1 1 Notifications: 0 0 Updates: 3 268104 Keepalives: 2475 2624 Route Refresh: 0 0 Capability: 0 0 Total: 2479 270729 Minimum time between advertisement runs is 30 seconds For address family: IPv4 Unicast Community attribute sent to this neighbor(both) Outbound path policy configured Route map for outgoing advertisements is *DATAGROUP-out 496265 accepted prefixes Connections established 1; dropped 0 Last reset never Local host: 80.91.x.x, Local port: 49408 Foreign host: 80.91.x.x, Foreign port: 179 Nexthop: 80.91.x.x Nexthop global: fe80::216:31ff:fefb:8d53 Nexthop local: :: BGP connection: non shared network Read thread: on Write thread: off Странно, что на датагруповском аплинке префикса не было тоже - их я дергал насчет переконфигурирования еще пару месяцев назад, топнет не дернул тогда (они сейчас вроде как одна контора же - оказалось, у них все сложно). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DVM-Avgoor Posted July 27, 2014 · Report post Для не имущих квагги, подскажите кто-нить, а как оно отображается в sh ip bgp neigh и есть ли там типа цисковского sh ip bgp neighbors x.x.x.x received prefix-filter Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted July 27, 2014 · Report post Outbound path policy configured - мне что-то это навело на мысль об orf (после совещания с гуглом). Но sh ip bgp neighbors x.x.x.x received prefix-filter - пусто... Загадка однако. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DVM-Avgoor Posted July 28, 2014 · Report post Просто в квагге все не однозначно, там этими свойствами управлять кажется вообще нельзя. У циски в выводе sh ip bgp neigh сразу видно есть ли ORF, а тут ... Но recieved prefix-filter должен был бы показать все, если бы оно было. Но я в версию ORF мало верю, такое обычно согласовывается с алпинком заранее, да и многим isp вообще побоку эти штуки. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
DVM-Avgoor Posted July 28, 2014 · Report post Поставил кваггу таки на интерес :) # sh ip bgp neighbors BGP neighbor is x.x.x.x, remote AS xxxxx, local AS xxxxx, internal link BGP version 4, remote router ID x.x.x.x BGP state = Established, up for 00:00:26 Last read 00:00:14, hold time is 180, keepalive interval is 60 seconds Neighbor capabilities: 4 Byte AS: advertised and received Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Message statistics: Inq depth is 0 Outq depth is 0 Sent Rcvd Opens: 3 2 Notifications: 0 0 Updates: 0 1757 Keepalives: 1001 969 Route Refresh: 0 1 Capability: 0 0 Total: 1004 2729 Minimum time between advertisement runs is 5 seconds * For address family: IPv4 Unicast * AF-dependant capabilities: * Outbound Route Filter (ORF) type (128) Prefix-list: * Send-mode: received Community attribute sent to this neighbor(both) 1965 accepted prefixes Connections established 3; dropped 2 Last reset 00:00:29, due to Peer closed the session Local host: x.x.x.x, Local port: 28013 Foreign host: x.x.x.x, Foreign port: 179 Nexthop: x.x.x.x Nexthop global: fe80::::: Nexthop local: :: BGP connection: non shared network Read thread: on Write thread: off Так что ок, это должно быть видно и по-умолчанию квагга все это принимает. Правда received prefix-list все равно пусто. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...