[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: