UniFiで自宅に巨大スタジアム並のエンタープライズWiFi環境を整えた (3) IoT機器用ネットワーク設定編
前回の設定編に引き続き、次はIoT機器用のネットワークを設定します(本記事の一覧はこちら)。
背景
まず初めにPCや携帯端末とIoT機器は通信に求められる要件が異なります。IoT機器は通信量は少ないが家の隅々まで安定した通信環境を提供したいのに対して、PC/携帯端末は通信量が多くリビングなど特定の場所の通信環境が重要になります。
我が家にはローエンドなもの(e.g. スマート電源プラグ)からハイエンドなもの(e.g. Roomba)までIoT機器が約30-40個ほど有るのですが、そもそもWiFiが不安定だと鍵が開かない・温度を変えられない・ガレージが開かないなど家の基本的な機能に支障をきたしてしまいます。
また、IoT端末はPC/携帯端末と異なり、ソフトウェアのアップデート頻度が低かったり、そもそもアップデートが提供されないケースも有り、セキュリティリスクも高くなりがちです。
そのため、今回は信頼された機器のみ接続できるネットワークとIoT機器専用のネットワークの2つにネットワークを分離します。
次にIoTネットワークは通信速度より接続性を重視した設定に変更した上で、更にIoTネットワークからHomeネットワークに通信が行えないようにFirewallを設定する事で、IoT機器経由で侵入された場合にもHomeネットワークにアクセス出来ないようにします。
今回はUniFiのVLAN(仮想LAN)機能を使用します。そもそもネットワークを分離するには、従来は物理的にネットワーク機器を2つ購入して分離する、もしくは高価なネットワーク機器を使ってコマンドラインで細かく設定する必要がありました。
しかし、UniFiであればControllerのUIからものの5-10分程度で設定が完了します (以下、参考動画です)。
それでは実際に設定を行います。説明のために、以下、2つのネットワークをHomeネットワーク (SSID: Home-WiFi)とIoTネットワーク (SSID: IoT-WiFi)と呼びます。
Network Controllerの設定変更
次に設定を変更していきます。執筆時点(2020/08)ではUniFi Controller v5.12.60を利用しています。
NETWORKS > Local Networks
まずはIoT機器用の仮想LANネットワークを作成します。"Create New Local Network > Create Advanced Network“を選択し、以下の値を設定します。
- Name: IoT LAN
- Network Purpose: Corporate
- VLAN ID: 55
- Gateway IP / Subnet: 10.1.2.1/24
- DHCP Range: 10.1.2.11 - 10.1.2.254
- Enable IGMP Snooping: On
Wi-Fi > Wi-Fi Networks
次にIoT機器向けのWiFiネットワーク/SSIDを作ります。このSSIDに接続した機器は全てIoT機器用の仮想LANネットワーク(VLAN ID: 55)に接続されることになります。
- Name: IoT-WiFi (SSID)
- Security Protocol: WPA Personal
- WPA Mode: WPA2 Only
- WiFi Password: 強度の高い任意のパスワード
- Enable Multicast Enhancement: On
- Use a VLAN: On
- VLAN ID: 55 (上記のLocal Networksで作成したVLAN IDと一致させます)
- “Optimize for High Performance Devices (Beta)“をOff にします。
- 多くのユーザーがこのオプションをONにすることで、iPhoneからの接続に問題があることを報告しています。私の手元でも再現したため、Offにします。
- “802.11 RATE AND BEACON CONTROLS > Override DTIM Period“を On にし、"DTIM 2G Period”, “DTIM 5G Period“を3に設定します。
- UniFiのデフォルト値は1ですが、UniFiのドキュメントによると1ではなく3に設定することで、iPhone / Androidなどを含む最近のデバイスでWiFiによる消費電力を最大66%削減できると書いてあります。また、設定値1を使用すると、古いAppleのデバイスで接続問題が起こることが掲示板で多数報告されています。また、UniFi Controller v5.14.22からは3がデフォルトになるようです。
- UniFi - Modifying the DTIM Period
- Go To Sleep, Go To Sleep, Go To Sleep Little iPhone
GATEWAY > mDNS
Onにします。
Google Chrome Cast / Home等はMulticast DNSを使用してネットワーク内の機器を発見します。HomeネットワークからIoTネットワークへmDNSパケットを通す設定を行うことで、異なるネットワークにいながら他の機器を発見する事が出来るようになります。
Access Pointの設定
ここではIoT向けのWiFiネットワークには2.4GHz帯でのみ接続できるように設定します。理由としては2.4 GHz帯の方が壁などの障害物に強く電波の減衰が少ないため、家中のIoT機器の接続性安定性が高くなることが期待されます。
その反面、5Ghzと比べるとパフォーマンスは出ません。ただし、IoT機器は大量の通信を行う使うわけではないので、私はIoT機器からは常に2.4GHz帯を使うようにしています。
左側の”Devices“タブに移動し、Access Pointの設定を変更していきます。
AP > Config > WLANS > WLAN 5G
- “WLAN 5G“のセクションで、IoT向けのSSIDを”Disabled“に設定。
以上の設定を全てのAPに対して行います。
接続確認
以上で基本的な設定は完了です。ここで、手持ちのPCや携帯端末からSSID: IoT-WiFiに接続しインターネットに接続できる事を確認します。またIPを確認し10.1.2.XYZのアドレスがアサインされている事も確認します。
IoT機器の設定変更
動作が確認出来たら、IoT機器の接続先を1つ1つSSID: IoT-WiFiに変更していきます。私個人は特に問題に当たりませんでしたが、変更後は様々な機器で暫く試運転してみるのが良いでしょう。
Firewallルールの追加
最後に、IoTネットワークからHomeネットワークへ接続が行えないようにFirewallの設定を行います。
INTERNET SECUIRTY > Firewall > LAN
“+ Create New Rule“から新しいFirewallのルールを作成します。
- GENERAL
- Type: LAN In
- Description: Block From IoT LAN to Private LAN
- Enabled: ON
- Rule Applied: Before predefined rules
- Action: Drop
- IPv4 Protocol: All
- 全てのIPv4通信を禁止します。
- SOURCE
- Source Type: Network
- Network: IoT LAN
- Network type: IPv4 Subnet
- Firewallルールの接続元の設定です。
- DESTINATION
- Destination Type: Network
- Network: Private LAN
- Network type: IPv4 Subnet
- Firewallルールの接続先の設定です。
- ADVANCED
- Enable Logging: On
- Match State New: On
- 新規ネットワーク接続のみを禁止します。
- IPsec: Don’t match on IPsec packets
“Apply“をクリックするとFirewallのルールが追加されます。
Firewallの動作確認
最後に、IoTネットワークに接続し、Homeネットワークに接続できないことを確認します。
今回はUniFiのiPhoneアプリを使用してみます。まずはIoT-WiFiに接続します。次にUniFiのiPhoneアプリを立ち上げ、、“More > Ping"を使用してiPhoneからPingをHomeネットワークの機器に打ってみます。
画像のようにPingがTime outを起こしていればFirewallが正しく設定されています。ルールのEnableをOffにする事でPingが通ることも念の為確認することで、ルールが正しく動作しているのを更に確認できます。
帯域制限の追加
IoT機器が意図せず帯域を食いつぶさないように帯域制限を追加します。私の場合、監視カメラが常時データアップロードをしているのですが、このトラフィックが突発的に増えることがあるのが気になったため、以下の設定を追加しました。
Configuration Profiles > Client Groups
“Create Client Group“から”IoT“クライアントグループを作成し、上下のネットワーク帯域上限を設定します。私はダウンロード10Mbps, アップロード1Mbpsの制限をかけています。
Wi-Fi > Wi-Fi Networks
IoT向けのネットワークのEditボタンを選択後、"Client Group“から”IoT“クライアントグループを選択します。
まとめ
前回の設定編に続き、今回はIoT機器用ネットワークの設定を行いました、いかがでしたでしょうか?
今回参考にしたのは以下の記事です。
- UniFi - Best Practices for Managing Chromecast/Google Home on UniFi Network
- Securing your IoT devices with Ubiquiti VLANs
- 注意:Sonosを使用するには追加でUPnPとFirwallの設定が必要なようです。
次はsshでログイン編に続きます。