Sunday, December 22, 2024

在IPv4 IPv6双栈环境下配置无线路由器

随着CERNET2的飞速建设,现在许多大学的校园网已经开始部署IPv6协议了。IPv6的好处是显而易见的,它不但使我们能够拥有全球唯一的 IP地址,而且给我们提供了第二条网络出口。尤其在进行P2P的时候,如果能够连接上IPv6的用户,速度往往可以彪到1M/s~2M/s。同时IPv6 上的很多资源也是很实用的,例如IPTV、免费代理服务器等等。但是IPv6也带来一些问题,比如说路由器的设置。
相信很多大学的宿舍里网络接口的数目都是少于宿舍电脑数目的,另外对于一些大学,校园网出口是通过IPv4地址进行认证的,如果想要宿舍里所有人共享一个 网关帐户,就需要用到路由器的NAT功能。可问题是NAT技术目前不支持IPv6,也就意味着路由器后面的电脑无法获得IPv6地址,也无法享受IPv6 资源。这篇文章要讨论的问题就是如何配置无线路由器,使得路由器后的电脑能同时使用IPv4与IPv6网络。另外本文所讨论的情况仅限于IPv4 IPv6双栈的情况,通过ISATAP Tunnel连接的情况请参考http://www.dd-wrt.com/wiki/index.php/IPv6

想要配置如此高级的功能,简陋的官方固件显然是不能满足我们的需要,于是我们需要第三方固件的帮助。第三方固件主要有DD-WRT、Tomato以 及DD-WRT。本文使用的是DD-WRT,但是其实只要是支持IPv6的基于Linux的固件理论上都可以实现。不过并不是所有无线路由器都支持第三方 固件的,想要确定你的路由器能不能支持第三方固件,请访问http://www.dd-wrt.com/site/support/router-database;另 外你的路由器必须有4MB以上的Flash空间才能使用支持IPv6的固件版本。我的路由器是Asus WL-500G Deluxe,4M Flash,32M RAM,使用的固件为DD-WRT v24-sp2 (08/23/09) std-nokaid-usb刷机教程请参考http://www.dd-wrt.com/wiki/index.php/安装。注意,刷机操作有让路由器 变砖的危险,并且会使你的路由器丧失保修,请谨慎行事。

首先我们需要在电脑上安装IPv6协议,Windows用户请在开始->运行里输入ipv6 install,Linux 用户请在终端中输入insmod IPv6。然后我们要把电脑直接接在校园网接口上,让它自动获得IP地址,Windows用 户在命令行提示符窗口中输入ipconfig,Linux用户在终端输入ip -6 addr show/ip -6 route show。以Windows用户为例,我们会得到类似以下一些信息

 Ethernet adapter Wireless Network Connection:

 Connection-specific DNS Suffix  . :
 IP Address. . . . . . . . . . . . : 10.2.90.146
 Subnet Mask . . . . . . . . . . . : 255.255.255.0
 IP Address. . . . . . . . . . . . : 2001:250:209:5d11:21d:92ff:fec1:8109
 IP Address. . . . . . . . . . . . : fe80::21d:92ff:fec1:8109%4
 Default Gateway . . . . . . . . . : 10.2.90.1  fe80::213:d4ff:fee8:50b8%4

这里面有用的信息是IP Address中2001开头的地址,和Default Gateway中fe80开头的地址,把它们记录下来备用。
然后登录到路由器Web页面,选择“管理”,找到“IPv6支持”选项,选择“启用”,并在出现的Radvd选项上选择“启用”。在Radvd配置文本框 中输入:

 interface br0 {
 AdvSendAdvert on;
 prefix 2001:XXXX:XXXX:XXXX::/64 {
 AdvOnLink on;
 AdvAutonomous on;

其中prefix后面的X替换为之前获得的IPv6地址的对应内容,点击页面最下方的“应用”进行保存

然后进入“命令”页面,在指令解释器里输入:

 insmod ipv6
 sleep 5
 radvd -C /tmp/radvd.conf
 ip -6 route add ::/0 via fe80::XXXX:XXXX:XXXX:XXXX dev vlan1 metric 256
 ip -6 route add 2001:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX/128 dev br0 metric 128
 ip -6 neigh add proxy 2001:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX dev vlan1

将第4行fe80后面的X替换为之前得到的Default Gateway地址,将第5、6行2001后面的X替换为之前的IP Address
点击“保存为启动指令”

到这里配置就完成了,拔下路由器电源,把WAN口连接到校园网,LAN口连接到电脑上,插上电源。等电脑显示网络已连接以后,在终端中输入ping6 ipv6.google.com,如果得到类似下面的结果,说明配置成功了

 C:>ping6 ipv6.google.com
 Pinging ipv6.l.google.com [2001:4860:c004::68]
 from 2001:250:209:5d11:21d:92ff:fec1:8109 with 32 bytes of data:
 Reply from 2001:4860:c004::68: bytes=32 time=62ms
 Reply from 2001:4860:c004::68: bytes=32 time=66ms
 Reply from 2001:4860:c004::68: bytes=32 time=64ms
 Reply from 2001:4860:c004::68: bytes=32 time=63ms

 Ping statistics for 2001:4860:c004::68:
 Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
 Approximate round trip times in milli-seconds:
 Minimum = 62ms, Maximum = 66ms, Average = 63ms

-End-

7 comments

  1. 无线设备是什么型号和系统?

  2. 我搞了个思科CVR100W无线路由,是支持IPv6的。在支持IPv6的网络环境下(v4, v6双栈)测试,WAN口接外网,然后通过LAN口连接的机器,可以使用IPv6,但通过无线接入的设备却不行(无线设备本身是支持IPv6的)。请问有可能是什么问题呢?

  3. 无线设备需要在系统软件上支持IPv6协议。

  4. 请问 这样配置后 无线设备也具备ipv6功能了吗?

  5. 补充一下,网络是教育网的双栈网络

  6. 你可以到http://www.dd-wrt.com/site/support/router-database官方数据库中查询具体支持DDWRT固件的各大品牌路有器型号,一般来说思科的最好,巴比禄(BUFFALO)和华为的也不错,D-link部分型号也支持DDWRT。

  7. 能推荐个路由么?不知道刷了之后会不会影响效率。。。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.