弱者は決して許すことができない。許しは強者の態度である── ガンディー
ネットワーク

物理ポートに付く VLAN 番号を、設定ではなくサーバの返事で決める

図 3 で人が設定に書いた「物理ポートと VLAN 番号」の結びつきを、つながれるたびにサーバへ問い合わせて決める形に置き換える。MAB と RADIUS のやり取りを 1 本の通信として追う

ぴぐおv1人の校閲なし(AI のみ)訂正なし
ネットワークradius認証concept
目次

図 3 では、物理ポートに VLAN 番号を人が設定で付けました。図 17 の最後に出たポートセキュリティも、その物理ポートに許す MAC アドレスを人が決め打ちする方法でした。どちらも、機器ごとに人が書きます。

図 18 では、その決め打ちをサーバ 1 か所に集めます。物理ポートに何を付けるかは、ケーブルがつながれるたびにサーバへ問い合わせて決まります。

この連載は、ネットワークの言葉をもの(物理と論理)、結びつき(手動、自動、固定)、通信フロー(1 本の通信がこれらを順に通る流れ)の 3 層に置いています。ここで変わるのは、結びつきの作り方です。

登場するもの

認証・認可の台帳

RADIUS サーバが持つ論理のものです。誰に何を許すかが載ります。誰は MAC アドレスか利用者名、何を許すかは VLAN 番号や ACL です。

物理ポートごとの認証の状態

スイッチが持つ論理のものです。どの物理ポートに、どの MAC アドレスが、どの方式で、許可されたかを持ちます。

事前共有鍵

スイッチとサーバの両方に人が同じ文字列を入れます。そのスイッチが問い合わせてよい相手であることの根拠になります。

AAA の 3 つ

認証は誰かを確かめること、認可は何をしてよいかを決めること、アカウンティングは記録を残すことです。記録だけは宛先ポート番号 1813 を使う別のやり取りです。

802.1X と MAB

802.1X は端末が自分で名乗る方式です。MAB は名乗る仕組みを持たない機器のために、スイッチがその MAC アドレスで代わりに問い合わせる方式です。MAC アドレスは詐称できるので強い認証ではなく、名乗れる端末には 802.1X を使います。

結びつき

物理ポートと VLAN 番号の結びつきが、手動からサーバの返事による自動に変わります。これがこの 1 枚の主題です。

MAC アドレスと許可の結びつきは手動のままです。台帳に人が登録します。変わったのは登録する場所で、機器ごとではなくサーバ 1 か所になりました。

サーバの IP アドレス、ポート番号、事前共有鍵、物理ポートごとの認証の順番も手動のままです。自動になったのは、物理ポートに何を付けるかだけです。

通信フロー

① ケーブルを挿します。リンクは上がりますが、認証が済むまでその物理ポートはデータを通しません。図 2 の学習も転送も、まだ始まりません。

② スイッチ 1 が「名乗って」というフレーム(EAPOL)をその物理ポートに出します。ここではまだ IP を使いません。

③ 名乗る仕組みが無い端末は返事をしません。スイッチは既定で(再試行 2 回+1)×30 秒=90 秒 待って諦め、MAB に切り替えます。順番は設定で変えられます。

④ スイッチ 1 は最初のフレームの送信元 MAC アドレスを読み、その文字列を利用者名にもパスワードにも入れて Access-Request を送ります。宛先ポート番号は 1812(UDP)です。

⑤ サーバは台帳と照らし、Access-Accept(許可)か Access-Reject(拒否)を返します。返りは ④ の送信元ポートへ戻ります。1812 は行きの宛先です。許可の返事には VLAN 番号などの属性を入れられます。

⑥ スイッチ 1 は返事に入っていた VLAN 番号をその物理ポートに付けます。ここから先は図 2 と図 3 とまったく同じ動きになります。

RADIUS で隠されるのはパスワードの欄だけで、残りの属性はそのまま流れます。VLAN 番号は Tunnel-Type、Tunnel-Medium-Type、Tunnel-Private-Group-ID の 3 つの組で渡します。

同じ AAA でも、TACACS+ は用途が違います。機器の管理者ログイン向けで、TCP のポート番号 49 を使い、認証と認可と記録を分けた設計になっていて、命令ひとつずつの認可ができます。RADIUS には命令ひとつずつの制御はありません。隠す範囲も違いますが、その呼び方は出典で食い違っています。Cisco の比較ページは TACACS+ が本文全体を暗号化すると書き、RFC 8907 §4.5・§10.1 は同じ仕組みを暗号化ではなく難読化と呼んで弱点を挙げています。

図 18

上が構成図とフローの矢印、その下に AAA の 3 つ、802.1X と MAB、RADIUS と TACACS+ の 3 つの箱が並びます。いちばん下は各表の推移と、通信の中身の推移です。

MAB と RADIUS:口に付ける VLAN 番号を、人が決め打ちせずサーバに聞いて決める 図 3 では「物理ポート ⇄ VLAN 番号」を人が設定で固定した。ここではスイッチがサーバに問い合わせ、返事に入っていた VLAN 番号が口に付く VLAN 10(192.168.10.0/24) データセンター(192.168.3.0/24) PC-A 名乗る仕組みが無い MAC A しか持っていない スイッチ 1(問い合わせる係) 口 1:認証が済むまで通さない RADIUS サーバの IP とポート番号 事前共有鍵・認証の順番(手動) 口1 口8 ルータ 1 Gi0 192.168.10.1 Gi1 192.168.3.1 Gi0 Gi1 RADIUS サーバ 192.168.3.201 認証・認可の台帳 UDP 1812 / 1813 2 ② 名乗って(EAPOL) 4 ④ MAC を名前とパスワードにして問い合わせ(UDP 1812) 3 ③ 名乗りの返事が来ない → 待って諦める 5 ⑤ 許可+VLAN 番号の属性を返す 1 ケーブルを挿した直後。リンクは上がるが、口 1 はまだデータを通さない 6 口 1 に VLAN 10 が付く(自動)。ここから通常の通信が流れる AAA = 3 つの A 認証:誰か(名乗りを確かめる) 認可:何をしてよいか  (VLAN 番号や ACL を返す) アカウンティング:記録を残す  (いつ・どの口に・誰がつないだか) 802.1X と MAB 802.1X:端末が自分で名乗る  (利用者名・証明書など) MAB:名乗れない機器の代わりに、  スイッチが MAC で問い合わせる MAC は詐称できるので強くない RADIUS と TACACS+ RADIUS:利用者の接続を通すか決める  UDP 1812(認証)/ 1813(記録) TACACS+:機器の管理者ログイン向け  TCP 49。命令ひとつずつの認可ができる 隠す範囲も違う(帯の最後の注) フロー ① ケーブルを挿す。リンクは上がるが、認証が済むまで口 1 はデータを通さない(図 2 の学習も転送も、まだ始まらない) ② スイッチ 1 は「名乗って」というフレーム(EAPOL)を口 1 に出す。ここではまだ IP を使わない ③ 名乗る仕組みが無い端末は返事をしない。スイッチは既定で(再試行 2 回+1)×30 秒=90 秒 待って諦め、MAB に切り替える(順番は設定で変えられる) ④ スイッチ 1 は最初のフレームの送信元 MAC を読み、その MAC の文字列を利用者名にもパスワードにも入れて Access-Request を送る(宛先ポート番号 1812) ⑤ サーバは台帳と照らし、Access-Accept(許可)か Access-Reject(拒否)を返す。許可の返事には VLAN 番号などの属性を入れられる ⑥ スイッチ 1 は返事に入っていた VLAN 番号を口 1 に付ける。図 3 で人が設定していた「物理ポート ⇄ VLAN 番号」が、ここでは通信のたびに決まる 3 層で見ると もの:認証・認可の台帳(論理・サーバが持つ)/口ごとの認証の状態(論理・スイッチが持つ)/事前共有鍵(論理・両側に同じ文字列) 結びつき:物理ポート ⇄ VLAN 番号が、手動(図 3)からサーバの返事による自動に変わる。サーバの住所・鍵・認証の順番は手動のまま フロー:図 3 の ①(口にフレームが入る)の前に、スイッチとサーバの間で 1 往復の問い合わせが入る。許可が出るまで、その口では何も起きない 図 17 の最後に出たポートセキュリティは、同じ「口を守る」を人が決め打ちでやる方法(この口はこの MAC だけ)。台数が増えると機器ごとに書くことになる MAB はその決め打ちを 1 か所(サーバの台帳)に集める。ただし MAC は詐称できるので、名乗れる端末には 802.1X を使う 各テーブルの推移(○番のフローで追加・変化した行。青字) スイッチ 1: 口 1 の認証の状態 前: 認証待ち(データを通さない) ④⑤ 追加: MAC A・方式 MAB・結果 許可 スイッチ 1: 口 1 の VLAN 番号 前: 決まっていない ⑥ 後: VLAN 10(サーバの返事で自動) スイッチ 1: MAC アドレステーブル ⑥ 追加: MAC A → 口 1(VLAN 10) 認証が済むまでは、ここにも載らない RADIUS サーバ: 認証・認可の台帳 MAC A → 許可・VLAN 10(手動で登録) 利用者名 → 許可・VLAN 20(手動で登録) スイッチ 1: 人が手で設定したもの サーバの IP・ポート番号・事前共有鍵 口ごとの認証の順番(MAB と 802.1X) 図 3 との違い 図 3: 口 1 の VLAN 10 は設定に書いた行 図 18: 口 1 の VLAN 10 はサーバの返事 通信の中身の推移(フローごとのフレーム/パケット) ② スイッチ 1 → PC-A:名乗りを求める(EAPOL。IP はまだ出てこない) 宛先 MAC 認証用の決まった番地 送信元 MAC MAC SW-口1 データ EAP 要求 EAPOL に使う決まった番地は 01:80:C2:00:00:03(Cisco の解析例で端末 → スイッチ方向を確認)。スイッチから端末へ出すときの宛先は一次資料で確認できていない ④ スイッチ 1 → RADIUS サーバ:Access-Request(普通の IP パケットで送る) 宛先 MAC MAC R1-Gi0 送信元 MAC MAC SW 宛先 IP 192.168.3.201 送信元 IP 192.168.10.2 宛先ポート番号(UDP) 1812 AAA のメッセージ Access-Request(名前=MAC A) フレーム=全部。ただしスイッチが見るのは MAC とタグの部分だけ パケット=この部分。ルータはここ(IP)を見る ⑤ RADIUS サーバ → スイッチ 1:Access-Accept 宛先 MAC MAC SW 送信元 MAC MAC R1-Gi0 宛先 IP 192.168.10.2 送信元 IP 192.168.3.201 宛先ポート番号(UDP) ④ の送信元ポート AAA のメッセージ Access-Accept(VLAN 10 の属性) 宛先は ④ の送信元ポートへ返る(1812 は行きの宛先)。隠されるのはパスワードの欄だけで残りはそのまま流れ、VLAN 番号は属性 3 つの組で渡す(RFC 2865・RFC 3580 §3.31) ⑥ 認証が済んだあと:PC-A が同じ VLAN 10 の PC-B へ出す普通のフレーム 宛先 MAC MAC B 送信元 MAC MAC A 宛先 IP 192.168.10.20 送信元 IP 192.168.10.10 データ ping 口 1 が VLAN 10 の一員になったので、ここから先は図 2・図 3 とまったく同じ動きになる 記録(アカウンティング) スイッチ 1 は「いつ・どの口に・どの MAC がつながり、いつ切れたか」をサーバへ送る(宛先ポート番号 1813)。認証・認可とは別のやり取り 出典(RADIUS のポート番号 1812/Access-Request・Accept・Reject/隠されるのはパスワードの欄だけ): RFC 2865 §3・§4・§5.2  https://www.rfc-editor.org/rfc/rfc2865.html 出典(記録のポート番号 1813): RFC 2866 https://www.rfc-editor.org/rfc/rfc2866.html 出典(許可の返事で VLAN 番号を渡す属性の組・802.1X のスイッチが RADIUS の client になる): RFC 3580 §1・§3.31 https://www.rfc-editor.org/rfc/rfc3580.html 出典(TACACS+ は TCP 49/認証・認可・記録が別/命令ひとつずつの認可/機器の管理向け): RFC 8907 §1・§3.4・§4.5・§10.1  https://www.rfc-editor.org/rfc/rfc8907.html 出典(MAB:MAC を名前とパスワードに入れて問い合わせる/MAC を詐称すると破れるので強い認証ではない): Cisco  同(許可の返事で VLAN や ACL を渡せる/諦めるまでの待ち時間は(再試行回数+1)×30 秒で既定 90 秒)  https://www.cisco.com/c/en/us/td/docs/solutions/Enterprise/Security/TrustSec_1-99/MAB/MAB_Dep_Guide.html 出典(RADIUS と TACACS+ の比較。RADIUS は命令ひとつずつの制御ができない): Cisco  https://www.cisco.com/c/en/us/support/docs/security-vpn/remote-authentication-dial-user-service-radius/13838-10.html 出典(EAPOL の決まった番地 0180.C200.0003・Ethernet の種類の欄 0x888E): Cisco(端末 → スイッチ方向の解析例)  https://www.cisco.com/c/en/us/support/docs/lan-switching/8021x/220919-troubleshoot-dot1x-on-catalyst-9000-seri.html 注: Cisco の比較ページは TACACS+ を「本文全体を暗号化する」と書くが、RFC 8907 §4.5・§10.1 は同じ仕組みを「暗号化ではなく難読化」と呼び、弱点も挙げている 未検証: 勉強会の実機で確かめたのは MAB の成功・失敗の記録までで、TACACS+ は触っていない 未検証: 802.1X で使う名乗りの方式(証明書・利用者名など)ごとの違いは、この図では扱っていない ## 図 3・図 17 との接続

図 3 では、物理ポートの VLAN 10 は設定に書いた行でした。図 18 では、同じ VLAN 10 がサーバの返事です。見える結果は同じで、その行がどこから来たかだけが違います。

増えたのはもの(台帳と認証の状態)と結びつきの作り方で、通信フローそのものは図 2 と図 3 のままです。帯のいちばん下のフレームが図 2 のフレームと同じなのは、認証が済めば以降は何も変わらないからです。

図 17 のポートセキュリティとの違いは、許す相手をどこに書くかです。ポートセキュリティは機器の物理ポートに書き、MAB はサーバの台帳に書きます。台数が増えるほど、書く場所が 1 か所であることが効いてきます。

未検証・注意

  • Cisco の比較ページは TACACS+ が本文全体を暗号化すると書き、RFC 8907 §4.5・§10.1 は同じ仕組みを難読化と呼びます。どちらか一方だけを採らず、両方の言い方を本文に残しています。
  • 勉強会の実機で確かめたのは MAB の成功と失敗の記録までです。TACACS+ は触っていません。
  • 802.1X で使う名乗りの方式(証明書、利用者名など)ごとの違いは扱っていません。
  • EAPOL に使う決まった番地は 01:80:C2:00:00:03(Ethernet の種類の欄は 0x888E)です。Cisco の解析例で確認できたのは端末からスイッチへ向かう方向だけで、スイッチが最初に出す「名乗って」の宛先が同じ番地かは確認できていません。そのため図の箱は「認証用の決まった番地」のままにしてあります。
  • 90 秒は Cisco の既定値から計算した値です。実機の設定で変わります。
  • 認可の説明を VLAN 番号に寄せています。許可の返事には ACL も入れられますが、この 1 枚では扱っていません。
  • スイッチの管理 IP アドレス 192.168.10.2 と RADIUS サーバの 192.168.3.201 は、図 1〜7 の住所計画に合わせた説明用の値です。勉強会の資料の値とは関係ありません。

出典

関連

この記事の校閲記録

誰が・いつ・どの版の・どの段落を・何の観点で見て、何と言ったかを全件そのまま出す(追記のみ・削除しない)。

段落 39 のうち出典つき 14・出典なし 25

v1 2 件
  • AIAI (claude-fable-5) が AI 確認未解決

    出典 7 件を WebFetch で取得して確認した。RADIUS のポート番号 1812、Access-Request・Access-Accept・Access-Reject、隠されるのが User-Password の欄だけであることは RFC 2865 で確認した。記録のポート番号 1813 は RFC 2866 で確認した。名乗りを受け付けるスイッチが RADIUS の client になること、VLAN 番号を渡す属性の組(Tunnel-Type=VLAN(13)、Tunnel-Medium-Type=802、Tunnel-Private-Group-ID)は RFC 3580 で確認した。TACACS+ の TCP 49、認証・認可・記録を分けた設計、機器の管理向けであること、本文を隠す仕組みを RFC 自身が難読化と呼ぶことは RFC 8907 §1・§3.4・§4.5・§10.1 で確認した。MAC を利用者名とパスワードに入れて問い合わせること、MAC の詐称で破れること、待ち時間の式と既定の 90 秒は Cisco の MAB 導入ガイドで確認した。RADIUS がパスワードの欄だけを隠すこと、TACACS+ が本文全体を隠すこと、RADIUS では命令ひとつずつの制御ができないことは Cisco の比較ページで確認した。TACACS+ の隠し方の呼び方が Cisco の比較ページと RFC 8907 で食い違うため、本文ではどちらか一方だけを断定せず両方の言い方を並べた。EAPOL の決まった番地 0180.C200.0003 と 0x888E は Cisco の解析例で確認したが、確認できたのは端末からスイッチへ向かう方向だけで、スイッチが最初に出す側の宛先は未検証として明記した。TACACS+ を実機で触っていないこと、802.1X の名乗りの方式ごとの違いを扱っていないことも明記した。校正チェックリストを全項目回し、図の『口』を本文では物理ポートに直し、ポート番号は UDP と TCP の番号にだけ使った。守秘検査(人名、社名、会場名、地名、連絡先の機械検査)で該当なし

  • AIAI (claude-fable-5) が 編集未解決

    公開前の校閲。「この 18 本目」を「図 18」に直した(連載の通し数とずれるため)。関連を、図 8〜16 と同じ形に揃え、前の記事(図 17)と次の記事(図 19)への行と /notes/ のパスを足した。RADIUS の 1812・記録の 1813・TACACS+ の TCP 49・90 秒の式・VLAN を渡す属性の組は出典の引用と照合し、修正していない。

参考文献

更新履歴

  • 連載のトピックを「ネットワーク基礎」から「ネットワーク」へ改名(32 本+目次。slug と URL は不変)
  • 公開: 連載「ネットワーク基礎」図 8〜24 の記事 17 本と目次の更新

機械可読の記録