2026年5月24日

2026年5月24日

VLAN を分けてネットワークを分離する方法|設計・スイッチとLinuxの設定・通信制御まで

VLAN(IEEE 802.1Q)を使うと、1台のスイッチや1本のケーブルを共有したまま、ネットワークを論理的に複数へ分けられます。ただし、VLANで分けるのは「同じセグメントとして直接届く範囲(ブロードキャストドメイン)」であって、VLAN間の通信をどこまで許すかは、間に置くルーターやファイアウォールのルールで決まります。この記事では、分け方の設計、スイッチとLinuxサーバーでの設定例、VLAN間の通信制御、つまずきやすい点と確認方法を順に説明します。

VLAN の基本

タグで所属を区別する

802.1Q では、イーサネットフレームに4バイトのタグを付け、その中の VLAN ID(1〜4094)で所属を区別します。スイッチのポートには大きく2つの役割があります。

  • アクセスポート:1つのVLANだけに属するポートです。PCやプリンター、サーバーなど、タグを意識しない機器をつなぎます。スイッチがタグの付け外しを行います。
  • トランクポート:複数のVLANのフレームをタグ付きで通すポートです。スイッチ同士、スイッチとルーター、複数VLANを扱うサーバーや仮想化ホストとの接続に使います。

トランクでタグを付けずに流すVLANを「ネイティブVLAN」と呼びます。ここを既定のまま放置すると、後述するVLANホッピングの足がかりになります。

VLAN だけでは通信は遮断されるが、制御はされない

別のVLANに属する機器同士は、そのままでは直接通信できません。通信させるには、ルーターやL3スイッチ(レイヤー3機能を持つスイッチ)でVLAN間をルーティングします。このとき、ルーティングを有効にしただけではすべての通信が通るので、どのVLANからどこへ何を許すかをACLやファイアウォールで決める必要があります。「VLANを分けた=安全」ではない、という点を最初に意識しておくと設計を誤りにくくなります。

分け方を設計する

VLANは、役割と信頼度でまとめるのが基本です。小規模なオフィスやサーバールームなら、次のような分け方がよく使われます。

  • VLAN 10 管理用:スイッチやルーター、サーバーの管理インターフェース(BMCなど)。アクセスできるのは管理者の端末だけにします。
  • VLAN 20 サーバー:Webサーバー、DBサーバーなど。外部に公開するものと内部向けのものをさらに分けることもあります。
  • VLAN 30 社内端末:社員のPC。
  • VLAN 40 ゲスト・IoT:来客用Wi-Fiや監視カメラ、複合機など。インターネットへの通信だけを許し、社内のVLANには入れないようにします。

設計時に決めておくことは次のとおりです。

  • VLANごとのサブネット(例:VLAN 20 は 192.168.20.0/24)。VLAN ID とサブネットの第3オクテットを揃えると、運用時に取り違えにくくなります。
  • デフォルトゲートウェイを置く機器(ルーターかL3スイッチか)
  • DHCPをどこで配るか。VLANごとにDHCPサーバーを置くか、ゲートウェイでDHCPリレーを使って1台のサーバーに中継するかを決めます。
  • VLAN間で許可する通信の一覧(例:社内端末からサーバーへはHTTPSのみ、ゲストから社内へはすべて拒否)

既定のVLAN 1 は、業務用のセグメントに使わないことが推奨されています。多くのスイッチで、管理用の通信や制御用のプロトコルが VLAN 1 に紐づいているためです。

スイッチの設定例

ここでは Cisco IOS 系のコマンドを例にします。他社のスイッチでも考え方は同じですが、コマンドや画面は機種ごとに異なるため、手元の機種のマニュアルで対応する設定を確認してください。作業前に現在の設定を保存しておきます。

! VLAN を作成
vlan 10
 name MGMT
vlan 20
 name SERVERS
vlan 30
 name OFFICE
vlan 40
 name GUEST
vlan 999
 name UNUSED-NATIVE

! サーバーをつなぐアクセスポート
interface GigabitEthernet0/1
 switchport mode access
 switchport access vlan 20
 switchport nonegotiate

! ルーター(またはL3スイッチ、上位スイッチ)へのトランク
interface GigabitEthernet0/24
 switchport mode trunk
 switchport trunk native vlan 999
 switchport trunk allowed vlan 10,20,30,40
 switchport nonegotiate

ポイントは3つです。トランクでは allowed vlan で必要なVLANだけを通すこと、ネイティブVLANを使っていないVLAN(例では999)に変えること、nonegotiate でトランクの自動交渉(DTP)を止めることです。機種によっては、トランク設定の前にカプセル化方式(dot1q)の指定が必要な場合もあります。トランクの両端でネイティブVLANと許可VLANを揃えないと、通信できないVLANが出るので注意してください。

設定後は show vlan brief でポートの所属を、show interfaces trunk でトランクの状態と許可VLANを確認します。

Linux サーバーでタグ付きVLANを扱う

1つの物理NICで複数のVLANに参加させたい場合(ルーター役のLinux、仮想化ホストなど)は、スイッチ側をトランクにして、Linux側でVLANインターフェースを作ります。

一時的に試す(ip コマンド)

sudo modprobe 8021q
sudo ip link add link eth0 name eth0.20 type vlan id 20
sudo ip addr add 192.168.20.10/24 dev eth0.20
sudo ip link set eth0.20 up

# VLAN ID が正しく付いているか確認
ip -d link show eth0.20

この設定は再起動で消えます。リモートから作業する場合は、管理用の接続を切らないよう、別経路のコンソールを用意してから試してください。

恒久的に設定する(netplan の例)

Ubuntu など netplan を使う環境では、次のように書きます。

# /etc/netplan/60-vlan.yaml の例
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: false
  vlans:
    vlan20:
      id: 20
      link: eth0
      addresses: [192.168.20.10/24]
      routes:
        - to: default
          via: 192.168.20.1
      nameservers:
        addresses: [192.168.20.1]

適用には sudo netplan try を使うと、確認しないまま一定時間が過ぎた場合に元の設定へ戻るため、リモート作業での事故を減らせます。RHEL 系で NetworkManager を使う環境では、nmcli connection add type vlan で同様の設定ができます。

VLAN間の通信を制御する

Linux をVLAN間のルーター(いわゆる Router on a Stick)にする場合は、IPフォワーディングを有効にしたうえで、転送するパケットをファイアウォールで絞ります。以下は nftables で「既定はすべて拒否、社内端末からサーバーへのHTTPSと、各VLANからインターネットへの通信だけ許可」とする例です。インターフェース名は環境に合わせてください。

table inet vlanfw {
  chain forward {
    type filter hook forward priority 0; policy drop;
    ct state established,related accept
    iifname "eth0.30" oifname "eth0.20" tcp dport 443 accept
    iifname { "eth0.20", "eth0.30", "eth0.40" } oifname "eth1" accept
  }
}

ポリシーを drop にした状態で必要な通信を1つずつ足していく方式なら、許可が足りない通信は「つながらない」形で表に出るので気づきやすく、意図しない通信が黙って通る事態を避けられます。ルールを適用する前に現在のルールセットを nft list ruleset で保存しておき、元に戻せるようにしてください。

つまずきやすい点と確認方法

  • タグが付いていない/付きすぎている:サーバー側でVLANインターフェースを作ったのにスイッチ側がアクセスポートのまま、またはその逆だと通信できません。sudo tcpdump -e -n -i eth0 vlan でタグ付きフレームが届いているかを確認します。
  • トランクの許可VLANに入っていない:経路上のすべてのトランクで、そのVLANが許可されているかを確かめます。
  • DHCPでアドレスが取れない:VLANを分けるとDHCPのブロードキャストは届かなくなります。ゲートウェイのDHCPリレーの設定を確認します。
  • VLANホッピング:DTPが有効なポートに不正な機器がトランクを要求する、ネイティブVLANを悪用した二重タグ、といった手口があります。アクセスポートは明示的にアクセスに固定し、DTPを止め、ネイティブVLANを未使用のVLANにして対策します。
  • MTU:802.1Q のタグで4バイト増えます。通常はスイッチが対応していますが、さらにトンネルを重ねる構成では、MTUの不一致による通信不良が起きることがあります。

なお、クラウド(AWSやGoogle Cloudなど)では、利用者がVLANタグを直接扱うのではなく、VPCとサブネット、セキュリティグループやファイアウォールルールで同じ目的を実現します。VPSでも、事業者がローカルネットワーク(プライベート接続)の機能を提供している場合があります。提供の有無や仕様はサービスごとに異なります(2026年10月現在)。

まとめ

  • VLANはブロードキャストドメインを論理的に分ける仕組みで、VLAN間の通信制御はルーターやファイアウォールのルールで行う
  • 役割と信頼度でVLANを分け、サブネット、ゲートウェイ、DHCP、許可する通信の一覧を先に決める
  • スイッチではアクセスポートとトランクを明示し、許可VLANを絞り、ネイティブVLANの変更とDTPの停止を行う
  • Linux では ip link で試し、netplan や NetworkManager で恒久設定にする。リモート作業は切り戻しの手段を用意してから行う
  • 通信できないときは、タグの有無、トランクの許可VLAN、DHCPリレーの順に確認する

お気軽にご相談ください

お見積りへ お問い合わせへ
▲