I don't see a single bit about this in the documentation ... For quite some time bird served me very well for dynamic routing within a small network using the BGP method. Until the day when I wanted to enable IPv6 on all routers. The Debian distribution ships two packages, bird and bird6, and as far as I can see the only difference is the latter was compiled using the --enable-ipv6 option. Now what am I supposed to do? Is bird6 supposed to do _all_ the work, v4 and v6? If yes, is it a feature bird6 cannot handle IPv4 addresses in the bgp "neighbor" statement (yields "syntax error")? Prefixing into a v6 address using '::ffff:' survives the parser, but these addresses are not routed. Or should I really start bird6 as a second routing daemon to handle the IPv6 prefixes? This is silly since this means duplication of the configuration file and all the peer detection and route switching is not synchronized. What magic did I miss? Christoph
On 29.09.2010 21:16 Christoph Biedl wrote
I don't see a single bit about this in the documentation ...
For quite some time bird served me very well for dynamic routing within a small network using the BGP method. Until the day when I wanted to enable IPv6 on all routers.
The Debian distribution ships two packages, bird and bird6, and as far as I can see the only difference is the latter was compiled using the --enable-ipv6 option.
Now what am I supposed to do?
Is bird6 supposed to do _all_ the work, v4 and v6?
no, it's for v6 _only_!
If yes, is it a feature bird6 cannot handle IPv4 addresses in the bgp "neighbor" statement (yields "syntax error")? Prefixing into a v6 address using '::ffff:' survives the parser, but these addresses are not routed.
Or should I really start bird6 as a second routing daemon to handle the IPv6 prefixes?
exactly!
This is silly since this means duplication of the configuration file and all the peer detection and route switching is not synchronized.
Oh I would call it silly. From a protocol point of view, IPv6 has nothing to do with IPv4.
What magic did I miss?
Well, no magic at all. Simply use bird for IPv4 and bird6 for IPv6. Works like a charm ;-) Arnold -- Arnold Nipper / nIPper consulting, Sandhausen, Germany email: arnold@nipper.de phone: +49 6224 9259 299 mobile: +49 172 2650958 fax: +49 6224 9259 333
On Wed, Sep 29, 2010 at 09:16:40PM +0200, Christoph Biedl wrote:
Or should I really start bird6 as a second routing daemon to handle the IPv6 prefixes?
Yes.
This is silly since this means duplication of the configuration file and all the peer detection and route switching is not synchronized.
It seems silly for the first moment, but it has several advantages. IPv4 and IPv6 usually needs slightly different configs, different filters (esp. addresses in filters) and having separate IPv4 sessions and IPv6 sessions means that you forward IPv4/6 routes only if IPv4/6 is really working on the routers. BTW, to run both bird4 and bird6 on one machine you have to add 'listen bgp v6only;' global option to the bird6 config file. -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
Ondrej Zajicek píše v St 29. 09. 2010 v 22:41 +0200:
On Wed, Sep 29, 2010 at 09:16:40PM +0200, Christoph Biedl wrote:
Or should I really start bird6 as a second routing daemon to handle the IPv6 prefixes?
Yes.
This is silly since this means duplication of the configuration file and all the peer detection and route switching is not synchronized.
It seems silly for the first moment, but it has several advantages. IPv4 and IPv6 usually needs slightly different configs, different filters (esp. addresses in filters) and having separate IPv4 sessions and IPv6 sessions means that you forward IPv4/6 routes only if IPv4/6 is really working on the routers.
And what about BGP+ announcing IPv6 prefixes over IPv4 connection?
On Thu, Sep 30, 2010 at 07:16:34PM +0200, David Rohleder wrote:
It seems silly for the first moment, but it has several advantages. IPv4 and IPv6 usually needs slightly different configs, different filters (esp. addresses in filters) and having separate IPv4 sessions and IPv6 sessions means that you forward IPv4/6 routes only if IPv4/6 is really working on the routers.
And what about BGP+ announcing IPv6 prefixes over IPv4 connection?
I am not sure what kind of answer you would expect. BIRD (AFAIK) supports announcing IPv6 over IPv4 connection, but it is not a suggested configuration. Because if bird6 is listening also on IPv4 socket, you cannot start bird4 on the same address/iface. And also it can forward IPv6 routes even if IPv6 is not really working on the router. -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
Ondrej Zajicek píše v Pá 01. 10. 2010 v 14:27 +0200:
On Thu, Sep 30, 2010 at 07:16:34PM +0200, David Rohleder wrote:
It seems silly for the first moment, but it has several advantages. IPv4 and IPv6 usually needs slightly different configs, different filters (esp. addresses in filters) and having separate IPv4 sessions and IPv6 sessions means that you forward IPv4/6 routes only if IPv4/6 is really working on the routers.
And what about BGP+ announcing IPv6 prefixes over IPv4 connection?
I am not sure what kind of answer you would expect. BIRD (AFAIK) supports announcing IPv6 over IPv4 connection, but it is not a suggested configuration. Because if bird6 is listening also on IPv4 socket, you cannot start bird4 on the same address/iface. And also it can forward IPv6 routes even if IPv6 is not really working on the router.
OK, I have my upstream provider providing my IPv4 and IPv6 connectivity. Your idea is to run 2 instances of BIRD and 2 BGP sessions to my peers just to announce my IPv4 and IPv6 routes, isn't it?
On Fri, Oct 01, 2010 at 02:24:01PM +0200, David Rohleder wrote:
I am not sure what kind of answer you would expect. BIRD (AFAIK) supports announcing IPv6 over IPv4 connection, but it is not a suggested configuration. Because if bird6 is listening also on IPv4 socket, you cannot start bird4 on the same address/iface. And also it can forward IPv6 routes even if IPv6 is not really working on the router.
OK, I have my upstream provider providing my IPv4 and IPv6 connectivity. Your idea is to run 2 instances of BIRD and 2 BGP sessions to my peers just to announce my IPv4 and IPv6 routes, isn't it?
Yes. -- Elen sila lumenn' omentielvo Ondrej 'SanTiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."
Ondrej Zajicek píše v Pá 01. 10. 2010 v 15:42 +0200:
On Fri, Oct 01, 2010 at 02:24:01PM +0200, David Rohleder wrote:
I am not sure what kind of answer you would expect. BIRD (AFAIK) supports announcing IPv6 over IPv4 connection, but it is not a suggested configuration. Because if bird6 is listening also on IPv4 socket, you cannot start bird4 on the same address/iface. And also it can forward IPv6 routes even if IPv6 is not really working on the router.
OK, I have my upstream provider providing my IPv4 and IPv6 connectivity. Your idea is to run 2 instances of BIRD and 2 BGP sessions to my peers just to announce my IPv4 and IPv6 routes, isn't it?
Yes.
And your implementation of IS-IS will require running OSI protocol stack and CLNS? :-)
Hi!
And your implementation of IS-IS will require running OSI protocol stack and CLNS? :-)
If somebody ever implements IS-IS in BIRD. IMHO it's much better to let IS-IS enjoy the fate of dinosaurs, being one of them :-) Have a nice fortnight -- Martin `MJ' Mares <mj@ucw.cz> http://mj.ucw.cz/ Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth P.C.M.C.I.A. stands for `People Can't Memorize Computer Industry Acronyms'
On 01.10.2010 17:17 Martin Mares wrote
Hi!
And your implementation of IS-IS will require running OSI protocol stack and CLNS? :-)
If somebody ever implements IS-IS in BIRD.
IMHO it's much better to let IS-IS enjoy the fate of dinosaurs, being one of them :-)
iirc a lot of peoples use IS-IS as an IGP as it behaves better then OSPF. YMMV of course, Arnold -- Arnold Nipper / nIPper consulting, Sandhausen, Germany email: arnold@nipper.de phone: +49 6224 9259 299 mobile: +49 172 2650958 fax: +49 6224 9259 333
Martin Mares píše v Pá 01. 10. 2010 v 17:17 +0200:
Hi!
And your implementation of IS-IS will require running OSI protocol stack and CLNS? :-)
If somebody ever implements IS-IS in BIRD.
IMHO it's much better to let IS-IS enjoy the fate of dinosaurs, being one of them :-)
Oh, come on. IS-IS is much better than OSPF. It's protocol can be extended using new TLV values (as it was extended to do IPv4 routing). With IS-IS it would be much easier to deploy IPv6 or any other protocol like label distribution in MPLS. But you are right, more simple protocol wins even though it will make your live harder later.
Have a nice fortnight
Hi!
Oh, come on. IS-IS is much better than OSPF.
I am not sure if anything that uses ASN.1 can be considered better ;-) At least in my eyes, ASN.1 is an equivalent of TeX badness -10000, i.e., it makes an arbitrary protocol infinitely ugly.
It's protocol can be extended using new TLV values (as it was extended to do IPv4 routing). With IS-IS it would be much easier to deploy IPv6 or any other protocol like label distribution in MPLS. But you are right, more simple protocol wins even though it will make your live harder later.
AFAIK, the problems with adding IPv6 support to OSPF were not primarily caused by the fixed format of addresses (it would be close to trivial to change the protocol to use any format of addresses), but instead by the rather stupid design decision regarding construction of network ID's, which was problematic even with plain IPv4 CIDR. Have a nice fortnight -- Martin `MJ' Mares <mj@ucw.cz> http://mj.ucw.cz/ Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth Quidquid latine dictum sit, altum videtur.
On 01.10.2010 14:24 David Rohleder wrote
Ondrej Zajicek píše v Pá 01. 10. 2010 v 14:27 +0200:
On Thu, Sep 30, 2010 at 07:16:34PM +0200, David Rohleder wrote:
It seems silly for the first moment, but it has several advantages. IPv4 and IPv6 usually needs slightly different configs, different filters (esp. addresses in filters) and having separate IPv4 sessions and IPv6 sessions means that you forward IPv4/6 routes only if IPv4/6 is really working on the routers.
And what about BGP+ announcing IPv6 prefixes over IPv4 connection?
I am not sure what kind of answer you would expect. BIRD (AFAIK) supports announcing IPv6 over IPv4 connection, but it is not a suggested configuration. Because if bird6 is listening also on IPv4 socket, you cannot start bird4 on the same address/iface. And also it can forward IPv6 routes even if IPv6 is not really working on the router.
OK, I have my upstream provider providing my IPv4 and IPv6 connectivity. Your idea is to run 2 instances of BIRD and 2 BGP sessions to my peers just to announce my IPv4 and IPv6 routes, isn't it?
Imho that's BCP ... do IPv4 via IPv4 and IPv6 via IPv6. Arnold -- Arnold Nipper / nIPper consulting, Sandhausen, Germany email: arnold@nipper.de phone: +49 6224 9259 299 mobile: +49 172 2650958 fax: +49 6224 9259 333
David Rohleder wrote...
And what about BGP+ announcing IPv6 prefixes over IPv4 connection?
Well, bird at least this (AFAICS) avoids the awkward situation a neighboring peer announces some v6 prefixes but I cannot route them as I only have an v4 link to home. My main anger was the confusion. The sentence "bird uses a completely separated setup to route v6, so do duplicate configuration and stuff" was missing in the documentation (or it's too well hidden). Although I still consider separated configuration anything but helpful. Christoph
participants (5)
-
Arnold Nipper -
Christoph Biedl -
David Rohleder -
Martin Mares -
Ondrej Zajicek