
ゲストWi-FiはSSIDだけでは完成しない|LN6001-JPで家庭内LANから分離する【OpenWrt集中連載007】
来客にWi-Fiを貸す時、家族用のパスワードをそのまま教えていませんか。
ゲスト用のSSIDを一つ増やせば安心、と思うかもしれません。けれど、そのSSIDが普段の lan につながっていたら、名前が違うだけで中身は同じネットワークです。NAS、プリンター、場合によってはルーターの管理画面まで届いてしまいます。
ゲストWi-Fiは、インターネットだけを貸し、家の中は見せないところまで作って完成です。
対象はLN6001-JPのメーカー提供のOpenWrtベースのOS(ver. 1.2.0.15)です。LuCIの項目が違う場合は、別環境のパッケージを追加せず、ファームウェアの前提を確認します。
SSIDを増やしただけでは、まだ半分
SSIDは、スマートフォンに表示されるWi-Fiの名前です。名前を MyHome_Guest に変えても、接続先のネットワークが lan のままなら、ゲスト端末は家族の端末と同じ場所に入ります。

本当に分けるには、次の四つが必要です。
ゲストに見せる SSID
家族用LANと異なる network
ゲスト端末へ別のIPアドレスを配る DHCP
通信先を制限する firewall zone
SSIDは入口の看板、networkは入室する部屋、firewallは部屋の間にある扉、と考えると分かりやすいでしょう。
完成形は「インターネットは通す、LANは止める」
この記事では、家族用LANを 192.168.1.0/24、ゲスト用を 192.168.2.0/24 として分けます。ゲストからインターネットへは出られますが、家族用LANへ向かう経路は作りません。

成功条件は、つながることと、つながらないことの両方です。
Webサイトは開ける
ゲスト端末は 192.168.2.x のIPアドレスを受け取る
192.168.1.1 のLuCIは開けない
家庭内のNASやプリンターへ届かない
インターネットが使えただけでは、分離を確認したことになりません。最後に必ず「LANへ届かない」ことまで試します。
設定前に決める値は六つだけ
作業中に名前やアドレスを考え始めると、設定が食い違いやすくなります。先に一枚のメモへ書いておきます。

この記事では MyHome_Guest を例にします。SSIDとパスワードは、家族用とは別にしてください。
ゲスト側のネットワークアドレスは、既存のLANやVPNと重ならない値を選びます。すでに 192.168.2.0/24 を使っているなら、空いている別のアドレスへ変更します。
作業は有線LANから始める
Wi-Fi設定を変更すると、反映中に無線接続が切れることがあります。できればPCをLANケーブルでLN6001-JPにつなぎ、そのPCからLuCIを開いてください。
設定前には System → Backup / Flash Firmware でバックアップを保存します。今回はnetwork、wireless、DHCP、firewallを続けて変更するため、元へ戻れる状態を先に作ります。

バックアップにはWi-Fiパスワードや内部IPアドレスが含まれる場合があります。公開リポジトリやSNSへそのまま置かないでください。
LuCIでは六つの工程を順番に進める
OpenWrt公式のLuCI手順も、空のブリッジ、インターフェース、無線、ファイアウォールの順に設定します。途中で思いついた項目だけを変更せず、下の順序で一つずつ進めます。

1. 空のブリッジ br-guest を作る
LuCIの Network → Interfaces → Devices を開き、Add device configuration を押します。
Device type:Bridge device
Device name:br-guest
Bring up empty bridge:有効
Bridge ports:指定しない
Wi-Fiだけのゲストネットワークなら、有線ポートは追加しません。保存後、いったん Save & Apply します。
空のブリッジを使うと、無線インターフェースの状態にかかわらずguestインターフェースを維持しやすくなります。複数のradioへ同じguestネットワークを割り当てる場合にも必要です。
2. guest インターフェースとDHCPを作る
Network → Interfaces に戻り、Add new interface を押します。
Name:guest
Protocol:Static address
Device:br-guest
IPv4 address:192.168.2.1
IPv4 netmask:255.255.255.0
続けて DHCP Server タブでDHCPサーバーを有効にします。初期値のままなら、ゲスト端末へ 192.168.2.x のアドレスが配られます。
3. ゲストSSIDを guest へ割り当てる
Network → Wireless を開き、ゲストWi-Fiを出したいradioの Add を押します。LN6001-JPでは wifi0 が2.4GHz、wifi1 が5GHz、wifi2 が6GHzです。
最初は、スマートフォンやPCで使いやすい5GHzの wifi1 から試すと確認しやすくなります。
ESSID:MyHome_Guest
Network:guest
Encryption:利用端末に合う安全な方式
Key:家族用とは異なるパスワード
ここで最も大切なのは Networkを guest にすることです。lan を選ぶと、見た目だけのゲストWi-Fiに戻ってしまいます。
同じゲスト同士の端末も通信させたくない場合は、Advanced Settingsの Isolate Clients を有効にします。複数のradioや有線ポートを同じguestへ入れる場合は、端末の組み合わせごとにも確認します。このチェック一つで、別radioや別APまで含むすべてのゲスト端末間の分離を確認したことにはしません。
4. guest のファイアウォールゾーンを作る
guestインターフェースの Firewall Settings、または Network → Firewall から guest ゾーンを作ります。

基本方針は次の通りです。
Input:REJECT
Output:ACCEPT
Forward:REJECT
Allow forward to destination zones:wan のみ
guest → wan は許可しますが、guest → lan の転送は作りません。これが家庭内LANを見せないための境界です。
5. DHCPとDNSだけ、ルーターへの入口を開ける
Inputを REJECT にすると、ゲスト端末からルーター自身への通信は原則止まります。ただし、IPアドレスを受け取るDHCPと、Webサイト名をIPアドレスへ変換するDNSは必要です。
Network → Firewall → Traffic Rules で、guestゾーンから次の二つだけを許可します。

DHCP:UDP、宛先ポート67、IPv4
DNS:TCP / UDP、宛先ポート53
この二つを忘れると、「Wi-FiにはつながるがIPアドレスを取れない」「IPアドレスはあるがWebサイトを開けない」という状態になります。
6. Save & Applyで反映する
保留中の変更を確認し、Save & Apply を押します。Wi-Fiが一時的に切れたら、新しいSSIDとパスワードでつなぎ直します。
確認は、通る順に一段ずつ進める
スマートフォンをゲストSSIDへ接続し、下の順番で確かめます。途中で止まったら、その一つ前までは正常です。

SSIDへ接続できる
192.168.2.x のIPアドレスを受け取る
Webサイトを開ける
192.168.1.1 のLuCIを開けない
NASやプリンターへ届かない
4と5は「失敗して正解」の確認です。先に家族用LANの管理PCから、対象NASやプリンターが起動していて同じIP・サービスへ接続できることを確かめます。そのうえでゲスト側から同じ宛先へ試してください。停止中の機器やpingに応答しない機器を使うと、分離できたように見えるためです。スマートフォンはモバイル通信やVPNへ逃げていないかも確認します。
家庭内機器へ届いた場合は、ゲストSSIDのNetworkが guest になっているか、guest → lan の転送を誤って作っていないかを見直します。来客へパスワードを渡すのは、通す通信と止める通信を両方確認してからです。
SSHを使える場合は、設定を変更しない読み取りコマンドでも確認できます。
echo "### guest interface"
ifstatus guest
echo "### guest DHCP"
uci show dhcp.guest
echo "### guest wireless mapping"
uci show wireless | grep -E "ssid|network|guest"
echo "### guest firewall"
uci show firewall | grep -E "guest|Allow-(DNS|DHCP)"
echo "### firewall runtime"
iptables-save | grep -i guest
ip6tables-save | grep -i guest
セクション名は設定方法によって変わることがあります。出力を見ずに、確認コマンドを uci set へ書き換えないでください。
つながらない時は、症状から戻る

SSIDへ接続できないなら、radio、暗号化方式、パスワードを確認します。IPアドレスを取れないならDHCPとポート67の許可、IPはあるのにWebサイトを開けないならDNSとポート53を見ます。
インターネットへ出られない場合は guest → wan の転送を確認します。反対にLANへ届いてしまう場合は、SSIDの所属先と guest → lan の転送を確認してください。
原因を探す時は、設定画面を一度に直しません。接続、IPアドレス、DNS、インターネット、LAN遮断の順に一段ずつ戻ります。分離に失敗している間はゲストSSIDだけを無効にし、家族用LANの有線PCから直します。通信を通すためにInputを全許可へ変えたり、guestをlanへつなぎ直したりすると、分離の目的を失います。
HGW配下では、上流の管理画面も試す
guest → wan の許可は、宛先がインターネットだけであることを自動判定する設定ではありません。LN6001-JPの上流にHGWや別のLANがある場合、その管理画面や機器もWAN側の経路に含まれます。家族用LANへ届かないことに加えて、上流機器の管理IPへもゲストから接続できないか確認してください。
この例の guest → lan 遮断だけで上流側まで分離済みとはしません。届いてしまう場合は、上流の必要な接続と遮断したい宛先を整理し、該当する通信ルールを確認してからゲストSSIDを公開します。
IPv6を使うなら、IPv6でも分離を確認する
ここまでの例は、IPv4のゲストネットワークを基準にしています。IPv6をguestへ配る場合は、IPv4でLANへ届かないだけでは確認不足です。
ゲスト端末がIPv6アドレスを受け取るか、IPv6経由でも家庭内LANへ届かないか、DNSが意図通りかを別に確認してください。分離の確認が終わるまでは、機能を一度に増やさないほうが原因を追いやすくなります。
次に読むなら
よくある質問
2.4GHzと5GHzの両方に同じゲストSSIDを出せますか?
できます。両方の無線インターフェースを同じ guest networkへ割り当てます。まず片方で分離を確認してから、もう片方へ広げると設定ミスを見つけやすくなります。
ゲストからプリンターだけ使わせられますか?
可能ですが、guestからLAN全体を許可するのではなく、対象プリンターのIPアドレスと必要な通信だけを個別に許可します。機器の自動検出には追加設定が必要な場合があります。
ゲストWi-Fiを使わない時は削除したほうがいいですか?
削除しなくても、LuCIのWireless画面からゲストSSIDだけを無効にできます。再び使う可能性があるなら、分離設定を残してSSIDを停止するほうが簡単です。