
VLANは必要になってから|小さなオフィスのStaff・Guest・Device分離【OpenWrt集中連載011】
小さなオフィスや店舗では、ネットワークがいつの間にか混ざります。
スタッフのPC、来客のスマートフォン、防犯カメラ、録画機、プリンター、POS。最初は同じWi-Fiでも動きます。しかし、ゲスト端末から社内PCが見えたり、カメラからNASへ通信できたりする状態は、長く使うほど管理しにくくなります。
ここで候補になるのがVLANです。ただ、最初から有線ポートまでVLAN化する必要はありません。まずはSSID、ネットワーク、DHCP、ファイアウォールゾーンを分ける。管理スイッチや有線機器まで分離したくなったときに、VLANを加える。この順番なら、管理画面への接続を失うリスクを抑えられます。
この記事では、Linksys Velop WRT Pro 7(LN6001-JP)を使い、Staff・Guest・Deviceの三つに分ける現実的な進め方を紹介します。基準はメーカー提供のOpenWrtベースのOS(ver. 1.2.0.15)です。今後のOpenWrt本流への移行後も、ポート名やVLANの手順が共通になるとは限りません。003のファームウェア解説と、手元の機器の表示を照合して進めます。
今回の構成に使っているOpenWrtルーターはこちらです。
まず決めるのは、VLAN IDではなく通信ルール
最初に決めたいのは「誰が、どこへ通信してよいか」です。
Staff:業務PC、管理端末、NAS、プリンター
Guest:来客のスマートフォンやPC
Device:防犯カメラ、録画機、IoT、設備機器
Guestはインターネットだけを使える。DeviceからStaffへは入れない。StaffからDeviceへは、管理に必要な機器とポートだけを許可する。まず、この三つを言葉にします。

VLAN IDの 10 や 20 は、あとから変更できます。通信方針が曖昧なまま番号だけを決めても、安全なネットワークにはなりません。
三つのネットワークを先に設計する
この記事では、既存の lan をStaff用として残します。GuestとDeviceだけを追加します。

Staffを既存の 192.168.1.0/24 に残すのは、作業中もLuCIやSSHへ戻れる経路を守るためです。Guestは 192.168.2.0/24、Deviceは 192.168.3.0/24 とし、重複しないアドレス範囲を使います。
通信方針も設定前に決めます。

POSや決済端末は、Deviceへまとめて入れないでください。ベンダー指定のDNS、固定IP、接続先、専用ルーター、サポート条件がある場合があります。店舗運用に直結する機器は、要件を確認してから専用ネットワークを検討します。
SSID分離とVLANは役割が違う
無線だけなら、SSIDを別のnetwork・DHCP・zoneへ割り当てて分けられます。有線カメラや管理スイッチも含めたい、1本のケーブルで複数ネットワークを運びたい、といった段階でVLANを加えます。

最初の確認は、GuestとDeviceからStaffへ入れないことです。
設定前に、戻れる状態を作る
この手順では無線の国設定・送信出力・DFS関連の値は変更しません。VLANやファイアウォールを触る前に、次の三つを用意します。
Staff側に接続した有線PC
現在のLuCIバックアップ
ネットワーク設定の状態メモ
LuCIでは、System → Backup / Flash Firmware → Generate archive からバックアップを保存します。SSID、パスワード、端末情報を含む可能性があるため、公開リポジトリやSNSには置きません。
SSHでも設定ファイルを残しておくと、差分を確認しやすくなります。
BACKUP_DIR="/root/office-separation-before-$(date +%Y%m%d-%H%M)"
mkdir -p "$BACKUP_DIR"
for cfg in network wireless firewall dhcp; do
cp "/etc/config/$cfg" "$BACKUP_DIR/$cfg"
uci show "$cfg" > "$BACKUP_DIR/$cfg.uci.txt"
done
ip addr show > "$BACKUP_DIR/ip-addr.txt"
ip route show > "$BACKUP_DIR/route-v4.txt"
bridge vlan show > "$BACKUP_DIR/bridge-vlan.txt" 2>/dev/null || true
ls -l "$BACKUP_DIR"
バックアップ先のフォルダー名は、復元時に使うので控えておきます。このフォルダーはルーター内にあり、初期化後にも残る保管先ではありません。先に取得したLuCIのアーカイブが管理PCへ保存できていることも確認してください。
Guestは六つの工程で作る
Guestネットワークは、来客端末をStaffから分け、インターネットだけを使えるようにします。

1. 空のブリッジを作る
Network → Interfaces → Devices → Add device configuration を開き、次のように設定します。
Device type:Bridge device
Device name:br-guest
Bring up empty bridge:有効
Bridge ports:指定しない
Wi-FiだけのGuestなら、有線ポートは追加しません。Save & Apply で反映します。
2. guestインターフェースとDHCPを作る
Network → Interfaces → Add new interface から guest を作ります。
Protocol:Static address
Device:br-guest
IPv4 address:192.168.2.1
IPv4 netmask:255.255.255.0
DHCP start:100
DHCP limit:50
Lease time:1h
既存のLANやVPNとアドレス範囲が重ならないことを確認し、Save & Apply します。
3. Guest用SSIDを作る
Network → Wireless で5GHz帯にSSIDを追加します。LN6001-JPの公式手順では wifi1 が5GHz帯です。
ESSID:Office_Guest
Mode:Access Point
Network:guest
Encryption:WPA2/WPA3の互換モードなど、利用端末に合う方式
Key:Staff用とは別のパスワード
来客同士の通信も止めたい場合は、Isolate Clients を有効にします。保存後に Save & Apply します。
4. guestゾーンをWANだけへ転送する
Network → Firewall → Zones で guest ゾーンを作ります。
Input:REJECT
Output:ACCEPT
Forward:REJECT
Covered networks:guest
Allow forward to destination zones:wan
guest → lan や guest → device の転送は作りません。
5. DHCPとDNSだけルーターへ許可する
Inputを REJECT にしたため、Guest端末がルーターのDHCPとDNSを使えるようにTraffic Ruleを追加します。

DHCPはUDPの宛先ポート67、IPv4のみ。DNSはTCP+UDPの宛先ポート53です。どちらもSource zoneを guest、Destinationを This device / Device input、Actionを ACCEPT にします。DNSも最初はIPv4で確認し、IPv6を使う場合は後述の確認を追加します。設定後に Save & Apply します。
6. 来客端末で確認する
Guest用SSIDへ接続し、次を確認します。
192.168.2.x を取得する
Webサイトを開ける
192.168.1.1 のLuCIを開けない
Staff側のNASやプリンターへ接続できない
Device側のアドレスへ接続できない
管理画面で設定が見えることと、実端末で分離できていることは別です。必ず端末側から試します。
Deviceは「必要な通信だけ戻す」
Deviceも基本構成はGuestと同じです。2.4GHz帯しか使えないカメラや設備機器が多いため、Office_Device は2.4GHz帯に作ると切り分けしやすくなります。LN6001-JPの公式手順では wifi0 が2.4GHz帯です。
Bridge:br-device
Interface:device
IPv4:192.168.3.1/24
DHCP:192.168.3.100 から50台
Zone:Input REJECT / Output ACCEPT / Forward REJECT
SSID:Office_Device

SSIDのNetworkとゾーンのCovered networksは、どちらも device にします。さらにGuestとは別に、Source zoneを device とするDHCP許可(IPv4・UDP・宛先67)を追加します。ルーターのDNSを使わせるならDNS許可(まずIPv4・TCP+UDP・宛先53)も追加し、Destinationはどちらも This device / Device input とします。Guest用ルールを作っただけでは、DeviceからのDHCPやDNSは通りません。
クラウド型カメラやファームウェア更新には、DeviceからWANへの通信が必要な場合があります。逆に、ローカル録画だけなら常時のWAN接続が不要なこともあります。メーカーの要件を確認し、device → wan を機器の用途に合わせて決めます。
Staff側から録画機やカメラの管理画面へ入る場合は、lan → device をゾーン全体で許可しません。Traffic Rules で、宛先IPアドレスとポートを絞ります。
例として、録画機 192.168.3.10 のHTTPS管理画面だけを許可するなら、次のようにします。
Source zone:lan
Destination zone:device
Destination address:192.168.3.10
Protocol:TCP
Destination port:443
Action:ACCEPT
必要なポートは機器ごとに異なります。マニュアルやベンダーサポートで確認してください。
IPv6も同じ境界で考える
IPv4だけを分離しても、GuestやDeviceへIPv6が配られていれば、意図しない経路が残る可能性があります。
IPv6を使う場合は、各インターフェースのRA、DHCPv6、IPv6プレフィックス、ICMPv6、ゾーン間転送を含めて確認します。まだ設計できない段階では、GuestとDeviceへのIPv6配布をいったん無効にし、IPv4で分離を確認してから追加するほうが安全です。
「IPv4でStaffへ届かない」だけで検証を終えないでください。
有線VLANへ進む判断
次のどれかが必要になったら、有線VLANを検討します。
有線カメラをDeviceへ入れたい
管理スイッチの先でもStaffとDeviceを分けたい
複数アクセスポイントへGuestとDeviceを運びたい
1本のケーブルで複数ネットワークを運びたい

VLANでは、端末へタグなしで出すaccess portと、複数VLANをタグ付きで運ぶtrunk portを使い分けます。ルーターと管理スイッチの両側で、VLAN ID、tagged / untagged、PVIDを一致させる必要があります。
LN6001-JPのポート名やスイッチ構成は、ファームウェアと実機構成を確認してから設定します。一般的なOpenWrtの例をそのまま貼り付けると、管理用ポートまで別VLANへ移し、LuCIとSSHへ入れなくなることがあります。
まず、変更せずに現在の状態を読みます。
ip link show
uci show network | grep -E 'device|bridge|ports|vlan|switch|ifname'
bridge vlan show 2>/dev/null || true
swconfig list 2>/dev/null || true
OpenWrtではDSAと従来のswconfigでVLANの設定方法が異なります。出力を確認し、管理端末をつないだポートをStaff側に残し、営業時間外に一つずつ変更します。
設定後は三方向から確認する
確認は、Guest・Device・Staffの三方向から行います。

ルーター側では、次のコマンドで対応関係を確認できます。
ifstatus lan
ifstatus guest 2>/dev/null || true
ifstatus device 2>/dev/null || true
cat /tmp/dhcp.leases
uci show wireless | grep -E 'ssid|network|guest|device'
uci show firewall | grep -E 'zone|forwarding|guest|device|Allow-Guest|Allow-Device'
ip addr show
ip route show
Guest端末からStaff側へ届かないこと、Device端末からStaff側へ届かないこと、Staff端末から許可したDeviceだけへ届くことを確認します。遮断を試すNASや管理画面は、Staff側から同じIPとサービスへ接続できると確かめておきます。機器の停止や名前解決の失敗を、分離できた証拠にしないためです。
録画機への443番だけを許可した例なら、Staffからその画面を開けることと、ほかのDeviceの管理画面は開けないことを一組で確認します。また、guest → wan は上位HGWなどWAN側にある宅内機器も経路に含み得ます。007のWAN側・端末間の確認も参照し、「インターネットだけ」の範囲を確かめてください。
つながらないときの確認順
問題が起きたら、設定を増やす前に入口から確認します。

IPアドレスを取得できない
SSIDが正しいnetworkへ紐づいているか、DHCP Serverが有効か、DHCP許可ルールがあるかを確認します。
uci show wireless | grep -E 'guest|device|ssid|network'
uci show dhcp | grep -E 'guest|device'
logread | grep -i dnsmasq | tail -n 50
IPはあるがWebサイトを開けない
WANへのforwardingとDNS許可ルールを確認します。Guestで 192.168.2.x を取得していても、DNSが止まればWebサイトは開けません。
Staff側の機器が見えてしまう
SSIDのnetwork、ゾーンのForward、guest → lan や device → lan のforwarding、広すぎるTraffic Ruleを確認します。IPv6でも同じ試験をします。
Deviceのアプリから機器が見つからない
初期設定時に同一ネットワークを要求する機器や、mDNSなどのローカル探索を使う機器があります。クラウド経由で操作する機器はWANとDNSが必要です。探索のためにゾーン全体を開く前に、メーカーの通信要件を確認します。
LuCIへ入れなくなった
Staff側に残した有線ポートへ管理PCを直接つなぎ、192.168.1.1 を確認します。管理IPを変更済みなら、記録した現在のIPへ読み替えます。SSHへ入れる場合は、保存した設定へ戻します。先に実際のバックアップフォルダーを確認し、同じ時点の network、wireless、firewall、dhcp の四ファイルがそろっている場合に進めてください。
BACKUP_DIR="/root/office-separation-before-YYYYMMDD-HHMM"
cp "$BACKUP_DIR/network" /etc/config/network
cp "$BACKUP_DIR/wireless" /etc/config/wireless
cp "$BACKUP_DIR/firewall" /etc/config/firewall
cp "$BACKUP_DIR/dhcp" /etc/config/dhcp
/etc/init.d/network restart
/etc/init.d/dnsmasq restart
/etc/init.d/firewall restart
wifi reload
YYYYMMDD-HHMM は実際のフォルダー名へ置き換えます。ネットワーク再起動でSSHが切断される場合があります。そのときは、後続の再起動コマンドまで実行されたと決めつけず、Staff側から再接続し、設定と各サービスの状態を確認します。DHCP取得、管理画面、Guest・Deviceの遮断をもう一度試してから運用へ戻します。
運用メモを一枚残す
設定が終わったら、SSID、アドレス範囲、許可した通信、バックアップ場所を記録します。
Staff: lan / 192.168.1.0/24 / Office_Staff
Guest: guest / 192.168.2.0/24 / Office_Guest
guest -> wan: allow
guest -> staff/device: reject
Device: device / 192.168.3.0/24 / Office_Device
device -> staff: reject
device -> wan: 機器要件に合わせる
例外: lan -> 192.168.3.10:443 のみ許可
POS: ベンダー要件を確認して別途判断
SSID、許可先、バックアップ場所を、次の担当者が確認できる場所に保管してください。