方永、南天紫雲

道亦有道

OpenWrt的WDS無線橋接模式
2013年11月24日

之前用RTL8187做了無線中繼,使用情況並不理想,即使連接質量可以的情況下,掉包十分地嚴重,rtl8187的linux驅動都無力吐槽了。

還是Broadcom自家的板載無線好用,同樣的RG100A,內置天線,ping值也是很好的。

只是BCM的網卡板載没有多模式,即使sta模式,即使wds模式,都不能以ap模式做真正的無線轉發了Broadcom AP-to-AP WDS (brcm-2.4 only), 而RTL8187的linux驅動天生不支持ap模式,所以wds只能中繼到有線,無線是沒戲了。雖然如此,sta-wds橋接配置成功,記之以備忘。

整個過程參考Broadcom WDS按步就班,只是無線配置略有不同,轉述如下:

有兩臺路由器A與B,A的macaddr爲 00:00:00 ,B的macaddr爲 11:11:11 ,A作爲信號源,那麼有如下配置,

一、先配置路由器A,

  1. 編輯 /etc/config/wireless ,添加或修改如下內容:

    config wifi-iface
            option device      wl0
            option network     lan
            option mode        ap
            option wds         1
            option bssid       11:11:11
            option ssid        'wds-bri'
        # option encryption  psk2
        # option key         'secret_key'
    

    注意bssid要填B路由器的無線網卡的MAC地址。

  2. 編輯防火牆規則,打開lan zone的轉發, /etc/config/firewall ,並運行 /etc/init.d/firefall reload 保證防火牆是生效的:

    config zone
            option name     lan
            option input    ACCEPT
            option output   ACCEPT 
            option forward  ACCEPT
    
  3. 編輯 /etc/config/network ,打開STP協議:

    config interface lan
            option type     bridge
            option stp      1
            option ifname   eth0.0
            option proto    static
            option ipaddr   192.168.1.1
            option netmask  255.255.255.0
    

這樣,A路由器就配置好了。

二、B路由器的配置也很相似,

  1. 首先配置無線連接參數:

    config wifi-iface
            option device      wl0
            option network     lan
            option mode        sta
            option wds         1
            option bssid       00:00:00
            option ssid        'wds-bri'
        # option encryption  psk2
        # option key         'secret_key'
    
  2. 同樣打開防火牆的轉發:

    config zone
            option name     lan
            option input    ACCEPT
            option output   ACCEPT 
            option forward  ACCEPT
    
  3. 打開STP協議,並配置靜態地址:

    nterface lan
            option type     bridge
            option stp      1
            option ifname   eth0.0
            option proto    static
            option ipaddr   192.168.1.2
            option netmask  255.255.255.0
    
  4. B路由器多一步,要關閉lan的dhcp, /etc/config/dhcp

    config dhcp lan
            option ignore     1
            option interface  lan
            option start      100
            option limit      150
            option leasetime  12h
    

三、 好了,在兩個路由器確認執行

/etc/init.d/network reload
/etc/init.d/firewall reload
/etc/init.d/dnsmasq reload

連接B路由器試試吧。