【軟體】DD-WRT v24 安裝 PPPoE Relay 套件



贊助商連結


FYI
2010-04-10, 11:13 PM
網友也許會期望當使用分享器之後, 偶爾也能以PPPoE 撥號上網, 以便取得真實IP, 除了以antion 兄經典的 "寬頻分享器(DI-701)另類接線法--方便取得其餘IP (http://www.pczone.com.tw/thread/16/13611/)" 方法之外, 那就必須分享器支援PPPoE Relay 才行, 以下文章乃參考 "Scribe's N.E.W. Studio://Blogger: Asus WL-520GU 刷 DD-WRT 韌體 (http://blog.new-studio.org/2010/02/asus-wl-520gu-dd-wrt.html)", 以DD-WRT v24 實做安裝PPPoE Relay 套件, 指令變換一下, 方法略有不同, 但殊途同歸, 而且更方便管理和升級

小弟是以La Fonera+ 刷DD-WRT v24 preSP2 (build 13064) 做實驗, 網友若分享器非使用Atheros 晶片, 則套件目錄不同, 請勿完全照抄, 進行之前必須先啟用JFFS, 否則請自行以/tmp 實驗

首先執行 "uname -a" 觀察Linux Kernel 版本, 小弟選擇的套件來源是OpenWrt (http://downloads.openwrt.org), 若Linux Kernel v2.4, 則應選擇WhiteRussian, 若Linux Kernel v2.6, 則應選擇Kamikaze, 最新的Backfire beta 小弟並不熟悉, 請自行研究

Linux Fon 2.6.24.111 #22645 Sat Oct 10 02:02:57 CEST 2009 mips unknown
長期以來, 由於/etc/ipkg.conf 內容不正確, 所以無法正確執行 "ipkg update" 和 "ipkg list"

ERROR: File not found: //usr/local/lib/ipkg/lists/whiterussian
You probably want to run `ipkg update'
ERROR: File not found: //usr/local/lib/ipkg/lists/non-free
You probably want to run `ipkg update'
ERROR: File not found: //usr/local/lib/ipkg/lists/backports
You probably want to run `ipkg update'
也就無法自動搜尋和安裝套件 "ipkg -d root install rp-pppoe-relay", 若直接執行 "ipkg -d root install http://downloads.openwrt.org/kamikaze/8.09.2/atheros/packages/rp-pppoe-relay_3.10-1_mips.ipk", 則顯示wget 錯誤, 只好手動以wget 下載到/tmp, 再執行 "ipkg -d root install rp-pppoe-relay_3.10-1_mips.ipk", 成功之後執行 "ipkg status", 則可以檢查目前以安裝的套件

Package: rp-pppoe-relay
Status: install ok installed
Root: /jffs
Version: 3.10-1
再執行 "ipkg files rp-pppoe-relay"

/jffs/
/jffs/etc/
/jffs/etc/default/
/jffs/etc/default/pppoe-relay
/jffs/etc/init.d/
/jffs/etc/init.d/pppoe-relay
/jffs/usr/
/jffs/usr/sbin/
/jffs/usr/sbin/pppoe-relay
必須再根據硬體配置修改/jffs/etc/default/pppoe-relay (對DD-WRT 無作用, 可忽略)

OPTIONS="-C br0 -S vlan1"
可以用vi, 或安裝nano_2.0.7-1_mips.ipk

不過到此為止/jffs/etc/init.d/pppoe-relay 對於DD-WRT 並無作用, 因為DD-WRT 對於啟動腳本的執行不同於OpenWrt, 而且少了/etc/rc.common, 既無法enable/disable, 也沒有/etc/rc.d, 所以變通的方法有二, 一是於DD-WRT 管理介面輸入 "/jffs/usr/sbin/pppoe-relay -C br0 -S vlan1", 然後儲存啟動指令 (Save Startup), 二是將以上指令儲存於/jffs/etc/config/pppoe-relay.startup, 然後執行:

chmod +x /jffs/etc/config/pppoe-relay.startup
前者若恢復預設值或清除NVRAM 就必須重新設定, 後者則清除JFFS 才會消失, 重啟之後, 請以ps 檢查

此外, PPPoE Relay 原本是DD-WRT 付費版才有的功能, 不過小弟的DD-WRT for Fon 在Services 之下可以直接啟用PPPoE Relay, 不知有無作用? 但啟用後會設定NVRAM 變數 "pppoerelay_enable=1"

小弟的La Fonera+ 目前僅當成AP 使用, 並未實際測試PPPoE Relay, 所以不知結果如何, 有興趣者, 請自行實驗

Ipkg (tutorial) - DD-WRT Wiki (http://www.dd-wrt.com/wiki/index.php/Ipkg)
Where to get packages - OpenWrt Wiki (http://wiki.openwrt.org/oldwiki/openwrtdocs/packages)
pppoe-relay - Linux Command - Unix Command (http://linux.about.com/library/cmd/blcmdl8_pppoe-relay.htm)
Startup Scripts - DD-WRT Wiki (http://www.dd-wrt.com/wiki/index.php/Startup_Scripts)
Script Execution - DD-WRT Wiki (http://www.dd-wrt.com/wiki/index.php/Script_Execution)