(usagi-users 03813) Re: Tunneling problems
Masahide NAKAMURA <[email protected]> Wed, 21 Feb 2007 15:00:06 +0900
| Newsgroups | gmane.linux.ipv6.usagi.users |
|---|---|
| Message-ID | <[email protected]> |
Hello, FYI, before you start to look at kernel resources, you should confirm the binding cache and prefix list through VT in debugging because I see the BA status=133 with your log reported at (usagi-users 03801). I tested a small operation between HA and MN (but we have no AR nor your MN patch) and we have no problem with routing by quagga ripngd providing a default route for HA about RO-ed ping6 between HA-MN, and forwarding packet from MN through HA tunnel to IPv6 node. Note that MIPL2 HA uses policy routing stuff (multiple table, subtree and rule) and HA adds two routes for each registered binding cache entry. Update iproute2 and do `ip -6 rule` and `ip -6 route show table TABLE_ID` to understand how HA adds them at the start line. Also note the kernel policy routing stuff does not work completely then we have a difference from MIPL-2.0.2 as a workaround like below for now. http://www.linux-ipv6.org/gitweb/gitweb.cgi?p=gitroot/nakam/mipv6-daemon.git;a=commit;h=6a8f211974739a20532f7555858b1eebaccc1a06 Regards, > 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 > > > -- Masahide NAKAMURA