[Babel-users] babel, ipv6 and vlans

Dave Taht d at teklibre.org
Sun Feb 28 17:34:09 UTC 2010


In my never ending quest to find a safe way to experiment on a 
production network with new routing protocols, I said "to myself, self, 
why not try a vlan?"

So I took my four test babel hosts again, and setup vlans on each one, 
and have issues, (probably  my own stupidity)


buddy.local:

ip link add link eth0 name mgmt0 type vlan id 5
ip addr add 192.168.12.30/24 dev mgmt0
ip link set mgmt0 up

mahal.local:

ip link add link wlan0 name mgmt0 type vlan id 5
ip addr add 192.168.12.31/24 dev mgmt0
ip link set mgmt0 up

wireless.local:

ip link add link br-lan name mgmt0 type vlan id 5
ip addr add 192.168.12.5/24 dev mgmt0
ip link set mgmt0 up

jaco.local:

No changes, just listening to babel.

So what I want to do in this case is the opposite of what I would try to 
do on a production network, I want the vlan network to remain unrouted....

Problem #0:

All hosts, for example, buddy
ip addr <snip, snip>
running 7: mgmt0 at eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc 
noqueue state UP
     link/ether 00:01:2e:27:4c:36 brd ff:ff:ff:ff:ff:ff
     inet 192.168.12.30/24 scope global mgmt0
     inet6 fe80::201:2eff:fe27:4c36/64 scope link
        valid_lft forever preferred_lft forever

Comes up with the same

     inet6 fe80::201:2eff:fe27:4c36/64 scope link

at eth0 does.

And thus babel merrily redistributes a new route to the new 192.168.12.X 
vlan across the network.

192.168.12.5 via 192.168.7.5 dev eth0  proto 42 onlink

This is also probably related to problem #1...

I figure a solution to this is to delete the link-local address and 
create a new, unique one based on the vlan id, but it would be nice if 
A) the default one didn't come up automagically on the vlan. Don't know 
how to do that. rfc4554 suggests that

[Site IPv6 prefix]:[VLAN ID]::/64


be the numbering scheme for vlans under ipv6 but it makes no suggestions 
for fe80 addresses.

I can delete the link local address for the vlan's interface on the 
"normal" linux boxes (arm,x86, both running 2.6.33), and replace the 
fe80 address with something else, but can't seem to stop it from 
autoconfiguring in the first place.

I might argue that the behavior of the linux IPv6 stack is wrong here 
and should generate a unique router id along the lines of:

[fe80]:[VLAN ID]::/64

I can use a macvlan instead. This is somewhat error prone (what mac 
address fields are best to mangle?), but does generate a unique ipv6 
link local address.

and B)

I can't delete the link local address on the openwrt wireless box's 
(linux 2.6.26) bridge

root at OpenWrt:~# ip -6 addr del fe80::215:6dff:fef0:fc59 dev mgmt0
RTNETLINK answers: Cannot assign requested address

I assume this means (and it makes sense) that I should setup a different 
bridge and wireless password, and when I do that, that does the right 
thing, I think. It doesn't mangle the MAC address of the underlying athX 
device but the wireless bridge does get a a different hex value in the 
4th field (eg: 00:15:6D:F1:FC:59) where the other bridge gets 
00:15:6D:F0:FC:59), and thus gets a distinct link-local address.

and C) even when I think I do get "A" and "B" this "right", I still get 
a route to both the vlan and lan via babel, even though babel isn't 
listening to the vlan'd bridge or vlan'd interfaces.

I don't have a problem writing off the vlan idea. I could use some 
insight, tho.




More information about the Babel-users mailing list