Jump to content
Калькуляторы

Quagga bgp - не анонсируется AS клиента Подземные стуки

Итак, есть бордер 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 сессии с ним - и анонс появился на оба аплинка... Загадка, магия полосатой лошадки...

Share this post


Link to post
Share on other sites

route-reflector client ?

 

ebgp анонсы от ibgp пира к ibgp пиру по дефолту не анонсируются.

 

Это если я правильно понял Вашу схему.

Share this post


Link to post
Share on other sites

h1vs2

нет, у него судя по всему (world)e-i-e(customer), что совершенно нормально(да других вариантов особо и нет, только RR, что в данном конкретном случае тоже самое дало бы).

 

 

Надо было запускать debug и смотреть что к чему

Share this post


Link to post
Share on other sites

маршрут с gw-world до клиента есть прямой? точнее связь до него есть?

 

я к тому, что некстхоп полученый по ibgp может быть и не достижим с gw-world, а если это так - он не проанонсит.

Share this post


Link to post
Share on other sites

маршрут с gw-world до клиента есть прямой? точнее связь до него есть?

Есть, внутри по оспф подсети анонсятся. Опять же, со 2-го бордюра все ок. Сейчас и на этом бордюре анонс появился. Вопрос в том - не исчезнет ли снова :)

Share this post


Link to post
Share on other sites

Есть, внутри по оспф подсети анонсятся. Опять же, со 2-го бордюра все ок. Сейчас и на этом бордюре анонс появился. Вопрос в том - не исчезнет ли снова :)

 

 

А в БГП таблице префикс клиента нормально выглядит?

Вообще это странно, может какой-то рассинхрон, но вряд ли, обычно квагга такие сценарии нормально отрабатывает.

Share this post


Link to post
Share on other sites

А в БГП таблице префикс клиента нормально выглядит?

Да вроде как да. Опять же - при просмотре route-map маршрут на клиента есть, при просмотре экспортируемых маршрутов - не было. Потом появился волшебным образом. Без каких-либо изменений конфигов с моей стороны.

На втором бордере - все нормально, взлетело с полпинка...

Share this post


Link to post
Share on other sites

Да вроде как да. Опять же - при просмотре route-map маршрут на клиента есть, при просмотре экспортируемых маршрутов - не было. Потом появился волшебным образом. Без каких-либо изменений конфигов с моей стороны.

 

 

Ну роут мап показывает по-сути лишь префиксы удовлетворяющие условиям. Экспорт префиксов это уже другое. Возможно маршрут на стыковочник клиента отсутствовал или выучен был как-либо не правильно (например извне).

Share this post


Link to post
Share on other sites

Ладно, посмотрим что будет дальше...

К слову, квагга этой версии при большом кол-ве маршрутов начинает подлагивать спустя время - проц не жрет, а в консоли какие-то залипоны на несколько секунд.

 

Вообще - в планах постепенный уход на птичку, но то в перспективе.

Share this post


Link to post
Share on other sites

NiTr0,

У меня птица как RR в iBGP работает - отлично, нравится.

Но по ощущениям именно для маршрутизации Quagga как-то лучше с Linux взаимодействует. Птицой к тому же гораздо проще выстрелить себе в ногу там, где Quagga тупо не позволит такого сделать.

Share this post


Link to post
Share on other sites

Ну да, птица - она более конфигурабельна и, соответственно, более внимательно ее надо конфигурить. Заапдейчу дистр на бордюрах - и буду птичку мучить. Пока она на одном брасе крутится - ведет себя стабильно и предсказуемо, особенно как ей починили флуд в лог о пропадании оспф маршрута.

Share this post


Link to post
Share on other sites

Я бы сказал что грабли именно в наборе аплинков(топнет+дата), и без высшего соизволения и ручной правки фильтров они изученные друг другом префиксы не принимают.

Именно поэтому при clear одного префиксы временно появились, и потому же все заработало после правки фильтров.

Share this post


Link to post
Share on other sites

s.lobanov

Анонсированный мной и принятый пиром, не?

 

bgp так не умеет. просто нет такого в протоколе (оповещать соседа о том, что его префикс принят или не принят)

 

Квагга умеет магию? Циска, например, не умеет магии.

 

Технически неграмотное предположение товарища kayot навело меня на мысль, что возможно у NiTr0 работает orf/5292 и он принял prefix-list inbound от соседа и зафильтровал сам себя на своём outbound'е. Дебаг бы это показал

 

NiTr0

orf capability согласовался с соседом?

Share this post


Link to post
Share on other sites

может оно в дефолтном конфигах в новых кваггах (я немножко отстал в плане версий квагги). надо смотреть show ip bgp neigh

Share this post


Link to post
Share on other sites

По ходу таки 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

 

Странно, что на датагруповском аплинке префикса не было тоже - их я дергал насчет переконфигурирования еще пару месяцев назад, топнет не дернул тогда (они сейчас вроде как одна контора же - оказалось, у них все сложно).

Share this post


Link to post
Share on other sites

Для не имущих квагги, подскажите кто-нить, а как оно отображается в sh ip bgp neigh и есть ли там типа цисковского

sh ip bgp neighbors x.x.x.x received prefix-filter

Share this post


Link to post
Share on other sites

Outbound path policy configured - мне что-то это навело на мысль об orf (после совещания с гуглом). Но sh ip bgp neighbors x.x.x.x received prefix-filter - пусто...

Загадка однако.

Share this post


Link to post
Share on other sites

Просто в квагге все не однозначно, там этими свойствами управлять кажется вообще нельзя. У циски в выводе sh ip bgp neigh сразу видно есть ли ORF, а тут ...

Но recieved prefix-filter должен был бы показать все, если бы оно было. Но я в версию ORF мало верю, такое обычно согласовывается с алпинком заранее, да и многим isp вообще побоку эти штуки.

Share this post


Link to post
Share on other sites

Поставил кваггу таки на интерес :)

 

# 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 все равно пусто.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.