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
于是确定了这个脚本就是问题所在。
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地址通信。”
以上是我根据参考资料总结出的思路,可能与实际有出入。所以如果不对,应参考参考资料的实例。
参考资料:
http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7346189c7150885cf5593665945456ce1ba3a231006d3c4796316af3e1db0b6692c23467df7cdc7d61181fcd83f2ff93045770bf14705a51db8ba4732c151cb18feae69a3bee733e3b9a2d4c82259dd25016df0f5&p=8b2a905d9e8714ff57ea94215c0d&user=baidu&fm=sc&query=linux+%C5%E4%D6%C3+ipv6%B5%D8%D6%B7&qid=8c4e038b0315bcdd&p1=4
16.实际配置过程以校本执行日志的方式保存在我的文档->documents->ipv6环境搭建文件夹中
17.按照资料设定好之后,第一次ping6没有成功。第二次ping6成功了。目前为止没有使用测试脚本进行实验。