3)make config时选择下面的内容,其他选项内容请根据自己系统情况选择:
编译主选项 子选项 选择
GNU gettext Yes( 如果使用的是glibc2)
Protocol Families UNIX protocol family Yes
INET (TCP/IP) protocol family Yes
INET6 (IPv6) protocol family Yes
Device hardware types SIT (IPv6-inIPv4) support Yes
4)然后编译:make;安装:make install。再重启。
现在我们就可以使用ifconfig和route等命令配置查看网络了。运行ifconfig,我们可以看到在每个网络接口,都生成了一个IPv6地址,这是它的本地链路地址,我们还需要配置其相应的全球地址和路由信息。最后我们的IPv6主机就建立起来了。两台机器均如此操作,通过绞线相连的最简单的纯IPv6网络就搭建好啦。
但是我们没有IPv6的应用程序来检测我们的IPv6网络,但是怎么知道我们的主机在网络中是否能够与其他主机通信呢,这还得需要有IPv6的应用程序检测我们的网络。
C.编译Inet6-applications
编译新版本的支持IPv6的网络应用程序我们采用的是inet6-apps-0.36,其编译过程如下:
1) 解开软件包:tar xzf your-path/inet6-apps-0.36.tar.gz -C /usr/src
2) 为编译程序建立必要的链接:
ln -sf /usr/src/inet6-apps-0.36 /usr/src/inet6-apps
3) 进入源码所在目录: cd /usr/src/inet6-apps
4)这个版本的inet6工具的icmp.c有个小Bug,编译时需要一个补丁(inet6-apps-0.36-glibc21-rh60-patch.txt.gz)。将补丁程序加上然后编译:make clean; make ; make install。重启系统。
现在我们就有了如finger[d], ftp[d], inetd, ping, tftp, libinet6等网络应用程序就可以进行主机间的IPv6测试了。
3.Linux下IPv6主机和路由器配置技术研究
在研究了Linux IPv6主机建立技术之后,我们在Linux主机上进行了如下的进行IPv6主机和路由网络实验研究:
A.IPv6主机通信实验
为了了解如何建立IPv6主机,如何在Linux操作系统中,建立IPv6协议栈,收发纯的IPv6数据包,我们最开始建立了如图1所示的一个最简单的IPv6网络实验环境:
我们安装了两台以Redhat6.1 Linux为操作系统的主机,并且通过绞线相连。对于每台主机,编译新的内核支持IPv6,由于缺省支持IPv4,故该主机为IPv6/IPv4双协议栈主机。为了研究纯IPv6主机通信,我们只配置主机的IPv6网络信息,未配置其IPv4地址和网络。作为西南地区,网络中心分配的IPv6地址前缀是3ffe:3203:1001::/48,故利用ifconfig配置Host1和Host2的全球IPv6地址分别为3ffe:3203:1001::218/52和3ffe:3203:1001::218/52,命令格式为:ifconfig interface add IPv6-address,用route添加缺省网关分别为对方IPv6地址,然后利用IPv6的应用程序ping对方的IPv6地址,得到连续的对方主机返回ICMPv6响应报文,安装成功了。
B.IPv6/IPv4主机隧道通信实验
因为现在的IPv6主机在整个IPv4网络中,象一个孤岛,许多路由器不支持IPv6,故在IPv4网络中经过了纯IPv4路由器相连的两个IPv6主机是不能直接通信的,要采用RFC1933所说的隧道技术(tunnel)。在Linux下的IPv6协议栈是支持隧道技术的。为研究IPv6主机如何在IPv4网络中通信的,我们建立了图2所示的实验环境。