本文实验的系统是CentOS 6 x64(理论支持CentOS 5+系列系统)
开始我用配置文件的方式配置隧道V6,但是总是不成功,于是就换成了命令模式,等我把命令写到/etc/rc.local中的时候 开启后V6有配置,但是却不能在其他机器上ping通,之后排查发现,试用HE的隧道V6,线路打通需要在本机上第一次发起,所以我就在rc.local文件中加入了一个ping Google的命令,这样就真正解决了开机启动IPV6知道配置和生效了。
你以为这样就完事了?那就大错特错了,我在Nginx的配置文件中写死了每个虚拟机对应绑定的V6地址,然后CentOS系统启动过程是先加载/etc/rc.d/init.d/目录下的启动脚本,等这里都启动完毕之后再去加载/etc/rc.local文件的内容,好了问题来了,先启动Nginx然后Nginx是绑定V6地址了,这是IPV6还没配置呢,所以Nginx启动就报错不能正常启动。等系统开机流程完毕之后发现Nginx是没启动的。
为了解决上面的问题就我单独写了个隧道IPv6的init启动管理脚本(Nginx的启动值正常情况是85)我把v6的启动脚本值设置小余85这样V6就先配置然后才是Nginx启动,经过一系列的修改之后,世界清静了。。。
上面说了那么多其实都是废话,大家可以直接用下面的脚本来实现自动配置。
wget http://www.dwhd.org/script/edit_aws_he_tunnel_v6.sh bash edit_aws_he_tunnel_v6.sh
自动配置脚本源码
#!/bin/bash ######################################################################### # File Name: edit_aws_he_tunnel_v6.sh # Author: LookBack # Email: admin#dwhd.org # Version: # Created Time: 2015年08月15日 星期六 15时13分35秒 ######################################################################### wget http://www.dwhd.org/script/aws_he_tunnel_v6.sh -O /etc/init.d/manageripv6 read -p "Plz input your HE Server IPv4 Address : " HESERVERIP read -p "Server IPv6 Address : " HEIPV6_IPADDRESS sed -i "s/HESERVERIP/$HESERVERIP/" /etc/init.d/manageripv6 sed -i "s/HEIPV6_IPADDRESS/${HEIPV6_IPADDRESS::*}/" /etc/init.d/manageripv6 chmod +x /etc/init.d/manageripv6 chkconfig manageripv6 on service manageripv6 start service manageripv6 status
IPV6启动管理脚本源码
#!/bin/sh ######################################################################### # File Name: manageripv6.sh # Author: LookBack # Email: admin#dwhd.org # Version: # Created Time: 2015年08月15日 星期六 14时28分51秒 ######################################################################### # chkconfig: 2345 60 40 # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ipv6_start() { ifconfig sit0 up ifconfig sit0 inet6 tunnel ::74.82.46.6 ifconfig sit1 up v6end=(aaaa bbbb cccc dddd eeee ffff 0000 1111 2222 3333 4444 5555 6666 7777 8888 9999) for i in ${v6end[@]}; do ifconfig sit1 inet6 add 2001:470:23:b56:1234:5678:9abc:$i/64 done route -A inet6 add ::/0 dev sit1 sleep 5 && ping6 ipv6.google.com -c2 >/dev/null 2>&1 } ipv6_stop() { ifconfig sit0 down ifconfig sit1 down } ipv6_restart() { ipv6_stop ipv6_start } ipv6_reload() { ipv6_restart } ipv6_status() { ifconfig | awk '/inet6/{if ($3!~/^(::|fe80)/) print $3" Online"}' } case "$1" in start) ipv6_start ;; stop) ipv6_stop ;; restart) ipv6_restart ;; reload) ipv6_reload ;; status) ipv6_status ;; *) echo $"Usage: $0 {start|stop|status|restart|reload}" exit 2 esac
2015年8月28日 下午1:22 1F
aws各种坑,建议远离。脚本不错,收下了!