按照上述所示完成所有配置;尤其重要的是在家乡网络和访问网络上使用不同的 ESSID。
当你在 MN 上启动 mobile-IPv6 时,你将会看到组播路由器请求消息
# tcpdump -i eth0 -vv ip6 or proto ipv6 ... 13:32:54.681763 fe80::202:a5ff:fe6f:a08a > ff02::2: icmp6: router solicitation \ (src lladdr: 0:2:a5:6f:a0:8a) (len 16, hlim 255) 13:32:55.681763 fe80::202:a5ff:fe6f:a08a > ff02::2: icmp6: router solicitation \ (src lladdr: 0:2:a5:6f:a0:8a) (len 16, hlim 255) 13:32:57.681765 fe80::202:a5ff:fe6f:a08a > ff02::2: icmp6: router solicitation \ (src lladdr: 0:2:a5:6f:a0:8a) (len 16, hlim 255) ... |
通用移动检测使用邻居不可达检测来检测默认路由器何时不再双向可达,在这种情况下,移动节点必须发现一个新的默认路由器(通常在新链路上)。
为了轻松查看正在发生的事情,你应该为每个命令都准备一个 xterm 窗口
# watch ifconfig eth0 # watch route -A inet6 # tcpdump -i eth0 -vv ip6 or proto ipv6 |
要"travel"到另一个网络,你可以在 MN 上发出命令
# iwconfig eth1 essid visitnet |
MN 随后将位于另一个无线网络上,并且由于它发送"路由器请求"(组播),我们的 AR 将会用它的前缀进行响应。MN 随后将使用接收到的前缀和它自身的 MAC 地址配置一个新的 IPv6 地址。如果你输入 ifconfig eth0 你将会看到新的 IPv6 地址
几乎在同一时间,MN 将会对 HA 执行绑定更新。在你的 tcpdump 窗口中,你将会看到几个发往 HA 的数据包。要验证绑定更新是否已从 MN 发送并确认
你也可以使用以下命令(在 MN 上)验证绑定
# mipdiag -l Mobile IPv6 Binding update list Recipient CN: fec0:106:2700::2 BINDING home address: fec0:106:2700::4 care-of address: fec0:106:1100:0:290:7dff:fef3:31a expires: 936 sequence: 0 state: 1 delay: 3 max delay 32 callback time: 736 |
你也可以在 HA 上使用统计选项 (-s) 和 "binding cache" (-c) 选项来验证它
# mipdiag -c Mobile IPv6 Binding cache Home Address Care-of Address Lifetime Type fec0:106:2700::4 fec0:106:1100:0:290:7dff:fef3:31a 971 2 |
从 MN,你可以尝试 ping AR 的 eth1 (fec0:106:1100::1)
# ping6 fec0:106:1100::1 PING fec0:106:1100::1(fec0:106:1100::1) from fec0:106:2700::4 : 56 data bytes 64 bytes from fec0:106:1100::1: icmp_seq=1 ttl=62 time=8.01 ms 64 bytes from fec0:106:1100::1: icmp_seq=2 ttl=62 time=8.02 ms ... |
通过使用 tcpdump,你可以看到数据包如何传输
你现在可以看到统计信息已更新(在 MN 上)
# mipdiag -s Mobile IPv6 Statistics NEncapsulations : 56 NDecapsulations : 25 ... |
MIPv6 做的一件有趣的事情是将默认路由更改为隧道。新的默认路由变为
# route -A inet6 Kernel IPv6 routing table Destination Next Hop Flags Metric Ref Use Iface ::/0 :: UD 64 0 0 ip6tnl1 .... |
如果它没有添加默认路由,你可以手动添加它
# ip route ::/0 via dev ip6tnl |
穿越到多个访问网络,与穿越到一个网络没有区别。你唯一需要记住的是,你将为每个访问网络生成一个新的地址。
MN 穿越多个不同的 LAN。
MN 首先访问 'visitnet',正如我们上面已经经历过的那样。
MN 随后从 'visitnet' 穿越到 'visitnet2'。
当在 'visitnet2' 时,MN 生成一个新的 IPv6 地址并对 HA 进行新的绑定更新。
MN 随后返回家乡。(见下一节。)
位于 "visitnet2" 的 AR 的配置与另一个 AR(位于 "visitnet")完全相同,除了使用地址fec0:106:1000::/64而不是fec0:106:1100::/64.
要使移动节点从 'visitnet' 穿越到 'visitnet2',请发出命令(在 MN 上)
# iwconfig eth0 essid visitnet2 |
然后你将会看到 MN 将自身配置到新网络
注意!当来到一个新网络时,你可能需要在 MN 上重启 mobile-IPv6!
# /etc/init.d/mobile-ip6 restart Stopping Mobile IPv6: OK Starting Mobile IPv6: OK |
MN 随后将对 HA 执行新的绑定更新。注意新的 "care-of address"
# mipdiag -l Mobile IPv6 Binding update list Recipient CN: fec0:106:2700::2 BINDING home address: fec0:106:2700::4 care-of address: fec0:106:1000:0:290:7dff:fef3:31a expires: 973 sequence: 14 state: 1 delay: 3 max delay 32 callback time: 773 |
你也可以看到 HA 上的 "binding cache" 已更新
# mipdiag -c Mobile IPv6 Binding cache Home Address Care-of Address Lifetime Type fec0:106:2700::4 fec0:106:1000:0:290:7dff:fef3:31a 943 2 |
要使 MN 返回家乡,你只需发出命令
# iwconfig eth0 essid homenet |
MN 将会知道它已返回家乡,因为 HA 正在发送设置了 HA 位 (AdvHomeAgentFlag) 的 radvd 消息,参见 第 4.2.4 节
你可以看到 MN "is back home",因为 HA 上的绑定缓存信息已被刷新(为空)
Mobile IPv6 Binding cache Home Address Care-of Address Lifetime Type |