DD-WRT中的repeater bridge聯網方式,在OpenWRT中稱爲routed client mode masqueraded。實現原理是這樣的:
OpenWRT的網絡分爲device => interface => network => zone這四層。device是指物理的設備,比如radio0這樣的無線網卡。interface是wlan0,或者wlan0-1這樣通過無線網卡驅動虛擬出來的接口。這個虛擬出來的接口可以用來做爲ap,也就是提供無線,或者做爲sta(station),也就是連接進已經存在的無線網絡。network是OpenWRT對於interface的一個分組。比如你有eth1, eth2, eth3, eth4四個獨立的有線網卡提供的interface,但是設置了一個bridge把這四個獨立的interface橋接到了一起,然後它們都從屬於一個network。在network上配置的是對於network內的interface怎麼獲取ip。zone是OpenWRT爲了方便管理iptables規則建立的更高層次的抽象。zone可以包含一個或者多個network,定義了iptables規則是否要在不同zone之間做forward還是masquerade。masquerade就是所謂的NAT(NAPT),也就是用一個外網ip給多個內網客戶端提供上外網的服務,每次連接都會分配一個端口用於讓連接的下行流量可以映射回內網的客戶端。
所以fqrouter的無線連接互聯網其實就是有兩個zone,一個叫lan,一個叫wan。然後設置了從lan到wan的masquerade規則,這樣所有連接到lan的機器都可以通過wan NAT出去。
然後在lan這個zone下面有隻有一個network,名字也叫lan。wan這個zone下面也只有一個network,名字叫wan。network配置(/etc/config/network)如下:
config interface ‘lan’
option ifname ‘eth0’
option type ‘bridge’
option proto ‘static’
option ipaddr ‘192.168.1.1’
option netmask ‘255.255.255.0’
config interface ‘wan’
option proto ‘dhcp’
同時由於dhcp的配置(/etc/config/dhcp)的配置中打開了lan的dhcp。所以所有連接進lan的機器都會被dhcp分配一個192.168.1.x網段的ip,而路由器自身的ip被靜態設置爲了192.168.1.1。wan口因爲是用無線連接進上級無線的網絡,所以ip是通過dhcp由上級無線分配的。
在network下面是一個或者多個interface。在我們這個例子中,lan下面的interface有兩個,一個是703n的有線網口eth0,另外一個是無線名稱是fqrouter-703n的無線wlan0。wan下面的interface只有一個就是連接着上級無線的wlan0-1。有線網口interface配置是與network在一起的,前面的lan network的ifname eth0就是有限網口的配置了。無線網的interface都是在/etc/config/wireless中配置的:
config wifi-device ‘radio0’
option type ‘mac80211’
option channel ‘11’
option phy ‘phy0’
option hwmode ‘11ng’
option htmode ‘HT20’
list ht_capab ‘SHORT-GI-20’
list ht_capab ‘SHORT-GI-40’
list ht_capab ‘RX-STBC1’
list ht_capab ‘DSSS_CCK-40’
option txpower ‘27’
option country ‘US’
config wifi-iface
option device ‘radio0’
option network ‘lan’
option mode ‘ap’
option ssid ‘fqrouter-703n’
option encryption ‘psk2’
option key ‘1234567891’
config wifi-iface
option network ‘wan’
option ssid ‘your-upstream-wifi’
option encryption ‘psk2’
option device ‘radio0’
option mode ‘sta’
option bssid ‘20:DC:E6:FE:0D:C0’
option key ‘your-upstream-wifi-password’
option disabled ‘0’
wifi-iface就是我們配置的無線interface。其中一個ssid是fqrouter-703n的無線interface屬於network lan。另外一個ssid是你上級無線的那個無線interface屬於network wan。而兩個interface的device都是radio0,所以都是同一個無線設備虛擬出來的。
所以fqrouter做的無線配置界面其實就是提供了一個比Luci更簡單的界面配置這兩個wifi-iface。