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 メッセージ( 表 20-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 および IOS 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 |
|
特権 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 はグローバルにディセーブルです。
表 20-1 に、デフォルトでスイッチ ソフトウェアに組み込まれた Auto Smartport 組み込みイベント トリガーを示します。
表 20-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 ビデオ サーベイランス カメラがインターフェイスに接続されていることを検出します。 |
表 20-2 に、スイッチ ソフトウェアに組み込まれた Auto Smartport 組み込みマクロを示します。
表 20-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 |
|
特権 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)#!!!the next command enables auto smart ports globally
Switch(config)# macro auto global processing fallback cdp
Switch# show running-config interface gigabitethernet2/7
Building configuration...
Current configuration : 284 bytes
switchport access vlan 10
switchport port-security maximum 2
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 bpduguard enable
service-policy input AutoQos-VoIP-Input-Cos-Policy
service-policy output AutoQos-VoIP-Output-Policy
(注) また、macro auto device コマンドを使用して、デバイス タイプに対する組み込み関数のパラメータの変更を容易にすることができます。
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 |
|
特権 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
MAC アドレスベースのイベント トリガー
イベント トリガーとして MAC アドレス グループを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Switch#
configure terminal
|
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Switch(config)#
macro auto mac-address group
|
イベント トリガーとして MAC アドレスのグループを指定します。 モードを config-mac-addr-grp に変更します。次に、グループから MAC アドレスまたは組織固有識別子(OUI)を追加または削除できます。 group 値はユーザ定義トリガーを定義します。 |
ステップ 3 |
|
特権 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 |
|
特権 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# show shell triggers
Trigger Id: RADIUS_MAB_EVENT
Trigger description: MAC_AuthBypass Event
Trigger mapping function: CISCO_PHONE_AUTO_SMARTPORT
Auto SmartPort のユーザ定義マクロの設定
Cisco IOS シェルでは、ユーザ定義の Auto SmartPort マクロを設定するための基本スクリプト機能が提供されます。これらのマクロには複数行を記述することが可能で、任意の CLI コマンドを含めることもできます。また、マクロの内部で変数置換、条件付き、関数、およびトリガーも定義できます。
macro auto execute trigger parameter-name=value .., を通じて指定されたパラメータに加えて、ユーザ定義マクロ内で、EEM によってパブリッシュされた次の変数を使用できます( 表 20-3 )。
表 20-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 |
|
特権 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
macro description $TRIGGER
switchport port-security maximum 1
switchport port-security violation restrict
switchport port-security aging time 2
switchport port-security aging type inactivity
spanning-tree bpduguard enable
次に、automacro のアンチマクロ部分を表します。
if [[ $LINKUP -eq NO ]]; then
no macro description $TRIGGER
no switchport access vlan 1
if [[ $AUTH_ENABLED -eq NO ]]; then
no switchport mode access
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
表 20-4 に、サポートされるシェル キーワードを示します。これらは、マクロおよびアンチマクロ文で適用できます。
表 20-4 サポートされている Cisco IOS シェルのキーワード
|
|
{ |
コマンドのグループ化を開始します。 |
} |
コマンドのグループ化を終了します。 |
[[ |
条件構成体として使用します。 |
]] |
条件構成体として使用します。 |
else |
条件構成体として使用します。 |
-eq |
条件構成体として使用します。 |
fi |
条件構成体として使用します。 |
if |
条件構成体として使用します。 |
then |
条件構成体として使用します。 |
-z |
条件構成体として使用します。 |
$ |
$ 文字で始まる変数は、パラメータ値で置換されます。 |
# |
# 文字を使用して、コメント テキストを入力します。 |
表 20-5 に、マクロおよびアンチマクロでサポートされていないシェル キーワードを示します。
表 20-5 サポートされていない Cisco IOS シェルの予約済キーワード
|
|
| |
パイプライン |
case |
条件構成体 |
esac |
条件構成体 |
for |
ループ構成体 |
function |
シェル関数 |
in |
条件構成体 |
select |
条件構成体 |
time |
パイプライン |
until |
ループ構成体 |
while |
ループ構成体 |