頭文字D / 高橋涼介風:VLAN
VLANとは何か?〜「論理的に峠を区切る」技術
【涼介】
啓介、VLANがどんなものか、ちゃんとイメージできてるか?
【啓介】
うーん……正直、ちょっとピンときてねぇ。
「仮想的にLANを分ける」とか言われても、オレらが普段やってる走りと違って、頭に入ってこねぇよ。
【涼介】
まぁ当然だな。
いいか、VLANってのは──1本の道路に、レーンを分けて走らせるみたいなもんだ。
【啓介】
レーンを分ける……?
【涼介】
例えば、会社に1台のスイッチがあるとする。
そこに営業部、開発部、経理部のPCが全部つながってたら、普通は同じネットワーク上で通信してる状態になる。
【啓介】
ってことは……全員が同じコースを走ってる、みたいな感じか?
【涼介】
その通りだ。
でも、もし開発部のヤツがウイルスに感染したらどうなる?
【啓介】
やべぇな。他のPCにも広がる可能性がある。
【涼介】
そう。同じコースで全車が混走してたら、クラッシュすれば巻き添えになる。
だが、VLANを導入すれば──営業部用のレーン、開発部用のレーン、経理部用のレーンを論理的に引ける。
【啓介】
なるほど……じゃあ、同じスイッチでも、VLANで“見えない壁”を作ってやれば、他の部署に通信が流れないようにできるってことか。
【涼介】
その通りだ。
論理的に区切られたネットワーク(VLAN)では、ブロードキャストも通信も完全に分離される。
必要があれば、L3ルーティングで“交差点”を作ることもできるがな。
【啓介】
なんか峠の分岐っぽいな。普段はそれぞれ別のルートを走ってるけど、必要なときだけ合流するみたいな。
【涼介】
いい着眼点だ。
そしてAccessポートとTrunkポートも重要だ。
Accessポートは1つのレーン専用。
Trunkポートは、複数レーンをまたぐ管理道路みたいなもんだ。
【啓介】
Trunkってのは、スイッチ同士をつなぐとこだよな?
【涼介】
そうだ。Trunkでは、VLANタグっていう“識別ラベル”をフレームに付けて通信する。
だから複数のVLANが同じ物理線を使っても、どのVLANの通信かをちゃんと区別できる。
【啓介】
すげぇな……なんか、ネットワークも走りと一緒で、“ラインをどう使うか”がカギなんだな。
【涼介】
そういうことだ。
走りにおけるライン取りが、最速の鍵を握るように──
ネットワークではVLANでの分割設計が、セキュリティとパフォーマンスを左右する。
【啓介】
よし、兄貴。なんとなく見えてきたぜ、VLANのコース図が。
【涼介】
よし、じゃ、基本からVLAN間のルーティング(インターVLANルーティング)の仕組みまで叩き込むぞ。峠は一つじゃない。“繋がり方”を制御できなきゃ、全体の速さは出せないからな。
VLAN(Virtual Local Area Network)とは
VLANは、物理的には同じスイッチ(L2機器)に接続されていても、論理的に通信を分離して複数のLANのように動作させる仕組みのことをいう。これはIEEEの802.1Qという規格で標準化されているものだ。
なぜVLANが必要か?
じゃ、何故、VLANという技術が存在するのか、それは、ネットワークの混雑と無秩序を制御する事情が出来たからだ。
過去の企業ネットワークってのは、単純だった。単純であるがゆえに、設定は簡単だったが、それと引き換えに、様々なトラブルを引き起こした。
- 問題1:ブロードキャストの洪水
- LANの世界では、ARPやDHCPみたいな“ブロードキャスト”が日常的に飛び交う。
- 台数が少ないうちはいい。でも100台、200台と増えてくると、無駄な通信でネットワークが詰まってくるんだ。
- 問題2:セキュリティがスカスカ
- 全端末が同じネットワークってことは、1台ウイルスに感染すれば、全PCが感染リスクに晒される。
- 機密情報のある開発部署と、外部メールをバンバン使う営業部署が同じLANなんて、今じゃ考えられない。
- 問題3:柔軟性ゼロの構成
- 例えば、開発部が2階、営業部が3階にあるとして、同じ部署に所属してても、物理的に違う場所にいると通信設定が面倒だった。場所に縛られたネットワークなんて、走るたびに地形が変わる峠と一緒で、扱いづらい。
今では、なかなか考えにくいが、これにはネットワークデバイスが今よりも高価だったことも理由としてあげられる。様々な結果としてスイッチ1台に全部つなげばOKみたいな風潮が生まれていたんだ。
だが、上にあげた問題点を踏まえると、その代償は想像以上に厄介なものとなった。たとえば、1台のスイッチに10人の従業員がつながっていたとしよう。
彼らが開発部、経理部、営業部に属していたとしても、VLANがなければ全員が同じブロードキャストドメイン上にいる。
つまり…
- ブロードキャスト(ARP、NetBIOS、mDNSなど)は全員に届く
- 意図しない通信が部門間を流れ、セキュリティ的に脆弱
- ネットワークトラフィックが混在して非効率
これが、「最速」ではないのは明らかだろう。だが、VLANを導入すれば、部署ごとに通信を完全に分離できる。これは、「同じ峠を走っているように見えて、実は“それぞれ別のレーン”を走っている状態」を実現したことと同じと言える。
どうだ啓介?素晴らしいとは思わないか。
VLANのメリット
じゃ、VLANのメリットについて一気にまとめるぞ。
1. セキュリティの強化
- VLANで分離されたネットワークは互いに直接通信できない。
(L3ルーティングがなければ、通信は遮断される) - 社内の部署間の通信制限、DMZ(外部公開サーバ群)の隔離などに有効。
例:開発用の機密コードを扱うPC群と、インターネットを自由に使う営業端末をVLANで物理的に分離しておけば、万一のウイルス感染リスクを減らせる。
2. パフォーマンス向上
- VLANごとにブロードキャストドメインが分かれるため、
ARPやDHCPリクエストなどの“騒音トラフィック”が局所化される。 - 特に大規模LAN環境では、これがネットワーク負荷の低減に直結する。
3. 柔軟なネットワーク設計
- 物理的な場所(例えば、フロアやビル)に関係なく、論理的にグルーピングできる。
- 組織変更にも強く、PCの配置換え=ネットワーク再設計、という古いやり方から解放される。
VLANの基本構成
次は基本構成だ。何事も基本が大事だ。
● VLAN ID
まずはVLANの作成だ。次のようにコマンドを入力するだけでvlan10が作成される。今回はひとつだけ作成しているが、複数作って運用するのが一般的だ。そして、VLANごとに一意な番号と名前を定義することが、管理上重要となる。
- 使用可能範囲:1〜4094
- VLAN 1:デフォルトVLAN。全ポートが最初に属している(管理に使われやすい)
- VLAN 1002〜1005:Ciscoが予約。通常使用しない。
Switch(config)# vlan 10
Switch(config-vlan)# name SALES
● Accessポート vs Trunkポート
— Accessポートとは何か?
スイッチのひとつひとつのポートに対して、例えば、このポートはVLAN10、こっちのポートはVLAN20などと、それぞれを専用のVLANに所属させるものだ。
これには手動で設定するものと、接続されるPCのMACアドレスをもとに動的に設定させるものがある。前者はスタティックVLAN、後者はダイナミックVLANと呼ばれる。
いずれにしても、ポート単位で接続するVLANを認識することになる。
「スイッチのポート(口)を、1つのVLAN専用に設定する」Accessポートには、次の特徴がある。
- 1つのVLANにしか所属できない
- 接続されているデバイス(PC、プリンタ等)はタグ付きフレームを知らない
- VLANタグは、送信時にスイッチが除去(untag)する
Switch(config)# interface fa0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
この設定には、あるデメリットがある。成長企業ではよくあることだが、当初はスイッチ1台で足りていても、従業員やPCの増加に伴ってスイッチを追加する必要が出てくる。
その際、一般的には古いスイッチと追加したスイッチを使って同じVLANに接続することになるが、Accessポートでは双方のひとつひとつのポートを接続用として使う必要があり、その分、PCを接続できるポートが減ってしまう。
言葉だと、イメージしづらいが、8個のポートがそれぞれのスイッチにあった場合、VLANを3つ作って運用するとなると、双方のスイッチから、各VLANに所属しているそれぞれのポートを単なる接続用として利用しないといけない。結果的に、各スイッチで5つずつのポート、計10個のポートがPC用となる。
残念ながら、新しいスイッチを手に入れても、増えたのは、たった、2つのポートと同じことなんだ。どうだ、思った以上にPCを接続できないだろ。
— Trunkポートとは何か?
Trunkポートっていうのは、1本のリンクで複数のVLANを通す技術だ。Accessポートでスイッチをつなぐと無駄がでていた。Trunkポートは、そういう無駄をなくすための手段だ。
802.1Qタグを使って、1本のリンクで複数のVLANを通す。何度も言うが、1本で全部つなぐんだ。
見た目は1本。でも中身は完全に分かれてる。速くて、確実で、スマートなやり方。それが、Trunkポートだ。
Trunkポート
- 複数のVLANにまたがる通信を行う
- VLANタグ(802.1Q)をEthernetフレームに挿入して送信
- 主にスイッチ間、スイッチとルーター間の接続に使う
Switch(config)# interface fa0/24
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk encapsulation dot1q
Switch(config-if)# switchport trunk allowed vlan 10,20,30
この設定で、fa0/24は VLAN10/20/30のタグ付き通信を通すTrunkポートになる。
— VLANタグ(IEEE 802.1Q)とは?
VLANタグとは、イーサネットフレームに「これはVLAN〇〇番だ」と識別情報を付ける仕組みだ。802.1Q(はちまるにーてんキュー)は、その業界標準規格の名前だ。
— 通信の基本:イーサネットフレーム
通常のLAN通信は「箱(フレーム)」でデータを送る。
[宛先MAC] [送信元MAC] [タイプ] [データ] [FCS]
これに対して802.1Qタグをつけると
[宛先MAC] [送信元MAC] [TAG] [タイプ] [データ] [FCS] となる。
[TAG]がVLAN識別情報が入る場所だ。
— 802.1Qタグの中身は?
タグ(4バイト=32ビット)には、こんな情報が含まれている:
フィールド名 | 内容 |
---|---|
TPID(Tag Protocol Identifier) | 0x8100(「これはタグ付きだ」と示す識別子) |
TCI(Tag Control Information) | 下の3つを含む(合計16ビット) |
→ Priority(3bit) | QoS(優先度)の設定用 |
→ CFI(1bit) | Ethernetの種類(主に0) |
→ VLAN ID(12bit) | VLAN番号(0〜4095) |
タグは通常ユーザー機器には見えないが、タグ付きフレームにはどのVLANに属しているかが明確に記録されている。VLANタグが使われる場面は、主に「Trunkポート」だ。
このタグが付加されて、フレームが送られることで、同じケーブルを通っている通信の内、それがどちらのVLANのものなのかを受け取った先が判断して正しいVLANに振り分けてくれる。
AccessポートとTrunkポートを一覧にするとこんな感じだ。
ポートタイプ | 入ってくる通信 | 出ていく通信 |
---|---|---|
Accessポート | タグなし | タグなし(Untagged) |
Trunkポート | タグ付き | タグ付き(Tagged) |
つまり──
- Accessポートではタグを付けない(エンド端末が読めないから)
- Trunkポートではタグを付けてVLAN識別する
例えるなら──
802.1Qタグは、VLANごとの“車線識別ステッカー”みたいなもんだ。
複数の車が1本の高速道路(Trunk)を走ってても、
車体に「営業車」「開発車」「経理車」ってステッカー(タグ)があれば、
料金所(スイッチ)はどの出口(VLAN)に誘導すべきか分かる。
そして、ステッカーは入口で付けられ、出口で外される。
VLAN設計 = 高度なライン取り
VLAN設計では次の要素を考慮する必要がある:
- 誰と誰が通信する必要があるか
- どの通信を遮断したいか
- 部門ごとにネットワークセグメントを分ける必要があるか
- VLAN間のルーティングは必要か(あるならどの機器でやるか)
- トラブル時の管理性をどう確保するか
これはまさに、峠のラインを引くようなもの。
「同じ速度で突っ込んでも、進入角度とトラクション次第で差がつく。
VLAN設計も、同じ数のホストでも、構成次第で“パフォーマンスと安全性”が変わる。」
VLAN間通信 = インターVLANルーティング
(Router on a Stick)
啓介、段々とVLANについて理解が深まったんじゃないか?ここからは、異なるVLANを通信させる方法を教えるぞ。
結果から言うと、VLANはL2(データリンク層)で通信を分離する仕組み。つまりは、異なるVLAN間では、そのまま通信させることはできない。だから、異なるVLAN間の通信は、L3(ネットワーク層)でルーティングされなければならない。
Router on a Stick構成(1本のTrunkで複数のVLANを処理)
次の構成を見てみろ。このVLAN間のルーティングにTrunk接続を利用しているだろう。これには、きちんとした理由がある。
それは、ルータのポートの数だ。ルータのポートの数はスイッチほど多くない。この場合に複数のVLANをつなぐのに、いちいちポートを使っていたら無駄が出来てしまう。感覚としてはAccessポートの話に近いな。
この無駄を回避することができる機能がルーターには存在するんだ。これをサブインターフェースという。これは、ルーターの1つの物理インターフェースを、仮想的に分割する技術だ。分割した各サブインターフェースに対して、それぞれ異なるVLAN IDとIPアドレスを設定する。
啓介、お前ならわかるだろう。「何でもかんでも物理ポートを使えばいい」って考えは、素人の設計だ。
構成イメージ
[PC-A] ─ VLAN10
│
[Switch]──(Trunk)──[Router]
│
[PC-B] ─ VLAN20
設定例(Ciscoルーター)
Router(config)# interface g0/0.10
Router(config-subif)# encapsulation dot1Q 10
Router(config-subif)# ip address 192.168.10.1 255.255.255.0
Router(config)# interface g0/0.20
Router(config-subif)# encapsulation dot1Q 20
Router(config-subif)# ip address 192.168.20.1 255.255.255.0
- 各サブインターフェースはVLANに対応した“仮想のポート”
- ルーターが各VLANのデフォルトゲートウェイになる
- スイッチの該当ポートはTrunkに設定されている必要がある
🔹 Router(config)# interface g0/0.10
- 意味
- これは 物理インターフェース g0/0 のサブインターフェース .10 を作成するコマンドだ。作成と同時にサブインターフェースのモード(config-subif)に切り替わる。
- 「.10」は任意の番号だが、、一般的には対応する VLAN番号(ここでは VLAN 10)と合わせて命名される。
- ざっくりと、このサブインターフェースを VLAN 10 のトラフィック専用に使うというところだな。
- 背景知識
- ルーターは VLAN をネイティブで理解できていない。だから、Trunkポート経由で来た VLANタグ付きのトラフィックを処理するには、サブインターフェースで分ける必要があるんだ。
🔹 Router(config-subif)# encapsulation dot1Q 10
- 意味
- サブインターフェースで対応する VLAN を指定する。
- dot1Q は IEEE 802.1Q という VLANタグ付けの標準規格だ。
- 10 は VLAN 10 のタグ付きフレームを受け取る/送信することを意味している。
- ポイント
- この設定がないと、ルーターは「どのVLANのトラフィックか」を判断できない。
🔹 Router(config-subif)# ip address 192.168.10.1 255.255.255.0
- 意味
- サブインターフェース(VLAN 10用)への IPアドレス割り当てだ。
- このIPは VLAN 10 に属するネットワークのデフォルトゲートウェイとして機能する。
- 例
- VLAN 10 に属するPCが 192.168.10.x のIPを持っている場合、デフォルトゲートウェイを 192.168.10.1 に設定すれば、このルーター経由で他のVLANと通信できるということだ。
代替手段:L3スイッチでのインターVLANルーティング
近年ではルーターよりもL3スイッチを使う構成が一般的だ。L3スイッチなら、より高速な転送が可能で、ポート単位でルーティングを行える機能を内蔵している。参考までに見ておいてくれ。
Switch(config)# interface vlan 10
Switch(config-if)# ip address 192.168.10.1 255.255.255.0
今日はここまでだ。下にITスクール情報を置いておく。俺は学習にも闘争心が必要だと考えている。まだまだ、これからだと思えるなら限界を超えた走りを見せてくれ。健闘を祈る。


