Friday, March 29, 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.