Hello, I'm new to this list, so please bear with me. I'm trying to set up a BGP route advertising server with BIRD, in order to update IPv6 static routes to a juniper router. My configuration is as follows (addresses omitted to avoid identification): ==START== log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug }; log stderr all; router id <omitted>; debug protocols all; protocol device { scan time 10; # Scan interfaces every 10 seconds } protocol static { route <subnet>/64 via <gateway>; route <subnet>/64 via <gateway>; route <subnet>/64 via <gateway>; } protocol bgp { local as 64515; source address <own address>; rs client; export filter { if source = RTS_STATIC then { #bgp_next_hop = <gateway>; #gw = <gateway>; accept; } }; neighbor <omitted> as <omitted>; } ==END== I can see the correct routes being advertised, even with the correct 'via' in Debug traces, However, received routes are in the form of: <subnet>/64 via <bird source address>. I'm sure I haven't set next-hop self, so this behaviour seems strange to me. Could anyone please provide some insight into this? Cheers, -- /\/\ Hostingvereniging Soleus | Community-driven < ** > http://soleus.nu | Virtual Private Servers \/\/ Sen (IEF) Verbrugge (CT-Projectlead) | & more ...
On Fri, Nov 20, 2009 at 01:57:43AM +0100, S.H. Verbrugge wrote:
Hello,
I'm new to this list, so please bear with me.
I'm trying to set up a BGP route advertising server with BIRD, in order to update IPv6 static routes to a juniper router.
My configuration is as follows (addresses omitted to avoid identification):
...
I can see the correct routes being advertised, even with the correct 'via' in Debug traces, However, received routes are in the form of:
<subnet>/64 via <bird source address>.
I'm sure I haven't set next-hop self, so this behaviour seems strange to me.
Could anyone please provide some insight into this?
Hello Usually BGP IPv6 update has to contain both global next hop address and link-local next hop address. If you export static routes to BGP, BIRD knows global next hop address, but does not know link local next hop address and cannot send proper update. See documentation for option 'missing lladdr'. You would probably need to set 'missing lladdr ignore'. -- 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."
-----Original Message----- From: Ondrej Zajicek [mailto:santiago@crfreenet.org] Sent: vrijdag 20 november 2009 9:17 To: S.H. Verbrugge Cc: bird-users@network.cz Subject: Re: Problem setting IPv6 next-hop in BGP
Hello
Usually BGP IPv6 update has to contain both global next hop address and link-local next hop address. If you export static routes to BGP, BIRD knows global next hop address, but does not know link local next hop address and cannot send proper update. See documentation for option 'missing lladdr'. You would probably need to set 'missing lladdr ignore'.
-- 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."
The 1.1.6 release seems to have fixed it (using missing lladdr ignore). I just found out about the release after I sent this mail :-)
Doesn't answer your question, but it seems to me that rather than doing :
export filter { if source = RTS_STATIC then {
To make sure you only export the static routes, not the "device" routes,
it might be better to set up a separate routing table like so:
I just tried taking this route, but it seems BIRD is ignoring the routes unless I set up a filter to explicitely accept RTS_STATIC. But I suppose separating from the kernel routing table IS useful in my case. Cheers, -- /\/\ Hostingvereniging Soleus | Community-driven < ** > http://soleus.nu | Virtual Private Servers \/\/ Sen (IEF) Verbrugge (CT-Projectlead) | & more ...
On Fri, Nov 20, 2009 at 10:36:41AM +0100, S.H. Verbrugge wrote:
Doesn't answer your question, but it seems to me that rather than doing :
export filter { if source = RTS_STATIC then {
To make sure you only export the static routes, not the "device" routes,
it might be better to set up a separate routing table like so:
I just tried taking this route, but it seems BIRD is ignoring the routes unless I set up a filter to explicitely accept RTS_STATIC.
You would have to set for example 'export all'. Default is 'export none', therefore nothing is exported. -- 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."
Doesn't answer your question, but it seems to me that rather than doing : export filter { if source = RTS_STATIC then { To make sure you only export the static routes, not the "device" routes, it might be better to set up a separate routing table like so: log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug }; log stderr all; router id <omitted>; debug protocols all; table export_routes; # <------------- protocol device { scan time 10; # Scan interfaces every 10 seconds } protocol static { table export_routes; route <subnet>/64 via <gateway>; route <subnet>/64 via <gateway>; route <subnet>/64 via <gateway>; } protocol bgp { table export_routes; local as 64515; source address <own address>; rs client; neighbor <omitted> as <omitted>; } That way you've segragated the routing table you want to announce from the kernel routing table altogether, and saved yourself the filter. 2009/11/20 S.H. Verbrugge <ief@soleus.nu>
Hello,
I'm new to this list, so please bear with me.
I'm trying to set up a BGP route advertising server with BIRD, in order to update IPv6 static routes to a juniper router.
My configuration is as follows (addresses omitted to avoid identification):
==START== log syslog { debug, trace, info, remote, warning, error, auth, fatal, bug }; log stderr all;
router id <omitted>; debug protocols all;
protocol device { scan time 10; # Scan interfaces every 10 seconds }
protocol static { route <subnet>/64 via <gateway>; route <subnet>/64 via <gateway>; route <subnet>/64 via <gateway>; }
protocol bgp { local as 64515; source address <own address>; rs client;
export filter { if source = RTS_STATIC then { #bgp_next_hop = <gateway>; #gw = <gateway>; accept; } };
neighbor <omitted> as <omitted>; } ==END==
I can see the correct routes being advertised, even with the correct 'via' in Debug traces, However, received routes are in the form of:
<subnet>/64 via <bird source address>.
I'm sure I haven't set next-hop self, so this behaviour seems strange to me.
Could anyone please provide some insight into this?
Cheers, -- /\/\ Hostingvereniging Soleus | Community-driven < ** > http://soleus.nu | Virtual Private Servers \/\/ Sen (IEF) Verbrugge (CT-Projectlead) | & more ...
participants (3)
-
David J Craigon -
Ondrej Zajicek -
S.H. Verbrugge