SSID, BSSID 以及 ESSID
在 WLAN 網路架構中,分成兩種不同的網路識別方式: BSSID 和 ESSID。BSSID (basic service set identifiers) 用以標記 BSS (basic service set),而每一個 BSS 表示一群裝置,使用相同的介面存取 (medium access) 設定,換句話說,其 MAC 層和 PHY 層的設置一致。在 802.11 中,BSSID 為 48 位元的 MAC 位址,通常就是 WiFi AP 的 MAC 位址。 ESSID (extended service sets identifiers) 則用以表示 ESS (extended service sets),ESS 為一個邏輯上的網路,像是一個 VLAN,或是一個 IP subnet。事實上,在 802.11 中,ESSID 並沒有被正式的定義。在 802.11 中,一個邏輯網路 (可以是一個 ESS,或是一個獨立的 BSS) 使用 SSID (service set identifiers) 作為識別符號。SSID 可以為 0-32 Bits 的字串,通常以字串定義。
考慮到一個較大型的 WiFi 網路佈建,我們可能有多個 WiFi AP,每一個 WiFi AP 就對應到一個 BSS,若我們將這些 WiFi AP 設定屬於同一個 ESS (相同的 SSID、同樣的邏輯網路設定),則使用者的裝置可以在這些WiFi AP 間切換,稱為 WiFi Roaming,為了完成換手的功能,通常會保留兩個相鄰的 WiFi AP 有約 15% 的覆蓋交疊範圍,如下圖所示:
在 OpenWRT 的 WiFi AP 上支援將一個實體的 WiFi AP 虛擬出多個 SSID,對應於多個 ESSID,因此,可以切分不同的使用者的網路服務於多個 ESS 中。
在 OpenWRT 上設定多個 SSID
在 OpenWRT 架構下,關於無線網路的設定被存放於: /etc/config/wireless
文件中。舉例來說,一個基本的設定檔可以是:
~# cat /etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option channel '149'
option hwmode '11a'
option path 'pci0000:00/0000:00:00.0'
option htmode 'VHT80'
option doth '0'
option txpower '20'
option band '5G'
option disabled '0'
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option encryption 'psk-mixed'
option ifname 'wlan0'
option wds '1'
option ssid 'WiSDON-TEST-5G'
option key 'mbwcl711'
option disabled '0'
config wifi-device 'radio1'
option type 'mac80211'
option path 'platform/qca956x_wmac'
option txpower '20'
option noscan '1'
option htmode 'HT40'
option band '2G'
option disabled '0'
option hwmode '11g'
option channel '6'
config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option encryption 'psk-mixed'
option wds '1'
option ifname 'wlan1'
option ssid 'WiSDON-TEST-2.4G'
option key 'mbwcl711'
option disabled '0'
其中,設定檔分成兩部分: wifi-device
和 wifi-iface
,wifi-device
是實體的網卡,關於實體層的設定,像是傳輸功率、傳輸頻帶等設定都在此修改。wifi-iface
則用來設定像是 SSID, 加密模式, 等資訊,其中,我們可以看到 wifi-iface
的設定透過 device
欄位的設定和 wifi-device
連在一起。
在上面的設定中,雖然兩個 wifi-iface
的 SSID 是不同的,但是實際上兩者可以設定一致。事實上,針對不同 AP、不同網卡都可以設置相同的 SSID,當使用者連上時,會自動選擇訊號最強的進行連接。
反過來,假使我們需要對一個 WiFi AP 建立多個 SSID 應該如何設定呢? 比如說我們希望在 2.4GHz 上切出一個 SSID,提供開放的無線接取,就可以加入以下的設定:
config wifi-iface 'default_radio2'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ifname 'wlan2'
option encryption 'none'
option ssid 'WiSDON-FREE'
option disabled '0'
這種獨立切出來的 WiFi 網路可以進一步的提供服務品質的控管,例如,我們可以藉由 maxassoc
這個參數的設定,限制此 SSID 網路下的使用者數量,或是藉由 maxrate
的參數設定,來切分不同 SSID 的頻寬,避免開放網路影響 WiFi 的效能。
查看 SSID 的設定
透過上述設定之後,我們在同一個 WiFi AP 上設定了兩個 WLAN 網路: WiSDON-TEST 以及 WiSDON-FREE。我們可以透過iwinfo
的指令查看其 WLAN 的資訊:
# iwinfo
[...]
wlan0 ESSID: "WiSDON-TEST"
Access Point: E6:95:6E:45:A0:FB
Mode: Master Channel: 149 (5.745 GHz)
Tx-Power: 20 dBm Link Quality: unknown/70
Signal: unknown Noise: -104 dBm
Bit Rate: unknown
Encryption: mixed WPA/WPA2 PSK (CCMP)
Type: nl80211 HW Mode(s): 802.11nac
Hardware: 168C:0050 0000:0000 [Generic MAC80211]
TX power offset: unknown
Frequency offset: unknown
Supports VAPs: yes PHY name: phy0
wlan1 ESSID: "WiSDON-TEST"
Access Point: E6:95:6E:45:A0:FA
Mode: Master Channel: 6 (2.437 GHz)
Tx-Power: 20 dBm Link Quality: 55/70
Signal: -55 dBm Noise: -86 dBm
Bit Rate: 6.5 MBit/s
Encryption: mixed WPA/WPA2 PSK (CCMP)
Type: nl80211 HW Mode(s): 802.11bgn
Hardware: unknown [Generic MAC80211]
TX power offset: unknown
Frequency offset: unknown
Supports VAPs: yes PHY name: phy1
wlan2 ESSID: "WiSDON-FREE"
Access Point: E2:95:6E:45:A0:FA
Mode: Master Channel: 6 (2.437 GHz)
Tx-Power: 20 dBm Link Quality: unknown/70
Signal: unknown Noise: -86 dBm
Bit Rate: unknown
Encryption: none
Type: nl80211 HW Mode(s): 802.11bgn
Hardware: unknown [Generic MAC80211]
TX power offset: unknown
Frequency offset: unknown
Supports VAPs: yes PHY name: phy1
[...]
在此網路設定中,我們可以看到 ESS 和 BSS 是獨立的設定,wlan0 和 wlan1 因為不同的接取 (2.4GHz 和 5GHz) 使用兩個 BSSID,或是兩個不同的 MAC 位址,但是使用相同的 ESSID (SSID: WiSDON-TEST)。另一方面,對於 wlan1 和 wlan2 而言,使用相同的接取以及 BSSID,但是,卻分屬不同的 ESS (SSID: WiSDON-TEST 以及 WiSDON-FREE)。
對於透過網路連上的裝置,我們可以透過arp
來查詢 MAC 位址和 IP 位址的對應關係,例如:
# arp
IP address HW type Flags HW address Mask Device
192.168.10.185 0x1 0x0 38:d5:47:50:ff:16 * br-lan
192.168.10.248 0x1 0x2 c4:85:08:9e:41:ca * br-lan
10.0.0.54 0x1 0x0 48:2c:a0:6c:f8:ec * wlan2
10.0.0.90 0x1 0x0 54:a0:50:a0:13:bd * wlan2
10.0.0.99 0x1 0x0 04:92:26:7e:bd:f3 * wlan2
10.0.0.80 0x1 0x0 a4:02:b9:cd:70:c6 * wlan2
192.168.10.135 0x1 0x0 0c:84:dc:11:4f:7d * br-lan
10.0.0.98 0x1 0x0 04:92:26:7e:bd:f3 * wlan2
10.0.0.59 0x1 0x0 e4:2b:34:a7:a7:58 * wlan2
10.0.0.68 0x1 0x0 18:f0:e4:e2:39:29 * wlan2
192.168.1.1 0x1 0x2 00:50:7f:3c:81:40 * eth0.2
192.168.10.149 0x1 0x2 30:5a:3a:f0:7f:1e * br-lan
192.168.10.130 0x1 0x0 a4:02:b9:cd:70:c6 * br-lan
其中,我們可以看到其 IP 位址分屬於兩個子網域: 192.168.10.x (br-lan
) 以及 10.0.0.x (wlan2
)。其中,br-lan
就對應到 SSID 為 WiSDON-TEST 的 ESS (由於此網路和有線網路以一個 bridge 相連,因此顯示為br-lan
),wlan2
則對應於 SSID 為 WiSDON-FREE 的 ESS,由於分屬不同的 ESS 以及不同的子網域設定,兩者所分配到 IP 位址也不相同。