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

Quagga 0.99.16, OSPF, FreeBSD

Привет.

 

Недавно обновил порты на одном тазике с 7.3-RELEASE.

Квагга обновилась до 0.99.16, сломался OSPF.

Симптомы - не видит соседей, соседи её видят.

Смотрел tcpdump-ом, так и есть, шлет hello, а hello-пакеты соседей игнорируются.

В логах сообщения

2010/07/17 00:49:28 OSPF: interface 10.0.0.1 [2] join AllSPFRouters Multicast group.
2010/07/17 00:49:28 OSPF: can't setsockopt IP_ADD_MEMBERSHIP (fd 10, addr 10.0.0.2, ifindex 2, AllSPFRouters): Invalid argument; perhaps a kernel limit on #
of multicast group memberships has been exceeded?
2010/07/17 00:50:08 OSPF: DR-Election[1st]: Backup 10.0.0.1
2010/07/17 00:50:08 OSPF: DR-Election[1st]: DR     10.0.0.1
2010/07/17 00:50:08 OSPF: DR-Election[2nd]: Backup 0.0.0.0
2010/07/17 00:50:08 OSPF: DR-Election[2nd]: DR     10.0.0.1

На интерфейсе были два адреса, 10.0.0.1/24, 10.0.0.2/32.

После снятия алиаса ошибка can't setsockopt IP_ADD_MEMBERSHIP пропала, но соседи все так же не видны.

Конфиг

router ospf
ospf router-id 10.0.0.1
log-adjacency-changes
network 10.0.0.0/24 area 0.0.0.0

 

Проблема решилась откатом до quagga-0.99.15_4.

Скажите, работает ли у вас 0.99.16 из портов на 7-ке, и в чем собсно грабли?

Share this post


Link to post
Share on other sites

когда обновлял

та же фигня была откатывал

 

когда ставил с 0

все ок

работает

 

хз с чем связано

не разбирался

Share this post


Link to post
Share on other sites

А как собирал?

В make config все опции оставил по-умолчанию, или что-то трогал?

 

Share this post


Link to post
Share on other sites

%pkg_info | grep quagga

quagga-0.99.17 Free RIPv1, RIPv2, OSPFv2, BGP4, IS-IS route software

Все работает, вижу кошку и маршруты от неё.

Share this post


Link to post
Share on other sites

какие нибудь специфические настройки делал

чтобы квага работала с кошкой по ospf?

Share this post


Link to post
Share on other sites

практически никаких,

используется md5-аутентификация,

redistribute connected по route-map-у

Share this post


Link to post
Share on other sites

FreeBSD-7.2

quagga-0.99.17 (ставилась из портов)

Проблема 1 в 1 с описаной в первом посте топика. Нихера они не исправили, оспф тухлый!

Share this post


Link to post
Share on other sites

Недолгая пляска с бубном дала удивительнейшие результаты - как и в ветке 0.99.16, так и в ветке 0.99.17 трабла полностью лечится вставкой андефа:

#ifdef HAVE_STRUCT_IP_MREQN_IMR_IFINDEX
#undef HAVE_STRUCT_IP_MREQN_IMR_IFINDEX
#endif

в начало файла lib/sockopt.c

 

в http://www.freebsd.org/cgi/query-pr.cgi?pr=148238 написано (в самом низу страницы), что в 0.99.17 фикс 148238 уже включен - брехня полная!

Share this post


Link to post
Share on other sites

Алсо обнаружилась странная грабля,

при перезагрузке сервера quagga не стартует, приходится запускать инитскрипт руками,

в rc.conf

quagga_enable="YES"
quagga_daemons="zebra ospfd"
quagga_flags="-d -A 127.0.0.1"

Share this post


Link to post
Share on other sites

Alexandr, а ты порты после 25 числа точно обновлял?

а откуда бы у меня в портах взялась квагга 0.99.17? конечно же обновлял :)

Edited by Alexandr Ovcharenko

Share this post


Link to post
Share on other sites

Не стартовала, ибо почему-то во время первоначального запуска не хватало libnetsnmp.so.16, пересборка квагги без snmp решила проблему.

было:

%ldd /usr/local/sbin/zebra 
/usr/local/sbin/zebra:
    libzebra.so.0 => /usr/local/lib/libzebra.so.0 (0x28300000)
    libdlmalloc.so.2 => /usr/local/lib/libdlmalloc.so.2 (0x281b7000)
    libcrypt.so.4 => /lib/libcrypt.so.4 (0x281bc000)
    libnetsnmp.so.16 => /usr/local/lib/compat/pkg/libnetsnmp.so.16 (0x28354000)
    libcrypto.so.5 => /lib/libcrypto.so.5 (0x28401000)
    librt.so.1 => /usr/lib/librt.so.1 (0x281d5000)
    libc.so.7 => /lib/libc.so.7 (0x28083000)

 

Edited by mr.Scamp

Share this post


Link to post
Share on other sites

Внезапно квагга перестала получать маршруты, хотя префикс исправно анонсила и пакеты наверх отсылала.

Сброс сессии не помог, помогло только

service quagga restart

 

quagga-0.99.17_5    Free RIPv1, RIPv2, OSPFv2, BGP4, IS-IS route software

 

 

BGP-router# sh ip bgp sum
BGP router identifier ZZZ.ZZZ.ZZZ.ZZZ, local AS number 11111
RIB entries 631715, using 58 MiB of memory
Peers 2, using 9120 bytes of memory

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
XXX.XXX.XXX.ZZZ   4 22222   12262     386        0    0    0 06:22:00        0
XXX.XXX.XXX.XXX  4 22222 326375     386        0    0    0 06:22:02        0

Total number of neighbors 2

 

 

 

BGP-router# sh ip bgp neighbors XXX.XXX.XXX.XXX prefix-counts
Prefix counts for XXX.XXX.XXX.XXX, IPv4 Unicast
PfxCt: 0

Counts from RIB table walk:

              Adj-in: 336716
              Damped: 0
             Removed: 0
             History: 0
               Stale: 0
               Valid: 0
             All RIB: 336675
       PfxCt counted: 0
             Useable: 336675
XXX.XXX.XXX.XXX [pcount] PfxCt drift!
Please report this bug, with the above command output

Share this post


Link to post
Share on other sites
Недолгая пляска с бубном дала удивительнейшие результаты - как и в ветке 0.99.16, так и в ветке 0.99.17 трабла полностью лечится вставкой андефа:

#ifdef HAVE_STRUCT_IP_MREQN_IMR_IFINDEX
#undef HAVE_STRUCT_IP_MREQN_IMR_IFINDEX
#endif

в начало файла lib/sockopt.c

 

в http://www.freebsd.org/cgi/query-pr.cgi?pr=148238 написано (в самом низу страницы), что в 0.99.17 фикс 148238 уже включен - брехня полная!

Это "исправление" чинит ospfd, но ломает ripd - если приходится на одной и той же машине держать обеих, оно не годится. Правильное исправление есть тут и тут

Edited by dadv

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this