Problem with bird 1.3.9 on mips/linux
Hi I compiled bird 1.3.9 on Linux/MIPS (Debian 6.0.6) and I have problem that my bird is not listening on port TCP/179 ? Any comments or recommendations ? Rob # ps auxw | grep bird root 16334 0.0 0.2 2612 1056 pts/0 S 23:46 0:00 ./bird # netstat -a -l | grep bird unix 2 [ ACC ] STREAM LISTENING 84588 bird.ctl # birdc BIRD 1.3.9 ready. bird> show protocols all name proto table state since info device1 Device master up 23:46 Preference: 240 Input filter: ACCEPT Output filter: REJECT Routes: 0 imported, 0 exported, 0 preferred Route change stats: received rejected filtered ignored accepted Import updates: 0 0 0 0 0 Import withdraws: 0 0 --- 0 0 Export updates: 0 0 0 --- 0 Export withdraws: 0 --- --- --- 0 OLIVE4 BGP master start 23:46 Idle Description: JunOS Preference: 100 Input filter: bgp_olive4_in Output filter: bgp_olive4_out Routes: 0 imported, 0 exported, 0 preferred Route change stats: received rejected filtered ignored accepted Import updates: 0 0 0 0 0 Import withdraws: 0 0 --- 0 0 Export updates: 0 0 0 --- 0 Export withdraws: 0 --- --- --- 0 BGP state: Idle Neighbor address: 10.17.0.139 Neighbor AS: 60000 My bird.conf configuration file: log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug }; router id 10.17.0.254; listen bgp address 10.17.0.254 port 179; protocol device { scan time 60; } filter bgp_olive4_in { bgp_local_pref=100; accept; } filter bgp_olive4_out { reject; } protocol bgp OLIVE4 { description "JunOS"; local as 60000; source address 10.17.0.254; neighbor 10.17.0.139 as 60000; import filter bgp_olive4_in; export filter bgp_olive4_out; }
Hi, On Wed, Jan 23, 2013 at 12:51:33AM +0100, Robert Hass wrote:
I compiled bird 1.3.9 on Linux/MIPS (Debian 6.0.6) and I have problem that my bird is not listening on port TCP/179 ?
Any comments or recommendations ? I didn't look deeply, but recently someone had a similar problem. See
http://marc.info/?l=bird-users&m=135876825203614&w=2 for details. Best regards Uwe
Yeah It nearly the same issue. Thanks for pointing out. After adding multihop bird started to listen on port 179/TCP. But do I need really to configure multihop for iBGP session ?! (I'm from Juniper & Cisco house where for iBGP I just need IGP reach-ability, not multihop which is only for ebgp sessions). Rob
On 01/23/2013 10:55 AM, Robert Hass wrote:
Yeah It nearly the same issue. Thanks for pointing out. After adding multihop bird started to listen on port 179/TCP.
Yes, that was me.
But do I need really to configure multihop for iBGP session ?! (I'm from Juniper & Cisco house where for iBGP I just need IGP reach-ability, not multihop which is only for ebgp sessions).
It seems so. It's exactly the same reason that caused part of the confusion for me. I was thinking that BGP was supposed to use any other protocols to resolve a route to the iBGP peer, but BIRD wants to be told explicitely it's not on link. -- Hans van Kranenburg - System / Network Engineer T +31 (0)10 2760434 | hans.van.kranenburg@mendix.com | www.mendix.com
On 01/24/2013 01:55 AM, Hans van Kranenburg wrote:
On 01/23/2013 10:55 AM, Robert Hass wrote:
Yeah It nearly the same issue. Thanks for pointing out. After adding multihop bird started to listen on port 179/TCP.
Yes, that was me.
But do I need really to configure multihop for iBGP session ?! (I'm from Juniper & Cisco house where for iBGP I just need IGP reach-ability, not multihop which is only for ebgp sessions).
It seems so. It's exactly the same reason that caused part of the confusion for me. I was thinking that BGP was supposed to use any other protocols to resolve a route to the iBGP peer, but BIRD wants to be told explicitely it's not on link.
Anyway, I'm only on this list for about two weeks, but if this is a question that would pop up more often, then it could be a great idea to start a FAQ page on http://bird.network.cz/ , below the mailing list, wiki etc.. that would answer this question as wel as... "I'm setting up a bird configuration file for the first time, why do I have to go through 'syntax error' hell first, without it telling me where's the error and what was expected" <- been there, done that so many times this week, for example, the amount of having to do a ; at the end of anything or just totally not doing it because then you get another syntax error is really annoying and confusing when you want to get a basic configuration going. Another FAQ candidate: "Why do I have to specify import at a protocol for whatever I want to export from there, and export for whatever I want the central routing table to import from the protocol I'm configuring?" <- no need to comment on this I guess... /me trying to provide constructive feedback -- Hans van Kranenburg - System / Network Engineer T +31 (0)10 2760434 | hans.van.kranenburg@mendix.com | www.mendix.com
On 01/24/2013 02:07 AM, Hans van Kranenburg wrote:
On 01/24/2013 01:55 AM, Hans van Kranenburg wrote:
On 01/23/2013 10:55 AM, Robert Hass wrote:
Yeah It nearly the same issue. Thanks for pointing out. After adding multihop bird started to listen on port 179/TCP.
Yes, that was me.
But do I need really to configure multihop for iBGP session ?! (I'm from Juniper& Cisco house where for iBGP I just need IGP reach-ability, not multihop which is only for ebgp sessions).
It seems so. It's exactly the same reason that caused part of the confusion for me. I was thinking that BGP was supposed to use any other protocols to resolve a route to the iBGP peer, but BIRD wants to be told explicitely it's not on link.
Anyway, I'm only on this list for about two weeks, but if this is a question that would pop up more often, then it could be a great idea to start a FAQ page on http://bird.network.cz/ , below the mailing list, wiki etc.. that would answer this question as wel as...
"I'm setting up a bird configuration file for the first time, why do I have to go through 'syntax error' hell first, without it telling me where's the error and what was expected"<- been there, done that so many times this week, for example, the amount of having to do a ; at the end of anything or just totally not doing it because then you get another syntax error is really annoying and confusing when you want to get a basic configuration going.
Another FAQ candidate:
"Why do I have to specify import at a protocol for whatever I want to export from there, and export for whatever I want the central routing table to import from the protocol I'm configuring?"<- no need to comment on this I guess...
/me trying to provide constructive feedback
Well, I tried, but I see the result wasn't overly constructive yet, and I hijacked a thread, which is bad. I'll rephrase and put questions in separate threads, trying to provide input to improve documentation etc. -- Hans van Kranenburg - System / Network Engineer +31 (0)10 2760434 | hans.van.kranenburg@mendix.com | www.mendix.com
On 01/24/2013 11:35 AM, Hans van Kranenburg wrote:
On 01/24/2013 02:07 AM, Hans van Kranenburg wrote:
On 01/24/2013 01:55 AM, Hans van Kranenburg wrote:
On 01/23/2013 10:55 AM, Robert Hass wrote:
Yeah It nearly the same issue. Thanks for pointing out. After adding multihop bird started to listen on port 179/TCP.
Yes, that was me.
But do I need really to configure multihop for iBGP session ?! (I'm from Juniper& Cisco house where for iBGP I just need IGP reach-ability, not multihop which is only for ebgp sessions).
It seems so. It's exactly the same reason that caused part of the confusion for me. I was thinking that BGP was supposed to use any other protocols to resolve a route to the iBGP peer, but BIRD wants to be told explicitely it's not on link.
Anyway, I'm only on this list for about two weeks, but if this is a question that would pop up more often, then it could be a great idea to start a FAQ page on http://bird.network.cz/ , below the mailing list, wiki etc.. that would answer this question as wel as...
"I'm setting up a bird configuration file for the first time, why do I have to go through 'syntax error' hell first, without it telling me where's the error and what was expected"<- been there, done that so many times this week, for example, the amount of having to do a ; at the end of anything or just totally not doing it because then you get another syntax error is really annoying and confusing when you want to get a basic configuration going.
Another FAQ candidate:
"Why do I have to specify import at a protocol for whatever I want to export from there, and export for whatever I want the central routing table to import from the protocol I'm configuring?"<- no need to comment on this I guess...
/me trying to provide constructive feedback
Well, I tried, but I see the result wasn't overly constructive yet, and I hijacked a thread, which is bad.
Ah, somebody brought to my attention that this text can be interpreted like "nobody else replied to my ramblings and now I'm complaining about that again", which makes me even look more bad and grumpy. This is *not* what I meant to say. I meant to say that I was contemplating on my own text and found out I wasn't as constructive yet as I wanted to be. Bah, linguistics... :-)
I'll rephrase and put questions in separate threads, trying to provide input to improve documentation etc.
-- Hans van Kranenburg - System / Network Engineer +31 (0)10 2760434 | hans.van.kranenburg@mendix.com | www.mendix.com
On Thu, Jan 24, 2013 at 02:07:13AM +0100, Hans van Kranenburg wrote:
Anyway, I'm only on this list for about two weeks, but if this is a question that would pop up more often, then it could be a great idea to start a FAQ page on http://bird.network.cz/ , below the mailing list, wiki etc.. that would answer this question as wel as...
There is a FAQ page in BIRD wiki: https://redmine.labs.nic.cz/projects/bird/wiki/FAQ Perhaps we could add a direct link on the main web page.
Another FAQ candidate:
"Why do I have to specify import at a protocol for whatever I want to export from there, and export for whatever I want the central routing table to import from the protocol I'm configuring?" <- no need to comment on this I guess...
Well, it is from the point of view of the routing table not from the point of view of the protocol. I am not sure which one is more intuitive, but for a BGP protocol 'export to the protocol' also means 'export to the peer', so POW of the routing table is probably more important. -- 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."
01/24/2013 08:56 PM, Ondrej Zajicek wrote:
On Thu, Jan 24, 2013 at 02:07:13AM +0100, Hans van Kranenburg wrote:
Anyway, I'm only on this list for about two weeks, but if this is a question that would pop up more often, then it could be a great idea to start a FAQ page on http://bird.network.cz/ , below the mailing list, wiki etc.. that would answer this question as wel as...
There is a FAQ page in BIRD wiki:
https://redmine.labs.nic.cz/projects/bird/wiki/FAQ
Perhaps we could add a direct link on the main web page.
Ah, I think that would be a good idea yes. I tried to register and add a FAQ but it seems editing is not allowed for new accounts, so here's a small contribution for the FAQ to review and add: :-) Q: When I configure an IPv6 blackhole route on Linux, the route doesn't get added to the linux routing table. Instead, when enabling debugging, I see the following in syslog: "Netlink: No such device". What does this mean, and how do I blackhole IPv6 traffic? A: The Linux kernel does not (yet) support blackhole for IPv6 routes. A commonly used alternative is to use an unreachable route, which gets added like 'unreachable 2001:db8:1337::/48 dev lo' instead. If you want to blackhole traffic without sending out icmp errors on linux, you can route it to a dummy device. Just modprobe dummy, (and/or add dummy to /etc/modules). This will add a dummy0 interface to your system by default, so you can route traffic into it. In BIRD configuration this can be done using e.g. route 2001:db8:1337::/48 via "dummy0"
Another FAQ candidate:
"Why do I have to specify import at a protocol for whatever I want to export from there, and export for whatever I want the central routing table to import from the protocol I'm configuring?" <- no need to comment on this I guess...
Well, it is from the point of view of the routing table not from the point of view of the protocol. I am not sure which one is more intuitive, but for a BGP protocol 'export to the protocol' also means 'export to the peer', so POW of the routing table is probably more important.
It's like looking at a Necker cube. :-) I'll try to explain the view I had while struggling with it. From the documentation I learned: BIRD has one (or more) central routing tables that protocols push .oO(export) routes to and receive .oO(import) routes from: "When the routing table gets a route from a protocol" (the protocol exports routes to the routing table), "some protocols [..] receive [..] entries in routing tables" (they import routes from the routing tables) protocol kernel { import none; export all; } So I think: ah, protocol kernel wants to export something to that central routing table! I learned about the central routing table, so kernel is importing none from it, and exporting all it knows to it, so other protocols can use it. The main reason for confusion that is that import and export are defined *inside* the protocol declaration... What I did expect in this case was something like: protocol static static_bgp { route 10.0.0.0/8 blackhole; } protocol bgp some_bgp { neighbor etc etc... } routing table default { from static_bgp import all; to some_bgp export where proto = "static_bgp"; } I'm not suggesting that this should ever be implemented, just using it as example, so others who see the necker cube the other way first, might read this and learn it's not done this way in BIRD. And then, after *headdesk*-ing and re-RTFM again (because it's not possible to suck up the complete documentation the first day you're playing with bird) I had to re-organize my mind and look at the necker cube the other way... So instead of thinking the protocols are importing routes from the central table and exporting stuff to it, I need to think about the protocols like... kernel wants to export routes from BIRD to the os kernel routing table, and bgp wants to export routes from BIRD to bgp peers... bgp can import routes from peers to BIRD etc... etc... When thinking of BIRD as a whole this makes more sense than only thinking about the internals of it. -- Hans van Kranenburg - System / Network Engineer T +31 (0)10 2760434 | hans.van.kranenburg@mendix.com | www.mendix.com
On Wed, Jan 23, 2013 at 10:55:47AM +0100, Robert Hass wrote:
Yeah It nearly the same issue. Thanks for pointing out. After adding multihop bird started to listen on port 179/TCP.
But do I need really to configure multihop for iBGP session ?! (I'm from Juniper & Cisco house where for iBGP I just need IGP reach-ability, not multihop which is only for ebgp sessions).
Well, there is not much difference for singlehop and multihop iBGP, essentially just TTL, waiting for interface/prefix to start and immediate shutdown when interface/prefix disappears. It is true that multihop default is probably more natural for iBGP, but in BIRD, singlehop/multihop setting is independent of iBGP/eBGP. -- 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."
participants (4)
-
Hans van Kranenburg -
Ondrej Zajicek -
Robert Hass -
Uwe Kleine-König