• Welcome to Hurricane Electric's IPv6 Tunnel Broker Forums.

News:

Welcome to Hurricane Electric's Tunnelbroker.net forums!

Main Menu

Missing routes with Quagga

Started by piojan, October 30, 2011, 04:21:32 PM

Previous topic - Next topic

piojan

Has anyone encountered a problem of routes not being passed from Quagga to kernel with Quagga (0.99.17 on 2.6.32-5-amd64)?
I'm suspecting a missconfiguration but haven't found it yet.

Cheers,
Piotr J.

With two peers active (HE and native):
# ip -6 r | wc -l
3840

With one peer active (other shutdown):
# ip -6 r | wc -l
4073

# sh ipv6 b su
BGP router identifier xxxx, local AS number xxxx
RIB entries 13990, using 1312 KiB of memory
Peers 2, using 9120 bytes of memory

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
2001:470:dddd::1
                4  6939    5759      79        0    0    0 01:15:58     7153
2001:hhhh::1
                4 cccc    5502       5        0    0    0 00:00:21     7215

Total number of neighbors 2

And the configuration:
router bgp xxxx
bgp router-id ggg
neighbor 2001:470:dddd::1 remote-as 6939
neighbor 2001:470:dddd::1 route-map HE_in in
neighbor 2001:470:dddd::1 route-map HE_out out
neighbor 2001:hhhh::1 remote-as cccc
neighbor 2001:hhhh::1 route-map yyy_out out
!
address-family ipv6
network pppp::/32
neighbor 2001:470:dddd::1 activate
neighbor 2001:470:dddd::1 route-map HE_in in
neighbor 2001:470:dddd route-map HE_out out
neighbor 2001:hhhh::1 activate
neighbor 2001:hhhh::1 route-map yyy_out out
exit-address-family
!
ipv6 prefix-list xxx-ipv6 seq 10 permit pppp::/32
!
route-map yyy_out permit 10
match ipv6 address prefix-list xxx-ipv6
!
route-map yyy_in permit 10
!
route-map HE_out permit 10
match ipv6 address prefix-list xxx-ipv6
set as-path prepend x x x
!
route-map HE_in permit 10
set local-preference 50

And a real example of a missing route:
# ip -6 r g 2001:470::
unreachable 2001:470:: from :: dev lo  table unspec  proto kernel  src 2001:470:dddd::2  metric -1  error -101 hoplimit 255
# ip -6 r | grep 2001:470:
2001:470:dddd::/64 via :: dev he-ipv6  proto kernel  metric 256  mtu 1480 advmss 1420 hoplimit 4294967295
2001:470:4a::/48 via fe80::21b:c003:a6eb:f000 dev eth2.478  proto zebra  metric 1024  mtu 1500 advmss 1440 hoplimit 4294967295

but from quagga:

# sh ipv b 2001:470::
BGP routing table entry for 2001:470::/32
Paths: (2 available, best #1, table Default-IP-Routing-Table)
  Not advertised to any peer
  xxxx yyyy 6939
    2001:gggg::1 from 2001:rrrr::1 (wwww)
    (fe80::21b:c003:a6eb:f000)
      Origin IGP, localpref 100, valid, external, best
      Extended Community: SoO:196844:1220
      Last update: Thu Jan  1 02:16:01 1970

  6939
    2001:470:rrrr::1 from 2001:470:rrrr::1 (vvvv)
    (fe80::d842:5436)
      Origin IGP, localpref 50, valid, external
      Last update: Thu Jan  1 01:00:39 1970

piojan

Zebra in debug had:
2011/11/01 19:25:15 ZEBRA: netlink-cmd error: Cannot allocate memory, type=RTM_NEWROUTE(24), seq=19462, pid=0

It was due to the Debian's default:
cat /proc/sys/net/ipv6/route/max_size
4096

echo 50000 > /proc/sys/net/ipv6/route/max_size

or editing /etc/sysctl.conf with:
net.ipv6.route.max_size = 50000

fixes the issue.

Cheers,
Piotr J.