Catalyst 4500 シリーズ スイッチ Cisco IOS ソフトウェア コンフィギュレーション ガイド リリース IOS XE 3.3.0SG および IOS 15.1(1)SG
Cisco IOS Auto SmartPort マクロの設定
Cisco IOS Auto SmartPort マクロの設定
発行日;2012/09/05 | 英語版ドキュメント(2012/04/17 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 14MB) | フィードバック

目次

Cisco IOS Auto SmartPort マクロの設定

Auto SmartPort マクロについて

デバイス分類子

デバイス可視性モード

Auto SmartPort のマクロの設定

Auto SmartPort マクロのイネーブル化

Auto SmartPort のデフォルト設定

Auto SmartPort 設定時の注意事項

Auto SmartPort 組み込みマクロのパラメータの設定

ユーザ定義イベント トリガーの設定

802.1X-B ベースのイベント トリガー

MAC アドレスベースのイベント トリガー

ユーザ定義トリガーと組み込みマクロ間のマッピングの設定

Auto SmartPort のユーザ定義マクロの設定

Auto SmartPort の表示

Cisco IOS Auto SmartPort マクロの設定

この章では、Catalyst 4500 シリーズ スイッチに Auto SmartPort マクロを設定して適用する方法について説明します。

この章の主な内容は、次のとおりです。

「Auto SmartPort マクロについて」

「Auto SmartPort のマクロの設定」

「Auto SmartPort の表示」


) この章で使用するスイッチ コマンドの構文および使用方法の詳細については、次の URL で『Cisco Catalyst 4500 Series Switch Command Reference』と関連資料を参照してください。

http://www.cisco.com/en/US/products//hw/switches/ps4324/index.html

『Catalyst 4500 Series Switch Command Reference』に掲載されていないコマンドについては、より詳細な Cisco IOS ライブラリを参照してください。次の URL でCisco IOS コマンド リファレンスと関連資料を参照してください。

http://www.cisco.com/en/US/products/ps6350/index.html


Auto SmartPort マクロについて

Auto Smartport マクロは、ポートで検出されたデバイス タイプに基づいてポートを動的に設定します。スイッチがポートで新しいデバイスを検出すると、適切な Auto Smartport マクロを適用します。ポート上でリンク ダウン イベントが発生した場合、スイッチはそのマクロを削除します。たとえば、ポートに Cisco IP Phone を接続した場合は、Auto Smartport により自動的に Cisco IP Phone マクロが適用されます。Cisco IP Phone マクロが適用されると、遅延に影響されやすい音声トラフィックを正しく処理できるように QoS(Quality Of Service)、セキュリティ機能、および専用の音声 VLAN がイネーブルになります。

Auto Smartport は、 イベント トリガー を使ってデバイスをマクロにマッピングします。最も一般的なイベント トリガーは、接続されているデバイスから受信した Cisco Discovery Protocol(CDP)メッセージに基づいています。デバイス(Cisco IP Phone、Cisco ワイヤレス アクセス ポイント、Cisco スイッチ、または Cisco ルータ)の検出は、そのデバイスのイベント トリガーを呼び出します。

Link Layer Discovery Protocol(LLDP)は、CDP をサポートしないデバイスを検出するために使用されます。イベント トリガーとして使用される他のメカニズムには、802.1X 認証結果と学習した MAC アドレスなどがあります。

主に CDP および LLDP メッセージ( 表 19-1 )と MAC アドレスに基づいて、さまざまなデバイス用にシステムの組み込みイベント トリガーがあります。(Cisco IOS Release 12.2(54) SG 以前では、DMP は MAC アドレスを使用して検出されます。Cisco IOS Release 15.0(2) SG から、DMP は、CDP も使用して検出されます)。これらのトリガーは、Auto SmartPort がイネーブルになっていれば、イネーブルになります。

独自のトリガーも定義できます。ユーザ定義トリガーは、CDP/LLDP ベース、MAC アドレスのグループ、または auto-smart-port キーワードの属性値(AV)のペアの値にすることができます。

Auto SmartPort マクロは CLI コマンドのグループです。ポートのデバイスが検出されると、デバイスにマクロが適用されます。(たとえば、ポートの CISCO_PHONE イベントを検出すると、スイッチは CISCO_PHONE_AUTO_SMARTPORT マクロのコマンドを適用します)。システムの組み込みマクロはさまざまなデバイスに存在し、デフォルトでは、システムの組み込みのトリガーは、対応する組み込みマクロにマッピングされます。必要に応じて、組み込みのトリガーまたはマクロのマッピングを変更できます。

マクロは、基本的に、リンク ステータスに基づいて、インターフェイスの CLI のセットを適用または削除します。マクロでは、リンク ステータスがチェックされます。リンクがアップ ステータスの場合は、CLI のセットが適用されます。リンクがダウンしている場合、セットが削除されます(CLI の no 形式が適用されます)。CLI のセットを適用するマクロの部分は、マクロと呼びます。CLI を削除する部分(CLI の no 形式)は、アンチマクロと呼びます。

ユーザ定義トリガーの作成に加えて、ユーザ定義マクロを作成し、すべてのトリガー(組み込みとユーザ定義の両方)とすべてのマクロ(組み込みとユーザ定義の両方)の間で相互にマッピングできます。マクロを作成するには、Cisco I OS のスクリプト機能を使用します。Cisco IOS スクリプティングは、コマンドの自動化および変数の置換のために、BASH のような言語構文を使用します。

4 つの検出メカニズムは、次の優先順序に従います。

802.1X 認証がポートで設定されている場合、認証応答ベースのトリガーが適用され、他のトリガーは無視されます。

802.1X 認証に失敗し、CDP/LLDP フォール バック メカニズムが設定されている場合、電話デバイスだけに対して CDP/LLDP がトリガーされます。フォール バック メカニズムが設定されない場合、またはデバイスが電話デバイスではない場合は、何もトリガーされません。

802.1X 認証がポートで設定されている場合、MAC アドレス ベースのトリガーは、決してトリガーされません。

802.1X 認証がポートで設定されていない場合、CDP/LLDP は、MAC アドレス ベースのトリガーに待機タイマーがを適用される MAC アドレス ベースのトリガーよりも優先されます。CDP と LLDP の間で、特定の順序はありません。最初に到達した方がトリガーされます。

デバイス分類子

Cisco IOS XE Release 3.3.0SG(15.1(1) SG)以降、デバイス分類機能(DC)機能は、Catalyst 4500 シリーズ スイッチではデフォルトでイネーブルです。

DC は、MAC-OUI およびプロトコル(CDP、LLDP、DHCP など)から、デバイスを識別する情報を収集します。スイッチで CDP および LLDP をイネーブルにする必要があります。DHCP のオプション情報を DC が認識できるようにするには、スイッチで DHCP スヌーピング機能をイネーブルにする必要があります。DC が認識可能な一連のプロファイルに対して、これらのプロトコルから収集されたデバイス属性が評価され、ベスト マッチが検索されます。ベスト マッチのプロファイルが、デバイスの識別に使用されます。

CDP、LLDP または DHCP トラフィックが送信されないデバイスは、デバイス分類子で正しく識別されない場合があります。

デバイス分類子はプロファイル定義(組み込みプロファイルとデフォルト プロファイル)を使用します。組み込みプロファイルには、Auto Smartport モジュールが認識しているデバイス プロファイル(特定のシスコ デバイスで構成)が含まれます。これらは Cisco IOS に組み込まれており、変更できません。デフォルト プロファイルは不揮発性ストレージにテキスト ファイルで保存され、DC はこれを使用することで、はるかに多くのデバイスを識別できます。デフォルト プロファイルは、Cisco IOS のアーカイブのダウンロードの際に更新されます。

新しいデバイスが検出されると、対応するシェル トリガーによって Auto Smartport コンフィギュレーション マクロが実行されます。Auto Smartport には非常に多くのデバイス用の組み込みマッピングが含まれています。「ユーザ定義トリガーと組み込みマクロ間のマッピングの設定」に記載されているコマンドを使用すれば、マッピングを新規作成できます。トリガー マッピングは、DC によって指定されたプロファイル名またはデバイス名に基づいて作成できます。

デバイス可視性モード

DC 機能はスイッチ上でデフォルトでイネーブルになっています。ディセーブルにするには、 no macro auto monitor グローバル コンフィギュレーション コマンドを使用します。DC 機能には show コマンドがあり、スイッチに接続されているデバイスを表示できます。また、デバイスが接続されている物理ポートに関する情報と、デバイスの MAC アドレスとその他のベンダー情報も表示されます。非アクセス ポートで分類されるのは、別のレイヤ 2 スイッチなどの直接接続されたデバイスだけです。ハブに接続されたアクセス ポートでは、デバイス分類は 32 デバイスに制限されています。

Auto Smartport をイネーブルにすると、DC が自動的にイネーブルになります。

Auto SmartPort のマクロの設定

次のトピックについて説明します。

「Auto SmartPort マクロのイネーブル化」

「Auto SmartPort 設定時の注意事項」

「Auto SmartPort 組み込みマクロのパラメータの設定」

「ユーザ定義イベント トリガーの設定」

「ユーザ定義トリガーと組み込みマクロ間のマッピングの設定」

「Auto SmartPort のユーザ定義マクロの設定」

Auto SmartPort マクロのイネーブル化


) デフォルトでは、Auto SmartPort はグローバルにディセーブルです。特定のポートの Auto SmartPort マクロをディセーブルにするには、Auto SmartPort をグローバルにイネーブルにする前に、no macro auto global processing インターフェイス コマンドを使用します。


Auto SmartPort をグローバルにイネーブルにするには、 macro auto global processing グローバル コンフィギュレーション コマンドを使用します。

Auto SmartPort マクロをイネーブルにするには、次の作業を行います。

 

コマンド
目的

ステップ 1

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

Switch(config)# [no] macro auto global processing [cdp | lldp]

スイッチの Auto SmartPort をグローバルにイネーブルにします。

(注) リリース 15.0(2) SG から、フォールバック オプションは廃止されました。

Auto SmartPort をグローバルにディセーブルにするには、no macro auto global processing を使用します。

(注) macro auto processing コマンドは、インターフェイス レベルで Auto SmartPort をオンまたはオフにします。デフォルトはオンです。

ステップ 3

Switch(config)# end

特権 EXEC モードに戻ります。

ステップ 4

Switch# show running-config

Auto SmartPort がイネーブルであることを確認します。

ステップ 5

Switch# copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

show shell functions および show shell triggers 特権 EXEC コマンドを使って、イベント トリガー、組み込みマクロ、および組み込みマクロのデフォルト値を表示できます。

次に、スイッチの Auto Smartport をイネーブルにし、特定のインターフェイス上でこの機能をディセーブルにする例を示します。

Switch(config)# macro auto global processing
Switch(config)# interface interface_id
Switch(config-if)# no macro auto processing

Auto SmartPort のデフォルト設定

デフォルトでは、Cisco IOS シェルがイネーブルになり、Auto SmartPort はグローバルにディセーブルです。

表 19-1 に、デフォルトでスイッチ ソフトウェアに組み込まれた Auto Smartport 組み込みイベント トリガーを示します。

 

表 19-1 Auto SmartPort の組み込みイベント トリガーのマクロ

イベント トリガーの名前
説明

CISCO_PHONE_EVENT

システムは、電話デバイスがインターフェイスに接続されていることを検出します。

CISCO_SWITCH_EVENT

システムは、スイッチがインターフェイスに接続されていることを検出します。

CISCO_ROUTER_EVENT

システムは、ルータがインターフェイスに接続されていることを検出します。

CISCO_WIRELESS_AP_EVENT

システムは、ワイアレス アプリケーションがインターフェイスに接続されていることを検出します。

CISCO_WIRELESS_LIGHTWEIGHT_AP_EVENT

システムは、ワイヤレス Lightweight アプリケーションがインターフェイスに接続されていることを検出します。

CISCO_DMP_EVENT

システムは、デジタル メディア プレイヤーがインターフェイスに接続されていることを検出します。

CISCO_IPVSC_EVENT

システムは、IP ビデオ サーベイランス カメラがインターフェイスに接続されていることを検出します。

表 19-2 に、スイッチ ソフトウェアに組み込まれた Auto Smartport 組み込みマクロを示します。

 

表 19-2 Auto Smartport 組み込みマクロ

マクロ名
説明

CISCO_PHONE_AUTO_
SMARTPORT

Cisco IP Phone デバイスに対して、このマクロを使用します。ポート上の QoS、ポート セキュリティ、アドレス解決プロトコル(ARP)インスペクション(ダイナミック ARP インスペクション)、IP ソース ガード、DHCP スヌーピング、ストーム制御、およびスパニングツリー保護をイネーブルにします。

CISCO_SWITCH_AUTO_
SMARTPORT

Cisco スイッチ用のスイッチ マクロを適用するには、このマクロを使用します。ポート上のトランキングをイネーブルにします。

CISCO_ROUTER_AUTO_
SMARTPORT

Cisco ルータ用のルータ マクロを適用するには、このマクロを使用します。ポート上の QoS、トランキング、およびスパニングツリー保護をイネーブルにします。

CISCO_AP_AUTO_
SMARTPORT

Cisco AP 用のワイヤレス アクセス ポイント マクロを適用するには、このマクロを使用します。ポート上の Autonomous ワイヤレス アクセス ポイントのサポートと QoS をイネーブルにします。

CISCO_LWAP_AUTO_
SMARTPORT

Cisco Lightweight Wireless AP 用の Lightweight ワイヤレス アクセス ポイント マクロを適用するには、このマクロを使用します。ポート上の QoS、ポート セキュリティ、ダイナミック ARP インスペクション、IP ソース ガード、DHCP スヌーピング、ストーム制御、およびスパニングツリー保護をイネーブルにします。

CISCO_IP_CAMERA_AUTO_SMARTPORT

Cisco IP サーベイランス カメラ デバイスには、このマクロを使用します。これはポート上の QoS、ポート セキュリティ、およびアクセス VLAN をイネーブルにします。

CISCO_DMP_AUTOSMARTPORT

Cisco デジタル メディア プレーヤー デバイスには、このマクロを使用します。これはポート上の QoS、ポート セキュリティ、およびアクセス VLAN をイネーブルにします。


) デフォルトでは、組み込みイベント トリガーは、組み込みマクロにマッピングされます。


Auto SmartPort 設定時の注意事項

Auto SmartPort のガイドラインは次のとおりです。

Auto Smartport マクロを適用した場合のシステム競合を回避するには、802.1X 認証以外のポート認証をすべて削除します。

マクロが元の設定と競合する場合、一部のマクロ コマンドが適用されなかったり、一部のアンチマクロ コマンドが適用されなかったりする場合があります。(アンチマクロとは、適用されたマクロに含まれ、リンクダウン時にそのマクロ自体を削除する部分です)。


) マクロ内の 1 つのコマンドの失敗によって、マクロ全体の適用が停止します。


たとえば、802.1X 認証がイネーブルになっている場合は、switchport-mode access 設定を削除できません。設定を削除する前に、802.1X 認証を削除する必要があります。

Auto Smartport マクロを適用する場合、ポートは EtherChannel のメンバとしないでください。

Auto SmartPort がまだグローバルにイネーブル化されていない場合は、これをグローバルにイネーブルにする前に、すべての EtherChannel ポートで Auto SmartPort をディセーブルにします。Auto SmartPort がすでにイネーブルの場合は、ポートをシャット ダウンし、EtherChannel にポートを追加する前にディセーブルにします。


) Auto SmartPort マクロがインターフェイスに適用されている場合、通常、EtherChannel 設定は、マクロによって適用された自動 QoS 設定と競合するために、失敗します。


組み込みマクロのデフォルトのデータ VLAN は VLAN 1 です。デフォルトの音声 VLAN は VLAN 2 です。スイッチが別の VLAN を使用する場合は、組み込みマクロのデフォルト値を変更する必要があります。すべての組み込みマクロのデフォルト値を表示するには、 show shell functions 特権 EXEC コマンドを使用します。

802.1X 認証または MAB のために他社製のデバイスを検出するには、Cisco AV ペア auto-smart-port=event trigger をサポートするように RADIUS サーバを設定します。auto-smart-port の AV ペアで返される値で、ユーザ定義トリガーを設定する必要があります。

ネットワーク プリンタなどの CDP、MAB、または 802.1X 認証をサポートしない固定デバイスでは、ポート上の Auto Smartport をディセーブルにすることを推奨します。

ポート上で認証をイネーブルにすると、 macro auto global processing グローバル コンフィギュレーション コマンドに fallback cdp キーワードが含まれる場合を除き、スイッチは CDP を無視します。

マクロ内と対応するアンチマクロ内では、CLI コマンドの順序が異なる場合があります。

レイヤ 3 インターフェイスにポートを変換する前に、no macro auto processing コマンドを入力します。これは、Auto SmartPort がインターフェイスにマクロを適用することを防ぎます。レイヤ 3 がすでに設定されている場合、レイヤ 3 インターフェイスで no macro auto processing コマンドを入力すると、Auto SmartPort がグローバルにイネーブルになります。

Auto SmartPort マクロと SmartPort は、インターフェイス上で共存できません。

スイッチは、接続デバイスからの LLDP アドバタイズメントに従ってマクロを適用します。デバイスが自身を正しく識別しないと、誤ったマクロが適用されます。デバイスのファームウェアが最新であることを確認するには、特定のデバイスのマニュアルを参照してください。

LWAP の WLC ソフトウェア バージョンは、AutoSmartPort により LWAP として検出されるように、6.0.188(=> Cisco IOS 12.4(21a)JA2)以降にする必要があります。

Cisco IOS Release 12.2(54) SG 時点では、Auto SmartPort は、EtherChannel 設定を適用するマクロをサポートしていません。EtherChannel グループに属するインターフェイスが、標準インターフェイスとして扱われます。デバイス タイプに基づいて、個々のインターフェイスにマクロを適用できます。ただし、マクロの CLI(Auto-QoS など)は、EtherChannel 設定と競合する可能性があります。Auto SmartPort をグローバルにイネーブルにする前に、EtherChannel に属するインターフェイスで Auto SmartPort をディセーブルにすることを推奨します。Auto SmartPort がすでにイネーブルになっている場合、EtherChannel を設定する前に、インターフェイス上で Auto SmartPort をディセーブルにします。

Auto SmartPort 組み込みマクロのパラメータの設定

組み込みイベント トリガーから組み込みマクロへのマッピングは、スイッチで自動的に実行されます。組み込みマクロのデフォルト値は、スイッチ固有の値に置き換えることができます。

Auto SmartPort 組み込みマクロのパラメータを設定するには、次の作業を行います。

 

コマンド
目的

ステップ 1

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

Switch(config)# macro auto execute event trigger builtin built-in macro name [parameter=value] [parameter=value]

イベント トリガーから組み込みマクロへのマッピングを定義します。

イベント トリガー 値を指定します。

CISCO_PHONE_EVENT

CISCO_SWITCH_EVENT

CISCO_ROUTER_EVENT

CISCO_WIRELESS_AP_EVENT

CISCO_WIRELESS_LIGHTWEIGHT_AP_EVENT

CISCO_DMP_EVENT

CISCO_IPVSC_EVENT

WORD :ユーザ定義のイベント トリガーを適用します。

built-in macro name の値を指定します。

CISCO_PHONE_AUTO_SMARTPORT
(任意)パラメータ値 $ACCESS_VLAN=(1) および $VOICE_VLAN=(2) を指定します。

CISCO_SWITCH_AUTO_SMARTPORT
(任意)パラメータ値 $NATIVE_VLAN=(1) を指定します。

CISCO_ROUTER_AUTO_SMARTPORT
(任意)パラメータ値 $NATIVE_VLAN=(1) を指定します。

CISCO_AP_AUTO_SMARTPORT
(任意)パラメータ値 $NATIVE_VLAN=(1) を指定します。

CISCO_LWAP_AUTO_SMARTPORT
(任意)パラメータ値 $ACCESS_VLAN=(1) を指定します。

CISCO_DMP_AUTO_SMARTPORT

CISCO_IP_CAMERA_AUTO_SMARTPORT

(任意) parameter=value $ で始まるデフォルト値を置き換えます。スペースで区切られた名前と値のペアの形式で、新しい値を入力します(例:[name1 = value1name2 = value2...])。デフォルト値は丸カッコ内に表示されます。

ステップ 3

Switch(config)# end

特権 EXEC モードに戻ります。

ステップ 4

Switch# show running-config

入力を確認します。

ステップ 5

Switch# copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

no macro auto execute event trigger {[ builtin built-in macro name [parameter=value]] | [[parameter=value] {function contents}]} コマンドは、マッピングを検出します。

次の例では、該当するスイッチに Cisco スイッチと Cisco IP Phone を接続するための 2 つの組み込み Auto Smartport マクロを使用する方法を示します。次の例では、トランク インターフェイス用にデフォルトの音声 VLAN、アクセス VLAN、およびネイティブ VLAN を変更します。

Switch# configure terminal
Switch(config)# macro auto execute CISCO_PHONE_EVENT builtin CISCO_PHONE_AUTO_SMARTPORT ACCESS_VLAN=10 VOICE_VLAN=20
Switch(config)#
Switch(config)#
Switch(config)#!!!the next command enables auto smart ports globally
Switch(config)# macro auto global processing fallback cdp
Switch(config)#
Switch(config)# exit
 
Switch#
Switch# show running-config interface gigabitethernet2/7
Building configuration...
 
Current configuration : 284 bytes
!
switchport access vlan 10
switchport mode access
switchport voice vlan 2
switchport port-security maximum 2
switchport port-security
switchport port-security aging time 2
switchport port-security violation restrict
switchport port-security aging type inactivity
auto qos voip cisco-phone
qos trust device cisco-phone
neighbor device type phone
macro description CISCO_PHONE_EVENT
spanning-tree portfast
spanning-tree bpduguard enable
service-policy input AutoQos-VoIP-Input-Cos-Policy
service-policy output AutoQos-VoIP-Output-Policy
end

) また、macro auto device コマンドを使用して、デバイス タイプに対する組み込み関数のパラメータの変更を容易にすることができます。


ユーザ定義イベント トリガーの設定

2 タイプのイベント トリガーを設定できます(ユーザ定義と MAC アドレスベース)。

次の項では、これらのトリガーについて説明します。

「802.1X-B ベースのイベント トリガー」

「MAC アドレスベースのイベント トリガー」

802.1X-B ベースのイベント トリガー

MAB または 802.1X 認証を使用して Auto SmartPort マクロをトリガーする場合、Cisco AV のペア( auto-smart-port=event trigger )に対応するイベント トリガーを作成する必要があります。

イベント トリガーを設定するには、次の作業を行います。

 

コマンド
目的

ステップ 1

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

Switch(config)# shell trigger identifier description

イベント トリガーの ID および説明を指定します。

この ID を指定する場合は、文字間にスペースやハイフンを入れないでください。

ステップ 3

Switch(config)# end

特権 EXEC モードに戻ります。

ステップ 4

Switch# show shell triggers

スイッチ上のイベント トリガーを表示します。

ステップ 5

Switch# copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

イベント トリガーを削除するには、 no shell trigger identifier グローバル コンフィギュレーション コマンドを使用します。

次に、ユーザ定義トリガーを定義する例を示します。

Switch# configure terminal
Enter configuration commands, one per line.End with CNTL/Z.
Switch(config)# shell trigger RADIUS_MAB_EVENT MAC_AuthBypass Event
Switch(config)#

MAC アドレスベースのイベント トリガー

イベント トリガーとして MAC アドレス グループを設定するには、次の作業を行います。

 

コマンド
目的

ステップ 1

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

Switch(config)# macro auto mac-address group

イベント トリガーとして MAC アドレスのグループを指定します。

モードを config-mac-addr-grp に変更します。次に、グループから MAC アドレスまたは組織固有識別子(OUI)を追加または削除できます。

group 値はユーザ定義トリガーを定義します。

ステップ 3

Switch(config)# end

特権 EXEC モードに戻ります。

ステップ 4

Switch# show shell triggers

スイッチ上のイベント トリガーを表示します。

ステップ 5

Switch# copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

イベント トリガーを削除するには、no macro auto mac-address-group grp_name を使用します。

ユーザ定義トリガーと組み込みマクロ間のマッピングの設定

組み込みマクロまたはユーザ定義マクロのいずれかに対して、ユーザ定義トリガーをマッピングする必要があります。

組み込みマクロにユーザ定義トリガーをマッピングするには、次の作業を行います。

 

コマンド
目的

ステップ 1

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

Switch(config)# macro auto execute event trigger builtin built-in macro name [parameter=value] [parameter=value]

ユーザ定義のイベント トリガーとマクロ名を指定します。このアクションは、組み込みマクロのデフォルト値を置換し、イベント トリガーから組み込み Auto SmartPort マクロへのマッピングを設定します。

(注) マッピングを実行する場合、パラメータ値を入力する必要があります。たとえば、CISCO_PHONE_AUTO_SMARTPORT マクロに $ACCESS_VLAN=(1) および $VOICE_VLAN=(2) を指定する必要があります。

ステップ 3

Switch(config)# end

特権 EXEC モードに戻ります。

ステップ 4

Switch# show shell triggers

スイッチ上のイベント トリガーを表示します。

ステップ 5

Switch# copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

次に、アクセス VLAN を 10 に設定して、RADIUS_MAB_EVENT という名前のユーザ定義イベント トリガーを組み込みマクロ CISCO_PHONE_AUTO_SMARTPORT にマッピングし、各エントリを確認する例を示します。

この手順では、組み込みマクロにユーザ定義トリガーをマッピングする方法を示します。


ステップ 1 デバイスを、MAB に対応したスイッチ ポートに接続します。

ステップ 2 RADIUS サーバ上で、属性と値のペアを auto-smart-port =RADIUS_MAB_EVENT に設定します。

ステップ 3 スイッチ上で、イベント トリガー RADIUS_MAB_EVENT を作成します。

スイッチは、RADIUS サーバからの attribute-value pair=RADIUS_MAB_EVENT 応答を認識し、次の例に示すように、マクロ CISCO_PHONE_AUTO_SMARTPORT を適用します。

Switch(config)# macro auto execute RADIUS_MAB_EVENT builtin CISCO_PHONE_AUTO_SMARTPORT ACCESS_VLAN=10
Switch(config)# exit
Switch# show shell triggers
User defined triggers
---------------------
Trigger Id: RADIUS_MAB_EVENT
Trigger description: MAC_AuthBypass Event
Trigger environment:
Trigger mapping function: CISCO_PHONE_AUTO_SMARTPORT
<output truncated>


 

Auto SmartPort のユーザ定義マクロの設定

Cisco IOS シェルでは、ユーザ定義の Auto SmartPort マクロを設定するための基本スクリプト機能が提供されます。これらのマクロには複数行を記述することが可能で、任意の CLI コマンドを含めることもできます。また、マクロの内部で変数置換、条件付き、関数、およびトリガーも定義できます。

macro auto execute trigger parameter-name=value .., を通じて指定されたパラメータに加えて、ユーザ定義マクロ内で、EEM によってパブリッシュされた次の変数を使用できます( 表 19-3 )。

 

表 19-3 EEM によってパブリッシュされた変数

パラメータ名
意味

$INTERFACE

トリガー イベントが検出されるインターフェイスの名前。

$LINKUP

インターフェイスがアップ状態またはダウン状態のいずれであるかを示します(true/false)。

$TRIGGER

生成されたトリガー イベントの名前(CISCO_PHONE_EVENT など)。

$AUTH_ENABLED

802.1X 認証がインターフェイスで設定されているかどうかを示します(true/false)。

ユーザ定義マクロにイベント トリガーをマッピングするには、次の作業を行います。

 

コマンド
目的

ステップ 1

Switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

Switch(config)# macro auto execute event trigger [parameter=value] {function contents}

イベント トリガーにマッピングするユーザ定義マクロを指定します。

イベント トリガー 値を指定します。

CISCO_PHONE_EVENT

CISCO_SWITCH_EVENT

CISCO_ROUTER_EVENT

CISCO_WIRELESS_AP_EVENT

CISCO_WIRELESS_LIGHTWEIGHT_AP_EVENT

WORD はユーザ定義イベント トリガーを適用します。

CISCO_DMP_EVENT

CISCO_IPVSC_EVENT

function contents:トリガーに関連付けるユーザ定義マクロを指定します。マクロの内容は、波カッコで囲んで入力します。左波カッコで Cisco IOS シェル コマンドを開始し、右波カッコでコマンドのグループ化を終了します。

(任意)parameter=value:$ で始まるデフォルト値を置換し、スペースで区切られた名前と値のペアの形式で、新しい値を入力します(例:[ name1 = value1 name2 = value2...])。

ステップ 3

Switch(config)# end

特権 EXEC モードに戻ります。

ステップ 4

Switch# show running-config

入力を確認します。

ステップ 5

Switch# copy running-config startup-config

(任意)コンフィギュレーション ファイルに設定を保存します。

次の例では、Cisco Digital Media Player(DMP)と呼ばれるユーザ定義のイベント トリガーをユーザ定義のマクロにマッピングする方法を示します。


ステップ 1 802.1X または MAB に対応したスイッチ ポートに DMP を接続します。

ステップ 2 RADIUS サーバ上で、属性/値ペアを auto-smart-port =MY_MEDIAPLAYER_EVENT に設定します。

ステップ 3 スイッチ上で、イベント トリガー CISCO_DMP_EVENT を作成し、次に示すユーザ定義のマクロ コマンドにマッピングします。

スイッチは、RADIUS サーバからの attribute-value pair=CISCO_DMP_EVENT 応答を受け入れ、このイベント トリガーに関連付けられたマクロを適用します。

次の例は、automacro のマクロ部分を示しています。

Switch(config)# shell trigger CISCO_DMP_EVENT Cisco DMP player
Switch(config)# macro auto execute CISCO_DMP_EVENT {
if [[ $LINKUP -eq YES ]]; then
conf t
interface $INTERFACE
macro description $TRIGGER
switchport access vlan 1
switchport mode access
switchport port-security
switchport port-security maximum 1
switchport port-security violation restrict
switchport port-security aging time 2
switchport port-security aging type inactivity
spanning-tree portfast
spanning-tree bpduguard enable
exit
fi
 

次に、automacro のアンチマクロ部分を表します。

if [[ $LINKUP -eq NO ]]; then
conf t
interface $INTERFACE
no macro description $TRIGGER
no switchport access vlan 1
if [[ $AUTH_ENABLED -eq NO ]]; then
no switchport mode access
fi
no switchport port-security
no switchport port-security maximum 1
no switchport port-security violation restrict
no switchport port-security aging time 2
no switchport port-security aging type inactivity
no spanning-tree portfast
no spanning-tree bpduguard enable
exit
fi
}
Switch(config)# end
 

表 19-4 に、サポートされるシェル キーワードを示します。これらは、マクロおよびアンチマクロ文で適用できます。

 

表 19-4 サポートされている Cisco IOS シェルのキーワード

コマンド
説明

{

コマンドのグループ化を開始します。

}

コマンドのグループ化を終了します。

[[

条件構成体として使用します。

]]

条件構成体として使用します。

else

条件構成体として使用します。

-eq

条件構成体として使用します。

fi

条件構成体として使用します。

if

条件構成体として使用します。

then

条件構成体として使用します。

-z

条件構成体として使用します。

$

$ 文字で始まる変数は、パラメータ値で置換されます。

#

# 文字を使用して、コメント テキストを入力します。

表 19-5 に、マクロおよびアンチマクロでサポートされていないシェル キーワードを示します。

 

表 19-5 サポートされていない Cisco IOS シェルの予約済キーワード

コマンド
説明

|

パイプライン

case

条件構成体

esac

条件構成体

for

ループ構成体

function

シェル関数

in

条件構成体

select

条件構成体

time

パイプライン

until

ループ構成体

while

ループ構成体

Auto SmartPort の表示

Auto Smartport マクロおよびスタティック Smartport マクロを表示するには、 表 19-6 の特権 EXEC コマンドを 1 つまたは複数使用します。

 

表 19-6 Auto Smartport マクロおよびスタティック Smartport マクロを表示するコマンド

コマンド
目的
show macro auto monitor clients

スイッチのデバイス分類子機能を使用しているクライアントを表示します。

show macro auto monitor device

スイッチに接続されたデバイスおよび関連する特性を表示します。

show macro auto monitor type

デバイス分類子で認識されているすべてのデバイス タイプを表示します。

show parser macro

すべてのスタティック Smartport マクロを表示します。

show parser macro name macro-name

特定のスタティック Smartport マクロを表示します。

show parser macro brief

スタティック Smartport のマクロ名を表示します。

show parser macro description [ interface interface-id ]

すべてのインターフェイス、または特定のインターフェイスについてスタティック Smartport マクロの説明を表示します。

show shell

Auto Smartport のイベント トリガーおよびマクロに関する情報を表示します。

次に、オプションの mac-address キーワードを指定して show macro auto monitor device 特権 EXEC コマンドを使用して、指定した MAC アドレスの接続デバイスに関するサマリー情報を表示する例を示します。

Switch# show macro auto monitor device mac-address 001f.9e90.1250
MAC_Address Port_Id Profile Name
============== ======= ============================
001f.9e90.1250 Gi1/0/4 Cisco-AP-Aironet-1130
==========================================================

次に、オプションのキーワードを何も指定せずに show macro auto monitor type 特権 EXEC コマンドを使用して、デバイス分類子によって認識されているデバイスを表示する例を示します。

Switch# show macro auto monitor type table
Valid Type Profile Name min Conf ID
=========== ========= ================== ======== ====
Valid Default Apple-Device 10 0
Valid Default Aruba-Device 10 1
Valid Default Avaya-Device 10 2
Valid Default Avaya-IP-Phone 20 3
Valid Default BlackBerry 20 4
Valid Default Cisco-Device 10 5
Valid Default Cisco-IP-Phone 20 6
Valid Default Cisco-IP-Phone-7902 70 7
Valid Default Cisco-IP-Phone-7905 70 8
Valid Default Cisco-IP-Phone-7906 70 9
Valid Default Cisco-IP-Phone-7910 70 10
Valid Default Cisco-IP-Phone-7911 70 11
Valid Default Cisco-IP-Phone-7912 70 12
Valid Default Cisco-IP-Phone-7940 70 13
Valid Default Cisco-IP-Phone-7941 70 14
Valid Default Cisco-IP-Phone-7942 70 15
Valid Default Cisco-IP-Phone-7945 70 16
Valid Default Cisco-IP-Phone-7945G 70 17
Valid Default Cisco-IP-Phone-7960 70 18
Valid Default Cisco-IP-Phone-7961 70 19
Valid Default Cisco-IP-Phone-7962 70 20
Valid Default Cisco-IP-Phone-7965 70 21
Valid Default Cisco-IP-Phone-7970 70 22
Valid Default Cisco-IP-Phone-7971 70 23
Valid Default Cisco-IP-Phone-7975 70 24
Valid Default Cisco-IP-Phone-7985 70 25
Valid Default Cisco-IP-Phone-9971 70 26
Valid Default Cisco-WLC-2100-Series 40 27
Valid Default DLink-Device 10 28
Valid Default Enterasys-Device 10 29
Valid Default HP-Device 10 30
Valid Default HP-JetDirect-Printer 30 31
Valid Default Lexmark-Device 10 32
Valid Default Lexmark-Printer-E260dn 30 33
Valid Default Microsoft-Device 10 34
Valid Default Netgear-Device 10 35
Valid Default NintendoWII 10 36
Valid Default Nortel-Device 10 37
Valid Default Nortel-IP-Phone-2000-Series 20 38
Valid Default SonyPS3 10 39
Valid Default XBOX360 20 40
Valid Default Xerox-Device 10 41
Valid Default Xerox-Printer-Phaser3250 30 42
Valid Default Aruba-AP 20 43
Valid Default Cisco-Access-Point 10 44
Valid Default Cisco-IP-Conference-Station-7935 70 45
Valid Default Cisco-IP-Conference-Station-7936 70 46
Valid Default Cisco-IP-Conference-Station-7937 70 47
Valid Default DLink-DAP-1522 20 48
Valid Default Cisco-AP-Aironet-1130 30 49
Valid Default Cisco-AP-Aironet-1240 30 50
Valid Default Cisco-AP-Aironet-1250 30 51
Valid Default Cisco-AIR-LAP 25 52
Valid Default Cisco-AIR-LAP-1130 30 53
Valid Default Cisco-AIR-LAP-1240 50 54
Valid Default Cisco-AIR-LAP-1250 50 55
Valid Default Cisco-AIR-AP 25 56
Valid Default Cisco-AIR-AP-1130 30 57
Valid Default Cisco-AIR-AP-1240 50 58
Valid Default Cisco-AIR-AP-1250 50 59
Invalid Default Sun-Workstation 10 60
Valid Default Linksys-Device 20 61
Valid Default LinksysWAP54G-Device 30 62
Valid Default HTC-Device 10 63
Valid Default MotorolaMobile-Device 10 64
Valid Default VMWare-Device 10 65
Valid Default ISE-Appliance 10 66
Valid Built-in Cisco-Device 10 0
Valid Built-in Cisco-Router 10 1
Valid Built-in Router 10 2
Valid Built-in Cisco-IP-Camera 10 3
Valid Built-in Cisco-IP-Camera-2xxx 30 4
Valid Built-in Cisco-IP-Camera-2421 50 5
Valid Built-in Cisco-IP-Camera-2500 50 6
Valid Built-in Cisco-IP-Camera-2520 50 7
Valid Built-in Cisco-IP-Camera-2530 50 8
Valid Built-in Cisco-IP-Camera-4xxx 50 9
Valid Built-in Cisco-Transparent-Bridge 8 10
Valid Built-in Transparent-Bridge 8 11
Valid Built-in Cisco-Source-Bridge 10 12
Valid Built-in Cisco-Switch 10 13
Valid Built-in Cisco-IP-Phone 20 14
Valid Built-in IP-Phone 20 15
Valid Built-in Cisco-DMP 10 16
Valid Built-in Cisco-DMP-4305G 70 17
Valid Built-in Cisco-DMP-4310G 70 18
Valid Built-in Cisco-DMP-4400G 70 19
Valid Built-in Cisco-WLC-2100-Series 40 20
Valid Built-in Cisco-Access-Point 10 21
Valid Built-in Cisco-AIR-LAP 30 22
Valid Built-in Cisco-AIR-AP 30 23
Valid Built-in Linksys-Device 20 24
 

次の例では、 show shell triggers 特権 EXEC コマンドを使用して、スイッチ ソフトウェアに含まれているイベント トリガーを表示する方法を示します。

Switch# show shell triggers
 
User defined triggers
---------------------
Built-in triggers
-----------------
Trigger Id: CISCO_PHONE_EVENT
Trigger description: Event for ip-phone macro
Trigger environment: ACCESS_VLAN=1 VOICE_VLAN=2
Trigger mapping function: CISCO_PHONE_AUTO_SMARTPORT
 
Trigger Id: CISCO_ROUTER_EVENT
Trigger description: Event for router macro
Trigger environment: NATIVE_VLAN=1
Trigger mapping function: CISCO_ROUTER_AUTO_SMARTPORT
 
Trigger Id: CISCO_SWITCH_EVENT
Trigger description: Event for switch macro
Trigger environment: NATIVE_VLAN=1
Trigger mapping function: CISCO_SWITCH_AUTO_SMARTPORT
 
Trigger Id: CISCO_WIRELESS_AP_EVENT
Trigger description: Event for Wireless Access Point macro
Trigger environment: NATIVE_VLAN=1
Trigger mapping function: CISCO_AP_AUTO_SMARTPORT
 
Trigger Id: CISCO_WIRELESS_LIGHTWEIGHT_AP_EVENT
Trigger description: Event for Wireless Lightweight Access Point macro
Trigger environment: NATIVE_VLAN=1
Trigger mapping function: CISCO_LWAP_AUTO_SMARTPORT
 

次の例では、 show shell functions 特権 EXEC コマンドを使用して、スイッチ ソフトウェアに含まれている組み込みマクロを表示する方法を示します。

Switch# show shell functions
#User defined functions:
 
#Built-in functions:
function CISCO_AP_AUTO_SMARTPORT () {
if [[ $LINKUP -eq YES ]]; then
conf t
interface $INTERFACE
macro description $TRIGGER
switchport trunk encapsulation dot1q
switchport trunk native vlan $NATIVE_VLAN
switchport trunk allowed vlan ALL
switchport mode trunk
switchport nonegotiate
auto qos voip trust
mls qos trust cos
exit
end
fi
if [[ $LINKUP -eq NO ]]; then
conf t
interface $INTERFACE
no macro description
no switchport nonegotiate
no switchport trunk native vlan $NATIVE_VLAN
no switchport trunk allowed vlan ALL
no auto qos voip trust
no mls qos trust cos
if [[ $AUTH_ENABLED -eq NO ]]; then
no switchport mode
no switchport trunk encapsulation
fi
exit
end
fi
}
 
function CISCO_SWITCH_AUTO_SMARTPORT () {
if [[ $LINKUP -eq YES ]]; then
conf t
interface $INTERFACE
macro description $TRIGGER
auto qos voip trust
switchport trunk encapsulation dot1q
switchport trunk native vlan $NATIVE_VLAN
switchport trunk allowed vlan ALL
switchport mode trunk
exit
end
else
conf t
interface $INTERFACE
no macro description
no auto qos voip trust
no switchport mode trunk
no switchport trunk encapsulation dot1q
no switchport trunk native vlan $NATIVE_VLAN
no switchport trunk allowed vlan ALL
exit
end
fi
}
 
<output truncated>