Dear all,
I am using Bird6 (rel. 1.3.11) on Fedora20
and try to build up a HUB and Spoke topology with IPv6:
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.
HUB-IPv6 address: on dev/eth0
fed0:1:a001::1
Spoke1-IPv6 address: on dev/eth0
fed0:1:e005::1
Spoke2-IPv6 address: on dev/eth0
fed0:1:e006::1
Spokex-IPv6 address: on dev/eth0
fed0:1:e0xy::1
In order to full-fil this citerias, I tried to only export "directly
connected" IPv6 addresses out of the HUB, but failed completely.
Pls. find 2 tested configuration alternatives of the HUB below:
Any idea or working config-examples,
how a HUBnSpoke topology with BIRD can be implemented, is very much appreciated
thx
Ar
Config-alternative 1)
# Configure logging
log syslog { debug, trace, info, remote,
warning, error, auth, fatal, bug };
# Override router ID
router id 172.16.128.10;
# Define a route filter...
filter ospf_rt_export {
if net =
fed0:1:a001::/64 then accept;
else reject;
}
# The direct protocol automatically
generates device routes to
# all network interfaces. Can exist
in as many instances as you wish
# if you want to populate multiple routing
tables with device routes.
protocol direct {
interface
"GRE*-ETH6", "tap*"; # Restrict network interfaces
it works with
}
# This pseudo-protocol performs synchronization
between BIRD's routing
# tables and the kernel. If your kernel
supports multiple routing tables
# (as Linux 2.2.x does), you can run
multiple instances of the kernel
# protocol and synchronize different
kernel tables with different BIRD tables.
protocol kernel {
learn;
# Learn all alien
routes from the kernel
persist;
# Don't remove routes
on bird shutdown
scan time
20; # Scan kernel routing table every
20 seconds
# import none;
# Default is import all
export all;
# Default is export none
# kernel table
5; # Kernel table to synchronize with (default:
main)
}
# This pseudo-protocol watches all interface
up/down events.
protocol device {
scan time
10; # Scan interfaces every 10 seconds
}
# Static routes (again, there can be
multiple instances, so that you
# can disable/enable various groups
of static routes on the fly).
protocol static {
# disabled;
# Disable by default
# table testable;
# Connect to a non-default table
}
protocol ospf OIPv6 {
tick 2;
# rfc1583compat
yes;
export filter
ospf_rt_export;
import all;
area 0.0.0.0
{
#
stub no;
interface "GRE*-ETH6" {
hello 9;
retransmit 6;
cost 10;
transmit delay 5;
dead count 5;
wait 50;
type broadcast;
#
authentication simple;
#
password "pass";
};
};
};
Config-alternative 2)
# Configure logging
log syslog { debug, trace, info, remote,
warning, error, auth, fatal, bug };
# Override router ID
router id 172.16.128.10;
# Define a route filter...
filter ospf_redistconn_export {
# redistribute connected
if ( source = RTS_DEVICE
) then {
print "net accepted:", net;
ospf_metric2
= 20;
accept;
}
else reject;
}
#filter sink { reject; }
#filter okay { accept; }
# The direct protocol automatically
generates device routes to
# all network interfaces. Can exist
in as many instances as you wish
# if you want to populate multiple routing
tables with device routes.
protocol direct {
interface
"GRE*-ETH6", "tap*"; # Restrict network interfaces
it works with
}
# This pseudo-protocol performs synchronization
between BIRD's routing
# tables and the kernel. If your kernel
supports multiple routing tables
# (as Linux 2.2.x does), you can run
multiple instances of the kernel
# protocol and synchronize different
kernel tables with different BIRD tables.
protocol kernel {
learn;
# Learn all alien
routes from the kernel
persist;
# Don't remove routes
on bird shutdown
scan time
20; # Scan kernel routing table every
20 seconds
# import none;
# Default is import all
export all;
# Default is export none
# kernel table
5; # Kernel table to synchronize with (default:
main)
}
# This pseudo-protocol watches all interface
up/down events.
protocol device {
scan time
10; # Scan interfaces every 10 seconds
}
# Static routes (again, there can be
multiple instances, so that you
# can disable/enable various groups
of static routes on the fly).
protocol static {
# disabled;
# Disable by default
}
protocol ospf OIPv6 {
tick 2;
# rfc1583compat
yes;
export filter
ospf_redistconn_export;
import all;
area 0.0.0.0
{
#
stub no;
interface "GRE*-ETH6" {
hello 9;
retransmit 6;
cost 10;
transmit delay 5;
dead count 5;
wait 50;
type broadcast;
#
authentication simple;
#
password "pass";
};
};
};
******************************************************
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.
*******************************************************