(usagi-users 03809) Re: Tunneling problems

"Jukka Rissanen" <[email protected]> Mon, 19 Feb 2007 15:25:35 +0200
Newsgroups gmane.linux.ipv6.usagi.users
Message-ID <[email protected]>
Hi again,

On 2/18/07, Shinta Sugimoto <[email protected]> wrote:
>
> Right. It seems weird that there are two host route entries for
> the same host (mobile node). As you point out, the first route
> entry seems to be redundant. What about the neighbor entry?
> could you try 'ip -6 neigh show' ?

Neigh shows only AR link address when ip cmd is executed in HA.

>
> I am not sure if the above indication is directly related to
> the problem you reported in the other mail.
>


Below are some more information about routes and configuration if that
could solve the problem.

Picture of the test network:

             +--------+ 2001:db8:c0a8:64::1
             |   HA   |---------------------+
             +--------+                     |
                 | 2001:db8:c0a8:c8::1      |
                 |                          |
                 |                          |
                 |                          |
                 |                          |
              +-----+                       |
              | AP1 |                       |
              +-----+                       |
                                            | 2001:db8:c0a8:64::a
                                         +------+		
			                 |  AR  |		
			                 +------+		
			                    | 2001:db8:a01::1
			                    |		
			                    |		
			                    |		
			                    |		
			                 +-----+		
			                 | AP2 |		
			                 +-----+


The HA and AR (but not MN) are using dynamic routing using quagga. I
thought that quagga might set the routes wrongly but situation didn't
change even if I stop quagga (zebra).

Configuration of HA:

radvd.conf
----------
# foreign network
interface eth0 {
        AdvSendAdvert on;
        AdvIntervalOpt on;
        MinRtrAdvInterval 1;
        MaxRtrAdvInterval 3;
        AdvHomeAgentFlag off;
        prefix 2001:db8:c0a8:64::1/64
        {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr on;
        };
};

# home network
interface eth1 {
        AdvSendAdvert on;
        AdvIntervalOpt off;
        MinRtrAdvInterval 1;
        MaxRtrAdvInterval 3;
        AdvHomeAgentFlag on;
        AdvHomeAgentInfo on;
        HomeAgentPreference 10;
        prefix 2001:db8:c0a8:c8::1/64
        {
                AdvOnLink on;
                AdvRouterAddr on;
                AdvAutonomous on;
        };
};


mipv6d.conf
-----------
NodeConfig HA;
DebugLevel 10;
Interface "eth1";
UseMnHaIPsec disabled;
KeyMngMobCapability disabled;


interfaces
----------
# foreign interface
auto eth0
iface eth0 inet static
        address 192.168.100.1
        netmask 255.255.255.0
        network 192.168.100.0
        broadcast 192.168.100.255
        gateway 192.168.100.10
        up route add -net 10.1.0.0 netmask 255.255.0.0 gw 192.168.100.10
        up route add -net 10.2.0.0 netmask 255.255.0.0 gw 192.168.100.20

iface eth0 inet6 static
        address 2001:0db8:c0a8:64::1
        netmask 64


# home interface
auto eth1
iface eth1 inet static
        address 192.168.200.1
        netmask 255.255.255.0
        network 192.168.200.0
        broadcast 192.168.200.255

iface eth1 inet6 static
        address 2001:0db8:c0a8:c8::1
        netmask 64
        up echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
        up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
        up echo 0 > /proc/sys/net/ipv6/conf/all/accept_ra
        up echo 0 > /proc/sys/net/ipv6/conf/all/accept_redirects
        up echo 1 > /proc/sys/net/ipv6/conf/all/proxy_ndp


zebra.conf
----------
!
hostname XXX
password XXX
enable password XXX
!
interface eth0
 ipv6 address 2001:db8:c0a8:64::1/64
!
interface eth1
 ipv6 address 2001:db8:c0a8:c8::1/64
!
 interface lo
!
 ip forwarding
!
 line vty
!
log file /var/log/zebra/zebra.log



In HA, the route and ip command show routes differently, why is that?
# ip -6 route
2001:db8:a01::/64 via fe80::212:3fff:feaa:3b86 dev eth0  proto zebra
metric 2  expires 20907226sec mtu 1500 advmss 1440 hoplimit 4294967295
2001:db8:c0a8:64::/64 dev eth0  metric 256  expires 20907225sec mtu
1500 advmss 1440 hoplimit 4294967295
2001:db8:c0a8:c8:204:23ff:fe97:261a dev ip6tnl1  proto 16  metric 192
expires 21334261sec mtu 1460 advmss 1400 hoplimit 4294967295
2001:db8:c0a8:c8::/64 dev eth1  metric 256  expires 21070316sec mtu
1500 advmss 1440 hoplimit 4294967295
fe80::/64 dev eth0  metric 256  expires 20907216sec mtu 1500 advmss
1440 hoplimit 4294967295
fe80::/64 dev eth1  metric 256  expires 21070316sec mtu 1500 advmss
1440 hoplimit 4294967295
fe80::/64 dev ip6tnl1  metric 256  expires 21334261sec mtu 1460 advmss
1400 hoplimit 4294967295

# route -6
Kernel IPv6 routing table
Destination                                 Next Hop
             Flags Metric Ref    Use Iface
2001:db8:c0a8:c8:204:23ff:fe97:261a/128     ::
             U     128    0        0 eth1
2001:db8:a01::/64                           fe80::212:3fff:feaa:3b86
             UG    2      16       0 eth0
2001:db8:c0a8:64::/64                       ::
             U     256    0        0 eth0
2001:db8:c0a8:c8:204:23ff:fe97:261a/128     ::
             U     192    0        0 ip6tnl1
2001:db8:c0a8:c8::/64                       ::
             U     256    0        0 eth1
fe80::/64                                   ::
             U     256    0        0 eth0
fe80::/64                                   ::
             U     256    0        0 eth1
fe80::/64                                   ::
             U     256    0        0 ip6tnl1



When in foreign net, the MN (2001:db8:c0a8:c8:204:23ff:fe97:261a)
route in HA is wrong, as seen by ip cmd (route should be directed to
tunnel instead of eth1 which is home net, as described in earlier
mails)
# ip -6 route get 2001:db8:c0a8:c8:204:23ff:fe97:261a
2001:db8:c0a8:c8:204:23ff:fe97:261a from 2001:db8:c0a8:c8::1 via
2001:db8:c0a8:c8:204:23ff:fe97:261a dev eth1  src 2001:db8:c0a8:c8::1
metric 0
    cache  mtu 1500 advmss 1440 hoplimit 4294967295


In MN the configuration looks like this.

mipv6d.conf
-----------
NodeConfig MN;
DebugLevel 10;
Interface "eth0";
MnHomeLink "eth0" {
        UseAutoconfHomeAddress enabled;
        HomeAgentAddress 2001:db8:c0a8:c8::1;
        HomeAddress 2001:db8:c0a8:c8::/64;
}
UseMnHaIPsec disabled;
KeyMngMobCapability disabled;


The UseAutoconfHomeAddress is a new keyword that allows the MN to use
its autoconf address as a base for home address. I send the patch to
mailing list in separate mail.


interfaces.home
---------------
iface eth0 inet dhcp
        wpa-driver wext
        wpa-ssid foobar113
        wpa-ap-scan 1
        wpa-proto WPA
        wpa-pairwise TKIP
        wpa-key-mgmt WPA-PSK
        wpa-psk ################
        up echo 0 > /proc/sys/net/ipv6/conf/eth0/forwarding
        up echo 1 > /proc/sys/net/ipv6/conf/eth0/autoconf
        up echo 1 > /proc/sys/net/ipv6/conf/eth0/accept_ra
        up echo 1 > /proc/sys/net/ipv6/conf/eth0/accept_redirects


interfaces.foreign
------------------
iface eth0 inet dhcp
        wpa-driver wext
        wpa-ssid foobar112
        wpa-ap-scan 1
        wpa-proto WPA
        wpa-pairwise TKIP
        wpa-key-mgmt WPA-PSK
        wpa-psk ################
        up echo 0 > /proc/sys/net/ipv6/conf/eth0/forwarding
        up echo 1 > /proc/sys/net/ipv6/conf/eth0/autoconf
        up echo 1 > /proc/sys/net/ipv6/conf/eth0/accept_ra
        up echo 1 > /proc/sys/net/ipv6/conf/eth0/accept_redirects


I am kind of stuck here, and would really appreciate any help anyone can give.

Regards,
        Jukka