VLAN(Virtual LAN)
論理的なネットワーク分割
VLANとは
VLANは、物理的な接続に関係なく論理的にネットワークを分割する技術です。 同じスイッチに接続されていても異なるVLANに属する機器は直接通信できません。 これにより、ブロードキャストドメインの分割、セキュリティ向上、管理の柔軟性が得られます。
VLANの仕組み
VLAN 10(営業部)
PC-A
PC-B
VLAN 20(開発部)
PC-C
PC-D
物理的には同じスイッチでも、VLAN間は通信不可(L3ルーティングが必要)
IEEE 802.1Q(VLANタグ)
802.1Qは、イーサネットフレームに4バイトのVLANタグを挿入してVLAN情報を伝達する標準規格です。
宛先MAC
送信元MAC
802.1Qタグ
4B(TPID+TCI)
タイプ
ペイロード
802.1Qタグ構造
- • TPID(2B): 0x8100(VLANタグの識別子)
- • PCP(3bit): 優先度(QoS用)
- • DEI(1bit): 破棄可能フラグ
- • VID(12bit): VLAN ID(1-4094)
ポートタイプ
アクセスポート
- • 1つのVLANにのみ所属
- • タグなしフレームを送受信
- • エンドデバイス(PC、サーバー)接続用
トランクポート
- • 複数VLANのトラフィックを伝送
- • 802.1Qタグ付きフレーム
- • スイッチ間、ルーター接続用
ネイティブVLAN
トランクポートでタグなしフレームが属するVLAN。デフォルトはVLAN 1。 セキュリティ上、変更を推奨。両端で一致させる必要あり。
VLAN間ルーティング
異なるVLAN間の通信にはL3デバイス(ルーター/L3スイッチ)が必要です。
Router on a Stick
ルーターの1つの物理インターフェースにサブインターフェースを作成し、 トランクポートで接続。小規模向け。
L3スイッチ(SVI)
Switch Virtual Interface(SVI)を作成してVLAN間ルーティング。 ハードウェア処理で高速。大規模向け。
Linux VLAN設定
1 # VLANインターフェース作成 2 ip link add link eth0 name eth0.10 type vlan id 10 3 ip link set eth0.10 up 4 ip addr add 192.168.10.1/24 dev eth0.10 5 6 # 別のVLAN 7 ip link add link eth0 name eth0.20 type vlan id 20 8 ip link set eth0.20 up 9 ip addr add 192.168.20.1/24 dev eth0.20 10 11 # VLAN確認 12 cat /proc/net/vlan/config 13 14 # 永続化(netplan例) 15 # /etc/netplan/01-vlans.yaml 16 # network: 17 # ethernets: 18 # eth0: {} 19 # vlans: 20 # eth0.10: 21 # id: 10 22 # link: eth0 23 # addresses: [192.168.10.1/24]
クラウドでのネットワーク分離
クラウド環境ではVLANの代わりにVPC/サブネットでネットワークを分離します。 オーバーレイネットワーク(VXLAN等)で仮想化されています。
AWS
VPC、サブネット、セキュリティグループ
GCP
VPCネットワーク、サブネットワーク
Kubernetes
Network Policy、Namespace
SRE/インフラ観点
VLAN設計のベストプラクティス
- • 機能別分離: Web、DB、管理用を分ける
- • VLAN IDの命名規則: 10x=本番、20x=開発など
- • ドキュメント化: VLAN一覧とIP設計書を維持
よくある問題
- • VLANミスマッチ: 両端のVLAN設定不一致
- • ネイティブVLAN不一致: トランク間の設定ミス
- • 許可VLANの設定漏れ: トランクで必要なVLANが通らない