【入門編】 EAPOL(Extensible Authentication Protocol over LAN)のフレーム構造とパケットタイプ – インフラ・物理&L2/L3ネットワーク基礎実践ガイド

こんにちは!ネットワークの深淵とパケットの旅を愛するインフラエンジニアの皆さん、そして日々のインフラ学習に奮闘している初学者の皆さん。

企業や大学の無線LAN、あるいはオフィスに張り巡らせた有線LANに接続する際、「まずユーザー名とパスワード(または証明書)を入力して、認証が通らないとネットが使えない」という仕組みに、皆さんも一度は出会ったことがあるのではないでしょうか。あのセキュリティの門番を務めているのが IEEE 802.1X という規格であり、その裏側で主役として飛び交っているのが今回スポットを当てる EAPOL(Extensible Authentication Protocol over LAN) です。

「イーサネットの上でEAPをカプセル化するってどういうこと?」
「パケットの構造とか、難しいビットの計算とか出てきたらどうしよう……」

ご安心ください!今回は、パケットがネットワークを駆け巡るリアルな挙動を、身近な「郵便配達」に例えながら、一歩ずつ優しく紐解いていきたいと思います。それでは、EAPOLの深淵へ一緒に出発しましょう!

—

1. そもそも EAPOL ってなに? —— オフィスに例える「入館証チェック」

私たちが普段使っているイーサネット(Ethernet)は、基本的に「繋いだらすぐ通信できる」というお気楽でオープンな世界です。しかし、セキュリティが求められる現代の企業ネットワークにおいて、誰でもかんたんにケーブルを挿すだけで社内ネットワークに入り込めてしまうのは、裏口の鍵が開けっ放しになっているようなものですよね。

そこで登場するのが、IEEE 802.1X による認証です。役割分担はざっくり以下の3つに分かれています。

1. サプリカント(Supplicant): ネットワークに繋ぎたい「あなた(PCやスマホ)」
2. オーセンティケータ(Authenticator): 変わりに門番をしてくれる「ネットワーク機器(スイッチや無線AP)」
3. 認証サーバー(Authentication Server): ユーザー名やパスワードの台帳を持っている「RADIUSサーバー(FreeRADIUSやActive Directoryなど)」

ここで大きな問題が生じます。
「ネットワーク機器(スイッチ)」と「PC」の間でやり取りしたいのは、認証のための言葉(EAPパケット)なのですが、スイッチやPCが話すイーサネットの世界には、本来『IPアドレスもない、TCP/IPも通る前のまっさらな状態』で、どうやってそのメッセージを届けたらいいのかという悩みがあります。

そこで、「イーサネットの荷台(フレーム)の中に、EAPという手紙をそのままスポッと積み込んで運んじゃおう!」という仕組みが生まれました。これが EAPOL(Extensible Authentication Protocol over LAN) です。

—

2. 郵便配達でイメージする EAPOL フレームの構造

イーサネットフレームという「封筒」の中に、EAPOLという「専用の封筒」が入っていて、その中にさらに「EAP(本当の認証メッセージ)」という手紙が入っている……。まるでマトリョーシカのようですね。

実際のEAPOLフレームがどんな構造をしているのか、難しいビット数のお話は少し横に置いて、外側の封筒の宛先から順に見ていきましょう。

イーサネットヘッダーの特殊な宛先(MACアドレス)

EAPOLのパケットが流れるとき、通常の通信とはちょっと違う特別な宛先MACアドレスが使われます。

  • 宛先MACアドレス: 01:80:C2:00:00:03 (IEEE 802.1X パブリック・グループ・アドレス)

このアドレスは、「ルーターを越えて遠くへ旅をするな、このスイッチの手前(ローカルセグメント)だけで受け取ってくれ!」という特別な意味を持っています。郵便配達で言うなら、同じフロアのインフォメーション係に直接手渡しするようなものです。

そして、イーサネットの「タイプ(Type)」フィールドには、EAPOL専用の番号である 0x888E が書き込まれます。スイッチはこの番号を見て、「おっ、これは通常のデータ通信ではなく、認証の相談(EAPOL)だな!」と気づくわけです。

EAPOLヘッダーのきょうだい構成

EAPOL自体のヘッダーは非常にシンプルで、わずか4バイト(32ビット)しかありません。中身はこれだけです。

1. バージョン(Version: 1バイト): EAPOLのプロトコルバージョン(通常は 0x01 または 0x02)
2. パケットタイプ(Packet Type: 1バイト): 「いま、何の用事で手紙を出したのか」の種類
3. ボディ長(Length: 2バイト): 後ろに続くEAPメッセージの長さ

この中の「パケットタイプ」こそが、サプリカントとオーセンティケータの会話を組み立てる心臓部です。次のセクションで、その主要なメッセージ種別を見ていきましょう!

—

3. 5つのパケットタイプを知ろう!

EAPOLのパケットタイプには、主に以下の5つの種類が用意されています。すべて覚える必要はありません。「会話のキャッチボールのパターンなんだな」と雰囲気を掴んでいきましょう。

| パケットタイプ値 | 名称 | 役割・意味 |
| :— | :— | :— |
| 0x00 | EAP-Packet | 本丸であるEAP認証メッセージ(IDやパスワードなど)をカプセル化して運ぶ |
| 0x01 | EAPOL-Start | サプリカント側から「ねぇ、ボクを認証してよ!」とスイッチに声をかける合図 |
| 0x02 | EAPOL-Logoff | サプリカント側から「もう仕事終わったので切断しまーす」と伝える合図 |
| 0x03 | EAPOL-Key | 無線LANのWPA2/WPA3などで使われる暗号化キー(四相ハンドシェイク)を配る |
| 0x04 | EAPOL-Encapsulated-ASF-Alert | アラート通知用(実務ではめったに見かけません) |

実際の会話の流れ(パケットの旅)

電源を入れたPCがネットワークに参加する瞬間、EAPOLは次のようなドラマを演じています。

1. 「はじめまして!」 (EAPOL-Start)
PC(サプリカント)がスイッチ(オーセンティケータ)に向けて、EAPOL-Start を投げます。「ここにつないだんだけど、認証してくれますか?」
2. 「お、きたね。じゃあ身分証を見せて」 (EAPOL-Packet / EAP-Request/Identity)
スイッチがそれを受けて、「よし、じゃあまず名前(ユーザー名)を教えてくれ」とEAPのメッセージを包んで返します。
3. 「私の名前は〇〇です」 (EAPOL-Packet / EAP-Response/Identity)
PCが自分のユーザー名を答えます。スイッチはこの中身をRADIUSサーバーに横流しし、認証の旅が本格的にスタートします。

—

4. 実務で役立つ!Ciscoスイッチでの802.1X/EAPOL設定サンプル

理論が分かったところで、現場のインフラ構築でどのように設定するのか、Cisco Catalystスイッチのコンフィグを例に覗いてみましょう。実務では、この設定を入れることでスイッチがEAPOLのパケットを正しく解釈し、サプリカントを受け入れるようになります。

! ==========================================
! 1. AAA(認証・認可・課金)の全体有効化
! ==========================================
aaa new-model

! RADIUSサーバーの定義(認証の行き先を指定)
radius server AUTH_SERVER
 address ipv4 192.168.10.100 auth-port 1812 acct-port 1813
 key SecretPassword123

! RADIUSサーバーをグループにまとめる
aaa group server radius RADIUS_GROUP
 server name AUTH_SERVER

! 802.1X認証用のリストを作成
aaa authentication dot1x default group RADIUS_GROUP

! ==========================================
! 2. 802.1X機能自体の有効化
! ==========================================
dot1x system-auth-control

! ==========================================
! 3. ユーザーが接続する物理ポートの設定
! ==========================================
interface GigabitEthernet0/1
 description === 802.1X Supplicant Port ===
 switchport mode access
 
 ! ポートを一度、未認証(Unauthorized)状態でブロックする
 authentication port-control auto
 
 ! 802.1X認証を有効化
 dot1x pae authenticator
 
 ! 接続されたデバイスがサプリカント機能を持っていない場合のフォールバック設定(オプション)
 spanning-port fast
,

実務の現場におけるワンポイントアドバイス

トラブルシューティングでパケットキャプチャ(Wiresharkなど)を取るとき、EAPOLのパケットはフィルタ欄に eapol と入力するだけで簡単に抽出できます。
もし「PCを繋いだのに一向に認証が始まらない……」というときは、スイッチのポートで show dot1x interface GigabitEthernet0/1 などのコマンドを叩いて、「EAPOLが正しく送受信されているか(EAPOL Frames Transmitted / Received)」のカウンターを確認するのが鉄則です。パケットが全く流れていない場合は、物理層のケーブルやポート設定、あるいはPC側の802.1Xサービス(WLAN AutoConfigやWired AutoConfig)の停止が原因であることがほとんどです。

—

5. おわりに

いかがでしたでしょうか?
一見すると難解な「EAPOLのフレーム構造」も、蓋を開けてみれば「イーサネットというお馴染みの封筒に、認証専用の手紙を詰めて、スイッチとPCが身分証の確認っこをしているだけの温かみのある会話」であることがお分かりいただけたかと思います。

インフラの世界は、こうした小さなプロトコルやメッセージの積み重ねでガッチリとセキュアに守られています。一つひとつのパケットが運ぶ意味を想像できるようになると、ネットワークのトラブルシューティングが何倍も楽しく、そして鮮明に見えてきますよ。

それでは、また次回のパケットの旅でお会いしましょう!良きネットワークライフを!

コメント

タイトルとURLをコピーしました