<font size=2 face="sans-serif">Dear all,</font>
<br>
<br><font size=2 face="sans-serif">I am using Bird6 (rel. 1.3.11) on Fedora20
and try to build up a HUB and Spoke topology with IPv6:<br>
<br>
we want to have 60-70 spokes, all in area 0, to propagate their /dev/eth0's
IPv6 address (eg.:fed0:1:e005::1/64 -> eg.:fed0:1:e0xy::1/64 ->)
through an GRE-tunnel (IPv6-address fed0:1:ffff:ffff:ffff:ffff:x:0/124
) to the HUB, but the HUB must not propagate any such spokes IPv6 address
to any other Spoke.<br>
<br>
HUB-IPv6 address: on dev/eth0
fed0:1:a001::1<br>
<br>
Spoke1-IPv6 address: on dev/eth0
fed0:1:e005::1<br>
<br>
<br>
Spoke2-IPv6 address: on dev/eth0
fed0:1:e006::1<br>
<br>
<br>
Spokex-IPv6 address: on dev/eth0
fed0:1:e0xy::1<br>
<br>
<br>
In order to full-fil this citerias, I tried to only export "directly
connected" IPv6 addresses out of the HUB, but failed completely.<br>
Pls. find 2 tested configuration alternatives of the HUB below:<br>
</font>
<br><font size=2 face="sans-serif">Any idea or working config-examples,
how a HUBnSpoke topology with BIRD can be implemented, is very much appreciated</font>
<br>
<br><font size=2 face="sans-serif">thx</font>
<br>
<br><font size=2 face="sans-serif">Ar</font>
<br><font size=2 face="sans-serif"><br>
<br>
<b>Config-alternative 1)</b><br>
<br>
</font>
<br><font size=2 face="sans-serif"># Configure logging</font>
<br><font size=2 face="sans-serif">log syslog { debug, trace, info, remote,
warning, error, auth, fatal, bug };</font>
<br>
<br><font size=2 face="sans-serif"># Override router ID</font>
<br><font size=2 face="sans-serif">router id 172.16.128.10;</font>
<br>
<br><font size=2 face="sans-serif"># Define a route filter...</font>
<br><font size=2 face="sans-serif">filter ospf_rt_export {</font>
<br><font size=2 face="sans-serif"> if net =
fed0:1:a001::/64 then accept;</font>
<br><font size=2 face="sans-serif"> else reject;</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif"># The direct protocol automatically
generates device routes to</font>
<br><font size=2 face="sans-serif"># all network interfaces. Can exist
in as many instances as you wish</font>
<br><font size=2 face="sans-serif"># if you want to populate multiple routing
tables with device routes.</font>
<br><font size=2 face="sans-serif">protocol direct {</font>
<br><font size=2 face="sans-serif"> interface
"GRE*-ETH6", "tap*"; # Restrict network interfaces
it works with</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif"># This pseudo-protocol performs synchronization
between BIRD's routing</font>
<br><font size=2 face="sans-serif"># tables and the kernel. If your kernel
supports multiple routing tables</font>
<br><font size=2 face="sans-serif"># (as Linux 2.2.x does), you can run
multiple instances of the kernel</font>
<br><font size=2 face="sans-serif"># protocol and synchronize different
kernel tables with different BIRD tables.</font>
<br><font size=2 face="sans-serif">protocol kernel {</font>
<br><font size=2 face="sans-serif"> learn;
# Learn all alien
routes from the kernel</font>
<br><font size=2 face="sans-serif"> persist;
# Don't remove routes
on bird shutdown</font>
<br><font size=2 face="sans-serif"> scan time
20; # Scan kernel routing table every
20 seconds</font>
<br><font size=2 face="sans-serif"># import none;
# Default is import all</font>
<br><font size=2 face="sans-serif"> export all;
# Default is export none</font>
<br><font size=2 face="sans-serif"># kernel table
5; # Kernel table to synchronize with (default:
main)</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif"># This pseudo-protocol watches all interface
up/down events.</font>
<br><font size=2 face="sans-serif">protocol device {</font>
<br><font size=2 face="sans-serif"> scan time
10; # Scan interfaces every 10 seconds</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif"># Static routes (again, there can be
multiple instances, so that you</font>
<br><font size=2 face="sans-serif"># can disable/enable various groups
of static routes on the fly).</font>
<br><font size=2 face="sans-serif">protocol static {</font>
<br><font size=2 face="sans-serif"># disabled;
# Disable by default</font>
<br><font size=2 face="sans-serif"># table testable;
# Connect to a non-default table</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif">protocol ospf OIPv6 {</font>
<br><font size=2 face="sans-serif"> tick 2;</font>
<br><font size=2 face="sans-serif"># rfc1583compat
yes;</font>
<br><font size=2 face="sans-serif"> export filter
ospf_rt_export;</font>
<br><font size=2 face="sans-serif"> import all;</font>
<br><font size=2 face="sans-serif"> area 0.0.0.0
{</font>
<br><font size=2 face="sans-serif">#
stub no;</font>
<br><font size=2 face="sans-serif">
interface "GRE*-ETH6" {</font>
<br><font size=2 face="sans-serif">
hello 9;</font>
<br><font size=2 face="sans-serif">
retransmit 6;</font>
<br><font size=2 face="sans-serif">
cost 10;</font>
<br><font size=2 face="sans-serif">
transmit delay 5;</font>
<br><font size=2 face="sans-serif">
dead count 5;</font>
<br><font size=2 face="sans-serif">
wait 50;</font>
<br><font size=2 face="sans-serif">
type broadcast;</font>
<br><font size=2 face="sans-serif">#
authentication simple;</font>
<br><font size=2 face="sans-serif">#
password "pass";</font>
<br><font size=2 face="sans-serif">
};</font>
<br><font size=2 face="sans-serif">
};</font>
<br><font size=2 face="sans-serif"> };</font>
<br>
<br>
<br>
<br><font size=2 face="sans-serif"><b>Config-alternative 2)</b></font>
<br>
<br>
<br><font size=2 face="sans-serif"># Configure logging</font>
<br><font size=2 face="sans-serif">log syslog { debug, trace, info, remote,
warning, error, auth, fatal, bug };</font>
<br>
<br><font size=2 face="sans-serif"># Override router ID</font>
<br><font size=2 face="sans-serif">router id 172.16.128.10;</font>
<br>
<br><font size=2 face="sans-serif"># Define a route filter...</font>
<br>
<br><font size=2 face="sans-serif">filter ospf_redistconn_export {</font>
<br><font size=2 face="sans-serif"># redistribute connected</font>
<br><font size=2 face="sans-serif"> if ( source = RTS_DEVICE
) then {<br>
print "net accepted:", net;</font>
<br><font size=2 face="sans-serif"> ospf_metric2
= 20;</font>
<br><font size=2 face="sans-serif"> accept;</font>
<br><font size=2 face="sans-serif"> }</font>
<br>
<br><font size=2 face="sans-serif"> else reject;</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif">#filter sink { reject; }</font>
<br><font size=2 face="sans-serif">#filter okay { accept; }</font>
<br>
<br><font size=2 face="sans-serif"># The direct protocol automatically
generates device routes to</font>
<br><font size=2 face="sans-serif"># all network interfaces. Can exist
in as many instances as you wish</font>
<br><font size=2 face="sans-serif"># if you want to populate multiple routing
tables with device routes.</font>
<br><font size=2 face="sans-serif">protocol direct {</font>
<br><font size=2 face="sans-serif"> interface
"GRE*-ETH6", "tap*"; # Restrict network interfaces
it works with</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif"># This pseudo-protocol performs synchronization
between BIRD's routing</font>
<br><font size=2 face="sans-serif"># tables and the kernel. If your kernel
supports multiple routing tables</font>
<br><font size=2 face="sans-serif"># (as Linux 2.2.x does), you can run
multiple instances of the kernel</font>
<br><font size=2 face="sans-serif"># protocol and synchronize different
kernel tables with different BIRD tables.</font>
<br><font size=2 face="sans-serif">protocol kernel {</font>
<br><font size=2 face="sans-serif"> learn;
# Learn all alien
routes from the kernel</font>
<br><font size=2 face="sans-serif"> persist;
# Don't remove routes
on bird shutdown</font>
<br><font size=2 face="sans-serif"> scan time
20; # Scan kernel routing table every
20 seconds</font>
<br><font size=2 face="sans-serif"># import none;
# Default is import all</font>
<br><font size=2 face="sans-serif"> export all;
# Default is export none</font>
<br><font size=2 face="sans-serif"># kernel table
5; # Kernel table to synchronize with (default:
main)</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif"># This pseudo-protocol watches all interface
up/down events.</font>
<br><font size=2 face="sans-serif">protocol device {</font>
<br><font size=2 face="sans-serif"> scan time
10; # Scan interfaces every 10 seconds</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif"># Static routes (again, there can be
multiple instances, so that you</font>
<br><font size=2 face="sans-serif"># can disable/enable various groups
of static routes on the fly).</font>
<br><font size=2 face="sans-serif">protocol static {</font>
<br><font size=2 face="sans-serif"># disabled;
# Disable by default</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif">protocol ospf OIPv6 {</font>
<br><font size=2 face="sans-serif"> tick 2;</font>
<br><font size=2 face="sans-serif"># rfc1583compat
yes;</font>
<br><font size=2 face="sans-serif"> export filter
ospf_redistconn_export;</font>
<br><font size=2 face="sans-serif"> import all;</font>
<br><font size=2 face="sans-serif"> area 0.0.0.0
{</font>
<br><font size=2 face="sans-serif">#
stub no;</font>
<br><font size=2 face="sans-serif">
interface "GRE*-ETH6" {</font>
<br><font size=2 face="sans-serif">
hello 9;</font>
<br><font size=2 face="sans-serif">
retransmit 6;</font>
<br><font size=2 face="sans-serif">
cost 10;</font>
<br><font size=2 face="sans-serif">
transmit delay 5;</font>
<br><font size=2 face="sans-serif">
dead count 5;</font>
<br><font size=2 face="sans-serif">
wait 50;</font>
<br><font size=2 face="sans-serif">
type broadcast;</font>
<br><font size=2 face="sans-serif">#
authentication simple;</font>
<br><font size=2 face="sans-serif">#
password "pass";</font>
<br><font size=2 face="sans-serif">
};</font>
<br><font size=2 face="sans-serif">
};</font>
<br><font size=2 face="sans-serif"> };</font>
<br>
<br clear="both">
******************************************************<BR>
Notice: The information contained in this message is intended only for use of the individual(s) named above and may contain confidential, proprietary or legally privileged information. No confidentiality or privilege is waived or lost by any mistransmission. If you are not the intended recipient of this message you are hereby notified that you must not use, disseminate , copy it in any form or take any action in reliance of it. If you have received this message in error please delete it and any copies of it and notify the sender immediately.<BR>
*******************************************************<BR>