會員 | 寬頻分享器另類接線法之狗尾續貂篇 這篇討論的目的在於延伸antion 兄的 "寬頻分享器(DI-701)另類接線法--方便取得其餘IP", 小弟目前尚在研究階段, 雖明知應該可以用iptables 達成, 但尚未找到簡單可行的方法, 請各方高手一起集思廣益, 在此先說明欲達成的目標和條件:
M LAN4─PC7/MOD?針對PPPoE 用戶, 小弟通常會建議採用antion 兄所提的方法, 增加一條網路線連接數據機和路由器: M LAN4─PC5以下適用於Modem 和AP 之間只有一條網路線: M LAN4─PC5然而從以上可看出, 多一條網路線就得浪費兩個網路埠, 導致最多只能多出一個網路埠, 若用戶有申請MOD, 那就等於做白工, 此外並非每一種路由器都可以如此連接, 因此以上方法就變得非常不切實際 另一個應用則是針對只有一個網路埠的AP 而言, 例如La Fonera, ASUS WL-330gE, WL-HDD2.5 等, 按照過去的做法, 如果網路埠已經連接數據機的話, 那麼這幾種路由器就只能透過無線連接, 但是如果新的做法可行的話, 那麼不需額外設備就可以多出三個網路埠以供運用: M LAN4─PC3/MOD?在此必須特別提出的是即使新的做法可行, 那麼傳輸瓶頸將會發生於Modem 到AP 之間 (雙線框代表PPPoE Frame & IPv4/IPv6 Frame), 例如從連接Modem 的PC 大量存取AP 上的網芳, 此時可能會影響網際網路的連線, 因為原先AP 的WAN Port 不但要連線網際網路, 也要橋接內部區域網路, 而橋接是屬於硬體式的, 所以無法以AP 的QoS 控管 在繼續討論之前, 小弟先就自己很粗淺的瞭解, 簡要說明一下技術可行的原理, PPPoE 是把PPP 協定封裝於Ethernet II Frame 之中, 而Linux 把PPP 視為一個虛擬的介面, 有別於一般所熟知的WAN/LAN/VLAN 等實體介面, 因此以iptables 處理et0/br0/vlan0/ppp0 等實體和虛擬介面就變成非常容易, 另一個關鍵是IPv4/IPv6 Frame 和PPPoE Frame 可以並存於同一個實體介面 (例如WAN), 不會混淆, 舉例來說如同Windows PPPoE 連線和區域連線並存一樣, 只需要一片網路卡, PPPoE 連線所取得的IP 不同於區域連線的IP, 兩者各自獨立, 互不影響, 既然Windows 可以辦到, 當然Linux 更沒有問題, 但問題在於路由器的韌體雖然也是基於Linux, 但設計上並未考慮到單一網路埠既可以跑PPPoE, 又可以連接區域網路, 這也是小弟以DD-WRT 實驗所遇到的困境, 對於DD-WRT 來說, PPPoE 和WAN Port 相關, 而WAN Port 又和實體網路埠相關, 小弟懷疑WAN Port 決定之後, LAN Port 也就被決定, 而DD-WRT 不允許WAN & LAN 共用同一實體網路埠 (例如vlan0), 所以小弟目前卡在明知應該把實體WAN & LAN1-4 結合成為一個VLAN (vlan0), 但卻不知道該把WAN 指定為什麼介面 (WAN Port Assignment), 才不會導致無法連線DD-WRT? 從以下敘述看來: Iptables command - DD-WRT Wikivlan1 (WAN) 唯一的作用可能只有pppd 的設定檔會參考到, 所以在vlan1 上面應該只會有PPPoE 封包, 而沒有IPv4 封包, 而且執行 "iptables -vnL" 可以確定ppp0/br0 分別代表WAN/LAN, 實際上是不需要vlan1 的, 所以重點也許是如何讓pppd 連接vlan0: 語法: root@DD-WRT:~# ps PID USER VSZ STAT COMMAND 279 root 1596 S pppd file /tmp/ppp/options.pppoe 280 root 1184 S /tmp/ppp/redial 30 語法: root@DD-WRT:~# cat /tmp/ppp/options.pppoe plugin /usr/lib/rp-pppoe.so nic-vlan1 暫時先談到這裡, 等有進一步的結果再來報告 Point-to-Point Protocol over Ethernet - Wikipedia, the free encyclopedia EtherType - Wikipedia, the free encyclopedia 此篇文章於 2010-08-16 07:00 PM 被 FYI 編輯。. 原因: 補充La Fonera 運用 | |
回覆 |
會員 | DD-WRT v24-preSP2 實做WAN & LAN 並存於單一網路埠 以下以Belkin F5D7230-4 v1444 刷DD-WRT v24-preSP2 micro-plus 版實做, 文章寫於實做成功之後, 以下指令目的在於調整VLAN: root@DD-WRT:~# nvram show | grep vlan | sort然後開啟DD-WRT Setup -> Networking -> Port Setup -> WAN Port Assignment -> br0 -> Apply Settings -> 請重新啟動DD-WRT 語法: root@DD-WRT:~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 1xx.xx.xx.xxx * 255.255.255.255 UH 0 0 0 ppp0 192.168.1.0 * 255.255.255.0 U 0 0 0 br0 169.254.0.0 * 255.255.0.0 U 0 0 0 br0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default hxxx.sxx.xx.xxx 0.0.0.0 UG 0 0 0 ppp0 root@DD-WRT:~# cat /tmp/ppp/options.pppoe plugin /usr/lib/rp-pppoe.so nic-br0 嚴格來說WAN Port 應該改為vlan0 (有線網路) 較佳, 然而由於會導致vlan0 脫離br0 (可能和DD-WRT 的設計邏輯有關), 不得已只好選擇br0, 小弟測試時並未啟用無線, 所以不知有何影響, 或許有高手知道如何替vlan0 建立一個別名 以上把WAN & LAN1-4 合併成為一個VLAN (vlan0), 而vlan1 則廢棄不用, DD-WRT WebGUI 無法刪除vlan1, 但從ifconfig 來看, vlan1 已經不存在, 小弟原先一直往VLAN Trunking 方向尋找答案, 實際上是不瞭解VLAN Trunking 所需條件, 因而浪費不少時間, 其實#1 已經分析出WAN (PPPoE) & LAN (IPv4/IPv6) 各跑不同協定, 所以不需要以VLAN 切割, 也不需要802.1q, 剩下的問題就是如何以DD-WRT WebGUI 完成小弟所要達到的功能, 由於DD-WRT 的VLANs 網頁還有一些臭蟲, 所以部份工作還是得靠下指令完成, 此外並非每一種DD-WRT 所支援的路由器都可以支援VLAN, 而OpenWrt Kamikaze 以後也已經不再使用NVRAM, 有興趣者請自行研究 VLAN Detached Networks (Separate Networks With Internet) - DD-WRT Wiki Switched Ports - DD-WRT Wiki DD-WRT Forum :: View topic - HOWTO: Two networks on single port (FON, w/o VLANs) VLAN and bridging concepts - OpenWrt Wiki Network configuration - OpenWrt Wiki OpenWrt / Mixed tagged untagged packets in VLAN trunk OpenWrt / Several VLans one one port?! WHR-G54S & DD-WRT - TipsterNet 此篇文章於 2010-08-23 12:17 PM 被 FYI 編輯。. |
回覆 |
會員 | 回覆: 寬頻分享器另類接線法之狗尾續貂篇 訂閱ing 雖然我只有Fon PLUS... |
回覆 |
會員 | |
回覆 |
會員 | 回覆: 寬頻分享器另類接線法之狗尾續貂篇 |
回覆 |
會員 | 回覆: 寬頻分享器另類接線法之狗尾續貂篇 其實 我印象中 之前FON改DD-WRT有出現個很怪的狀況... 單Port的FON,改了DD-WRT後,某次實驗無意中發現 在小烏龜下的電腦,竟然查得到DD-WRT這個DHCP Server... 明明DHCP應該只對br0,竟然WAN端的電腦也拿得到NAT的IP... 也就是...這個很怪的狀況,偏偏是你想要的結果 :Q So? 通通歸成br0,管它WAN,LAN,WLAN :P |
回覆 |
會員 | 回覆: 寬頻分享器另類接線法之狗尾續貂篇 |
回覆 |
會員 | Fonera+ 刷Gargoyle v1.3.4 (OpenWrt Backfire v10.03) Fonera+ 刷Gargoyle v1.3.4 (OpenWrt Backfire 10.03) 的初步測試結果, 內建ppp-mod-pppoe 似乎無法任意選擇ifname, 預設為eth0.2 (Kamikaze 為eth0.1), 改成br-lan 則無法建立連線 (pppoe-wan), 有可能小弟沒能搞懂br-lan 和pppoe-wan 的先後順序, 如果先照預設建立pppoe-wan, 再把eth0.2 加入br-lan, 則會導致pppoe-wan 中斷, 比較理想的方式是先建立br-lan 橋接eth0.1 & eth0.2, 再執行/usr/sbin/pppd, 可是小弟尚未弄懂pppd 參數是否如下: 語法: /usr/sbin/pppd plugin rp-pppoe.so mtu 1492 mru 1492 nic-eth0.2 語法: root@OpenWrt:~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface xxx.xx.xx.xxx * 255.255.255.255 UH 0 0 0 ppp0 192.168.1.0 * 255.255.255.0 U 0 0 0 br-lan default * 0.0.0.0 U 0 0 0 ppp0 LAN : eth0.1 (Kamikaze eth0.0) |
回覆 |
會員 | Gargoyle v1.3.4 on Fonera+ run PPPoE over br-lan 終於搞定Gargoyle v1.3.4 on Fonera+, 以下文章完成於實做成功之後, 但還不是很完美, 只能算是Work-around 稍微把ppp-mod-pppoe 和rp-pppoe-client 的行為差異搞懂了, 不過以下只是小弟瞎猜的, ppp-mod-pppoe 會把綁定網路埠的IP 移除, 若該網路埠屬於橋接器之一, 則從橋接器中移除, 而rp-pppoe-client 只會把新的IP 指定給ppp0, 以下是執行 "ifup wan" 和 "logread | grep ppp" 的結果: 語法: Aug 22 04:00:29 OpenWrt daemon.info pppd[1560]: Plugin rp-pppoe.so loaded. Aug 22 04:00:29 OpenWrt daemon.notice pppd[1560]: pppd 2.4.4 started by root, uid 0 Aug 22 04:00:29 OpenWrt daemon.info pppd[1560]: PPP session is 10069 Aug 22 04:00:29 OpenWrt daemon.info pppd[1560]: Renamed ppp0 to pppoe-wan Aug 22 04:00:29 OpenWrt daemon.info pppd[1560]: Using interface pppoe-wan Aug 22 04:00:29 OpenWrt daemon.notice pppd[1560]: Connect: pppoe-wan <--> br-lan Aug 22 04:00:30 OpenWrt daemon.notice pppd[1560]: PAP authentication succeeded 語法: Aug 22 04:03:56 OpenWrt daemon.notice pppd[1662]: pppd 2.4.4 started by root, uid 0 Aug 22 04:03:56 OpenWrt daemon.info pppd[1662]: Using interface ppp0 Aug 22 04:03:16 OpenWrt daemon.notice pppd[1627]: Connect: ppp0 <--> /dev/pts/0 Aug 22 04:03:56 OpenWrt daemon.debug pppoe[1667]: PADS: Service-Name: '' Aug 22 04:03:56 OpenWrt daemon.info pppoe[1667]: PPP session is 6482 (0x1952) Aug 22 04:03:57 OpenWrt daemon.warn pppd[1662]: Warning - secret file /etc/ppp/pap-secrets has world and/or group access Aug 22 04:03:57 OpenWrt daemon.warn pppd[1662]: Warning - secret file /etc/ppp/pap-secrets has world and/or group access Aug 22 04:03:58 OpenWrt daemon.notice pppd[1662]: PAP authentication succeeded 語法: config 'interface' 'loopback' option 'ifname' 'lo' option 'proto' 'static' option 'ipaddr' '127.0.0.1' option 'netmask' '255.0.0.0' config 'interface' 'lan' option 'type' 'bridge' option 'ifname' 'eth0.1 eth0.2' option 'proto' 'static' option 'netmask' '255.255.255.0' option 'ipaddr' '192.168.1.254' config 'interface' 'wan' option 'ifname' 'br-lan' option 'proto' 'pppoe' option 'username' '[email protected]' option 'password' 'PASSWORD' option 'keepalive' '3' option 'ppp_redial' 'persist' option 'persist' 語法: root@OpenWrt:/# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 * 255.255.255.0 U 0 0 0 br-lan 語法: root@OpenWrt:/# ifup wan ; route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface xxx.xx.xx.xxx * 255.255.255.255 UH 0 0 0 pppoe-wan default * 0.0.0.0 U 0 0 0 pppoe-wan 語法: root@OpenWrt:/# ifconfig br-lan 192.168.1.254 netmask 255.255.255.0 ; route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface xxx.xx.xx.xxx * 255.255.255.255 UH 0 0 0 pppoe-wan 192.168.1.0 * 255.255.255.0 U 0 0 0 br-lan default * 0.0.0.0 U 0 0 0 pppoe-wan 語法: root@OpenWrt:/# brctl show bridge name bridge id STP enabled interfaces br-lan 8000.001884aabbcc no ath0 eth0.1 eth0.2 語法: #!/bin/sh /etc/rc.common START=98 start() { ifup wan ifconfig br-lan 192.168.1.254 netmask 255.255.255.0 } 語法: chmod +x /etc/init.d/custom-user-startup /etc/init.d/custom-user-startup enable /etc/init.d/custom-user-startup start La Fonera (FON2100 & FON2200) 應該只需把以上 "eth0.1 eth0.2" 改成 "eth0" 即可套用 此外pppd 指令應該看起來像是: 語法: /usr/sbin/pppd plugin rp-pppoe.so mtu 1492 mru 1492 nic-br-lan persist usepeerdns defaultroute replacedefaultroute user [email protected] password PASSWORD unit 0 linkname wan ipparam wan OpenWrt / lan and wan on one ethernet port with vlan pppd(8): Point-to-Point Protocol Daemon - Linux man page |
回覆 |
會員 | 預留退路 從以下dmesg 或許可以看出ifup wan 的影響: 語法: br-lan: port 3(ath0) entering disabled state br-lan: port 2(eth0.2) entering disabled state br-lan: port 1(eth0.1) entering disabled state br-lan: port 3(ath0) entering forwarding state br-lan: port 2(eth0.2) entering forwarding state br-lan: port 1(eth0.1) entering forwarding state 語法: #In case you brick your router config 'alias' option 'interface' 'wan' option 'proto' 'static' option 'ipaddr' '169.254.255.254' option 'netmask' '255.255.0.0' 請留意小弟把wan alias IP 設為 "169.254.0.0/16", 這是被保留的IP, 所以可以安全地使用於wan, 此外事實上wan 所對應的介面是br-lan: 語法: root@OpenWrt:/# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface xxx.xx.xx.xxx * 255.255.255.255 UH 0 0 0 pppoe-wan 192.168.1.0 * 255.255.255.0 U 0 0 0 br-lan 169.254.0.0 * 255.255.0.0 U 0 0 0 br-lan default * 0.0.0.0 U 0 0 0 pppoe-wan 不過正規解決之道應該還是找出為何啟動時ppp-mod-pppoe 沒作用的原因, 可能得另找時間研究 "sh -x /etc/init.d/network restart" 和 "sh -x /sbin/ifup wan" 兩者之間的差異 最後請留意 "169.254.0.0/16" 的設定, 如果區網內有DD-WRT 路由器的話, DD-WRT 預設也會建立br0:0 IP 169.254.255.1, 小弟不確定最後一位數是否和DD-WRT's 預設LAN IP 192.168.1.1 對應, 所以保險起見, 小弟會把這兩個IP 的最後一位數設為相同, 以免重複 |
回覆 |
XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。