Linux中ADSL通过6to4自动穿隧连入IPv6

  前两天捣鼓了一个USB ADSL在VMWare虚拟机中Linux系统中的安装配置和拨号方法。目前青岛网通这里,如果是在Windows环境下,拨号后能够自动获取6to4自动穿隧方式的2002开头的IPv6地址,Linux下的获取需要手动配置一下,并不是很复杂。

  如果是Windows系统,那么通过ipconfig可以得到类似如下的信息。

C:\Documents and Settings\Administrator>ipconfig
Windows IP Configuration

PPP adapter AccessRunner DSL:
   Connection-specific DNS Suffix  . :
   IP Address. . . . . . . . . . . . : 123.235.169.32
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 123.235.169.32

Tunnel adapter 6to4 Tunneling Pseudo-Interface:
   Connection-specific DNS Suffix  . :
   IP Address. . . . . . . . . . . . : 2002:7beb:a920::7beb:a920
   Default Gateway . . . . . . . . . : 2002:c058:6301::c058:6301

  其中IPv6地址中的7beb:a920正好对应动态IPv4的地址123.235.169.32,而IPv6网关地址中的c058:6301对应的是不变的192.88.99.1,这个192.88.99.1是一个特定的6to4中用于任意点传送的中继路由地址。需要做的就是记好这几个地址的规律。

  然后换到Linux中,配置好ADSL,拨号后连入IPv4网,ifconfig查询到新获得的动态IPv4地址,然后按照上面的规律自行将其转换到6to4方式下2002开头的IPv6地址。例如现在得到的是124.135.17.179,对应的6to4地址为2002:7c87:11b3::7c87:11b3。下面将手动添加6to4隧道和中继路由。

[root@leon ~]# ip tunnel add 6to4 mode sit remote any local 124.135.17.179
[root@leon ~]# ip link set dev 6to4 up
[root@leon ~]# ip addr add 2002:7c87:11b3::7c87:11b3/16 dev 6to4
[root@leon ~]# ip -6 route add ::/0 via ::192.88.99.1 dev 6to4 metric 1026

  添加完后通过ifconfig可以看到新多出的网卡6to4,同时ping6一下ipv6.google.com已经可以正常的显示结果。

[root@leon ~]# ifconfig
6to4      Link encap:IPv6-in-IPv4
          inet6 addr: 2002:7c87:11b3::7c87:11b3/16 Scope:Global
          inet6 addr: ::124.135.17.179/128 Scope:Compat
          UP RUNNING NOARP
 ......