ポートセキュリティとは、ポートに接続する機器をアクセス制御する機能です。この機能を使うとスイッチにあらかじめ設定されている MAC アドレスをもつ機器以外からのトラフィックを防ぐことができます。ここではCiscoのスイッチを使ってポートセキュリティの設定をおこないます。
ポートセキュリティ基本設定の種類
ポートセキュリティを設定するには、まずはじめにポートに許可するMACアドレスを学習させます。方法はスタティックに手動で MAC アドレスを指定して設定する方法と、実際に流れてきたフレームからダイナミックに学習した MAC アドレスを設定する方法があります。

ダイナミックに学習したMACアドレスはコンフィグには書かれないのでスティッキーと呼ばれる設定を追加でおこなうと、学習したMACアドレスをスタティックに設定するときと同じようにコンフィグファイルに書き出してくれます。
ポートセキュリティの基本設定
ポートセキュリティの設定はスイッチのポート単位でおこないます。
ポートセキュリティはネゴシエートしないトランクポートでも設定可能ですが、以下の例ではアクセスポートに設定しています。
ポートセキュリティの設定
設定コマンド

Gi0/1をアクセスポートにしてポートセキュリティを有効にしていきます。
Switch# configure terminal
Switch(config)# interface GigabitEthernet 0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# end
設定を確認します。
Switch# show running-config interface GigabitEthernet 0/1
Building configuration…
Current configuration : 86 bytes
!
interface GigabitEthernet0/1
switchport mode access
switchport port-security
end
ポートセキュリティ設定の確認
ポートセキュリティのステータスを確認します。
確認コマンド

以下では、 Gi0/1にポートセキュリティが設定されていることが Secure Portの項目で確認できます。

show port-security コマンド結果の項目の説明
Secure Port:ポートセキュリティが有効なポート
MaxSecureAddr(Count):許可される最大MACアドレス数 (1がデフォルト)
CurrentAddr(Count):現在学習されているMACアドレスの数
SecurityViolation(Count):セキュリティ違反が発生した数
Security Action:セキュリティ違反が発生した際の動作(shutdownがデフォルト)
ポートセキュリティの動作確認
Gi0/1 へPCを接続してリンクをアップさせてステータスを確認してみます。

Current Addr(Count)が1になりました。
これでポートセキュリティ設定をした Gi0/1 では、このMACアドレスをもつ機器の接続だけが許可されます。2つ目以降のMACアドレスを持つフレームは破棄されます。これはデフォルトでは最大MACアドレス数が1であるためですが、設定で変更することも可能です。
またポートがダウンすると学習したMACアドレスは、MACアドレステーブルからも削除されてリセットされるため、またあらたな1つを学習して許可します。
ポートセキュリティの違反動作モードの設定
ポートセキュリティ-違反動作モードの種類
ポートセキュリティの違反があった場合の動作の種類は3つあり、設定で変更することができます。デフォルトの動作モードは shutdown でポートをerrdisable状態にします。

ポートセキュリティ-違反モードの設定
設定コマンド

以下では、Gi0/1の違反時の動作を protect へ変更しています。
Switch# configure terminal
Switch(config)# interface GigabitEthernet 0/1
Switch(config-if)# switchport port-security violation protect
Switch(config-if)# end
Switch#
ポートセキュリティ-違反モードの確認
ステータスを確認します。Security Actiono の項目が Shutdown から Protect に変更されたことが確認できます。

ポートセキュリティ-最大MACアドレスの数の設定
最大MACアドレス数の設定
許可する最大MACアドレス数を設定により変更できます。
設定コマンド

デフォルトの1から変更したい場合に設定します。
Switch# configure terminal
Switch(config)# interface GigabitEthernet 0/1
Switch(config-if)# switchport port-security maximum 2
Switch(config-if)# end
Switch#
最大MACアドレス数の設定確認
ステータスを確認します。MaxSecureAddr(Count) が 2 に変更されていることが確認できます。

ポートセキュリティ-sticky MACアドレスを設定
sticky MACアドレスを設定
ポートセキュリティのsticky MAC アドレスを有効にすると、ポートに接続した機器のMACアドレスが自動でコンフィグに登録されます。その後、コンフィグを保存することで再起動後にもポートセキュリティのMACアドレス設定を維持できます。
設定コマンド

Switch#configure terminal
Switch(config)#interfac GigabitEthernet 0/1
Switch(config-if)# switchport port-security mac-address sticky
Switch(config-if)#end
Switch#
sticky MACアドレスが設定されていることを確認します。 以下では接続されている機器のMACアドレスが自動で設定されています。
Switch# show run int gi0/1
Building configuration…
Current configuration : 271 bytes
!
interface GigabitEthernet0/1
switchport mode access
switchport port-security maximum 2
switchport port-security
switchport port-security violation protect
switchport port-security mac-address sticky
switchport port-security mac-address sticky 80fa.5b65.e86a
end
ポートセキュリティ-スタティック MACアドレスを設定
スタティック MACアドレスの設定
ポートセキュリティのMACアドレスを手動で行うことができます。
設定コマンド

Switch# configure terminal
Switch(config)# interface GigabitEthernet 0/1
Switch(config-if)# switchport port-security mac-address aaaa.aaaa.aaaa
Switch(config-if)# end
Switch#
スタティック MACアドレスの設定確認
設定を確認します。
Switch# show run int gi0/1
Building configuration…
Current configuration : 324 bytes
!
interface GigabitEthernet0/1
switchport mode access
switchport port-security maximum 2
switchport port-security
switchport port-security violation protect
switchport port-security mac-address sticky
switchport port-security mac-address sticky 80fa.5b65.e86a
switchport port-security mac-address aaaa.aaaa.aaaa
end
最後にステータスを確認します。

参考リンク
ポートセキュリティとは – L2スイッチでの基本動作と仕組み
ARP(Address Resolution Protocol) とは – 概要と基本動作
コメント