基于Linux下的IPv6网络的配置

自内核2.2.0以来,Linux开始支持IPv6协议。以下内容以Fedora Core 4(2005年6月13日发布)系统为例。用ifconfig命令检测一下,若出现以fe80开头的本地链路地址,说明您的系统已经加载IPv6,目前的最新Linux内核已经支持IPv6,如果没有可以用以下两种方式支持IPv6:

只加载IPv6模块:

[root @ipv6/root] #modprobe ipv6

这种方法需要每次开机手工执行加载模块,若让系统自动加载,使用下面方法。

重新编译系统内核:

[root @ipv6/root] # cd /usr/src/linux (转到Linux源代码目录)

[root @ipv6/root] # make clean (清除过期的中间代码)

[root @ipv6/root] # make menuconfig (配置内核选项)

Networking options

packet socket yes (支持IPv6的选项设为yes)

unix domain socket yes

Tcp/IP networking yes

The IPV6 protocol yes

IPv6 : enable EUI - 64 token format  yes

IPv6 : disable provider based address  yes

 [root @ipv6/root] # make dep

 [root @ipv6/root] # make clean (清除中间代码)

 [root @ipv6/root] # make bzImage

 [root @ipv6/root] # cp system.map /boot/System.map (将内核拷到启动目录)

 [root @ipv6/root]# cp arch/i386/boot/vmlinux-IPv6 /boot/ vmlinux-IPv6

 [root @ipv6/root] # vi /etc/grub.conf (编辑Grub配置文件)

增加以下内容

title FeforaIpv6

root(hd0,10)

kernel / vmlinux-IPv6 ro root =/dev/hda1

[root @ipv6/root] # reboot  (重启机器)

在校园网两个不同子网的机器上配置IPv6地址,通过双方路由器以隧道方式相连,每个子网内机器通过以太网方式进行物理互联。

配置IPv6地址

根据我们学校在CERNET申请获得IPv6 网络地址段2001:250:5802::/48。假设Host1的eth0的IPv4地址是

202.194.68.138,IPv6地址是2001:250:5802:2:210:dcff:fe29:af07/48;Host2的eth0的IPv4地址是202.194.67.138,

IPv6地址是2001:250:5802:1:203:ffff:fe2b:af01/48。在Linux 下的配置IP地址命令如下:

Host1:

[root @ipv6/root] # ifconfig eth0 202.194.68.138 netmask 255. 255. 255.0

[root @ipv6/root] # ifconfig eth0 add 2001:250:5802:2:210:dcff:fe29:af07/48

Host2:

[root @ipv6/root] # ifconfig eth0 202.194.67.138 netmask 255. 255. 255.0

[root @ipv6/root] # ifconfig eth0 add 2001:250:5802:1:203:ffff:fe2b:af01/48

配置隧道

分别激活Host1和Host2的自动隧道sit0,使双方可以通过IPv4 兼容的IPv6 地址连通,然后激活隧道sit1,使双方可以通过可聚集全局单播IPv6地址通信。具体命令如下:

Host1:

[root @ipv6/root] # ifconfig sit0 up

[root @ipv6/root] # ifconfig sit0 inet6 tunnel : : 202.194.67.138

[root @ipv6/root] # ifconfig sit1 up

[root @ipv6/root] # route -A inet6 add 2001:250:5802:1:203:ffff:fe2b:af01/48 dev sit1

Host2:

[root @ipv6/root] # ifconfig sit0 up

[root @ipv6/root] # ifconfig sit0 inet6 tunnel : : 202.194.68.138

[root @ipv6/root] # ifconfig sit1 up

[root @ipv6/root] # route -A inet6 add 2001:250:5802:2:210:dcff:fe29:af07/48 dev sit1

测试IPv6网络

在Host1上运行ping6命令:ping6 2001:250:5802:1:203:ffff:fe2b:af01;在Host2上运行ping6命令:ping6 2001:250:5802:2:210:dcff:fe29:af07,可以正常返回ICMP v6包,说明双方IPv6通过IPv4隧道已经可以连通。

在Host1上运行tracert命令查看路由:tracert 2001:250:5802:1:203:ffff:fe2b:af01,可以显示以下信息,说明隧道创建成功。

tracert 2001:250:5802:1:203:ffff:fe2b:af01

Tracing route to 2001:250:5802:1:203:ffff:fe2b:af01 over a maximum of 30 hops

1    10 ms   7 ms   7 ms  2001:250:5802:1:203:ffff:fe2b:af01

Trace complete

目前有许多IPv6的应用,如CERNET--Nokia合作项目TunnelBroker,其目的是自动分配IPv6地址,为用户提供IPv6/IPv4 tunnel用于接入CERNET IPv6 Testbed。

通过上述介绍,我们已经通过Linux的自由软件初步组建了一个支持IPv6的网络,这个测试平台为我们向IPv6过渡提供了一个参考方案。通过这个平台我们可以继续进行相关课题的研究(如网络控制、流量管理和WEB服务的应用)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/psgfy.html