Mailing List Archive

quagga ripd issue
Hello,

I am trying to enable dynamic routing on a simple network of tunnels on
freebsd.

A o--------o B
| |
| |
C o--------o D


All links are ipip tunnels (i.e., gifs). I would like all traffic to
remain within the tunnels and not leak routes into or out of the network.
I installed net/zebra-pj port and created configuration files given below.
The ripd seems to not announce any routes at all.

When I debugged it a little more, I found that rip_interface_address_add()
used to call rip_enable_apply(ifp) in 0.93b version of zebra but this
latter function does not get called in 0.94 version of zebra-pj. This
function is crucial to set the "running" bit on the internal data
structure corresponding to the interfaces. ripd daemon seems to be
waiting for the interface "UP" message from the zebra on interfaces
which it never gets.

What is the issue here?

thanks.
Venkata Pingali
---------------------------------------------------------------------------

0.94 : rip_interface.c
====
int
rip_interface_address_add (int command, struct zclient *zclient,
zebra_size_t length)
{
...
/* Check if this prefix needs to be redistributed */
rip_apply_address_add(ifc);
..
}

0.93b: rip_interface.c
=====
int
rip_interface_address_add (int command, struct zclient *zclient,
zebra_size_t length)
{
...
/* Check is this interface is RIP enabled or not.*/
rip_enable_apply (ifc->ifp);
...
}

zebra.conf on A
===============
debug zebra events
debug zebra kernel
debug zebra packet send detail
debug zebra packet recv detail

interface gif1
no shutdown
multicast

interface gif3
no shutdown
multicast

log stdout

ripd.conf on A
=======================
debug rip events
debug rip packet
debug rip packet send detail
debug rip packet recv detail
debug rip zebra
!

router rip
network gif1
network gif3
no passive-interface gif1
no passive-interface gif3
! redistribute static
! redistribute connected
distribute-list private in gif1
distribute-list private out gif1
distribute-list private in gif3
distribute-list private out gif3
access-list private permit 10.0.0.0/16
access-list private deny any
log stdout


ripd output
===========
2003/08/20 14:44:07 RIP: interface add em0 index 1 flags 34883 metric 1
mtu 1500
2003/08/20 14:44:07 RIP: interface add em1 index 3 flags 34883 metric 1
mtu 1500
2003/08/20 14:44:07 RIP: connected address 128.9.xxx.xx/20 is added
2003/08/20 14:44:07 RIP: interface add gif1 index 5 flags 32849 metric 1
mtu 1280
2003/08/20 14:44:07 RIP: connected address 10.0.0.1/30 is added
2003/08/20 14:44:07 RIP: Redistribute new prefix 10.0.0.0/30 on the
interface gif1
2003/08/20 14:44:07 RIP: triggered update!
2003/08/20 14:44:07 RIP: interface add gif3 index 6 flags 32849 metric 1
mtu 1280
2003/08/20 14:44:07 RIP: connected address 10.0.1.1/30 is added
2003/08/20 14:44:07 RIP: Redistribute new prefix 10.0.1.0/30 on the
interface gif3
2003/08/20 14:44:07 RIP: interface add lo0 index 4 flags 32841 metric 1
mtu 16384
2003/08/20 14:44:07 RIP: connected address 127.0.0.1/8 is added
2003/08/20 14:44:07 RIP: interface add xl0 index 2 flags 34883 metric 1
mtu 1500
2003/08/20 14:44:09 RIP: update timer fire!
^C2003/08/20 14:44:15 RIP: Terminating on signal
2003/08/20 14:44:15 RIP: interface em0: passive = 0
2003/08/20 14:44:15 RIP: interface em1: passive = 0
2003/08/20 14:44:15 RIP: interface gif1: passive = 0
2003/08/20 14:44:15 RIP: interface gif3: passive = 0
2003/08/20 14:44:15 RIP: interface lo0: passive = 0
2003/08/20 14:44:15 RIP: interface xl0: passive = 0

------------------------
gif1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
tunnel inet 128.9.xxx.xx --> 128.9.xxx.xx
inet6 fe80::203:47ff:fe07:e810%gif1 prefixlen 64 scopeid 0x5
inet 10.0.0.1 --> 10.0.0.2 netmask 0xfffffffc
gif3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
tunnel inet 128.9.xxx.xx--> 128.9.xxx.xx
inet6 fe80::203:47ff:fe07:e810%gif3 prefixlen 64 scopeid 0x6
inet 10.0.1.1 --> 10.0.1.2 netmask 0xfffffffc