這篇討論的目的在於延伸antion 兄的 "
寬頻分享器(DI-701)另類接線法--方便取得其餘IP", 小弟目前尚在研究階段, 雖明知應該可以用iptables 達成, 但尚未找到簡單可行的方法, 請各方高手一起集思廣益, 在此先說明欲達成的目標和條件:
- 僅針對PPPoE 用戶
- 數據機具有四個網路埠
- 路由器採用開放韌體, 例如OpenWrt, DD-WRT & Tomato
其實這是個老問題了, 有些網友買了AP 之後, 發現網路埠仍然不夠用, 雖然僅缺少1-2 個埠, 但還是得花錢添購交換器或無線網卡, 然而數據機可能還有2-3 個網路埠空著沒用, 用了的話, 網芳又成問題:
M LAN4─PC7/MOD?
o LAN3─PC6?
d LAN2─PC5?
e LAN1═╗
m ║
WAN ═╝
LAN1─PC1
A LAN2─PC2
P LAN3─PC3
LAN4─PC4
針對PPPoE 用戶, 小弟通常會建議採用antion 兄所提的方法, 增加一條網路線連接數據機和路由器:
M LAN4─PC5
o LAN3─PC4
d LAN2──┐
e LAN1─┐│
m ││
WAN ─┘│
LAN1──┘
A LAN2─PC1
P LAN3─PC2
LAN4─PC3
以下適用於Modem 和AP 之間只有一條網路線:
M LAN4─PC5
o LAN3─PC4
d LAN2─PC3
e LAN1──┐
m │
WAN ─┐│
LAN1─┘│
A LAN2──┘
P LAN3─PC1
LAN4─PC2
然而從以上可看出, 多一條網路線就得浪費兩個網路埠, 導致最多只能多出一個網路埠, 若用戶有申請MOD, 那就等於做白工, 此外並非每一種路由器都可以如此連接, 因此以上方法就變得非常不切實際
另一個應用則是針對只有一個網路埠的AP 而言, 例如La Fonera, ASUS WL-330gE, WL-HDD2.5 等, 按照過去的做法, 如果網路埠已經連接數據機的話, 那麼這幾種路由器就只能透過無線連接, 但是如果新的做法可行的話, 那麼不需額外設備就可以多出三個網路埠以供運用:
M LAN4─PC3/MOD?
o LAN3─PC2?
d LAN2─PC1?
e LAN1═╗
m ║
AP WAN ═╝
在此必須特別提出的是即使新的做法可行, 那麼傳輸瓶頸將會發生於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?
從以下敘述看來:
vlan1 (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
有一個也許可行的變通辦法是把vlan1 (WAN) 加入br0 (LAN+WIFI), 但br0 是一個虛擬的橋接器, 到時候Modem 上的PC 存取AP 上的網芳都必須經過br0, 是否會造成AP's CPU 的負擔? 小弟對此還不是很有把握
暫時先談到這裡, 等有進一步的結果再來報告
Point-to-Point Protocol over Ethernet - Wikipedia, the free encyclopedia
EtherType - Wikipedia, the free encyclopedia
書籤