ネットワークエンジニアの皆さん、こんにちは。日々のインフラ運用やセキュリティ担保、本当にお疲れ様です。
APIの設計やマイクロサービスのオーケストレーションにどれほど気を使っていようとも、その基盤を支える物理レイヤーやL2レイヤーの足元が揺らいでいれば、システム全体の安全性は砂上の楼閣と化します。社内ネットワークに野良ルーターが繋がれたり、悪意ある第三者がフリープリフィックスのポートに勝手に端末を直結したり……。そんな「物理の悪夢」をL2の最前線で確実にいなしてくれるのが、今回解説する「ポートセキュリティ(Port Security)のMACアドレス数制限」です。
教科書通りの仕様説明はそこそこに、現場でどう動くのか、どんな罠があるのか、泥臭い実務の知見を交えて徹底的に紐解いていきましょう。
—
1. ポートセキュリティが目指すもの:L2要塞の第一歩
現代のネットワークセキュリティにおいて、802.1X認証やMAC認証バイパス(MAB)を導入するのが王道であることは言うまでもありません。しかし、「そこまで大掛かりなRADIUSサーバーを立てる予算やマンパワーがない」「プリンターや計測器などのレガシーデバイスが多く、動的認証の導入が困難だ」という現場は、日本中、いや世界中のオフィスや工場に山ほど存在します。
そこで登場するのが、スイッチ(Cisco Catalyst等)のASICレベルで動作するポートセキュリティです。
スイッチポートごとに「このポートに接続して通信が許されるMACアドレスは何台までか」を厳格に定義し、それを超える端末が接続された瞬間に、トラフィックを遮断(あるいはアラート)します。
標準規格としての立ち位置
実は、ポートセキュリティ自体の厳密な仕様は、IETFの共通RFCで標準化されているわけではありません。Cisco Systemsが独自機能としてCatalystシリーズに実装し、それが業界事実上のデファクトスタンダード(業界標準)となり、他社ベンダー(HPE/Aruba、Juniper、Huawei等)も追随して同等の機能を実装したという歴史的経緯があります。
そのため、ベンダーによってコマンド体系や挙動のニュアンスに若干の違いはありますが、根底にある「MACアドレス学習数のハードリミット」という概念は完全に共通しています。
—
2. パケットの動きとステート遷移:MACアドバンス制限の裏側
では、スイッチのポートでMACアドレス制限を有効にしたとき、内部で何が起きているのでしょうか。その通信フローとステート遷移を追ってみましょう。
[不正な端末 (MAC: BB:BB:BB...)]
│
▼ (フレーム送信)
[スイッチポート (上限: 1台)] ──> [既存の正当端末 (MAC: AA:AA:AA...)]
│
├─ スイッチASIC: カウンタ確認 (現在1台 / 上限1台)
├─ 新規MACアドレスを検知!上限超過!
▼
【違反アクション (Violation)】
- shutdown : ポートを err-disabled に落とす (最も推奨)
- restrict : 破棄 + SNMPトラップ送信 + 違反カウンタ増加
- protect : 単なる静かなる破棄
1. 学習フェーズ: ポートが access モード(または trunk のネイティブVLAN)で動作している時、未知のソースMACアドレスを持つフレームが飛び込んできました。
2. カウンタ照合: スイッチは、そのポートに現在紐づいているセキュアMACアドレスの数を確認します。
3. 閾値判定:
- 設定された上限数(例:
maximum 1)未満であれば、通常通りMACアドレステーブル(CAMテーブル)にエントリを追加します。 - すでに上限に達している状態で、「新しい(未学習の)MACアドレス」を持つフレームが到来した場合、これを「セキュリティ違反(Violation)」と判定します。
4. 違反時の挙動(Violation Mode):
shutdown(デフォルト等でよく使われる): 該当ポートを即座にerr-disabledステートへ落とし、物理リンクを強制シャットダウンします。restrict: フレームをドロップし、Syslogを出力、SNMPトラップを飛ばし、違反カウンタ(Violation Counter)をインクリメントします。リンク自体は落ちません。protect: フレームを静かにドロップするだけで、ログすら残さない最もサイレントなモードです。トラブルシューティングの難易度が跳ね上がるため、実運用ではあまり好まれません。
—
3. 実務で直面するパラメーターの罠と設定例
ここでは、Cisco IOSをベースに、実務でそのままコピー&ペーストして使える堅牢なコンフィグレーション例を見ていきます。
実践的なCisco IOS設定サンプル
! 対象のアクセスポート(例: FastEthernet 0/1)を選択
interface FastEthernet0/1
description === 総務部 端末接続ポート ===
switchport mode access
switchport access vlan 10
! 【超重要】ポートセキュリティを有効化
switchport port-security
! 学習する最大MACアドレス数を「1」に制限(IP電話などを同居させる場合は「2」にする等調整)
switchport port-security maximum 1
! 違反時のアクションを「ポートシャットダウン (err-disabled)」に設定
switchport port-security violation shutdown
! MACアドレスの学習方式を「スティッキー(Sticky)」に設定
! (動的学習したMACアドレスをコンフィグに自動書き込みし、再起動後も保持する)
switchport port-security mac-address sticky
現場でハマる「Sticky学習」の罠
上記の switchport port-security mac-address sticky は、管理者の手間を劇的に減らしてくれる神機能です。最初に接続した端末のMACアドレスを自動で拾い、ランニングコンフィグ(running-config)に書き込んでくれます。
しかし、ここに大きな罠があります。
一度スタートアップコンフィグ(startup-config)に保存されたSticky MACアドレスは、その端末が故障して交換されたり、別の座席に移動したりした際に、手動でエントリをクリア(または no 設定して再学習)しないと永遠に通信できない文鎮ポートになり下がります。
「朝出社したら総務部のPCがネットにつながらないんだけど!」というインシデントの半分は、このStickyの消し忘れが原因だったりします。運用時は、ヘルプデスクのオペレーション手順書に必ず「端末リプレイス時のポートセキュリティクリア手順」を盛り込んでおきましょう。
—
4. 障害発生時のデバッグとリカバリ手順
もし「ポートセキュリティが原因でポートが落ちた」というアラートを検知した場合、現場のネットワークエンジニアは迅速に原因を特定し、復旧させなければなりません。ここでは、実務で使う定番のshowコマンドと、自動復旧のプラクティスを紹介します。
1. 障害原因の特定 (Show Commands)
スイッチにSSH等でログインし、どのポートがどのような理由で落ちているかを確認します。
Switch# show port-security interface FastEthernet 0/1
Port Security : Enabled
Port Status : Secure-shutdown <-- ポートセキュリティによってシャットダウンされている
Violation Mode : Shutdown
Maximum MAC Addresses : 1
Total MAC Addresses : 1
Configured MAC Addresses : 0
Sticky MAC Addresses : 1
Last Source Address:Vlan : aabb.ccdd.eeff:10
Security Violation Count : 3 <-- 3回違反パケットを検知して落ちた痕跡
さらに、インターフェース自体のステータスを確認します。
Switch# show interfaces FastEthernet 0/1
FastEthernet0/1 is down, line protocol is down (err-disabled)
完全に err-disabled 状態になっています。
2. トラブルシューティングと手動復旧
1. 不正端末の排除: 該当ポートに挿されているケーブルが「野良PC」や許可されていないデバイスではないか物理的に確認・抜線します。
2. ポートの復旧(バウンス):
Switch# configure terminal
Switch(config)# interface FastEthernet0/1
Switch(config-if)# shutdown
Switch(config-if)# no shutdown
これで物理リンクが再確立され、正当な端末のMACアドレスが再学習されます(Stickyの場合は既存設定が優先されます)。
3. 自動復旧(Err-Disable Recovery)の活用
夜間や休日に、誰かが間違ってハブを介して私物PCを繋いでしまい、ポートが落ちたまま月曜日の朝を迎える……という悲劇を防ぐため、自動復旧タイマーを有効にしておくのがプロのインフラエンジニアの嗜みです。
! err-disabledになったポートを300秒(5分)後に自動で復旧させる
errdisable recovery cause psecure-violation
errdisable recovery interval 300
※ただし、不正端末が接続されたままだと、復旧→即座に違反検知→再び err-disabled の無限ループに陥り、スイッチのログがSyslogサーバーを埋め尽くす原因になるため、根本的な物理セキュリティ対策とセットで運用する必要があります。
—
5. まとめ
今回は、レイヤー2セキュリティの基本にして極めて強力な「ポートセキュリティのMACアドレス数制限」について、実務の現場目線で解説しました。
- 過信は禁物だが、最初の一手として最強: 802.1Xのような大掛かりな認証基盤がなくとも、物理ポート単位で不正端末の侵入を確実にブロックできます。
- Sticky学習の利便性とリスクを理解する: 自動学習は便利ですが、端末交換時のクリア手順を運用フローに組み込むことを忘れないでください。
- 運用自動化の視野:
errdisable recoveryを適切に設定しつつも、SyslogやSNMPによるアラート監視を怠らない体制を構築しましょう。
ネットワークの信頼性は、こうした泥臭いL2の細部へのこだわりから生まれます。あなたのインフラ環境が、今日も堅牢で安定したパケットの奔流に満ちていることを祈っています。それでは、また次の現場でお会いしましょう!
コメント