NiTr0 Posted July 26, 2014 Posted July 26, 2014 Итак, есть бордер 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
h1vs2 Posted July 26, 2014 Posted July 26, 2014 route-reflector client ? ebgp анонсы от ibgp пира к ibgp пиру по дефолту не анонсируются. Это если я правильно понял Вашу схему. Вставить ник Quote
s.lobanov Posted July 26, 2014 Posted July 26, 2014 h1vs2 нет, у него судя по всему (world)e-i-e(customer), что совершенно нормально(да других вариантов особо и нет, только RR, что в данном конкретном случае тоже самое дало бы). Надо было запускать debug и смотреть что к чему Вставить ник Quote
DVM-Avgoor Posted July 26, 2014 Posted July 26, 2014 маршрут с gw-world до клиента есть прямой? точнее связь до него есть? я к тому, что некстхоп полученый по ibgp может быть и не достижим с gw-world, а если это так - он не проанонсит. Вставить ник Quote
NiTr0 Posted July 26, 2014 Author Posted July 26, 2014 маршрут с gw-world до клиента есть прямой? точнее связь до него есть? Есть, внутри по оспф подсети анонсятся. Опять же, со 2-го бордюра все ок. Сейчас и на этом бордюре анонс появился. Вопрос в том - не исчезнет ли снова :) Вставить ник Quote
DVM-Avgoor Posted July 26, 2014 Posted July 26, 2014 Есть, внутри по оспф подсети анонсятся. Опять же, со 2-го бордюра все ок. Сейчас и на этом бордюре анонс появился. Вопрос в том - не исчезнет ли снова :) А в БГП таблице префикс клиента нормально выглядит? Вообще это странно, может какой-то рассинхрон, но вряд ли, обычно квагга такие сценарии нормально отрабатывает. Вставить ник Quote
NiTr0 Posted July 26, 2014 Author Posted July 26, 2014 А в БГП таблице префикс клиента нормально выглядит? Да вроде как да. Опять же - при просмотре route-map маршрут на клиента есть, при просмотре экспортируемых маршрутов - не было. Потом появился волшебным образом. Без каких-либо изменений конфигов с моей стороны. На втором бордере - все нормально, взлетело с полпинка... Вставить ник Quote
DVM-Avgoor Posted July 26, 2014 Posted July 26, 2014 Да вроде как да. Опять же - при просмотре route-map маршрут на клиента есть, при просмотре экспортируемых маршрутов - не было. Потом появился волшебным образом. Без каких-либо изменений конфигов с моей стороны. Ну роут мап показывает по-сути лишь префиксы удовлетворяющие условиям. Экспорт префиксов это уже другое. Возможно маршрут на стыковочник клиента отсутствовал или выучен был как-либо не правильно (например извне). Вставить ник Quote
NiTr0 Posted July 26, 2014 Author Posted July 26, 2014 Ладно, посмотрим что будет дальше... К слову, квагга этой версии при большом кол-ве маршрутов начинает подлагивать спустя время - проц не жрет, а в консоли какие-то залипоны на несколько секунд. Вообще - в планах постепенный уход на птичку, но то в перспективе. Вставить ник Quote
Abram Posted July 26, 2014 Posted July 26, 2014 NiTr0, У меня птица как RR в iBGP работает - отлично, нравится. Но по ощущениям именно для маршрутизации Quagga как-то лучше с Linux взаимодействует. Птицой к тому же гораздо проще выстрелить себе в ногу там, где Quagga тупо не позволит такого сделать. Вставить ник Quote
NiTr0 Posted July 26, 2014 Author Posted July 26, 2014 Ну да, птица - она более конфигурабельна и, соответственно, более внимательно ее надо конфигурить. Заапдейчу дистр на бордюрах - и буду птичку мучить. Пока она на одном брасе крутится - ведет себя стабильно и предсказуемо, особенно как ей починили флуд в лог о пропадании оспф маршрута. Вставить ник Quote
kayot Posted July 27, 2014 Posted July 27, 2014 Я бы сказал что грабли именно в наборе аплинков(топнет+дата), и без высшего соизволения и ручной правки фильтров они изученные друг другом префиксы не принимают. Именно поэтому при clear одного префиксы временно появились, и потому же все заработало после правки фильтров. Вставить ник Quote
s.lobanov Posted July 27, 2014 Posted July 27, 2014 тут же вопрос не в том, что кто-то чего-то принимает, а в том, что quagga не анонсирует без видимой причины Вставить ник Quote
kayot Posted July 27, 2014 Posted July 27, 2014 Не факт, sh advertised-routes говорит о наборе уже согласованных маршрутов, а не о том что анонсируется нами. Вставить ник Quote
s.lobanov Posted July 27, 2014 Posted July 27, 2014 kayot Это что-то новенькое. Что такое согласованный маршрут в bgp? Вставить ник Quote
kayot Posted July 27, 2014 Posted July 27, 2014 s.lobanov Анонсированный мной и принятый пиром, не? Вставить ник Quote
DVM-Avgoor Posted July 27, 2014 Posted July 27, 2014 Квагга умеет магию? Циска, например, не умеет магии. Вставить ник Quote
s.lobanov Posted July 27, 2014 Posted July 27, 2014 s.lobanov Анонсированный мной и принятый пиром, не? bgp так не умеет. просто нет такого в протоколе (оповещать соседа о том, что его префикс принят или не принят) Квагга умеет магию? Циска, например, не умеет магии. Технически неграмотное предположение товарища kayot навело меня на мысль, что возможно у NiTr0 работает orf/5292 и он принял prefix-list inbound от соседа и зафильтровал сам себя на своём outbound'е. Дебаг бы это показал NiTr0 orf capability согласовался с соседом? Вставить ник Quote
DVM-Avgoor Posted July 27, 2014 Posted July 27, 2014 orf виден в конфиге так-то обычно :) Вставить ник Quote
s.lobanov Posted July 27, 2014 Posted July 27, 2014 может оно в дефолтном конфигах в новых кваггах (я немножко отстал в плане версий квагги). надо смотреть show ip bgp neigh Вставить ник Quote
NiTr0 Posted July 27, 2014 Author Posted July 27, 2014 По ходу таки 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
DVM-Avgoor Posted July 27, 2014 Posted July 27, 2014 Для не имущих квагги, подскажите кто-нить, а как оно отображается в sh ip bgp neigh и есть ли там типа цисковского sh ip bgp neighbors x.x.x.x received prefix-filter Вставить ник Quote
NiTr0 Posted July 27, 2014 Author Posted July 27, 2014 Outbound path policy configured - мне что-то это навело на мысль об orf (после совещания с гуглом). Но sh ip bgp neighbors x.x.x.x received prefix-filter - пусто... Загадка однако. Вставить ник Quote
DVM-Avgoor Posted July 28, 2014 Posted July 28, 2014 Просто в квагге все не однозначно, там этими свойствами управлять кажется вообще нельзя. У циски в выводе sh ip bgp neigh сразу видно есть ли ORF, а тут ... Но recieved prefix-filter должен был бы показать все, если бы оно было. Но я в версию ORF мало верю, такое обычно согласовывается с алпинком заранее, да и многим isp вообще побоку эти штуки. Вставить ник Quote
DVM-Avgoor Posted July 28, 2014 Posted July 28, 2014 Поставил кваггу таки на интерес :) # 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
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.