Перейти к содержимому
Калькуляторы

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

route-reflector client ?

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

h1vs2

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

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

NiTr0,

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

тут же вопрос не в том, что кто-то чего-то принимает, а в том, что quagga не анонсирует без видимой причины

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не факт, sh advertised-routes говорит о наборе уже согласованных маршрутов, а не о том что анонсируется нами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

kayot

Это что-то новенькое. Что такое согласованный маршрут в bgp?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

s.lobanov

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

s.lobanov

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

 

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

 

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

 

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

 

NiTr0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

orf виден в конфиге так-то обычно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.