BIRD <-> Quagga Compatiblity
Vonlanthen, Elmar
Elmar.Vonlanthen at united-security-providers.ch
Wed May 30 17:25:10 CEST 2007
Hello Ondrej
Here the output of the commands, I have removed the output of the interfaces eth3 (not configured) and imq0 to imq7:
bird-orig> show ospf interface
ospf1:
Interface "gAAchgut1":
Type: point-to-point
Area: 0.0.0.0 (0)
State: point-to-point
Priority: 1
Cost: 20
Hello timer: 10
Wait timer: 40
Dead timer: 40
Retransmit timer: 5
bird-iface-patched> show ospf interface
ospf1:
<was empty!>
--------------------------------------
bird-orig> show interfaces
lo up (index=1)
MultiAccess AdminUp LinkUp Loopback Ignored MTU=16436
127.0.0.1/8 (Primary, broadcast 127.255.255.255, scope host)
eth0 up (index=2)
MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
172.16.104.1/24 (Primary, broadcast 172.16.104.255, scope site)
eth1 up (index=3)
MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
10.10.104.1/25 (Primary, broadcast 10.10.104.127, scope site)
10.10.104.4/25 (Secondary, broadcast 10.10.104.127, scope site)
10.10.104.10/25 (Secondary, broadcast 10.10.104.127, scope site)
eth2 up (index=4)
MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
10.100.104.1/24 (Primary, broadcast 10.100.104.255, scope site)
10.100.104.4/24 (Secondary, broadcast 10.100.104.255, scope site)
ipsec0 up (index=55)
MultiAccess AdminUp LinkUp MTU=1380
10.10.104.1/25 (Primary, broadcast 10.10.104.127, scope site)
ipsec1 up (index=56)
MultiAccess AdminUp LinkUp MTU=1380
10.10.104.4/25 (Primary, broadcast 10.10.104.127, scope site)
ipsec2 up (index=57)
MultiAccess AdminUp LinkUp MTU=1380
10.100.104.1/24 (Primary, broadcast 10.100.104.255, scope site)
ipsec3 up (index=58)
MultiAccess AdminUp LinkUp MTU=1380
10.100.104.4/24 (Primary, broadcast 10.100.104.255, scope site)
gAAchgut1 up (index=63)
PtP Multicast AdminUp LinkUp MTU=1356
10.254.4.1/32 (Primary, broadcast 10.254.1.4, opposite 10.254.1.4, scope site, unnumbered)
bird-iface-patched> show interfaces
lo up (index=1)
MultiAccess AdminUp LinkUp Loopback Ignored MTU=16436
127.0.0.1/8 (Primary, broadcast 127.255.255.255, scope host)
eth0 up (index=2)
MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
172.16.104.1/24 (Primary, broadcast 172.16.104.255, scope site)
eth1 up (index=3)
MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
10.10.104.1/25 (Primary, broadcast 10.10.104.127, scope site)
10.10.104.4/25 (Secondary, broadcast 10.10.104.127, scope site)
10.10.104.10/25 (Secondary, broadcast 10.10.104.127, scope site)
eth2 up (index=4)
MultiAccess Broadcast Multicast AdminUp LinkUp MTU=1500
10.100.104.1/24 (Primary, broadcast 10.100.104.255, scope site)
10.100.104.4/24 (Secondary, broadcast 10.100.104.255, scope site)
ipsec0 up (index=55)
MultiAccess AdminUp LinkUp MTU=1380
10.10.104.1/25 (Primary, broadcast 10.10.104.127, scope site)
ipsec1 up (index=56)
MultiAccess AdminUp LinkUp MTU=1380
10.10.104.4/25 (Primary, broadcast 10.10.104.127, scope site)
ipsec2 up (index=57)
MultiAccess AdminUp LinkUp MTU=1380
10.100.104.1/24 (Primary, broadcast 10.100.104.255, scope site)
ipsec3 up (index=58)
MultiAccess AdminUp LinkUp MTU=1380
10.100.104.4/24 (Primary, broadcast 10.100.104.255, scope site)
gAAchgut1 DOWN (index=63)
PtP Multicast AdminUp LinkUp MTU=1356
10.254.4.1/32 (Unselected, broadcast 10.254.1.4, opposite 10.254.1.4, scope site, unnumbered)
Why is the GRE-interface in bird shown as down?
This is the output of "ifconfig gAAchgut1":
gAAchgut1 Link encap:UNSPEC HWaddr 0A-0A-68-01-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.254.4.1 P-t-P:10.254.1.4 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1356 Metric:1
RX packets:158 errors:0 dropped:0 overruns:0 frame:0
TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:11108 (10.8 KiB) TX bytes:8588 (8.3 KiB)
Best regards
Elmar
> -----Original Message-----
> From: Ondrej Filip [mailto:feela at network.cz]
> Sent: Wednesday, May 30, 2007 11:11 AM
> To: Vonlanthen, Elmar
> Cc: bird-users at network.cz
> Subject:
>
> Vonlanthen, Elmar wrote:
> > Hello Ondrej and Joseph
>
> Elmar,
> could you please send outputs of:
> show interfaces
> show ospf interfaces
>
> without any patch and with iface.c-patch?
>
> Ondrej
>
>
> >
> > 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);
> >>> }
> >>>
> >>
>
>
More information about the Bird-users
mailing list