Биллинговая система Nodeny

Главная категория => Курилка => Тема начата: Andrey Zentavr от 26 Марта 2013, 15:17:51



Название: FreeBSD 9.0 + quagga 0.9.21: Нет маршрутов в ядре от BGP пира
Отправлено: Andrey Zentavr от 26 Марта 2013, 15:17:51
Есть Фря + quagga на ней. Вчера делали транк, добавили сетевую и перезагрузили машину.
Подключение такого рода: к нам приходит оптика, в физическом канале поднято 2 влана (мир+ридна_украина).
Началась непонятная ситуация:
Трафик от нас уходит в мир, приходит по обоим каналам. Начал ковырять:
Делаю telnet 127.0.0.1 bgpd
> show ip bgp neighbour a.b.c.d routes
...вижу около 11 тыс префиксов (a.b.c.d - пир по украинскому влану).

netstat -rn | grep "a.b.c.d" аж нихера не показывает, или показывает пару маршрутов в Украину. Такое впечатление что bgpd маршруты отдал и получил, а ядро ОС об этом не догадывается.


Интересная ситуёвина проявляется дальше, когда я делаю в консоли bgpd такое:
> enable
# clear bgp *
# quit

Проходит пару десятков секунд, и 11 тыс маршрутов появляются в ядре.

WTF?


Название: Re: FreeBSD 9.0 + quagga 0.9.21: Нет маршрутов в ядре от BGP пира
Отправлено: stix от 26 Марта 2013, 15:30:33
quagga часто такие сюрпризы преподносит.
весь BGP перенес на циску, хотя на старом тазике квага работает наверное года 3


Название: Re: FreeBSD 9.0 + quagga 0.9.21: Нет маршрутов в ядре от BGP пира
Отправлено: Andrey Zentavr от 26 Марта 2013, 17:19:34
Человеки с ISP ответили нам что:
Код:
Также, просьба проверить достаточно ли свободной оперативной памяти у вашего маршрутизатора и нет ли ограничений на размер RIB/FIB. С нашей стороны недавно увеличилось количество анонсируемых префиксов.


Название: Re: FreeBSD 9.0 + quagga 0.9.21: Нет маршрутов в ядре от BGP пира
Отправлено: stix от 26 Марта 2013, 17:36:17
да, это связано обычно с Full-View таблицей маршрутизации.
Полная таблица всех маршрутов в мире сейчас уже под 300Мб озу занимает, ~44000 маршрутов

но такие сюрпризы у меня и в локальной сети с несколькими сотнями сетями были.


Название: Re: FreeBSD 9.0 + quagga 0.9.21: Нет маршрутов в ядре от BGP пира
Отправлено: Andrey Zentavr от 26 Марта 2013, 20:07:05
да, это связано обычно с Full-View таблицей маршрутизации.
Полная таблица всех маршрутов в мире сейчас уже под 300Мб озу занимает, ~44000 маршрутов

но такие сюрпризы у меня и в локальной сети с несколькими сотнями сетями были.
С пира который смотри на мир я получаю только 0.0.0.0/0:

Код:
gateway.linet.zp.ua> show ip bgp neighbors 62.221.40.165 routes
BGP table version is 0, local router ID is 194.126.204.1
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
*> 0.0.0.0          62.221.40.165                          0 12883 i

Total number of prefixes 1

Ну и с Украины:
Код:
BGP neighbor is 93.178.220.61, remote AS 12883, local AS 34605, external link
  BGP version 4, remote router ID 213.130.30.56
  BGP state = Established, up for 16:12:18
  Last read 22:18:18, 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:                  2          2
    Notifications:          1          0
    Updates:                2      12411
    Keepalives:           981        560
    Route Refresh:          0          0
    Capability:             0          0
    Total:                986      12973
  Minimum time between advertisement runs is 30 seconds

 For address family: IPv4 Unicast
  Community attribute sent to this neighbor(both)
  Inbound path policy configured
  Outbound path policy configured
  Route map for incoming advertisements is *SET-PRIO
  Route map for outgoing advertisements is *ucomline-out
  11590 accepted prefixes

  Connections established 2; dropped 1
  Last reset 16:12:25, due to User reset
Local host: 93.178.220.62, Local port: 1042
Foreign host: 93.178.220.61, Foreign port: 179
Nexthop: 93.178.220.62
Nexthop global: fe80::215:17ff:fe91:7451
Nexthop local: ::
BGP connection: non shared network
Read thread: on  Write thread: off

Ну, в ядре пока так:
Код:
[root@odin ~]# netstat -rn | grep "93.178.220.61" | wc -l
   11589

... просто не хочется каждый раз делать костыль clear bgp * после перезагрузки


Название: Re: FreeBSD 9.0 + quagga 0.9.21: Нет маршрутов в ядре от BGP пира
Отправлено: stix от 26 Марта 2013, 21:43:24
ядро с RADIX_MPATH ?


Название: Re: FreeBSD 9.0 + quagga 0.9.21: Нет маршрутов в ядре от BGP пира
Отправлено: Andrey Zentavr от 27 Марта 2013, 13:00:54
ядро с RADIX_MPATH ?
Нет. не ставил такой опции.
Так и зачем она, если с одного пира приходит 0.0.0.0/0, а со второго только UA-IX сетки?

Когда приходило всё ото всех, я делал так:
Код:
! UA-IX Uplink
!
neighbor A.B.C.D remote-as 12883
neighbor A.B.C.D route-map SET-PRIO in
neighbor A.B.C.D route-map ucomline-out out
!
route-map SET-PRIO permit 10
 set local-preference 500
 set weight 1000
!

Сейчас уже не так... от пира A.B.C.D я получаю только 11тыщ сеток украины, от пира мирового - одну сетку 0.0.0.0/0


Название: Re: FreeBSD 9.0 + quagga 0.9.21: Нет маршрутов в ядре от BGP пира
Отправлено: stix от 27 Марта 2013, 13:38:43
обновлять версию пробовал?
или ставить прошлую


Название: Re: FreeBSD 9.0 + quagga 0.9.21: Нет маршрутов в ядре от BGP пира
Отправлено: Andrey Zentavr от 27 Марта 2013, 19:34:00
обновлять версию пробовал?
или ставить прошлую
До этого стоял 0.99.20.2, обновился до 0.99.21 в тот же день. Трабл не исчез.


Название: Re: FreeBSD 9.0 + quagga 0.9.21: Нет маршрутов в ядре от BGP пира
Отправлено: Andrey Zentavr от 14 Января 2017, 03:01:09
только что поймал похожее на совсем левом сервере. Проблема крылась в link-detect функционале квагги.
Разбираться что там и как не стал - пока просто отрубил в zebra.conf:
Код:
hostname secure1
password qwerty
enable password qwerty
!
! list interfaces
interface lo0
  no link-detect
!
interface igb2
!
interface igb3
!
interface tap0
  no link-detect
interface tap1
  no link-detect
interface tap2
  no link-detect
!
!ip route 10.10.8.0/21 Null0
ip route 10.10.8.0/22 192.168.255.254
!
log file /var/log/quagga/zebra.log
line vty