首页 理论教育IPv6局域网实验在下一代计算机网络技术中的应用

IPv6局域网实验在下一代计算机网络技术中的应用

【摘要】:4.5.4.2不同操作系统主机之间的IPv6互联为了验证各个操作系统之间IPv6协议的一致性,测试了Linux与Windows XP之间的IPv6网络互通,由于Windows 2000与Windows XP相近,所以未测试Winodws 2000。

4.5.4.1 两台IPv6主机通信实验

为了了解如何建立IPv6主机,如何在Linux操作系统中,建立IPv6协议栈,收发纯的IPv6数据包,最开始建立了如图4.11所示的一个最简单的IPv6网络实验环境,注意,其中的双绞线要采用反转的。

图4.11 IPv6双机简单通信实验图

首先安装了两台以Redhat7.2 Linux为操作系统的主机,并且通过双绞线相连,在每台机器上成功加载了IPv6协议栈,由于缺省支持IPv4,故该主机为IPv6/IPv4双协议栈主机。为了研究纯IPv6主机通信,只配置主机的IPv6网络信息,未配置其IPv4地址和网络。作为东北地区,网络中心分配的IPv6地址前缀是3ffe:3208::/32,故利用ifconfig配置主机1和主机2的全球IPv6地址分别为3ffe:3208:1000::1/64和3ffe:3208:1000::2/64,具体命令格式为

ifconfig eth0 int6 add IPv6-address,在本例中应为

在Host1上:ifconfig eth0 inet6 add 3ffe:3208:1000::1/64

在Host2上:ifconfig eth0 inet6 add 3ffe:3208:1000::2/64

然后利用IPv6的应用程序ping6对方的IPv6地址,得到连续的对方主机返回ICMPv6响应报文,安装成功了,说明了Linux 7.2上的IPv6协议栈已经成功的工作了。

其中还需要注意的问题就是关于ping6的用法,首先注意:

(1)由于ping6要用到raw sockets所以进行ping6需要使用root的权限。

(2)需要在ping6指定一个接口,例:

如果执行:#ping6 fe80::212:34ff:fe12:3456。

所的结果:connect:Invalid argument。

正确方法:#ping6-I eth0 fe80::2e0:18ff:fe90:9205。

4.5.4.2 不同操作系统主机之间的IPv6互联

为了验证各个操作系统之间IPv6协议的一致性,测试了Linux与Windows XP之间的IPv6网络互通,由于Windows 2000与Windows XP相近,所以未测试Winodws 2000。

首先测试的是互ping6各自的链路地址,很简单一次成功!

下一步测试的地址为:为接口指定的IPv6的全局地址。在Linux上的全局地址为:3ffe:3208:1000::2而Windows XP上的为:3ffe:3208:1000::1。此时出现了一定的问题,从Linux上ping6 Windows XP的地址一切正常,所用命令为:能返回正确的结果,显示出Linux能判断出与Windows XP共处于同一个链路,说明Linux较好的实现了邻居发现。但从Windows XP上录入ping6 3ffe:3208:1000::2时,从屏幕观察所得的数据,如图4.12所示。发现此时Windows XP并未发现与地址3ffe:3208:1000::1在同一链路上,它是从接口3使用6 to 4去寻找地址。说明了Windows XP的邻居发现机制还有一定的局限性。

ping6-I eth0 3ffe:3208:1000::1

图4.12 隧道的简单工作方式

解决的办法就添加路由,即:

ipv6 rtu 3ffe:3208:1000::/64 4(www.chuimin.cn)

其中的意思是对于本网段内的地址要通过eth0将数据报转发出去。

4.5.4.3 IPv6/IPv4主机隧道互联通信的实验

因为现在的IPv6主机在整个IPv4网络中,像一个孤岛,许多路由器不支持IPv6,故在IPv4网络中经过了纯IPv4路由器相连的两个IPv6主机是不能直接通信的,要采用RFC 1933所说的隧道技术(tunnel)。在Linux下的IPv6协议栈是支持隧道技术的。

图4.12清楚的示出了遂道的简单工作方式:

Tunnel建立的关键在于IPv6/IPv4边缘网络处的dual stack的主机或路由器,通过它们之间的point-to-point的连接并采用IPv6 in IPv4的iptunnel的技术,实现了IPv6数据包的传输。

为研究IPv6主机如何在IPv4网络中通信的,建立了图4.13所示的实验环境。

由于图4.13中的路由器不支持IPv6所以它也不能转发IPv6的数据包,PC1和PC2要传输IPv6的数据就必须通过IPv4的隧道进行通信。

与两台IPv6主机通信实验一样,配置好PC1和PC2的IPv6地址,并且按照实际IPv4网络情况,配置好网络接口的IPv4地址。之后,首先互ping了对方的IPv4的地址以确保隧道通畅的前提。下一步,需要分别为PC1和PC2配置隧道,两隧道的端地址分别为PC1和PC2的IPv4地址,而两个隧道的sitl端的IPv6地址分别为:3ffe:3208:1000:1::1/64和3ffe:3208:1000:1::1/64。具体配置命令如下:

图4.13 IPv6简单隧道的网络拓扑图

在PC1上执行的命令如下:

在PC2上执行相对应的命令需要修改的地方有:第一句中的remote address应为对方即H1的IPv4地址。第三句中的意思是给sit1端口添加上IPv6的网络地址此处应用的是自己的网络地址:3ffe:3208:1000:1::1/64。最后一句中H2应把对方的IPv6地址添加到路由表中,即执行route-A inet6 add 3ffe:3208:1000:1::1/64 sit1。

各条配置命令的具体含义:

(1)iptunnel add sit1 remote 202.112.29.32 local any ttl 255

说明与远方的IPv4节点建立Tunnel,这里使用的是IPv6 in IPv4的tunnel。其中,remote后面跟的是远端IPv4主机的IPv4地址。sit代表Simple Internet Transition其中除了sit0不能被使用外,sit后可跟任意数字。最后的tt1代表网络最大跳数。

(2)ifocnfig sit1 up

这条命令表示将这个端口激活。

(3)ifconfig sit1add 3ffe:3208:1000:1::1/64

这条命令是为自身的sitl端口配置IPv6地址。注意,这个地址是自身的IPv6地址,一定不能用错。

(4)route-A inet6 add 3ffe:3208:1000:1::2/64 sit1

这条命令是进行添加路由,指出了在sitl上的对方的IPv6地址。

在双方都执行完相应的命令后,互ping6对方显示互通成功。