BIRD <-> Quagga Compatiblity

Vonlanthen, Elmar Elmar.Vonlanthen at united-security-providers.ch
Wed May 30 09:36:36 CEST 2007


Hello Ondrej and Joseph

Thanks for your quick answers.

I have tried with both patches (but not with both together).

When I apply the topology.c-patch, everything is working. Quagga accepts the routes!
But when I apply the iface.c-patch bird doesn't send any packets anymore. 
Maybe you can find anything in the bird logfile.

Anyway, for me is it a reasonable solution.

Thanks for your help and have a nice day.

Best regards
Elmar

> -----Original Message-----
> From: Sörös József [mailto:soros.jozsef at multip.hu] 
> Sent: Sunday, May 27, 2007 8:13 AM
> To: Ondrej Filip; Vonlanthen, Elmar
> Cc: bird-users at network.cz
> Subject: Re: BIRD <-> Quagga Compatiblity
> 
> Once upon a time I suggested the  correction below in 
> nest/iface.c to get 
> bird handle interfaces
> with unnumbered and addresses correctly. It worked.
> 
> --- iface.c     2004-02-10 09:41:09.000000000 +0100
> +++ nest/iface.c        2004-02-10 02:58:51.000000000 +0100
> @@ -407,9 +407,13 @@
> 
>  WALK_LIST(a, i->addrs)
>    {
> -      if (!(a->flags & IA_SECONDARY) && (!b || a->scope > b->scope))
> -       b = a;
> -      a->flags &= ~IA_PRIMARY;
> +      if (!(a->flags & IA_SECONDARY)
> +                       && !(a->flags & IA_UNNUMBERED)
> +                       && (!b || a->scope > b->scope))
> +                       {
> +                               b = a;
> +               a->flags &= ~IA_PRIMARY;
> +                       }
>  }
>  res = (b != i->addr);
>  i->addr = b;
> 
> Joseph
> 
> Sörös József
> Multip Kft.
> E-Mail: soros.jozsef at multip.hu
> Mobil: +36309403985
> ----- Original Message ----- 
> 
> 
> From: "Ondrej Filip" <feela at network.cz>
> To: "Vonlanthen, Elmar" 
> <Elmar.Vonlanthen at united-security-providers.ch>
> Cc: <bird-users at network.cz>
> Sent: Saturday, May 26, 2007 5:09 PM
> Subject: Re: BIRD <-> Quagga Compatiblity
> 
> 
> > Vonlanthen, Elmar wrote:
> >> Hello
> >
> > Hello!
> >
> >>
> >> At the moment, I do some tests with BIRD. We would like to 
> replace our
> >> currently used routing daemon Quagga with this piece of software.
> >>
> >> My first impressions are very good. There are lot of 
> features, which are
> >> missing in Quagga. And the design is much better.
> >>
> >> I do some tests with OSPF in the following configuration:
> >>
> >> 172.16.101.0/24 -- router/gw 1 -- 10.254.1.4 --- P-t-P --- 
> 10.254.4.1 --
> >> router/gw 4 -- 172.16.104.0/24
> >>
> >
> > There are two problems I notice:
> >
> > 1) Bird thinks that the P-t-P interfaces are unnumbered. I 
> am not sure
> > whether this is correct. Could you please send me: "show interfaces"
> > and "show ospf interface" ?
> >
> > 2) I guess that Quagga has a bug in routing table calculation if the
> > network contains unnumbered P-t-P interfaces. We can me a 
> workaround:
> > Bird will send the interface as numbered.
> >
> > I prepared a quick and dirty solution (and I didn't test 
> it!). Try to
> > apply the attached patch. It is definitely wrong way, but 
> it may solve
> > your case. Let me know, if this helps.
> >
> > Ondrej
> >
> >> The complete setup is much more complicated. The Point-to-Point
> >> Connection is made between two GRE Interfaces with 
> multicast enabled.
> >> The GRE interfaces have a tunnel over an Ipsec transport 
> connection.
> >> There are 4 Tunnels between these two routers (two "wan" 
> links for each
> >> site), but only tunnel linkA to linkA is up (like above).
> >> The gre tunnel ist working. Both routing daemons can talk together.
> >>
> >> On both routers/gateways I can switch between Quagga and Bird.
> >> The OS on the routers is Debian Woody with Kernel 2.4.32.
> >>
> >> My first test results:
> >>
> >> Quagga - Quagga: Working fine (our currently productive setup).
> >> Bird - Bird: Working fine.
> >>
> >> Quagga - Bird:
> >>
> >> It is not working! But im not sure if the problem ist 
> Quagga or Bird.
> >> Bird gets the routes from Quagga, but Quagga doesn't take 
> the routes
> >> from Bird. But Bird is sending the packet with the routing 
> information.
> >>
> >> I have the following message in the quagga-ospfd logfile:
> >> 2007/05/25 08:12:05 OSPF: Route[External]: Calculate 
> AS-external-LSA to
> >> 172.16.104.0/24
> >> 2007/05/25 08:12:05 OSPF: Route[External]: Can't find 
> originating ASBR
> >> route
> >>
> >> With quagga - quagga (which is working) I have the 
> following log entry:
> >> 2007/05/25 08:06:08 OSPF: Route[External]: Calculate 
> AS-external-LSA to
> >> 172.16.104.0/24
> >> 2007/05/25 08:06:08 OSPF: Route[External]: AS-external-LSA 
> is MAXAGE
> >> 2007/05/25 08:06:08 OSPF: 
> LSA[Type5,id(172.16.104.0),ar(172.16.104.1)]:
> >> MaxAge LSA remover scheduled.
> >>
> >> The Quagga router of router 4 is listed in router 1 as 
> border-router. If
> >> I replace the routing daemon in router 4 with Bird, it 
> will not appear
> >> again as border-router.
> >>
> >> Another strange thing is, that in the LSA Update packets 
> from 10.254.4.1
> >> to 224.0.0.5, with Quagga I have the following data:
> >> Type: PTP
> >> Router ID: 172.16.101.1 (-> the difference!)
> >> Link Data: 10.254.4.1
> >> Link Type: 1 -Point-to-point connection to another router
> >>
> >> In Bird the data looks like this:
> >> Type: PTP
> >> Router ID: 172.16.101.1
> >> Link Data: 0.0.0.60 (-> the difference!)
> >> Link Type: 1 -Point-to-point connection to another router
> >>
> >> Is the link data field only informational?
> >>
> >> Unfortunately it is necessary for us, that the 
> communication between
> >> Bird and Quagga is working until everything is migrated to Bird.
> >>
> >> As attachement you will find tcpdump output, quagga log 
> files and the
> >> configuration files.
> >>
> >> Please, let me know if there are some informations missing.
> >>
> >> Thanks in advance.
> >>
> >> Best regards
> >> Elmar
> >>
> >> P.S. Sorry for my bad english :-(
> >
> >
> 
> 
> --------------------------------------------------------------
> ------------------
> 
> 
> > --- topology.c.good 2005-02-20 19:58:01.000000000 +0100
> > +++ topology.c 2007-05-26 17:00:26.000000000 +0200
> > @@ -81,11 +81,13 @@
> >    ln->id = neigh->rid;
> >    ln->metric = ifa->cost;
> >    ln->notos = 0;
> > +#if 0
> >    if (ifa->iface->flags && IA_UNNUMBERED)
> >    {
> >      ln->data = ifa->iface->index;
> >    }
> >    else
> > +#endif
> >    {
> >      ln->data = ipa_to_u32(ifa->iface->addr->ip);
> >    }
> > 
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bird_topology.log.gz
Type: application/x-gzip
Size: 1688 bytes
Desc: bird_topology.log.gz
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20070530/916d916a/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bird_iface.log.gz
Type: application/x-gzip
Size: 1020 bytes
Desc: bird_iface.log.gz
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20070530/916d916a/attachment-0003.bin>


More information about the Bird-users mailing list