因為家裡網路設備跟電視櫃有點距離,造成電視旁邊中華電信的 MOD 網路線得繞過半個客廳。家母看這條網路線不順眼很久了,過年前發現 MikroTik hAP ac² 價格不錯,也應該可以用這台機器把中華電信 MOD 改成走 WiFi。
以下是踩坑紀錄
2019年08月13日更新:回頭確認 D-Link DGS-1008D 已經該休息了,同時發現自己對 VLAN 概念錯的嚴重(想成多台 Switch 而完全忘記 PVID),所以重寫。
2021年08月02日更新:刪除舊作法、bridge 上加上 multicast-querier=yes 參數,今天把 hAP ac² 拿來接 MOD 加上這個參數後頻繁轉台好像不會卡住,需要再觀察。新增 vlan 1 的設定說明
2.4GHz 干擾
首先是周邊的網路環境,呆呆翰家這邊的網路環境十分恐怖, 2.4GHz 的頻段根本大亂鬥,下面是用 hAP ac² 掃描的結果,這會造成 WiFi 沒辦法穩定傳輸 HD MOD 所需要的 10Mbps 資料。
所以最後放棄 2.4GHz 改用 5GHz 頻段傳輸。
複習網路
群播/多撥/Multicast: 類似廣播但是只有特定使用者聽。
IGMP Snooping: 因為群播會預設會送到所有機器, IGMP Snooping 可以縮限群播範圍(如圖),但需要網路上的 Switch 都支援。
VLAN: 虛擬區域網路,通常指 IEEE 802.1Q 這套協定。
VID: 虛擬區域網路的識別符號(ID, Identifier),會包含在 802.1Q 的標頭 (Header) 中。
PVID: 當這個實體連接埠 (Port) 丟過來的封包沒有 802.1Q 標頭時該打哪個 VID 上去。
Tagged: 已經有打 802.1Q 標頭的封包
Untagged: 還沒有 802.1Q 標頭的封包
Access Port: 一般來說只能存取指定 VID 的實體連接埠。
Trunk Port: 一般來說可以存取所有 VID 的實體連接埠。
雖然常用 Access Port 與 Trunk Port 這種名稱稱呼特定連接埠(這似乎是從電話系統開始的習慣用法),但實際上 VLAN 可以更複雜,像是每個 Trunk Port 其實都可以指定能存取的 VLAN ,例如 ether1 只能存取 1, 50 , ether2 只能存取 1, 52 。
Trunk Port 也可以當 Access Port 用,只要正確設定 PVID ,一般的裝置也可以正確存取網路(不過這會有安全性的疑慮,如果裝置使用者從作業系統設定 VLAN ,就可以存取任何該 Port 允許存取的網路)。
需求
我希望家裡網路插座插上去都能讓電腦直接上網,而中華電信 MOD 只要配一台網管 Switch 或是 WiFi AP Client 就能看電視。
電腦直接上網需要 NAT 跟 DHCP Server ,MOD 要看電視需要直通中華電信終端設備(數據機、小烏龜、GPON等等)
按照上面術語分析,總結幾個重點:
- 家裡網路插座都可以存取兩個網路
第一個網路是經過 NAT 有 DHCP 的網路
第二個網路是直通中華電信的終端設備 - 家裡的網路插座在沒有帶 802.1Q 的 VID 資訊時,預設存取第一個網路;但如果有帶 802.1Q 的 VID 則可以存取第二個網路
這邊指定第一個網路的 VID 是 1 、第二個網路的 VID 是 99 來做設定。
hAP ac² Bridge 設定
警告
RouterOS 在啟用 vlan-filtering 功能前 VLAN 相關功能都是關閉的,請小心接線迴圈 (loop) 或是兩個 DHCP 搶發 IP 。RouterOS 設定 Bridge 跟啟用 vlan-filtering 功能都會斷線一陣子。
/interface bridge add igmp-snooping=yes name=bridge1 multicast-querier=yes
接著把 Port 綁進 Bridge 裡面(WinBox 有可能會斷線),接中華電信終端設備(我用 ether1 ,畢竟他已經標示 Internet)的要設定 PVID 99 ,其他設定 PVID 1。
/interface bridge port add bridge=bridge1 interface=ether1 pvid=99 add bridge=bridge1 interface=ether2 pvid=1 add bridge=bridge1 interface=ether3 pvid=1 add bridge=bridge1 interface=ether4 pvid=1 add bridge=bridge1 interface=ether5 pvid=1
接著指定每個 Port 可以存取的 VLAN ,RouterOS 會自動把 PVID 加入 Untagged 。另外如果你需要讓同一台 hAP ac² 接 VLAN 99 (包含 PPPoE),記得把 bridge1 加入:
/interface bridge vlan add vlan-ids=99 bridge=bridge1 tagged=bridge1,ether2,ether3,ether4,ether5 untagged=ether1
理論上 RouterOS 會自動產生 vlan-ids=1 的的 VLAN ,如果你希望手動寫死,可以加入以下設定
/interface bridge vlan add vlan-ids=1 bridge=bridge1 untagged=bridge1,ether2,ether3,ether4,ether5
最後回到 bridge 啟用 VLAN Filtering ,順利的話到這裡已經可以讓 MOD 搭配管理型 Switch 到處看了。
/interface bridge set bridge1 vlan-filtering=yes
要讓電腦可以透過 NAT 上網,要去 Interface 上建立 VLAN 99 的 Interface 給 PPPoE Client 綁定,DHCP 跟機器本身的 IP 要設定在 bridge1 上,並設定 NAT。
/ip address add address=192.168.88.1/24 interface=bridge1 network=192.168.88.0 /ip pool add name=dhcp_pool0 ranges=192.168.88.2-192.168.88.254 /ip dhcp-server add address-pool=dhcp_pool0 disabled=no interface=bridge1 name=dhcp1 /interface vlan add name=vlan99 vlan-id=99 interface=bridge1 /interface pppoe-client add add-default-route=yes disabled=no interface=vlan99 name=pppoe-out1 \ password=* use-peer-dns=yes user=*@hinet.net /ip firewall nat add action=masquerade chain=srcnat out-interface=pppoe-out1
Wireless 設定
我買 UniFi 了,偷懶帶過。
/interface wireless set [ find default-name=wlan1 ] ssid=MikroTik /interface wireless security-profiles set [ find default=yes ] supplicant-identity=MikroTik add authentication-types=wpa2-psk eap-methods="" group-ciphers=tkip,aes-ccm \ management-protection=allowed mode=dynamic-keys name=profile1 \ supplicant-identity="" unicast-ciphers=tkip,aes-ccm wpa2-pre-shared-key=\ your-wifi-key /interface wireless set [ find default-name=wlan2 ] disabled=no mode=ap-bridge security-profile=\ profile1 ssid=MikroTik vlan-id=99 vlan-mode=use-tag
Bridge 設定也要記得改
/interface bridge port add bridge=bridge1 interface=wlan2 /interface bridge vlan set bridge=bridge1 vlan-ids=99 tagged=bridge1,ether2,ether3,ether4,ether5,wlan2 \ untagged=ether1
ASUS RT-N66u Wireless Client 轉乙太網路
華碩有提供 Media Bridge 模式,沒有的話找一下梅林幫忙,雖然最後失敗我也把機器賣了沒得測試,重點留下其他清掉。
5GHz 頻率問題
雖然 hAP ac² 國際板可以支援所有的 5GHz 頻率,不過 N66u 沒那麼強。呆呆翰試著找了 N66u 的使用者手冊,實在翻不到就用了比較快的方法確認支援的頻率
把機器設定成 IP 分享器 / AP 模式,看他有哪些頻道可選:
但是 RouterOS 不顯示頻道只顯示頻率,這個可以去開維基百科 WLAN信道列表條目對照。
多媒體橋接器 Bug
ASUS 的黑色韌體可以在系統管理中調整運作模式,最符合我們需求的是 多媒體橋接器( Media Bridge ) 模式。
頻率設定正確後,手動指定 IP 免得 N66u 跟 GPON 發生 IP 衝突,將電腦插上 N66u LAN 端都正常。
直到把 MOD 插上去開機,本來電腦可以開啟 GPON 是 ping 的通,忽然就不通了。而且 N66u 官方韌體已經許久未更新,刷了 Merlin 也是依樣狀況,刷 Advanced Tomato 更慘, WinBox 根本看不到 N66u 有連上……
中繼模式 IGMP 不會通
既然都中繼應該 LAN 端會中繼吧(大概),所以就試試看中繼模式後, MOD 一樣插在 N66u 的 LAN 端。
這次筆電插在 LAN 端全程都 ping 的到 GPON ,但是 IGMP 卻通不過去, MOD 的測試介面也確實可以讓 rtsp 訊號通過去,但是 IGMP 完全沒有畫面……
到這裡放棄,把 WRC-733FEBK 抓出來。
WRC-733FEBK Wireless Client 轉乙太網路
先說我不推薦 WRC-733FEBK 這台 AP ,他是 RTL8881AN + RTL8192ER 的方案,他的 5GHz WiFi 我從來沒連上過,不管是 X230 裡面的 Intel Ultimate-N 6300 還是 Xperia XZs 都沒成功過。
中繼模式設定方式
WRC-733FEBK 沒提供搜尋工具,中繼模式要把電腦插在 WAN 端,進入 192.168.2.251 設定。
5GHz 頻率問題
解決方法同上,切 Router / AP 模式看頻道轉頻率對照。
韌體 Bug
WRC-733FEBK 要手動切換 2.4GHz 跟 5.2GHz ,一度改去 2.4GHz 後就 2.4GHz 不會動切不過去 5.2GHz,最後直接 Factory Reset 才順利跳回 5G 了。
把 hAP ac² 當網管 Switch 接 MOD 設定
前面的 hAP ac² 設定是 ether1 接數據機, ether2, ether3, ether4, ether5 有 tag 的封包與 wlan2 都會直通數據機。這裡的則是把家裡牆壁插座的線插在 ether1 、 MOD 插在 ether5 、 ether2 ~ ether4 留給一般其他裝置且不給這些裝置直通數據機的作法:
/interface bridge add igmp-snooping=yes name=bridge1 multicast-querier=yes
/interface bridge port add bridge=bridge1 interface=ether1 pvid=1 add bridge=bridge1 interface=ether2 pvid=1 add bridge=bridge1 interface=ether3 pvid=1 add bridge=bridge1 interface=ether4 pvid=1 add bridge=bridge1 interface=ether5 pvid=99
/interface bridge vlan add vlan-ids=99 bridge=bridge1 tagged=bridge1,ether1 untagged=ether5
/interface bridge vlan add vlan-ids=1 bridge=bridge1 untagged=bridge1,ether1,ether2,ether3,ether4
/interface bridge set bridge1 vlan-filtering=yes
成果
最後 MOD 還是接網路線了,客廳多了聯網電視(Firefox OS)插網路線最穩、PS4 也是插網路線最穩,所以最後變成電視下面放一台 NETGEAR GS108T 處理 VLAN ; 奶奶回台北,奶奶房間放 hAP ac² 當管理型 Switch 處理 VLAN。
請教一下,這台會有過熱問題嗎?
你想問哪一台機器?我先猜你問的是 Miktotik hAP ac2
Mikrotik hAP ac2 我拿到這台確實會過熱,後來打開換過散熱膏好一點,但拿來當 Router + AP 依然不太穩定,最後是多加了一些散熱片解決(機器設計不良,散熱片再晶片背面,熱要從晶片經過 PCB 才會到散熱片上)