网络安全 频道

Linux下移动IPv6实现指南

4.2.4               HA上配置radvd

为使MN能知道其位于家乡网络,HA也应发出RA。因此我们应该也在HA上启用RADVD/etc/radvd.conf文件应包含以下内容:

# cat /etc/radvd.conf

interface eth0

{

AdvSendAdvert on;

MaxRtrAdvInterval 3;

MinRtrAdvInterval 1;

AdvIntervalOpt off;

AdvHomeAgentFlag on;

HomeAgentLifetime 10000;

HomeAgentPreference 20;

AdvHomeAgentInfo on;

prefix fec0:106:2700::2/64

{

AdvRouterAddr on;

AdvOnLink on;

AdvAutonomous on;

AdvPreferredLifetime 10000;

AdvValidLifetime 12000;

};

};

也应在HA上执行radvdump命令以检查是否发送了radvd报文:

# radvdump

    Router advertisement from fe80::202:2dff:fe54:d11e (hoplimit 255)

    Received by interface eth0

        # Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump

        AdvCurHopLimit: 64

        AdvManagedFlag: off

        AdvOtherConfigFlag: off

        AdvHomeAgentFlag: on

        AdvReachableTime: 0

        AdvRetransTimer: 0

        Prefix fec0:106:2700::2/64

                AdvValidLifetime: 12000

                AdvPreferredLifetime: 10000

                AdvOnLink: on

                AdvAutonomous: on

                AdvRouterAddr: on

        AdvSourceLLAddress: 00 02 2D 54 D1 1E

        AdvHomeAgentInfo:

                HomeAgentPreference: 20

                HomeAgentLifetime: 1000

   

 

 

    # ifconfig eth0

    eth0  Link encap:Ethernet  HWaddr 00:90:7D:F3:03:1A 

          inet6 addr: fec0:106:2700:0:290:7dff:fef3:31a/64 Scope:Site

          inet6 addr: fec0:106:2700::4/64 Scope:Site              

          inet6 addr: fe80::290:7dff:fef3:31a/64 Scope:Link         

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:513 errors:89 dropped:89 overruns:0 frame:85

          TX packets:140 errors:41 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:100

          RX bytes:56084 (54.7 Kb)  TX bytes:19212 (18.7 Kb)

          Interrupt:3 Base address:0x100

  一个新的(多余的)自动生成的地址。因为我们在/proc/sys/net/ipv6/conf/eth0/autoconf中设置autoconf1,所以MN会产生一个由HA的前缀和其MAC地址组合成的新的地址。我不认为能避免这个地址的产生。

  原始静态IPv6地址。

  引导时生成的链路本地地址。

5       若干实验

5.1   预测试

如上进行每项配置;家乡网络与所访问网络具有不同的ESSID尤为重要。

当您在MN上启动移动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)

...

5.2   移动检测

通常情况下移动检测采用邻居不可达性检测来在缺省路由器不在双向可达时进行检测。此时,移动节点必须发现一台缺省路由器(通常位于新链路上)。

为便于了解所发生的情况,您应为每条命令使用一个xterm窗口:

# watch ifconfig eth0

# watch route -A inet6

# tcpdump -i eth0 -vv ip6 or proto ipv6

为“移动”到另一个网络,您可在MN上执行以下命令:

# iwconfig eth1 essid visitnet

MN位于另一个无线网络,因为它发送出了“路由器请求”(组播),AR将使用其前缀进行响应。然后MN会使用所接收到的前缀和其MAC地址来进行自身配置。若您输入ifconfig eth0,您会看到新的IPv6地址:

# ifconfig eth0

    eth0  Link encap:Ethernet  HWaddr 00:90:7D:F3:03:1A 

          inet6 addr: fec0:106:1100:0:290:7dff:fef3:31a/64 Scope:Site

          inet6 addr: fec0:106:2700:0:290:7dff:fef3:31a/64 Scope:Site

          inet6 addr: fec0:106:2700::4/64 Scope:Site              

          inet6 addr: fe80::290:7dff:fef3:31a/64 Scope:Link        

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:854 errors:154 dropped:154 overruns:0 frame:148

          TX packets:293 errors:58 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:100

          RX bytes:96536 (94.2 Kb)  TX bytes:44664 (43.6 Kb)

          Interrupt:3 Base address:0x100

   组合AR的前缀与MAC地址所生成的新的“外地”地址

   多余的家乡网络地址(因为HA radvd报文与MN autoconf设置为“true”)。

   “原始”(家乡)地址

   引导时生成的链路本地地址

几乎同时,MN会执行与HA的绑定更新。在tcpduom窗口中,您会看到几个报文分组发送到HA。为对绑定更新已发送以及来自MN的确认进行验证:

# mipdiag -s

      Mobile IPv6 Statistics

      NEncapsulations           : 0

      NDecapsulations           : 0

      NBindUpdatesRcvd          : 0

      NBindAcksRcvd             : 1   

      NBindNAcksRcvd            : 0

      NBindRqsRcvd              : 0

      NBindUpdatesSent          : 1   

      NBindAcksSent             : 0

      NBindNAcksSent            : 0

      NBindRqsSent              : 0

      NBindUpdatesDropAuth      : 0

      NBindUpdatesDropInvalid   : 0

      NBindUpdatesDropMisc      : 0

      NBindAcksDropAuth         : 0

      NBindAcksDropInvalid      : 0

      NBindAcksDropMisc         : 0

      NBindRqsDropAuth          : 0

      NBindRqsDropInvalid       : 0

      NBindRqsDropMisc          : 0

  接受到一条绑定ACK报文。

  发送一条绑定UPDATE报文。

您也可用以下命令对绑定进行验证(在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上用statistics选项(-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   

5.3   ping6

您可尝试从Mn ping AReth1fec0: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命令可以看到报文分组如何移动:

 

     12:13:51.789688 fec0:106:1100:0:202:a5ff:fe6f:a08a > fec0:106:2700::2: \ 

     fec0:106:2700::4 > fec0:106:1100::1: icmp6: echo request \

     (len 64, hlim 64) (len 104, hlim 255)

 

     12:13:51.797675 fec0:106:2700::2 > fec0:106:1100:0:202:a5ff:fe6f:a08a: \

     fec0:106:1100::1 > fec0:106:2700::4: icmp6: echo reply \

     (len 64, hlim 62) (len 104, hlim 253)

   报文分组首先使用MN的新IPv6地址从MNHA

   接着从HAAR

   然后ARHA进行响应并将报文分组通过隧道传输给MN

现在可看到更新后的统计结果(MN上的):

# mipdiag -s

Mobile IPv6 Statistics

NEncapsulations           : 56

NDecapsulations           : 25

...

0
相关文章