Port Securityは各ポートが受信可能なMACアドレスを管理し、管理外の端末がスイッチに接続される事を防ぐ機能です。
コマンド一覧
このシナリオで重要なコマンド一覧は以下の通りです。
Switch(config)# interface <interface> Switch(config-if)# switchport mode access Switch(config-if)# switchport port-security Switch(config-if)# switchport port-security maximum <num> Switch(config-if)# switchport port-security mac-address [{ <mac_address> | sticky }] Switch(config-if)# switchport port-security aging time <min> Switch(config-if)# switchport port-security aging type [{ absolute | inactivity }] Switch(config-if)# switchport port-security violation [{ protect | restrict | shutdown }] Switch(config)# errdisable recovery cause psecure-violation Switch(config)# errdisable recovery interval <sec> Router(config)# interface <interface> Router(config-if)# standby ip <addr> Router(config-if)# standby use-bia
構成図
以下の環境で動作確認を行います。
f0/0 f0/1 +--------+.1 +--------+ | R1 +--------+ SW1 | +--------+ +--------+ 155.10.146.0/24
[R1] interface FastEthernet0/0 ip address 155.10.146.1 [SW1] interface FastEthernet0/1 switchport access vlan 146 ! vlan 146
設定全文は下記ファイルです。詳細設定は下記を参照ください。
仕様説明
基本設定
最低限の設定は以下の通りです。”switchport port-security”コマンドでport-securityを有効にする事ができます。
また、port-securityは”access port”のみ有効にする事ができます。
Switch(config)# interface <interface> Switch(config-if)# switchport mode access Switch(config-if)# switchport port-security
MACアドレス管理
以下のコマンドで接続可能な送信元MACアドレス数を定義する事ができます。
Switch(config-if)# switchport port-security maximum <num>
以下のコマンドで接続可能なMACアドレスを静的に設定する事ができます。また、stickyキーワードを使用すると、現在接続されているMACアドレスが自動的に静的に登録されます。
Switch(config-if)# switchport port-security mac-address [{ <mac_address> | sticky }]
port-securityは各ポート毎に接続可能なMACアドレスを管理します。管理されたMACアドレスは一定時間で削除されますが、そのtimeout時間を決めるのが以下のコマンドです。
aging type | 挙動 |
---|---|
absolute(default) | ホストが接続された時点からの時間を計測する |
inactivity | ホストが切断された時点からの時間を計測する |
Switch(config-if)# switchport port-security aging time <min> Switch(config-if)# switchport port-security aging type [{ absolute | inactivity }]
violation
MACアドレス上限に達した時の挙動を以下のコマンドで定義する事ができます。
violation action | パケット遮断 | メッセージ出力 | error disable |
---|---|---|---|
protect | ○ | × | × |
restrict | ○ | ○ | × |
shutdown | ○ | ○ | ○ |
Switch(config-if)# switchport port-security violation [{ protect | restrict | shutdown }]
error disableからの自動復旧
port-securityも含め、error disableになってしまったポートはshut/no shutコマンドを投入する事によって復旧します。もし、shut/no shutの手作業を省略したい場合は、以下のようなコマンドでerror disableからの自動復旧を実装する事ができます。
Switch(config)# errdisable recovery cause psecure-violation Switch(config)# errdisable recovery interval <sec>
HSRPとの併用
HSRP, VRRPなどのゲートウェイ冗長化プロトコルと併用する場合は注意が必要です。これらのプロトコルは、グループ番号に基づく仮想MACアドレスを使用します。使用するMACアドレス数が増える事によって、port-security違反が発生する可能性があります。
このport-security違反を解消するひとつの方法が、MACアドレス数の上限を増やす方法です。
Switch(config-if)# switchport port-security maximum 2
また、以下のように”use-bia”コマンドを使用する事でも回避可能です。このコマンドを使用する事により、HSRPが物理MACアドレスによるhelloを送るようになります。
Router(config)# interface <interface> Router(config-if)# standby ip <addr> Router(config-if)# standby use-bia
基本設定
設定投入
以下のコマンドをSW1に投入し、port-securityを実装します。
[SW1] interface FastEthernet0/1 switchport access vlan 146 switchport mode access switchport port-security switchport port-security violation restrict
動作確認
以下HSRP設定をR1に投入し、port-security違反を再現します。
[R1] interface FastEthernet0/0 standby ip 155.10.146.254
SW1のログよりport-security違反を検知している事が確認できます。
[SW1] Rack10SW1# *Mar 1 00:22:50.815: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0000.0c07.ac00 on port FastEthernet0/1. Rack10SW1# *Mar 1 00:22:56.788: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0000.0c07.ac00 on port FastEthernet0/1. Rack10SW1# Rack10SW1# Rack10SW1#show port-security interface FastEthernet 0/1 Port Security : Enabled Port Status : Secure-up Violation Mode : Restrict Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 1 Total MAC Addresses : 1 Configured MAC Addresses : 0 Sticky MAC Addresses : 0 Last Source Address:Vlan : 000d.6584.6be0:146 Security Violation Count : 12 Rack10SW1#
error disableからの自動復旧
設定投入
以下のコマンドをSW1に投入し、error disableから自動復旧する様子を観察します。
[SW1] interface FastEthernet0/1 switchport port-security vi shutdown ! errdisable recovery cause psecure-violation errdisable recovery interval 30
動作確認
しばらく待つと、error disableに遷移した旨と、error disableから自動復旧した旨のログを確認する事ができます。
[SW1] Rack10SW1# *Mar 1 00:28:01.706: %PM-4-ERR_DISABLE: psecure-violation error detected on Fa0/1, putting Fa0/1 in err-disable state Rack10SW1# *Mar 1 00:28:01.722: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0000.0c07.ac00 on port FastEthernet0/1. Rack10SW1# *Mar 1 00:28:02.721: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down Rack10SW1# *Mar 1 00:28:03.719: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to down Rack10SW1# *Mar 1 00:28:31.720: %PM-4-ERR_RECOVER: Attempting to recover from psecure-violation err-disable state on Fa0/1 Rack10SW1# *Mar 1 00:28:35.386: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up *Mar 1 00:28:36.393: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up Rack10SW1# *Mar 1 00:28:57.893: %PM-4-ERR_DISABLE: psecure-violation error detected on Fa0/1, putting Fa0/1 in err-disable state Rack10SW1# *Mar 1 00:28:57.901: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0000.0c07.ac00 on port FastEthernet0/1. Rack10SW1# *Mar 1 00:28:58.908: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to down Rack10SW1# *Mar 1 00:28:59.906: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to down Rack10SW1#
HSRPとの併用
設定投入
R1に以下のコマンドを投入し、HSRPとport securityを併用する環境を構築します。
[R1] interface FastEthernet0/0 standby ip 155.10.146.254 standby use-bia
動作確認
SW1がerror disableになった旨のログが出力されない事から、HSRPとport securityが併用できている事を確認します。
MACアドレス管理
設定投入
以下のコマンドをSW1に投入し、許容するMACアドレスを静的に定義します。また、MACアドレスはホストが切断されてから5分間管理するようにします。
[SW1] interface FastEthernet0/1 switchport port-security mac-address sticky switchport port-security aging time 5 switchport port-security aging type inactivity
動作確認
showコマンドにより設定を確認します。
[SW1] Rack10SW1#show run int f0/1 Building configuration... Current configuration : 216 bytes ! interface FastEthernet0/1 switchport access vlan 146 switchport mode access switchport port-security switchport port-security mac-address sticky switchport port-security mac-address sticky 000d.6584.6be0 switchport port-security aging time 5 switchport port-security aging type inactivity end Rack10SW1# Rack10SW1# Rack10SW1#show port-security interface FastEthernet 0/1 Port Security : Enabled Port Status : Secure-up Violation Mode : Shutdown Aging Time : 5 mins Aging Type : Inactivity SecureStatic Address Aging : Disabled Maximum MAC Addresses : 1 Total MAC Addresses : 1 Configured MAC Addresses : 0 Sticky MAC Addresses : 1 Last Source Address:Vlan : 000d.6584.6be0:146 Security Violation Count : 0 Rack10SW1#