在Linux下利用隧道接入IPv6互联网

利用隧道接入IPv6

隧道,是一种在IPV4升级到IPV6期间的过渡技术。可以将IPV6数据包进行封装,通过现有的IPV4网络进行传输,并利用隧道代理接入IPV6网络。目前在有不少研究机构和商业公司提供可以免费使用IPV6隧道代理,常见的有:

1.泰国的NECTEC(
http://tb.ipv6.nectec.or.th/ ),免费申请,立即生效。

2.Hurricane Electric (
http://tunnelbroker.net/ ),以下简称HENET,免费申请,申请24小时后生效。


请注意:不论使用哪一个隧道,都必须要有一个真实的全球唯一的互联网IPv4地址才可以。

下面以HENET为例,介绍一下在Linux下建立和使用隧道访问IPV6网络的方法。

首先在HENET的网页上注册并申请一条隧道,注意申请的时候您的IPV4地址必须能被HENET所”ping”到。等待24小时后,就可以看到自己隧道的详情了。

例如笔者隧道的详细情况如下:

  1. 服务器IPV4地址        64.71.128.83
  2. 服务器IPV6地址        2001:470:1F03:EE1::1/64
  3. 笔者的IPv4地址        125.96.98.198
  4. 笔者的IPV6地址        2001:470:1F03:EE1::2/64

复制代码 如果您的IPV4地址发生了变化,则在HENET网站上重新建立隧道即可。网页中点击”Example Configs”链接,即可看到相对应的配置命令,HENET提供了Linux、FreeBSD、Windows、Solaris等操作系统下对应的命令。

笔者的使用Fedora Core 5 Linux,默认就支持IPV6,建立上述隧道的命令是:

  1. #ifconfig sit0 up
  2. #ifconfig sit0 inet6 tunnel ::64.71.128.83
  3. #ifconfig sit1 up
  4. #ifconfig sit1 inet6 add 2001:470:1F03:EE1::2/64
  5. #route -A inet6 add ::/0 dev sit1

复制代码 首先启用sit0隧道接口,隧道另一端的地址是HENET的64.71.128.83。然后启用sit1隧道接口,并且设置本身的隧道接口。最后一个命令设定系统访问所有IPV6地址时,都从sit1接口出去。

上述命令需要以root用户的身份执行,执行完毕后立即生效。这时就尝试访问IPV6网络了。但重新启动系统后,上述隧道的配置配置全部会丢失。如果想使得隧道的配置总是能够在开机后自动生效,则可手工建立下列两个文件,其内容如下:

  1. #cat /etc/sysconfig/static-routes-ipv6
  2. sit1 ::/0

复制代码

  1. #cat /etc/sysconfig/network-scripts/ifcfg-sit1
  2. DEVICE=sit1
  3. ONBOOT=yes
  4. IPV6INIT=yes
  5. IPV6TUNNELIPV4=64.71.128.83
  6. IPV6ADDR=2001:470:1F03:EE1::2/64

复制代码 另外在/etc/sysconfig/network 文件中添加一行如下:

  1. NETWORKING_IPV6=yes

复制代码 感受IPV6

Linux下的多数网络工具都可以支持IPV6,例如Firefox浏览器。Firefox在访问一个网站时,如果同时解析到IPV4和IPV6地址时,在系统支持IPV6的情况下,会优先使用IPV6地址。您可以尝试访问下列地址:


http://www.kame.net/,如果你使用IPV4地址去访问,可以看到一个静止海龟,一旦你使用IPV6地址,则这个海龟会动。


http://www.deepspace6.net/,网页下方会显示你的IPV4或IPV6地址。


http://ipv6.sjtu.edu.cn/ ,上海交大的IPV6首页,会在页面的右上方显示您的IPV6或IPV4地址。

http//mirrors.bieringer.de/Linux+IPv6-HOWTO/,Linux下的IPV6 Howto文档,页面下方会显示您的IPV4或IPV6地址。

其他可用的网络工具还有host、dig、ping6、tcpdump、links、lynx、traceroute6等命令,其中前两个命令无需操作系统支持IPV6,亦可使用。

支持IPV6的Linux系统上,host命令在查询域名地址的时候,会同时返回IPV4和IPV6地址。

  1. $host www.deepspace6.net
  2. www.deepspace6.net has address 192.167.219.83
  3. www.deepspace6.net has IPv6 address 2001:760:2e01:1::dead:beef
  4. $

复制代码 如果只想看IPV6地址,则使用命令:

  1. $host -t AAAA www.deepspace6.net
  2. www.deepspace6.net has IPv6 address 2001:760:2e01:1::dead:beef
  3. $

复制代码 这是由于在支持IPV6的DNS服务器中,用AAAA记录(简称4A,Quad-A)代替了原来的A记录。相似的,dig命令也可以使用”-t AAAA” 参数。

ping6命令用来在IPV6环境下取代原有的ping命令。

  1. $ping6 -c 4 www.6bone.net
  2. PING www.6bone.net(classical.hexago.com) 56 data bytes
  3. 64 bytes from classical.hexago.com: icmp_seq=0 ttl=57 time=673 ms
  4. 64 bytes from classical.hexago.com: icmp_seq=1 ttl=57 time=668 ms
  5. 64 bytes from classical.hexago.com: icmp_seq=2 ttl=57 time=672 ms
  6. 64 bytes from classical.hexago.com: icmp_seq=3 ttl=57 time=743 ms
  7. — www.6bone.net ping statistics —
  8. 4 packets transmitted, 4 received, 0% packet loss, time 3007ms
  9. rtt min/avg/max/mdev = 668.738/689.558/743.326/31.104 ms, pipe 2
  10. $

复制代码 traceroute6命令就是IPV6环境下的traceroute。可以跟踪当前的IPV6路由信息。

  1. $traceroute6  www.6bone.net
  2. traceroute to www.6bone.net (2001:5c0:0:2::24), 30 hops max, 40 byte packets
  3. 1  2001:470:1f03:ee1::1 (2001:470:1f03:ee1::1)  297.786 ms  300.323 ms 301.071 ms
  4. 2  2001:470:1fff:2::26 (2001:470:1fff:2::26)  304.122 ms  305.512 ms  315.105 ms
  5. 3  2001:470:0:9::2 (2001:470:0:9::2)  317.708 ms  319.274 ms  319.999 ms
  6. 4  paix6.ttnet.ad.jp (2001:504:d::e)  322.116 ms  322.795 ms  323.521 ms
  7. 5  2001:2a0:3:7::6175 (2001:2a0:3:7::6175)  557.583 ms  558.293 ms  558.981 ms
  8. 6  sl-bb1v6-nyc-t-11.sprintv6.net (2001:440:1239::1)  666.972 ms 655.402 ms  669.479 ms
  9. 7  2001:440:eeee:ffca::2 (2001:440:eeee:ffca::2)  676.343 ms  664.283 ms 670.184 ms
  10. 8  classical.hexago.com (2001:5c0:0:2::24)  671.037 ms  676.618 ms  677.437 ms
  11. $

复制代码

原创文章,作者:admin,如若转载,请注明出处:https://www.ipv6s.com/basis/application/20101024447.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注