Strange IPv6 Routing Behaviour[LONG]
Hi All,
I am experimenting with IPv6 and User Mode Linux(UML). For those who
are unaware, UML allows you to run virtual linux machines on a Intel
arch real host, and network them through tuntap, and also a usermode
'uml switch' process running on the host, which acts as a layer 2
switch.
I have a strange issue where I seem unable to route up to the 'backbone'
or across it from the macine 'ldap' (see diagram).
I will apologise now for the length of this email, but I wanted to
include all the needed information, and this problem is quite strange,
and my 'network' is quite complex.
My IPv6 network looks like this:
|------------------------------------------------------------------| BGP 64512
| |
|bond0(fec0::1:203:baff:fe04:ee5f/64) |eth0(fec0::1:210:5aff:fe2e:fad8/64)
columbia pathfinder
|tap0(fec0::7000:fefd:0:0:2/64)
|
|eth0(fec0::7000:fefd:0:0:1/64)
iii-gw1
|eth1(fec0::7800:fefd:0:0:2/64)
|
|eth0(fec0::7800:fcfd:aff:fe0b:cd04/64)
ldap
The Problem I am having is this:
columbia can tracepath6 to pathfinder, and pathfinder can tracepath6
back to columbia:
columbia:~# tracepath6 -n fec0::1:210:5aff:fe2e:fad8
1?: [LOCALHOST] pmtu 1500
1: fec0::1:210:5aff:fe2e:fad8 2.815ms reached
Resume: pmtu 1500 hops 1 back 1
pathfinder:~# tracepath6 -n fec0::1:203:baff:fe04:ee5f
1?: [LOCALHOST] pmtu 1500
1: fec0::1:203:baff:fe04:ee5f 2.836ms reached
Resume: pmtu 1500 hops 1 back 1
ldap can tracepath6 to the eth1 and eth0 interfaces of iii-gw1.
iii-gw1 can also tracepath6 to UH1:
ldap:~# tracepath6 -n fec0::7000:fefd:0:0:1
1?: [LOCALHOST] pmtu 1500
1: fec0::7000:fefd:0:0:1 1.561ms reached
Resume: pmtu 1500 hops 1 back 1
ldap:~# tracepath6 -n fec0::7800:fefd:0:0:2
1?: [LOCALHOST] pmtu 1500
1: fec0::7800:fefd:0:0:2 1.536ms reached
Resume: pmtu 1500 hops 1 back 1
iii-gw1:~# tracepath6 -n fec0::7800:fcfd:aff:fe0b:cd04
1?: [LOCALHOST] pmtu 1500
1: fec0::7800:fcfd:aff:fe0b:cd04 2.686ms reached
Resume: pmtu 1500 hops 1 back 1
ldap can also tracepath6 to the tap0 interface of pathfinder:
ldap:~# tracepath6 -n fec0::7000:fefd:0:0:2
1?: [LOCALHOST] pmtu 1500
1: fec0::7800:fefd:0:0:2 1.552ms
2: fec0::7000:fefd:0:0:2 1.727ms reached
Resume: pmtu 1500 hops 2 back 2
iii-gw1 can reach the eth0 interface of pathfinder, and
also the bond0 interface of columbia:
iii-gw1:~# tracepath6 -n fec0::1:210:5aff:fe2e:fad8
1?: [LOCALHOST] pmtu 1500
1: fec0::1:210:5aff:fe2e:fad8 1.156ms reached
Resume: pmtu 1500 hops 1 back 1
iii-gw1:~# tracepath6 -n fec0::1:203:baff:fe04:ee5f
1?: [LOCALHOST] pmtu 1500
1: fec0::7000:fefd:0:0:2 1.145ms
2: fec0::1:203:baff:fe04:ee5f 3.725ms reached
Resume: pmtu 1500 hops 2 back 2
What ldap can't do is tracepath6 to is the eth0 of pathfinder,
or to columbia (bond0). It dies with a !H (Host Unreachable):
ldap:~# tracepath6 -n fec0::1:210:5aff:fe2e:fad8
1?: [LOCALHOST] pmtu 1500
1: fec0::7800:fefd:0:0:2 1.595ms !H
Resume: pmtu 1500
ldap:~# tracepath6 -n fec0::1:203:baff:fe04:ee5f
1?: [LOCALHOST] pmtu 1500
1: fec0::7800:fefd:0:0:2 1.549ms !H
Resume: pmtu 1500
pathfinder and columbia are 'real' Linux boxes. pathfinder is an
Intel Box running 2.4.18, while columbia is an UltraSPARC running
2.4.17-rc1.
iii-gw1 and ldap are UML instances, running on pathfinder
Also running on pathfinder is a uml_switch process, with iii-gw1
and ldap, linked to it.
All machines are running debian woody (Although the UML is the latest
2.4.18-um31, rather than the debian package). The user-mode instances
were built with rootstrap.
I am also running zebra to help provide routing (There is a bigger
plan than shown above). The 'Backbone' has BGP running on it,
advertising /52 routes (columbia gets fec0:0:6000::/52, with pathfinder
getting fec0:0:0:7000://52).
OSPFv3 is then ran on the UML instances to provide routing to the
smaller /64 subnets. BGP default route (::/0) is injected into iii-gw1,
which then distributes it to ldap via OSPFv3. (I said there was a bigger
plan here didn't I ? :>)
It appears to me that the routing is actually fine, at least at
each level of the tree, the next hop up and down is reachable. What
appears in my routing table is what I was expecting.
Does anyone have any idea as to why I seem to be unable to route
across my 'backbone' ? Or even up to eth0 of pathfinder ? I also have
2001 addresses as well, and the behaviour is identical.
Ive included the routing tables for each machine in question
below.
Iain.
pathfinder:
pathfinder-zebra> sh ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,
B - BGP, * - FIB route.
C>* ::1/128 is directly connected, lo
C>* 2001:618:406:1::/64 is directly connected, eth0
B>* 2001:618:406:6000::/52 [200/0] via fe80::203:baff:fe04:ee5f, eth0, 01:03:29
C>* 2001:618:406:7000::/64 is directly connected, tap0
C>* 2001:618:406:7001::/64 is directly connected, tap1
B>* 2001:618:406:7800::/56 [20/0] via fe80::fcfd:ff:fe00:1, tap0, 01:00:02
C>* fe80::/10 is directly connected, tap0
C * fe80::/10 is directly connected, tap1
C * fe80::/10 is directly connected, eth0
C>* fec0:0:0:1::/64 is directly connected, eth0
B>* fec0:0:0:6000::/52 [200/0] via fe80::203:baff:fe04:ee5f, eth0, 01:03:29
C>* fec0:0:0:7000::/64 is directly connected, tap0
C>* fec0:0:0:7001::/64 is directly connected, tap1
B>* fec0:0:0:7800::/56 [20/0] via fe80::fcfd:ff:fe00:1, tap0, 01:00:02
pathfinder:~# ip -6 rou ls
2001:618:406:1::/64 dev eth0 proto kernel metric 256 expires 38824sec mtu 1500 advmss 1440
2001:618:406:6000::/52 via fe80::203:baff:fe04:ee5f dev eth0 metric 1024 mtu 1500 advmss 1440
2001:618:406:7000::/64 dev tap0 proto kernel metric 256 mtu 1500 advmss 1440
2001:618:406:7001::/64 dev tap1 proto kernel metric 256 mtu 1500 advmss 1440
2001:618:406:7800::/56 via fe80::fcfd:ff:fe00:1 dev tap0 metric 1024 mtu 1500 advmss 1440
fe80::/10 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440
fe80::/10 dev tap0 proto kernel metric 256 mtu 1500 advmss 1440
fe80::/10 dev tap1 proto kernel metric 256 mtu 1500 advmss 1440
fec0:0:0:1::/64 dev eth0 proto kernel metric 256 expires 38824sec mtu 1500 advmss 1440
fec0:0:0:6000::/52 via fe80::203:baff:fe04:ee5f dev eth0 metric 1024 mtu 1500 advmss 1440
fec0:0:0:7000::/64 dev tap0 proto kernel metric 256 mtu 1500 advmss 1440
fec0:0:0:7001::/64 dev tap1 proto kernel metric 256 mtu 1500 advmss 1440
fec0:0:0:7800::/56 via fe80::fcfd:ff:fe00:1 dev tap0 metric 1024 mtu 1500 advmss 1440
ff00::/8 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440
ff00::/8 dev tap0 proto kernel metric 256 mtu 1500 advmss 1440
ff00::/8 dev tap1 proto kernel metric 256 mtu 1500 advmss 1440
unreachable default dev lo metric -1 error -101
columbia:
columbia-zebra> sh ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,
B - BGP, * - FIB route.
C>* ::1/128 is directly connected, lo
B>* 2001:618:406::/52 [200/0] via fe80::210:5aff:fe2e:fad8, bond0, 01:06:05
C>* 2001:618:406:1::/64 is directly connected, bond0
B>* 2001:618:406:7000::/52 [200/0] via fe80::210:5aff:fe2e:fad8, bond0, 01:06:05
C>* fe80::/10 is directly connected, dummy1
C * fe80::/10 is directly connected, dummy0
C * fe80::/10 is directly connected, eth0
C * fe80::/10 is directly connected, eth1
C * fe80::/10 is directly connected, bond0
C>* fec0:0:0:1::/64 is directly connected, bond0
B>* fec0:0:0:7000::/52 [200/0] via fe80::210:5aff:fe2e:fad8, bond0, 01:06:05
columbia:~# ip -6 rou ls
2001:618:406:1::/64 dev bond0 proto kernel metric 256 expires 39178sec mtu 1500 advmss 1440
2001:618:406::/52 via fe80::210:5aff:fe2e:fad8 dev bond0 metric 1024 mtu 1500 advmss 1440
2001:618:406:7000::/52 via fe80::210:5aff:fe2e:fad8 dev bond0 metric 1024 mtu 1500 advmss 1440
fe80::/10 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440
fe80::/10 dev eth1 proto kernel metric 256 mtu 1500 advmss 1440
fe80::/10 dev bond0 proto kernel metric 256 mtu 1500 advmss 1440
fe80::/10 dev dummy0 proto kernel metric 256 mtu 1500 advmss 1440
fe80::/10 dev dummy1 proto kernel metric 256 mtu 1500 advmss 1440
fec0:0:0:1::/64 dev bond0 proto kernel metric 256 expires 39178sec mtu 1500 advmss 1440
fec0:0:0:7000::/52 via fe80::210:5aff:fe2e:fad8 dev bond0 metric 1024 mtu 1500 advmss 1440
ff00::/8 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440
ff00::/8 dev eth1 proto kernel metric 256 mtu 1500 advmss 1440
ff00::/8 dev bond0 proto kernel metric 256 mtu 1500 advmss 1440
ff00::/8 dev dummy0 proto kernel metric 256 mtu 1500 advmss 1440
ff00::/8 dev dummy1 proto kernel metric 256 mtu 1500 advmss 1440
unreachable default dev lo metric -1 error -51
iii-gw1:
iii-gw1> sh ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,
B - BGP, * - FIB route.
B>* ::/0 [20/0] via fe80::2ff:34ff:fef3:8b2f, eth0, 01:04:18
C>* ::1/128 is directly connected, lo
C>* 2001:618:406:7000::/64 is directly connected, eth0
O 2001:618:406:7800::/64 [110/0] is directly connected, eth1, 00:33:25
C>* 2001:618:406:7800::/64 is directly connected, eth1
C>* fe80::/10 is directly connected, dummy0
C * fe80::/10 is directly connected, eth1
C * fe80::/10 is directly connected, eth0
C>* fec0:0:0:7000::/64 is directly connected, eth0
O fec0:0:0:7800::/64 [110/0] is directly connected, eth1, 00:33:25
C>* fec0:0:0:7800::/64 is directly connected, eth1
iii-gw1:~# ip -6 rou ls
2001:618:406:7000::/64 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440
2001:618:406:7800::/64 dev eth1 proto kernel metric 256 mtu 1500 advmss 1440
unreachable fe80::/10 dev lo metric 256 error -101 mtu 16436 advmss 16376
fe80::/10 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440
fe80::/10 dev eth1 proto kernel metric 256 mtu 1500 advmss 1440
fe80::/10 dev dummy0 proto kernel metric 256 mtu 1500 advmss 1440
fec0:0:0:7000::/64 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440
fec0:0:0:7800::/64 dev eth1 proto kernel metric 256 mtu 1500 advmss 1440
unreachable ff00::/8 dev lo metric 256 error -101 mtu 16436 advmss 16376
ff00::/8 dev eth0 proto kernel metric 256 mtu 1500 advmss 1440
ff00::/8 dev eth1 proto kernel metric 256 mtu 1500 advmss 1440
ff00::/8 dev dummy0 proto kernel metric 256 mtu 1500 advmss 1440
default via fe80::2ff:34ff:fef3:8b2f dev eth0 metric 1024 mtu 1500 advmss 1440
unreachable default dev lo metric -1 error -101
ldap:
ldap-zebra> sh ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,
B - BGP, * - FIB route.
O>* ::/0 [110/0] via fe80::fcfd:ff:fe00:2, eth0, 00:00:29
C>* ::1/128 is directly connected, lo
O>* 2001:618:406:7000::/64 [110/0] via fe80::fcfd:ff:fe00:2, eth0, 00:00:29
O 2001:618:406:7800::/64 [110/0] is directly connected, eth0, 00:00:29
C>* 2001:618:406:7800::/64 is directly connected, eth0
O fe80::/10 [110/0] via fe80::fcfd:ff:fe00:2, eth0, 00:00:29
C>* fe80::/10 is directly connected, eth0
O>* fec0:0:0:7000::/64 [110/0] via fe80::fcfd:ff:fe00:2, eth0, 00:00:29
O fec0:0:0:7800::/64 [110/0] is directly connected, eth0, 00:00:29
C>* fec0:0:0:7800::/64 is directly connected, eth0
ldap:~# ip -6 rou ls
2001:618:406:7000::/64 via fe80::fcfd:ff:fe00:2 dev eth0 metric 1024 mtu 1500
2001:618:406:7800::/64 dev eth0 proto kernel metric 256 expires 1347704sec mtu 1500
unreachable fe80::/10 dev lo metric 256 error -101 mtu 16436
fe80::/10 dev eth0 proto kernel metric 256 mtu 1500
fec0:0:0:7000::/64 via fe80::fcfd:ff:fe00:2 dev eth0 metric 1024 mtu 1500
fec0:0:0:7800::/64 dev eth0 proto kernel metric 256 expires 1347704sec mtu 1500
unreachable ff00::/8 dev lo metric 256 error -101 mtu 16436
ff00::/8 dev eth0 proto kernel metric 256 mtu 1500
default via fe80::fcfd:ff:fe00:2 dev eth0 metric 1024 mtu 1500
unreachable default dev lo metric -1 error -101
--
To UNSUBSCRIBE, email to debian-ipv6-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: