メインコンテンツへスキップ
見出し画像

家庭のWi-Fi、全部同じで大丈夫?|家族・子ども・IoT・ゲストを4つの部屋に分ける【OpenWrt集中連載010】

    家庭のWi-Fiに、親のPC、子どものタブレット、テレビ、スマート家電、友人のスマートフォンが全部つながっている。よくある構成です。

    子ども用のDNS、来客用の通信、家電からNASへのアクセスを別々に管理したくなったら、用途ごとにネットワークを分けます。

    今回の構成に使っているOpenWrtルーターはこちらです。

    この記事では四つの役割を確認したうえで、LN6001-JPへIoT用ネットワークを追加する操作を進めます。家全体をどう分けるかから考えたい方は、027の家庭向け構成例を先に読んでください。

    連載目次: LN6001-JPで始めるOpenWrtルーター実践ガイド

    この記事で使う四つのネットワーク

    家庭のWi-Fiを四つの部屋に分ける全体構成
    • 家族用:MyHome / lan / 192.168.1.0/24

    • ゲスト用:MyHome_Guest / guest / 192.168.2.0/24

    • 子ども用:MyHome_Kids / kids / 192.168.30.0/24

    • IoT用:MyHome_IoT / iot / 192.168.40.0/24

    アドレスは例です。既存LANやVPNと重ならない範囲を使います。ゲスト用は007、子ども用は009の手順へ。ここからは iot を作り、家族用LANへの転送を止めます。

    IoTは「速さ」より「相性」と「境界」を優先する

    テレビ、スマートスピーカー、ロボット掃除機、見守りカメラ、スマート照明。IoT機器には、2.4GHzにしか対応しないものや、WPA3、日本語SSID、複雑な記号を使うと接続しにくいものがあります。

    最初の設定は、次の値に絞ります。

    IoT用Wi-Fiを作る前の設定メモ

    SSIDは英数字の MyHome_IoT、ネットワークは iot、ゲートウェイは 192.168.40.1 とします。無線は2.4GHz帯を使い、暗号化方式は互換性を優先してWPA2-PSK(AES / CCMP)から始めます。

    まずWPA2で接続を確認し、機器が対応していればWPA2 / WPA3混在またはWPA3へ切り替えます。使っていないSSIDや帯域は増やさず、IoT用は2.4GHzから始めます。

    WPA2を使う場合も、古いTKIPは選ばず、AES / CCMPを使います。パスワードは家族用SSIDとは別の、十分に長いものを設定してください。

    対象はLN6001-JPのメーカー提供のOpenWrtベースのOS(ver. 1.2.0.15)です。別のファームウェアで同じ設定が使えるとは限りません。標準環境との違いは003で確認できます。

    IoT用Wi-Fiは、六つの工程で追加する

    設定前にPCを有線LANへ接続し、LuCIの System → Backup / Flash Firmware からバックアップを保存します。ネットワークと無線を変更するため、Wi-Fiから作業すると途中で接続が切れる場合があります。

    IoT用Wi-Fiを追加する六つの工程

    1. 空のブリッジ br-iot を作る

    LuCIの Network → Interfaces → Devices を開き、Add device configuration を押します。

    • Device type:Bridge device

    • Device name:br-iot

    • Bridge ports:空のまま

    IoT用ネットワークに有線ポートを含めない場合、Bridge portsは空のままで構いません。

    2. iot インターフェースとDHCPを作る

    Network → Interfaces → Add new interface を開きます。

    • Name:iot

    • Protocol:Static address

    • Device:br-iot

    • IPv4 address:192.168.40.1

    • IPv4 netmask:255.255.255.0

    続けて DHCP Server を有効にします。初期値のままでも構いません。IoT機器が 192.168.40.x のIPアドレスを取得できるようにします。

    3. 2.4GHz帯に MyHome_IoT を追加する

    Network → Wireless で、2.4GHz帯の無線にSSIDを追加します。

    • ESSID:MyHome_IoT

    • Mode:Access Point

    • Network:iot

    • Encryption:WPA2-PSK(AES / CCMP)

    • Key:家族用とは別のパスワード

    SSID名だけがIoT用でも、Networkが lan のままなら分離にはなりません。保存前に iot が選ばれていることを確認します。

    Linksysの公式手順では、IoT用SSIDを2.4GHzへ追加する例が紹介されています。ただし、wifi0 などの内部名は構成で変わる可能性があります。LuCIに表示される周波数を見て選んでください。

    4. iot ゾーンは、WANだけを出口にする

    Network → Firewall → Zones で iot ゾーンを作ります。

    • Input:REJECT

    • Output:ACCEPT

    • Forward:REJECT

    • Covered networks:iot

    • Allow forward to destination zones:wan のみ

    IoTゾーンで許可する通信と止める通信

    iot → wan は許可し、iot → lan は許可しません。IoT機器はメーカーのクラウドへ接続できますが、家族用LANのPCやNASにはアクセスできません。

    これは家族用LANの保護を優先した初期構成です。IoT機器からメーカーのクラウドへの送信を止める構成ではありません。また、同じ iot ネットワーク内の機器同士は、このzone設定だけでは分離されません。必要ならWirelessのClient Isolationも検討できますが、ローカル検出や機器間連携を止める場合があるため、最初から有効にはしません。

    Inputを REJECT にすると、LN6001-JPへの通信も止まります。次の工程で、DHCPとDNSだけを例外として許可します。

    5. DHCPとDNSだけをルーターへ通す

    Network → Firewall → Traffic Rules で、二つの許可ルールを作ります。

    • Allow-IoT-DHCP:IP family IPv4、Protocol UDP、Source zone iot、Destination This device / Device input、Destination port 67、Action ACCEPT

    • Allow-IoT-DNS:IP family IPv4、Protocol TCP+UDP、Source zone iot、Destination This device / Device input、Destination port 53、Action ACCEPT

    この記事では、IoT機器にLN6001-JPをDNSとして使わせます。AdblockなどのDNSブロックはまだ有効にしません。メーカーのクラウド、通知、ファームウェア更新が通常どおり動くことを先に確認します。

    二つのルールを作ったら、Save & Apply で反映します。反映を確認してから、IoT機器を一台だけ接続します。

    6. 一台だけ移し、通常動作と分離を確認する

    最初からすべてのIoT機器を移すと、どの機器で問題が起きたのか分からなくなります。まず一台を MyHome_IoT へ接続し、次の順番で確認します。

    • 192.168.40.x のIPアドレスを受け取る

    • インターネットへ接続できる

    • メーカーのアプリから操作できる

    • 通知やクラウド録画など、普段使う機能が動く

    • 192.168.1.1 のLuCIを開けない

    • 家族用LANのNASへ届かない

    カメラなどブラウザを持たない機器だけでは、最後の二つを確かめにくいことがあります。その場合は確認用PCを一時的にIoT用SSIDへ接続します。家族用LANから開けると確認済みのNASのIPアドレスとサービスへ、IoT側からは接続できないかを比べます。NASの電源が切れている、名前が引けない、ログインに失敗するだけでは、通信の遮断を確認できません。上位HGWの管理画面など、WAN側にある宅内機器の扱いも007の分離確認を参考に決めてください。

    この記事の初期構成と確認はIPv4を基準にしています。IPv6を iot へ配る場合は、DHCPv6 / RA / ICMPv6、DNS、iot → lan の遮断をIPv6でも別に確認してください。考え方は007のIPv6分離と同じです。

    一台が安定してから、同じ種類の機器を少しずつ移します。

    分離すると、スマートフォンから見つからない機器が出る

    IoT用SSIDへ移した直後に多いのが、「インターネットへは出られるのに、初期設定アプリから機器が見つからない」という症状です。

    クラウド操作とローカル検出で経路が違う

    クラウド経由の操作は、スマートフォンとIoT機器が別ネットワークでも利用できることが多いです。一方、同じネットワーク内の機器を自動で探す仕組み(mDNS、SSDP、ブロードキャスト)は、通常はネットワークの境界を越えません。

    家族用SSIDにつないだスマートフォンでは、モバイル回線や別のVPNへ切り替わっていない状態で操作を試します。その後、意図してモバイル回線へ切り替え、クラウド経由でも操作できるかを別に記録します。「アプリが動いた」だけで、家族用LANからのローカル通信を許可できたとは判断しません。

    まず、IoT機器の説明書で「スマートフォンと同じWi-Fiに接続」と案内されていないか確認します。初期設定の間だけスマートフォンを MyHome_IoT へつなぎ、登録後に家族用SSIDへ戻すと解決する場合があります。

    家族用LANからIoT機器を直接操作する場合は、次の節で説明するTraffic Ruleで、送信元、宛先、ポートを限定して許可します。

    自動検出をネットワーク間で使うには、検出情報を中継するmDNSリフレクターなどが必要になる場合があります。最初から全ネットワークへ広げず、機器ごとに必要性を確認してください。

    例外は、LAN全体ではなく機器とポートで作る

    見守りカメラの映像をHome Assistantへ送る場合や、IoT機器から特定のDNS・時刻サーバーへ接続する場合など、境界を越える通信が必要になることがあります。

    ネットワークを越える例外ルールの決め方

    iot → lan 全体を許可すると、分けた意味が薄くなります。次の三つを決めてから、Traffic Ruleを一つ追加します。

    1. どの機器から

    2. どの宛先IPアドレスへ

    3. どのポートで

    Home Assistantやプリンターを宛先にする場合は、012のDHCP予約でIPアドレスを固定します。LuCIの Network → DHCP and DNS → Static Leases から設定できます。例外を追加した後は、その機器の必要な機能が動き、ほかのLAN機器や許可していないポートへは届かないことも再確認します。

    端末がプライベートMACアドレスを使う場合や、機器を交換した場合は、識別子が変わることがあります。DHCP予約を設定した後は、実際のリース情報と一致しているか確認してください。

    家族用LANのすべての端末からIoT用ネットワーク全体へ接続する必要がある場合は、lan → iot のzone forwardingも選べます。ただし、これはすべてのプロトコルを許可する広い設定です。まずはTraffic Ruleで必要な通信だけを許可してください。

    動かないときは、六つの場所を順番に見る

    家庭内ネットワーク分離のトラブル確認順

    SSIDに接続できないときは、周波数、暗号化方式、パスワードを確認します。IPアドレスを取得できないときは、iot のDHCPサーバーとUDPポート67が有効か確認します。

    IPアドレスを取得できているのにWebサイトを開けない場合は、まず iot → wan の転送を確認します。転送に問題がなければ、DNSとTCP / UDPポート53を確認します。クラウド操作だけ失敗するなら、DNSブロック、ルーター時刻、メーカー側の必要ドメインが候補です。

    スマートフォンから見つからないときは、同じIoT用SSIDへ接続して試します。そこで見つかるなら、無線接続ではなくローカル検出がネットワーク境界を越えられない問題です。

    急いで機器を使う必要があるときは、全体のファイアウォールを開く前に、問題の一台を元のSSIDへ戻せるかを確認します。その間はIoT用の分離が適用されないことを把握し、試しに追加した例外ルールを残さないようにします。家族用の有線PCから最後に変えた設定へ戻し、一台で再確認してから移行を再開してください。

    SSHを使える場合は、以下のコマンドでも状態を確認できます。いずれも設定は変更しません。

    echo "### IoT interface"
    ifstatus iot
    
    echo "### DHCP and wireless"
    uci show dhcp.iot
    uci show wireless | grep -E "MyHome_IoT|iot|ssid|network"
    
    echo "### firewall"
    uci show firewall | grep -E "iot|Allow-IoT"
    
    echo "### leases"
    cat /tmp/dhcp.leases
    

    分けた後は、家のネットワーク図を一枚残す

    IoT機器が増えると、製品名より先に「どのSSIDにいるか」を確認します。少なくとも、次の項目を一枚のメモへ残します。

    • 機器名と設置場所

    • 接続SSID

    • IPアドレスまたはDHCP予約

    • クラウド操作か、ローカル操作か

    • 家族用LANとの例外ルール

    • 初期化方法と管理アプリ

    半年後に問題が起きたとき、購入履歴よりこのメモのほうが先に役立ちます。ルールの違う端末だけを、家族に説明できる単位で分ければ十分です。

    次に読むなら

    参考情報

     
     
    外資系テックの仕事と、ネットワーク・AI・動画制作を実際に試す人。日本の仕事を少し便利にする方法を書いています。Linksys / OpenWrt / IPoE / Apple / YouTube tools. 個人の発信です。

    あなたへのおすすめ