- Authors

- Name
- Youngju Kim
- @fjvbn20031
イーサネット、スイッチ、VLAN
イーサネット(Ethernet)は有線LANの事実上の標準で、世界中のLANトラフィックの大部分を処理しています。1973年にBob Metcalfeが発明して以来、10Mbpsから現在の400Gbpsまで発展しました。
この記事では、MACアドレスとARPプロトコル、イーサネットフレーム構造、リンク層スイッチの動作、VLAN、そしてデータセンターネットワークを見ていきます。
1. MACアドレスとARP
1.1 MACアドレス
MAC(Media Access Control)アドレスは、ネットワークインタフェースに割り当てられた48ビット(6バイト)の物理アドレスです。
MACアドレスの構造
==================
1A:2B:3C:4D:5E:6F(16進数表記)
- 48ビット = 6バイト
- 先頭24ビット:OUI(製造者識別子)
例:00:1A:2B = Ayecom Technology
- 後半24ビット:製造者が割り当てる固有番号
- ブロードキャストアドレス:FF:FF:FF:FF:FF:FF
IPアドレス vs MACアドレス:
IPアドレス:ネットワーク層、論理的、場所によって変更
MACアドレス:リンク層、物理的、固定(NICに内蔵)
1.2 ARP(Address Resolution Protocol)
ARPはIPアドレスをMACアドレスに変換するプロトコルです。同じサブネット内で動作します。
ARPの動作過程
===============
ホストA(192.168.1.10)がホストB(192.168.1.20)にデータ送信
1. AのARPテーブルにBのMACアドレスがない
2. AがARP要求をブロードキャスト:
「192.168.1.20のMACアドレスは?」
宛先MAC:FF:FF:FF:FF:FF:FF(ブロードキャスト)
送信元MAC:AのMACアドレス
3. サブネットのすべてのノードがARP要求を受信
Bだけが応答:「私のMACアドレスはBB:BB:BB:BB:BB:BBです」
宛先MAC:AのMACアドレス(ユニキャスト)
4. AがARPテーブルにBのマッピングを保存(TTL:通常20分)
ARPテーブルの例:
IPアドレス | MACアドレス | TTL
----------------+---------------------+------
192.168.1.20 | BB:BB:BB:BB:BB:BB | 13分
192.168.1.1 | AA:AA:AA:AA:AA:AA | 8分
1.3 異なるサブネット間の通信
異なるサブネットのホストと通信する場合は、ゲートウェイルータのMACアドレスを使用します。
サブネット間通信
==================
ホストA(10.0.0.2)--> ホストB(20.0.0.2)
サブネット1 ルータ サブネット2
[A: 10.0.0.2] ---- [10.0.0.1 | 20.0.0.1] ---- [B: 20.0.0.2]
MAC: AA MAC: R1L | MAC: R1R MAC: BB
ステップ1:AがルータにN送信
送信元MAC:AA、宛先MAC:R1L
送信元IP:10.0.0.2、宛先IP:20.0.0.2
ステップ2:ルータがBに送信
送信元MAC:R1R、宛先MAC:BB
送信元IP:10.0.0.2、宛先IP:20.0.0.2
--> MACアドレスはホップごとに変更、IPアドレスはエンドツーエンドで維持
2. イーサネットフレーム構造
イーサネットフレーム形式
==========================
+----------+----------+----------+------+----------+-----+
| Preamble | Dest MAC | Src MAC | Type | Data | CRC |
| 8 bytes | 6 bytes | 6 bytes | 2 B | 46~1500 | 4 B |
+----------+----------+----------+------+----------+-----+
フィールド説明:
Preamble(8バイト):
- 7バイト:10101010パターン(クロック同期)
- 1バイト:10101011(SFD、フレーム開始表示)
Dest MAC(6バイト):宛先MACアドレス
Src MAC(6バイト): 送信元MACアドレス
Type(2バイト):上位層プロトコル識別
- 0x0800:IPv4
- 0x0806:ARP
- 0x86DD:IPv6
Data(46~1500バイト):ペイロード
- 最小46バイト(未満ならパディング追加)
- 最大1500バイト(MTU)
CRC(4バイト):エラー検出(CRC-32)
2.1 イーサネットの特性
イーサネットの特性
====================
- コネクションレス:ハンドシェイクなし
- 非信頼的:ACK/NAKなし、エラーフレームは単純に破棄
(上位層のTCPが再送を担当)
- CSMA/CD使用(半二重モード)
(全二重モードではCSMA/CD不要)
イーサネット速度の発展:
10 Mbps (10BASE-T) 1990年代
100 Mbps (Fast Ethernet) 1995年
1 Gbps (Gigabit) 1999年
10 Gbps (10GbE) 2002年
40/100 Gbps 2010年
400 Gbps 2017年
3. リンク層スイッチ
3.1 スイッチの役割
リンク層スイッチは、入ってくるフレームのMACアドレスを検査して適切なポートに転送します。ホストやルータに対して自身の存在が透過的(transparent)です。
スイッチ動作の概要
====================
ポート1 ポート2 ポート3 ポート4
| | | |
+--+--------+--------+--------+--+
| リンク層スイッチ |
+--+--------+--------+--------+--+
| | | |
[A] [B] [C] [D]
AがCにフレーム送信:
1. スイッチがポート1でフレーム受信
2. 宛先MAC = CのMAC
3. スイッチテーブル検索:Cはポート3に接続
4. フレームをポート3にのみ転送
--> BとDはこのフレームを受信しない
3.2 自己学習(Self-Learning)
スイッチは別途の設定なしに自動的にスイッチテーブルを構成します。
自己学習アルゴリズム
=====================
フレームがポートxから送信元MAC = AAで到着すると:
--> スイッチテーブルに記録:MAC AAはポートxに接続(TTL設定)
スイッチテーブル構成過程:
時点0:テーブルは空
時点1:A(ポート1)がCにフレーム送信
テーブル:A -> ポート1
Cの位置不明 --> フラッディング(ポート1以外のすべてのポートに送信)
時点2:C(ポート3)がAに応答
テーブル:A -> ポート1、C -> ポート3
Aの位置は既知 --> ポート1にのみ転送
時点3:B(ポート2)がAに送信
テーブル:A -> ポート1、C -> ポート3、B -> ポート2
Aの位置は既知 --> ポート1にのみ転送
3.3 スパニングツリープロトコル(STP)
ネットワークにループがあるとフレームが無限に循環します。STPはループを防止するために一部のポートを無効化してツリー構造を作ります。
スパニングツリーの例
=====================
ループのあるトポロジ:
[SW1] ---- [SW2]
| \ / |
| \ / |
| X |
| / \ |
| / \ |
[SW3] ---- [SW4]
STP適用後(一部リンク無効化):
[SW1] ---- [SW2]
| |
| |
[SW3] [SW4]
無効化されたリンク:SW1-SW4、SW2-SW3、SW3-SW4
--> ループのないツリー構造形成
STPの動作過程:
- ルートブリッジ選出:最小のブリッジIDを持つスイッチがルート
- ルートポート決定:各非ルートスイッチでルートまでの最小コスト経路のポート
- 指定ポート決定:各セグメントでルートまでのコストが最小のポート
- 残りのポートをブロック:ルートポートでも指定ポートでもないポートをブロッキング
4. スイッチ vs ルータ
スイッチ vs ルータ比較
========================
項目 | スイッチ(L2) | ルータ(L3)
------------------+---------------------+--------------------
動作層 | リンク層(L2) | ネットワーク層(L3)
使用アドレス | MACアドレス | IPアドレス
テーブル | スイッチテーブル | フォワーディングテーブル
プラグアンドプレイ | 自己学習(対応) | 設定必要(部分的)
ループ処理 | STP必要 | TTLで自然に除去
ブロードキャスト | 全体に伝播 | ブロック可能
スケーラビリティ | 大規模で限界 | 階層的な拡張可能
5. VLAN(Virtual Local Area Network)
5.1 VLANの必要性
1つの物理スイッチを複数の論理LANに分離します。
VLANが必要な状況
==================
物理的に1つのスイッチ:
ポート1-4:マーケティングチーム
ポート5-8:開発チーム
ポート9-12:経営陣
VLANなし:すべてのブロードキャストが全ポートに伝播
--> セキュリティ問題、パフォーマンス低下
VLAN適用:
VLAN 10(マーケティング):ポート1-4
VLAN 20(開発): ポート5-8
VLAN 30(経営): ポート9-12
--> 各VLANは独立したブロードキャストドメイン
--> VLAN間の通信はルータを通じてのみ可能
5.2 トランクポートと802.1Q
複数のスイッチにまたがるVLANを構成する場合、トランクポートを使用します。
VLANトランキング
==================
[スイッチ1] [スイッチ2]
VLAN 10:ポート1,2 トランク VLAN 10:ポート1,2
VLAN 20:ポート3,4 <=========> VLAN 20:ポート3,4
トランクポート:複数のVLANのフレームを1つのリンクで転送
802.1Qタグ(4バイト):
+--------+-----+-------+---------+
| TPID | PRI | CFI | VLAN ID |
| 0x8100 | 3b | 1b | 12ビット |
+--------+-----+-------+---------+
VLAN ID:0~4095(4096個のVLANが可能)
動作:トランクにフレーム送信時に802.1Qタグを追加
受信側でタグを確認し該当VLANポートに転送
6. MPLS(Multiprotocol Label Switching)
6.1 MPLSの概念
MPLSはIPアドレスの代わりに短いラベルを使用して高速なフォワーディングを実行します。リンク層とネットワーク層の間で動作します。
MPLSの動作
===========
通常のIPルーティング:
各ルータでIPアドレスに基づいて最長プレフィックスマッチングを実行(遅い)
MPLSルーティング:
入口ルータでラベルを割り当て --> 中間ルータはラベルのみ参照(速い)
パケット構造:
[L2ヘッダ][MPLSラベル][IPヘッダ][データ]
MPLSヘッダ(4バイト):
+-------+-----+---+-----+
| Label | Exp | S | TTL |
| 20bit | 3b | 1b| 8b |
+-------+-----+---+-----+
利点:
- IPルーティングより高速なフォワーディング
- トラフィックエンジニアリングが可能
- VPN構成が容易
7. データセンターネットワーク
7.1 データセンターの規模
大規模データセンターは数万~数十万台のサーバを収容し、それらを接続するネットワーク設計が重要です。
データセンターネットワークトポロジ
====================================
従来の階層構造:
[コアスイッチ]
/ | \
[集約スイッチ] [集約スイッチ] [集約スイッチ]
/ \ / \ / \
[ToR] [ToR] [ToR] [ToR] [ToR] [ToR]
||| ||| ||| ||| ||| |||
サーバ サーバ サーバ サーバ サーバ サーバ
ToR:Top-of-Rackスイッチ(ラック上部に配置)
集約:Aggregationスイッチ
コア:Coreスイッチ
問題点:上位層に行くほど帯域幅のボトルネック
7.2 Fat-Treeトポロジ
Fat-Treeトポロジ
==================
[コアスイッチ群]
/ | | | | | | | \
[集約1] [集約2] [集約3] [集約4]
/ | \ / | \ / | \ / | \
[ToR] [ToR] [ToR] [ToR] [ToR] [ToR]
特徴:
- すべての層で同一の帯域幅を提供
- 複数の経路を通じた負荷分散
- 低コストの汎用スイッチが使用可能
- サーバ間のバイセクション帯域幅を最大化
7.3 ロードバランシング
データセンターのロードバランシング
====================================
外部リクエスト --> [ロードバランサ] --> サーバ1
--> サーバ2
--> サーバ3
--> サーバ4
ロードバランサの役割:
- 外部に1つのグローバルIPを公開
- 着信リクエストを内部サーバに分配
- サーバ状態のモニタリング(ヘルスチェック)
- L4(TCPポートベース)またはL7(HTTPベース)の分配
8. まとめ
| 概念 | 核心内容 |
|---|---|
| MACアドレス | 48ビットの物理アドレス、NICに固定 |
| ARP | IPアドレスをMACアドレスに変換、ブロードキャスト要求 |
| イーサネットフレーム | Preamble + MAC + Type + Data + CRC |
| 自己学習 | スイッチが送信元MACを見てテーブルを自動構成 |
| STP | ループ防止のためのツリー構造維持 |
| VLAN | 1つのスイッチを複数の論理LANに分離 |
| 802.1Q | VLANタグ(4バイト)をフレームに追加 |
| MPLS | ラベルベースの高速フォワーディング |
次の記事では、無線ネットワークとモバイル通信の特性を見ていきます。
参考資料
- James F. Kurose, Keith W. Ross, "Computer Networking: A Top-Down Approach", 6th Edition, Chapter 5
- IEEE 802.3 - Ethernet Standard
- IEEE 802.1Q - VLAN Tagging
- RFC 826 - An Ethernet Address Resolution Protocol