这一篇本来不太想写,但想想,不写出来后面又忘记了,就写写看了,
切记,大家看完别去用来做别的事情哈
正文来了:
开始就去注册一个Ipv6隧道服务吧
在隧道信息的下方有Example IPv6 Tunnel Configurations by OS (Windows, Linux, etc.):在这里可以找到各个操作系统隧道生成方法,我们这里选择了linux-route2
modprobe ipv6
ip tunnel add he-ipv6 mode sit remote 72.52.104.74 local 【你的IP】 ttl 255
ip link set he-ipv6 up
ip addr add 2001:470:1f01:f52b::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addr
在Linux上运行此脚本即可,然后使用ifconfig命令可以看到生成了he-ipv6网络接口。
测试
ping6 www.kame.net
如果出现(我这儿没有出现)
#ping6 www.kame.net
connect: Network is unreachable
这种情况是因为添加的默认路由没有生效,还需要自行添加
route -A inet6 add 2000::/3 dev sit1
如果你生成的是这样的
# ping6 www.kame.net
PING www.kame.net(2001:200:dff:fff1:216:3eff:feb1:44d7) 56 data bytes
64 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7: icmp_seq=0 ttl=56 time=393 ms
64 bytes from 2001:200:dff:fff1:216:3eff:feb1:44d7: icmp_seq=0 ttl=56 time=393 ms
则表明IPV6网络联通成功!
下面我们需要给内网的PC分配IPv6地址,该给他们分配什么样的地址呢,这个是不能乱分配的,由于IPV6没有了NAT的功能,所以IPV6的地址 应该是全球唯一的,HE.net的隧道里给我们提供了两个IPV6段,一个48位(Routed /48:)一个64位(Routed /64:)如果只有一个网段的话,用64的就可以。网络大的可以把48位划分成子网。
IPV6地址分配有有状态和无状态区分,radvd就是无状态的。我们可以用yum install radvd安装。
Radvd的配置文件是/etc/radvd.conf和/etc/sysconfig/radvd,只需要更改第一个即可。我的配置文件如下:
#cat /etc/radvd.confinte
interface eth0
{
AdvSendAdvert on;
MinRtrAdvInterval 30;
MaxRtrAdvInterval 100;
prefix 2001:470:4f05:152b::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
接着我们要开启IPV6的转发功能,这个和IPv4的转发类似,另外还要清空ip6tables规则。
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
ip6tables –F && service ip6tables save
然后再开启radvd服务,service radvd start
如果没有打开IPv6转发,则会报错radvd: IPv6 forwarding seems to be disabled, exiting
在PC客户端中安装IPv6(Windows Vista和7是默认安装的)
PC客户端会得到IPv6地址2001:470:4f05:152b开头的地址,可以使用ipconfig查看。
使用ping 2001:470:4f05:152b::1来查看到网关的连通性
在PC端ping6 www.kame.net 如果有返回值就OK了。
如果没有返回值也不要着急,可以自行添加默认网关
ipv6 -p rtu ::/0 7/2001:470:1f05:152b::1 这个网段要和radvd.conf中的对应起来。
或者是ip route add 2001::/3 via 2001:470:23:314::1/64 metric 1
Tips:
1.如何删除默认网关呢,呵呵,加一个life 0就可以了
ipv6 rtu ::/0 7/2001:470:19:13c::1 life 0
2.这里面的7表示什么意思呢?7表示网卡索引相当于ID,可以使用netsh int ipv6 show int查看。
如果ping成功表示你已经大功告成了