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

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ルーターはこちらです。


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

    まず決めるのは、VLAN IDではなく通信ルール

    最初に決めたいのは「誰が、どこへ通信してよいか」です。

    • Staff:業務PC、管理端末、NAS、プリンター

    • Guest:来客のスマートフォンやPC

    • Device:防犯カメラ、録画機、IoT、設備機器

    Guestはインターネットだけを使える。DeviceからStaffへは入れない。StaffからDeviceへは、管理に必要な機器とポートだけを許可する。まず、この三つを言葉にします。

    SSID分離で十分な場合とVLANが必要な場合

    VLAN IDの 10 や 20 は、あとから変更できます。通信方針が曖昧なまま番号だけを決めても、安全なネットワークにはなりません。

    三つのネットワークを先に設計する

    この記事では、既存の lan をStaff用として残します。GuestとDeviceだけを追加します。

    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を加えます。

    SSID・ネットワーク・ゾーンで作る論理分離

    最初の確認は、GuestとDeviceからStaffへ入れないことです。

    設定前に、戻れる状態を作る

    この手順では無線の国設定・送信出力・DFS関連の値は変更しません。VLANやファイアウォールを触る前に、次の三つを用意します。

    1. Staff側に接続した有線PC

    2. 現在のLuCIバックアップ

    3. ネットワーク設定の状態メモ

    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から分け、インターネットだけを使えるようにします。

    Guestネットワークを作る六つの工程

    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を追加します。

    Guest・Deviceゾーンの基本設定

    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

    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へ進む前の判断と安全策

    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側・端末間の確認も参照し、「インターネットだけ」の範囲を確かめてください。

    つながらないときの確認順

    問題が起きたら、設定を増やす前に入口から確認します。

    Guest・Deviceがつながらないときの確認順

    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、許可先、バックアップ場所を、次の担当者が確認できる場所に保管してください。

    次に読むなら

    参考情報

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

    あなたへのおすすめ