ping过别人的IPv6网址之后,可以确定,局域网是不支持IPv6的。所以要使用隧道技术建立两台机器之间的IPv6连接
1.发现测试用服务器上没有IPv6地址。所以测试服务器的内核应该是没有IPv6模块或者没有IPv6打开IPv6模块。
2.uname -a确定内核版本为2.6.18。经网上搜索2.2以上的内核都是含有IPv6组件的,2.4以上的内核默认开启了IPv6模块。同学说rhel5.0以上应该是有IPv6的。经确认,服务器版本为rhel5.8。所以可以确定,内核是包含IPv6的。
3.使用lsmod查看已经加载的模块发现没有IPv6(技巧:lsmod | grep "IPv6")
4.试图使用modprobe IPv6开启IPv6模块,系统提示:“FATAL:Module off not found.”;而且,“cat /etc/sysconfig/network”的结果是:
NETWORKING=yes
NETWORKING_IPv6=yes
HOSTNAME=qv.old
说明服务器上的IPv6不是被人禁用的。难道服务器的内核是组里人特殊编译的?没有把IPv6模块编译进去?
5.询问课长,确认没有这样的事情。当时装的就是正常的rhel服务器。
6.跟同学提出疑问,同学说那是她改的……本来应该是NETWORKING_IPv6=no的。
7.ls /proc/net/发现IPv6相关的文件都不存在。又开始感到不能理解。
8.modprobe -c查看所有存在的模块,发现IPv6模块是有的。
9.这时搜索到重要信息:ls -l /etc/modprobe.d/文件夹下的文件是设置组件行为的。可以通过专门添加一个禁用IPv6的脚本来禁用IPv6.于是查看这个文件夹。发现问题:存在一个脚本,名字叫“noIPv6”
10.打开此脚本,内容如下:
alias net-pf-10 off
alias IPv6 off
options IPv6 disable=1
于是确定了这个脚本就是问题所在。
In the file "/etc/sysctl.conf" I deleted the following line:
Then I added these lines:
My provider said that these four parameters disable autoconfiguration, which is not used.
After that a "sysctl -p" did not work, I had to reboot the complete server!
11.联系了使用此服务器的使用者,询问她是否禁用过IPv6网络。她说不清楚,自己没有做过。于是移走noIPv6脚本至/root/IPv6backup/文件夹。重新modprobe IPv6。执行成功。服务器已经有了IPv6地址。
12.操作日志记录在了windows桌面上,“启动IPv6.txt”
13.移动到我的文档->documents中去了。
14.然后是为两台机器建立tunnel连接
15.思路总结如下:
①为两台机器指定IPv6地址。
②在两台机器上启用隧道,ifconfig sit0 up
③将隧道指向对方ipv4地址,ifconfig sit0 inet6 tunnel ::对方ip地址
④启用隧道sit1,ifconfig sit1 up
⑤设置IPv6路由表,将对方地址指向sit1,route -A inet6 add 对方IPv6地址 dev sit1
⑥对于上一步,资料中的解释是:“分别激活Host1和Host2的自动隧道sit0,使双方可以通过IPv4 兼容的IPv6 地址连通,然后激活隧道sit1,使双方可以通过可聚集全局单播IPv6地址通信。”
以上是我根据参考资料总结出的思路,可能与实际有出入。所以如果不对,应参考参考资料的实例。
参考资料:
基于Linux下的IPv6网络的配置 http://www.linuxidc.com/Linux/2011-12/50145.htm
16.实际配置过程以校本执行日志的方式保存在我的文档->documents->IPv6环境搭建文件夹中
17.按照资料设定好之后,第一次ping6没有成功。第二次ping6成功了。目前为止没有使用测试脚本进行实验。
route -A inet6查看路由