Auto SmartPort マクロとスタティック SmartPort マクロの概要
Auto SmartPort マクロは、ポート上で検出されたデバイス タイプに基づいて動的にポートを設定します。スイッチは、ポート上で新しいデバイスを検出すると、そのポートに適切な Auto SmartPort マクロを適用します。ポート上でリンクダウン イベントが発生すると、スイッチはマクロを削除します。たとえば、ポートに Cisco IP Phone を接続すると、IP phone マクロが Auto SmartPort によって自動的に適用されます。IP phone マクロは、遅延に影響されやすい音声トラフィックを適切に処理するため、Quality of Service(QoS)、セキュリティ機能、および専用音声 VLAN をイネーブルにします。Auto Smartports では、デバイスからマクロへのマッピングにイベント トリガーが使用されます。
スイッチ ソフトウェアに組み込まれた Auto SmartPort マクロは、CLI コマンドのグループです。ポートで検出された CISCO_PHONE イベントがトリガとなって、CISCO_PHONE_AUTO_SMARTPORT マクロのコマンドがスイッチに適用されます。Cisco IOS のシェルのスクリプト機能を使ってユーザ定義マクロを作成することもできます。このスクリプト機能では、BASH ライクな言語構文を使ってコマンドを自動化したり変数を置換したりできます。
Auto SmartPort マクロは、 スタティック SmartPort マクロとは異なります。スタティック SmartPort マクロでは、ポートに接続されたデバイスに応じて手動で適用するポート設定を提供します。スタティック SmartPort マクロを適用すると、マクロ内の CLI コマンドが既存のポート設定に追加されます。ポート上でリンクダウン イベントが発生しても、スイッチはスタティック マクロ設定を削除しません。
Auto SmartPort は、イベントを使ってマクロをイベントのソース ポートにマップします。接続されたデバイスからの Cisco Discovery Protocol(CDP)メッセージに基づくイベント トリガーが最も一般的です。デバイスを検出すると、CDP イベント トリガが起動します(Cisco IP Phone、Autonomous および Lightweight アクセスポイントを含む Cisco ワイヤレス アクセス ポイント、Cisco スイッチ、Cisco ルータ、および Cisco IP Video Surveillance Camera)。
シスコ製およびサードパーティ製のデバイスに対するその他のイベント トリガには、ユーザ定義の MAC アドレス グループ、MAC 認証バイパス(MAB)メッセージ、802.1x 認証メッセージ、Link Layer Discovery Protocol(LLDP)メッセージがあります。
LLDP は一連のアトリビュートをサポートし、これらを使用して隣接するデバイスを検出します。アトリビュートには Type、Length、および Value があり、これらを TLV と呼びます。LLDP をサポートするデバイスは、情報の送受信に TLV を使用します。このプロトコルは、設定の情報、デバイスの機能、デバイス ID などの詳細情報をアドバタイズします。Auto SmartPort では、LLDP システム機能 TLV がイベント トリガとして使用されます。Auto SmartPort の LLDP システム機能 TLV アトリビュートを設定する詳細については、「LLDP、LLDP-MED、および有線ロケーション サービスの設定」を参照してください。
CDP、MAB、または 802.1x 認証をサポートしないデバイス(ネットワーク プリンタ、LLDP、またはレガシー Cisco Digital Media Player など)の場合は、MAC Operationally Unique Identifier(OUI)ベースのトリガが設定された MAC アドレス グループを設定できます。その MAC アドレスを目的の設定が含まれた組み込みまたはユーザ定義のマクロにマップします。
ユーザ定義マクロ ファイルにはリモート サーバ内の場所を指定できます。これにより、Auto SmartPort マクロ ファイル 1 セットを更新および保守して、ネットワーク上の複数のスイッチで使用することができます。
Auto SmartPort マクロの永続性機能を使用すると、検出されたリンクダウン イベントに関係なく、スイッチ ポートでマクロ設定が適用されたままにすることができます。この機能を使用すると、Auto SmartPort マクロ設定をスイッチでスタティックにすることができます。これにより、スイッチにリンクアップおよびリンクダウンイベントがある場合、またはスイッチが EnergyWise の設定されたネットワークに参加しているエンティティである場合は、複数のシステム ログおよび設定変更通知のイベントが発生しないようになります。
Auto SmartPort と Cisco Medianet
Cisco Medianet を使用すると、ネットワーク インフラストラクチャにおいて、幅広い各種ビデオ アプリケーション用のインテリジェント サービスをイネーブルにします。Medianet のサービスには、Auto SmartPort を使用した Cisco Digital Media Player および Cisco IP Video Surveillance Camera の自動プロビジョニングが含まれています。スイッチは、CDP、802.1x、MAB、LLDP、および MAC アドレスを使用して、シスコ製とサードパーティ製のビデオ デバイスを識別します(図 12-1)。スイッチは、デバイスの適切な VLAN および QoS 設定がイネーブルになるように、適用可能な Auto SmartPort マクロを適用します。スイッチでは、組み込みの MAC アドレス グループも使用して、of4400 または 23ac00 の OUI に基づき、レガシーの Cisco DMP を検出します。任意のビデオ デバイスに対してカスタムのユーザ定義マクロを作成することもできます。
図 12-1 Cisco Medianet の配備例
Auto SmartPort の設定
• 「デフォルトの Auto SmartPort の設定」
• 「Auto SmartPort 設定時の注意事項」
• 「Auto SmartPort のイネーブル化」
• 「Auto SmartPort のデフォルト パラメータ値の設定」
• 「Auto SmartPort の MAC アドレス グループの設定」
• 「Auto SmartPort マクロの永続性の設定」
• 「Auto SmartPort 組み込みマクロ オプションの設定」
• 「ユーザ定義のイベント トリガの作成」
• 「ユーザ定義の Auto SmartPort マクロの設定」
デフォルトの Auto SmartPort の設定
• Auto SmartPort は、グローバルではディセーブルですが、インターフェイス単位でイネーブルです。
• CDP フォールバックは、グローバルではディセーブルですが、インターフェイス単位でイネーブルです。
• Cisco IOS シェルはイネーブルに設定されています。
• 表 12-1 に示すデバイスで ASP がイネーブルの場合、Auto SmartPort マクロがデフォルトで使用されます。
表 12-1 Auto SmartPort 組み込みマクロ
|
|
CISCO_PHONE_AUTO_ SMARTPORT |
このマクロは、Cisco IP Phone 用の IP Phone マクロを適用します。QoS、ポート セキュリティ、ストーム制御、DHCP スヌーピング、およびスパニングツリー保護をイネーブルにします。そのインターフェイスのアクセス VLAN および音声 VLAN も設定します。 |
CISCO_SWITCH_AUTO_ SMARTPORT |
このマクロは、Cisco スイッチ用のスイッチ マクロを適用します。802.1Q カプセル化による QoS およびトランキングをイネーブルにします。インターフェイスのネイティブ VLAN も設定します。 |
CISCO_ROUTER_AUTO_ SMARTPORT |
このマクロは、Cisco ルータ用のルータ マクロを適用します。802.1Q カプセル化による QoS および トランキング、およびスパニングツリー BPDU 保護をイネーブルにします。 |
CISCO_AP_AUTO_ SMARTPORT |
このマクロは、Cisco AP 用のワイヤレス アクセス ポイント マクロを適用します。802.1Q カプセル化による QoS およびトランキングをイネーブルにします。インターフェイスのネイティブ VLAN も設定します。 |
CISCO_LWAP_AUTO_ SMARTPORT |
このマクロは、Cisco Lightweight ワイヤレス アクセス ポイント用の Lightweight ワイヤレス アクセス ポイント マクロを適用します。QoS、ポート セキュリティ、ストーム制御、DHCP スヌーピング、およびスパニングツリー保護をイネーブルにします。インターフェイスのアクセス VLAN を設定し、未知のユニキャスト パケットからのネットワーク保護を提供します。 |
CISCO_IPVSC_AUTO_ SMARTPORT |
このマクロは、Cisco IP Video Surveillance Camera 用の IP カメラ マクロを適用します。QoS trust、ポート セキュリティ、およびスパニングツリー保護をイネーブルにします。インターフェイスのアクセス VLAN を設定し、未知のユニキャスト パケットからのネットワーク保護を提供します。 |
CISCO_DMP_AUTO_ SMARTPORT |
このマクロは、Cisco Digital Media Player 用のデジタル メディア プレーヤー マクロ マクロを適用します。QoS trust、ポート セキュリティ、およびスパニングツリー保護をイネーブルにします。インターフェイスのアクセス VLAN を設定し、未知のユニキャスト パケットからのネットワーク保護を提供します。 |
Auto SmartPort 設定時の注意事項
• 組み込みマクロは削除したり変更したりできません。ただし、同じ名前のユーザ定義マクロを作成することにより、組み込みマクロを上書きできます。元の組み込みマクロを復元するには、ユーザ定義マクロを削除します。
• macro auto device と macro auto execute の両方のグローバル コンフィギュレーション コマンドをイネーブルにすると、最後に実行したコマンドで指定されたパラメータがスイッチに適用されます。スイッチでアクティブなコマンドは 1 つだけです。
• Auto SmartPort マクロを適用するときは、システムの競合を回避するため、802.1x 認証を除くすべてのポート設定を削除してください。
• スイッチで Auto SmartPort をイネーブルにするときは、ポート セキュリティを設定しないでください。
• マクロが元の設定と競合する場合、元の設定の一部がマクロで適用されなかったりアンチマクロで削除されなかったりします (アンチマクロとは、適用されたマクロに含まれ、リンクダウン イベント時にそのマクロ自体を削除する部分です)。
たとえば、802.1x 認証がイネーブルになっている場合は、switchport mode access の設定を削除できません。switchport mode の設定を削除する前に、802.1x 認証を削除する必要があります。
• Auto SmartPort マクロを適用するときには、ポートを EtherChannel のメンバーにすることはできません。EtherChannel を使用する場合は、 no macro auto processing インターフェイス コンフィギュレーション コマンドを使用して、EtherChannel のメンバーであるインターフェイスで Auto SmartPort をディセーブルにしてください。
• 組み込みマクロのデフォルトのデータ VLAN は VLAN 1 です。組み込みマクロのデフォルトの音声 VLAN は VLAN 2 です (VLAN 1 はすべてのマクロでデフォルトのデータ VLAN であり、VLAN 2 はすべてのマクロでデフォルトの音声 VLAN)。スイッチで別のアクセス VLAN、ネイティブ VLAN、または音声 VLAN を使用する場合は、macro auto device または macro auto execute グローバル コンフィギュレーション コマンドを使用して、希望する非デフォルト値を設定します。
• デフォルトマクロとデフォルト パラメータ値、現在値、および各マクロで設定可能なパラメータのリストを表示するには、show macro auto device 特権 EXEC コマンドを使用します。show shell functions 特権 EXEC コマンドを使用して、組み込みマクロのデフォルト値を表示することもできます。
• 802.1x 認証または MAB の場合は、他社製のデバイスを検出するため、Cisco アトリビュート/値(AV)ペア auto-smart-port=event trigger をサポートするように RADIUS サーバを設定します。
• CDP、MAB、または 802.1x 認証をサポートしないステーショナリ デバイス(ネットワーク プリンタなど)の場合は、MAC OUI ベースのトリガが設定された MAC アドレス グループを設定して、そのグループを目的の設定が含まれたユーザ定義マクロにマップできます。
• スイッチは、直接接続されたデバイスだけで Auto SmartPort マクロをサポートします。複数のデバイス接続(ハブなど)はサポートされていません。複数のデバイスが接続されている場合、適用されるマクロは、検出された最初のデバイスと関連付けられたマクロになります。
• ポートで認証がイネーブルの場合、認証が失敗するとスイッチは MAC アドレス トリガを無視します。
• CLI コマンドの順序は、マクロとアンチマクロで異なる可能性があります。
• Auto SmartPort では、グローバル コンフィギュレーションを実行しません。インターフェイス レベルの Auto SmartPort マクロでグローバル コンフィギュレーションが必要な場合は、グローバル コンフィギュレーションを手動で追加する必要があります。
Auto SmartPort のイネーブル化
スイッチで Auto SmartPort マクロをグローバルにイネーブルにするには、次の手順に従います。この手順は必須です。特定のポートで Auto SmartPort マクロをディセーブルにするには、 no auto global processing インターフェイス コンフィギュレーション コマンドを使用します。
特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
macro auto global processing |
スイッチ上で Auto SmartPort をグローバルにイネーブルにします。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show running-config |
Auto SmartPort がイネーブルになっていることを確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルト設定に戻すには、 no macro auto global processing グローバル コンフィギュレーション コマンドを使用します。
show macro auto device、 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 のデフォルト パラメータ値の設定
スイッチは、イベント トリガを組み込みマクロに自動的にマップします。Auto SmartPort マクロのデフォルト パラメータ値をスイッチ固有の値に置き換えるには、次の手順に従います。この手順は任意です。
特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
show macro auto device |
マクロのデフォルト パラメータ値を表示します。 |
ステップ 2 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 3 |
macro auto device {access-point | ip-camera | lightweight-ap | media-player | phone | router | switch} [parameter=value] |
指定したマクロのデフォルト パラメータ値を置き換えます。<name1>=<value1> <name2>=<value2>... のように、スペースで区切られた名前/値ペアの形式で新しい値を入力します。マクロのデフォルト パラメータ値ごとのデフォルト値は次のとおりです。 • access-point NATIVE_VLAN=1 • ip-camera ACCESS_VLAN=1 • lightweight-ap ACCESS_VLAN=1 • media-player ACCESS_VLAN=1 • phone ACCESS_VLAN=1 VOICE_VLAN=2 • router NATIVE_VLAN=1 • switch NATIVE_VLAN=1 (注) パラメータ値のテキスト文字列は組み込みマクロ定義のテキスト文字列と一致する必要があるため、正しいパラメータ値(VOICE_VLAN など)を入力する必要があります。 |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show macro auto device |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
デフォルトの設定に戻すには、 no macro auto device {macro name} parameter=value グローバル コンフィギュレーション コマンドを使用します。
次の例では、IP 電話のマクロのパラメータ値を表示する方法、およびデフォルトの音声 VLAN を 20 に変更する方法について示します。デフォルト値を変更しても、すでにマクロを適用済みのインターフェイスには適用されません。設定された値は、次回のリンクアップ イベントで適用されます。VOICE_VLAN に正確なテキスト文字列が使用されました。入力では大文字と小文字が区別されます。
Switch# show macro auto device phone
Default Macro:CISCO_PHONE_AUTO_SMARTPORT
Current Macro:CISCO_PHONE_AUTO_SMARTPORT
Configurable Parameters:ACCESS_VLAN VOICE_VLAN
Defaults Parameters:ACCESS_VLAN=1 VOICE_VLAN=2
Current Parameters:ACCESS_VLAN=1 VOICE_VLAN=2
Switch# configure terminal
Switch(config)# macro auto device phone VOICE_VLAN=20
Switch# show macro auto device phone
Default Macro:CISCO_PHONE_AUTO_SMARTPORT
Current Macro:CISCO_PHONE_AUTO_SMARTPORT
Configurable Parameters:ACCESS_VLAN VOICE_VLAN
Defaults Parameters:ACCESS_VLAN=1 VOICE_VLAN=2
Current Parameters:voice_vlan=20
Auto SmartPort の MAC アドレス グループの設定
CDP や LLDP などの近接ディスカバリ プロトコルをサポートしないデバイス(プリンタなど)では、Auto SmartPort で MAC アドレスに基づくトリガ設定を使用します。この手順は任意ですが、実行する場合は次のステップが必要です。
• macro auto mac-address グローバル コンフィギュレーション コマンドを使用して、MAC アドレスに基づくトリガを設定します。
• macro auto execute グローバル コンフィギュレーション コマンドを使用して、MAC アドレスに基づくトリガを組み込みまたはユーザ定義のマクロに関連付けます。
特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
macro auto mac-address-group name |
グループ名を指定し、MAC アドレス コンフィギュレーション モードを開始します。 |
ステップ 3 |
[mac-address list list] | [oui [list list | range word size number]] |
スペースで区切られた MAC アドレスのリストを設定します。 Operationally Unique Identifier(OUI)の list(リスト)または range(範囲)を指定します。OUI は MAC アドレスの先頭 3 バイトであり、製品のメーカーを識別します。OUI を指定すると、近接ディスカバリ プロトコルをサポートしないデバイスを認識できます。 • list:16 進数で、スペースで区切られた OUI のリストを入力します。 • range:16 進数で、OUI の開始範囲を入力します。size(1 ~ 5)を入力して、連続したアドレスを生成します。 |
ステップ 4 |
macro auto execute address_trigger built-in macro name |
MAC アドレス グループのトリガを組み込みまたはユーザ定義のマクロにマップします。 MAC アドレスのトリガは、65 秒のホールド タイム後にインターフェイスに適用されます。ホールド タイムを使用することにより、CDP や LLDP などの近接ディスカバリ プロトコルを MAC アドレスの代わりに使用できます。 |
ステップ 5 |
exit |
コンフィギュレーション モードに戻ります。 |
ステップ 6 |
end |
特権 EXEC モードに戻ります。 |
ステップ 7 |
show macro auto address-group |
設定を確認します。 |
ステップ 8 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
アドレス グループを削除するには、 no macro auto mac-address-group name グローバル コンフィギュレーション コマンドを使用します。no macro auto mac-address-group name を入力すると、マクロのトリガ、および macro auto execute グローバル コンフィギュレーション コマンドを使用して定義されたマクロに関連付けられたトリガのマッピングが削除されます。no macro auto execute mac-address-group を入力して削除されるのは、トリガとマクロのマッピングだけです。
次の例では、address_trigger という MAC アドレス グループ イベント トリガを作成する方法、および設定を確認する方法について示します。
Switch# configure terminal
Switch(config)# macro auto address-group mac address_trigger
Switch(config-addr-grp-mac)# mac-address list 2222.3333.3334 22.33.44 a.b.c
Switch(config-addr-grp-mac)# oui list 455555 233244
Switch(config-addr-grp-mac)# oui range 333333 size 2
Switch(config-addr-grp-mac)# exit
Switch(config)# mac auto execute address-trigger builtin macro
Switch(config)# macro auto execute mac-address-trigger builtin CISCO_PHONE_ATUO_SMARTPORT
Switch# show running configuration | include macro
macro auto mac-address-group address_trigger
mac auto mad-address-group hel
mac auto execute mad-address-trigger builtin CISCO_PHONE_AUTO_SMARTPORT
macro description CISCO_DMP_EVENT
mac description CISCO_SWITCH_EVENT
Auto SmartPort マクロの永続性の設定
スイッチで Auto SmartPort をイネーブルにしたときのデフォルトでは、マクロ設定がリンクアップ イベントで適用され、リンクダウン イベントで削除されます。マクロの永続性機能をイネーブルにすると、設定はリンクアップ時に適用されますが、リンクダウン時に削除されません。スイッチのリンクアップまたはリンクダウン イベントとは無関係に、適用されている設定はそのまま残ります。マクロの永続性機能は、実行している設定ファイルが保存されていればリブートしても設定されたままです。
リンクダウン イベント後もスイッチで Auto SmartPort マクロをアクティブなままにするには、次の手順に従います。この手順は任意です。
特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
macro auto sticky |
リンクダウン イベント時に Auto SmartPort マクロ設定がインターフェイスに残るようにします。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show macro auto |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
Auto SmartPort のマクロの永続性機能をディセーブルにするには、 no macro auto sticky グローバル コンフィギュレーション コマンドを使用します。
次の例では、スイッチで Auto SmartPort の自動スティッキー機能をイネーブルにする方法について示します。
Switch(config)# macro auto sticky
Auto SmartPort 組み込みマクロ オプションの設定
イベント トリガを組み込みマクロにマップしたり、組み込みマクロのデフォルト パラメータ値をスイッチ固有の値に置き換えたりするには、次の手順に従います。マクロのデフォルト パラメータ値を置き換える必要がある場合は、macro auto device グローバル コンフィギュレーション コマンドを使用します。この手順におけるすべてのコマンドは任意です。
特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
macro auto execute event trigger builtin built-in macro name [parameter=value] [parameter=value] |
イベント トリガから組み込みマクロへのマッピングを定義します。 event trigger には、次のいずれかを指定します。 • CISCO_DMP_EVENT • CISCO_IPVSC_EVENT • CISCO_PHONE_EVENT • CISCO_SWITCH_EVENT • CISCO_ROUTER_EVENT • CISCO_WIRELESS_AP_EVENT • CISCO_WIRELESS_LIGHTWEIGHT_AP_EVENT • WORD :ユーザ定義イベント トリガを適用します。 builtin built-in macro name には、次のいずれかを指定します。 <name1>=<value1> <name2>=<value2>... のように、スペースで区切られた名前/値ペアの形式で新しい値を入力します。デフォルト値を入力するとおりに示します。 • CISCO_DMP_AUTO_SMARTPORT パラメータ値 ACCESS_VLAN=1 を指定します。 • CISCO_IPVSC_AUTO_SMARTPORT パラメータ値 ACCESS_VLAN=1 を指定します。 • 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 を指定します。 |
ステップ 3 |
remote url |
リモート マクロ ファイルを配置するリモート サーバ内の場所を指定します。 • スタンドアロン スイッチまたはスタック マスターのローカル フラッシュ ファイル システムの構文: flash: • スタック メンバーのローカル フラッシュ ファイル システムの構文: flash member number: • FTP の構文: ftp: [[ // username [ : password ] @ location ]/ directory ] / filename • HTTP サーバの構文: http:// [[ username : password ]@]{ hostname | host-ip }[/ directory ] / filename • セキュア HTTP サーバの構文: https:// [[ username : password ]@]{ hostname | host-ip }[/ directory ] / filename • NVRAM の構文: nvram:// [[ username : password ]@][/ directory ] / filename • Remote Copy Protocol(RCP; リモート コピー プロトコル)の構文: rcp: [[ // username @ location ]/ directory ] / filename • Secure Copy Protocol(SCP)の構文: scp:[[//username@location]/directory]/filename • TFTP の構文: tftp: [[ // location ]/ directory ] / filename |
ステップ 4 |
end |
特権 EXEC モードに戻ります。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
コンフィギュレーション ファイルに設定を保存します。 |
次に、2 つの組み込み Auto SmartPort マクロを使って、Cisco スイッチと Cisco IP Phone をスイッチに接続する例を示します。この例では、デフォルトの音声 VLAN、アクセス VLAN、およびネイティブ VLAN をトランク インターフェイス用に変更しています。
Switch# configure terminal
Switch(config)#!!!the next command modifies the access and voice vlans
Switch(config)#!!!for the built in Cisco IP phone auto smartport macro
Switch(config)# macro auto execute CISCO_PHONE_EVENT builtin CISCO_PHONE_AUTO_SMARTPORT ACCESS_VLAN=10 VOICE_VLAN=20
Switch(config)#!!!the next command modifies the Native vlan used for inter switch trunks
Switch(config)# macro auto execute CISCO_SWITCH_EVENT builtin CISCO_SWITCH_AUTO_SMARTPORT NATIVE_VLAN=10
Switch(config)#!!!the next command enables auto smart ports globally
Switch(config)# macro auto global processing cdp-fallback
Switch# !!!here's the running configuration of the interface connected
Switch# !!!to another Cisco Switch after the Macro is applied
Switch# show running-config interface gigabitethernet0/1
Building configuration...
Current configuration : 284 bytes
interface GigabitEthernet0/1
switchport trunk encapsulation dot1q
switchport trunk native vlan 10
srr-queue bandwidth share 10 10 60 20
macro description CISCO_SWITCH_EVENT
次に、ネイティブ VLAN 5 の設定を使用してリモート マクロを設定する例を示します。
a. リモート マクロを macro.txt ファイルで設定します。
b. macro auto execute コンフィギュレーション コマンドを使用して、マクロ ファイルのリモートの場所を指定します。
if [[ $LINKUP -eq YES ]]; then
macro description $TRIGGER
switchport trunk encapsulation dot1q
switchport trunk native vlan $NATIVE_VLAN
switchport trunk allowed vlan ALL
no switchport trunk encapsulation dot1q
no switchport trunk native vlan $NATIVE_VLAN
no switchport trunk allowed vlan ALL
Switch(config)# macro auto execute CISCO_SWITCH_EVENT remote tftp://<ip_address>/macro.txt NATIVE_VLAN=5
Switch# show running configuration | include macro
macro auto execute CISCO_SWITCH_EVENT remote tftp://<ip_address>/macro.txt
ユーザ定義のイベント トリガの作成
MAB または 802.1x 認証を使って Auto SmartPort マクロをトリガする場合は、RADIUS サーバから送信される Cisco アトリビュート/値ペア( auto-smart-port=event trigger )に対応するイベント トリガを作成する必要があります。この手順は任意です。
特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
shell trigger identifier description |
イベント トリガの ID と説明を指定します。 ID を構成する単語の間には、スペースやハイフンを入れないでください。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show shell triggers |
スイッチ上のイベント トリガを表示します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
イベント トリガを削除するには、 no shell trigger identifier グローバル コンフィギュレーション コマンドを使用します。
次に、RADIUS_MAB_EVENT という名前のユーザ定義イベント トリガを組み込みマクロ CISCO_AP_AUTO_SMARTPORT にマップし、デフォルトの VLAN を VLAN 10 に置き換え、各エントリを確認する例を示します。
a. デバイスを MAB 対応のスイッチ ポートに接続します。
b. RADIUS サーバ上で、アトリビュート/値ペアを auto-smart-port =RADIUS_MAB_EVENT に設定します。
c. スイッチ上で、イベント トリガ RADIUS_MAB_EVENT を作成します。
d. スイッチは、RADIUS サーバからのアトリビュート/値ペア(RADIUS_MAB_EVENT)応答を認識し、マクロ CISCO_AP_AUTO_SMARTPORT を適用します。
Switch# configure terminal
1 行ごとに 1 つのコンフィギュレーション コマンドを指定します。CNTL/Z で終了してください。
Switch(config)# !!!create a user defined trigger and map
Switch(config)# !!!a system defined macro to it
Switch(config)# !!!first create the trigger event
Switch(config)# shell trigger RADIUS_MAB_EVENT MAC_AuthBypass Event
Switch(config)#!!!map a system defined macro to the trigger event
Switch(config)# macro auto execute RADIUS_MAB_EVENT builtin ?
_ CISCO_DMP_AUTO_SMARTPORT
_ CISCO_IPVSC_AUTO_SMARTPORT
CISCO_LWAP_AUTO_SMARTPORT
CISCO_PHONE_AUTO_SMARTPORT
CISCO_ROUTER_AUTO_SMARTPORT
CISCO_SWITCH_AUTO_SMARTPORT
Switch(config)# macro auto execute RADIUS_MAB_EVENT builtin CISCO_AP_AUTO_SMARTPORT ACCESS_VLAN=10
Switch# show shell triggers
Trigger Id: RADIUS_MAB_EVENT
Trigger description: MAC_AuthBypass Event
Trigger mapping function: CISCO_AP_SMARTPORT
次に、 show shell triggers 特権 EXEC コマンドを使ってスイッチ ソフトウェア内のイベント トリガを表示する例を示します。
Switch# show shell triggers
Trigger Id: CISCO_DMP_EVENT
Trigger description: Digital media-player device event to apply port configuration
Trigger environment: Parameters that can be set in the shell - $ACCESS_VLAN=(1), The value in the parenthesis is a default value
Trigger mapping function: CISCO_DMP_AUTO_SMARTPORT
Trigger Id: CISCO_IPVSC_EVENT
Trigger description: IP-camera device event to apply port configuration
Trigger environment: Parameters that can be set in the shell - $ACCESS_VLAN=(1), The value in parenthesis is a default value
Trigger mapping function: CISCO_IP_CAMERA_AUTO_SMARTPORT
Trigger Id: CISCO_PHONE_EVENT
Trigger description: IP-phone device event to apply port configuration
Trigger environment: Parameters that can be set in the shell - $ACCESS_VLAN=(1) and $VOICE_VLAN=(2), The value in the parenthesis is a default value
Trigger mapping function: CISCO_PHONE_AUTO_SMARTPORT
Trigger Id: CISCO_ROUTER_EVENT
Trigger description: Router device event to apply port configuration
Trigger environment: Parameters that can be set in the shell - $NATIVE_VLAN=(1), The value in the parenthesis is a default value
Trigger mapping function: CISCO_ROUTER_AUTO_SMARTPORT
Trigger Id: CISCO_SWITCH_EVENT
Trigger description: Switch device event to apply port configuration
Trigger environment: Parameters that can be set in the shell - $NATIVE_VLAN=(1), The value in the parenthesis is a default value
Trigger mapping function: CISCO_SWITCH_AUTO_SMARTPORT
Trigger Id: CISCO_WIRELESS_AP_EVENT
Trigger description: Autonomous ap device event to apply port configuration
Trigger environment: Parameters that can be set in the shell - $NATIVE_VLAN=(1), The value in the parenthesis is a default value
Trigger mapping function: CISCO_AP_AUTO_SMARTPORT
Trigger Id: CISCO_WIRELESS_LIGHTWEIGHT_AP_EVENT
Trigger description: Lightweight-ap device event to apply port configuration
Trigger environment: Parameters that can be set in the shell - $NATIVE_VLAN=(1), The value in the parenthesis is a default value
Trigger mapping function: CISCO_LWAP_AUTO_SMARTPORT
次に、 show shell functions 特権 EXEC コマンドを使ってスイッチ ソフトウェア内の組み込みマクロを表示する例を示します。
Switch# show shell functions
function CISCO_AP_AUTO_SMARTPORT () {
if [[ $LINKUP -eq YES ]]; then
macro description $TRIGGER
switchport trunk encapsulation dot1q
switchport trunk native vlan $NATIVE_VLAN
switchport trunk allowed vlan ALL
if [[ $LINKUP -eq NO ]]; then
no switchport nonegotiate
no switchport trunk native vlan $NATIVE_VLAN
no switchport trunk allowed vlan ALL
if [[ $AUTH_ENABLED -eq NO ]]; then
no switchport trunk encapsulation
function CISCO_SWITCH_AUTO_SMARTPORT () {
if [[ $LINKUP -eq YES ]]; then
macro description $TRIGGER
switchport trunk encapsulation dot1q
switchport trunk native vlan $NATIVE_VLAN
switchport trunk allowed vlan ALL
no switchport trunk encapsulation dot1q
no switchport trunk native vlan $NATIVE_VLAN
no switchport trunk allowed vlan ALL
ユーザ定義の Auto SmartPort マクロの設定
Cisco IOS シェルには、ユーザ定義の SmartPort マクロを設定するための基本的なスクリプト機能が用意されています。ユーザ定義マクロには、複数の行と任意の CLI コマンドを含めることができます。マクロの中で変数置換、条件文、関数、およびトリガを定義することもできます。この手順は任意です。
ユーザ定義イベント トリガをユーザ定義マクロにマップするには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
macro auto execute event trigger [parameter=value] { function contents } |
イベント トリガにマップするユーザ定義マクロを指定します。 {function contents}:トリガーに関連付けるユーザ定義のマクロを指定します。波カッコの中にマクロの内容を入力します。左波カッコで Cisco IOS シェル コマンドを開始し、右波カッコでコマンドのグループ化を終了します。 (任意) parameter=value : $ で始まるデフォルト値を置き換え、<name1>=<value1> <name2>=<value2>... のように、スペースで区切られた名前/値ペアの形式で新しい値を入力します。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show running-config |
設定を確認します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
次の例では、メディア プレーヤーと呼ばれるユーザ定義のイベント トリガーをユーザ定義のマクロにマッピングする方法を示します。
a. メディア プレーヤーを 802.1x または MAB 対応のスイッチ ポートに接続します。
b. RADIUS サーバ上で、アトリビュート/値ペアを auto-smart-port =MP_EVENT に設定します。
c. スイッチで、イベント トリガー MP_EVENT を作成し、次のようにユーザ定義マクロ コマンドを入力します。
d. スイッチは、属性と値のペアが MP_EVENT であるとの RADIUS サーバからの応答を認識し、このイベント トリガーに関連付けられているマクロを適用します。
Switch(config)# shell trigger MP_EVENT mediaplayer
Switch(config)# macro auto execute MP_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
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
表 12-2 サポートされている Cisco IOS シェル キーワード
|
|
{ |
コマンド グループを開始します。 |
} |
コマンド グループを終了します。 |
[[ |
条件構成体として使用します。 |
]] |
条件構成体として使用します。 |
else |
条件構成体として使用します。 |
-eq |
条件構成体として使用します。 |
fi |
条件構成体として使用します。 |
if |
条件構成体として使用します。 |
then |
条件構成体として使用します。 |
-z |
条件構成体として使用します。 |
$ |
$ 文字で始まる変数は、パラメータ値で置換されます。 |
# |
# 文字は、コメント テキストを入力するために使用します。 |
表 12-3 サポートされていない Cisco IOS シェル予約キーワード
|
|
| |
パイプ |
case |
条件構成体 |
esac |
条件構成体 |
for |
ループ構成体 |
function |
シェル関数 |
in |
条件構成体 |
select |
条件構成体 |
time |
パイプ |
until |
ループ構成体 |
while |
ループ構成体 |
スタティック SmartPort マクロの設定
• 「デフォルトのスタティック SmartPort の設定」
• 「スタティック SmartPort 設定時の注意事項」
• 「スタティック SmartPort マクロの適用」
デフォルトのスタティック SmartPort の設定
スイッチ上でイネーブルになっているスタティック SmartPort マクロはありません。
表 12-4 デフォルトのスタティック SmartPort マクロ
|
|
cisco-global |
Rapid PVST+、ループガード、リンク ステート障害用のダイナミック ポート エラー回復をイネーブルにするには、このグローバル コンフィギュレーション マクロを使用します。 |
cisco-desktop |
PC などのデスクトップ デバイスをスイッチ ポートに接続する場合、ネットワーク セキュリティと信頼性を高めるために、このインターフェイス コンフィギュレーション マクロを使用します。 |
cisco-phone |
Cisco IP Phone を装備した PC などのデスクトップ デバイスをスイッチ ポートに接続する場合、このインターフェイス コンフィギュレーション マクロを使用します。このマクロは、 cisco-desktop マクロの拡張機能で、同じセキュリティ機能と復元力機能を提供します。ただし、遅延に影響されやすい音声トラフィックを適切に処理するために、専用音声 VLAN が追加されています。 |
cisco-switch |
アクセス スイッチとディストリビューション スイッチを接続する場合、または Small Form-Factor Pluggable(SFP)を使用して接続したアクセス スイッチの間で、このインターフェイス コンフィギュレーション マクロを使用します。 |
cisco-router |
スイッチと WAN ルータを接続する場合、このインターフェイス コンフィギュレーション マクロを使用します。 |
cisco-wireless |
スイッチとワイヤレス アクセス ポイントを接続する場合、このインターフェイス コンフィギュレーション マクロを使用します。 |
スタティック SmartPort 設定時の注意事項
• スイッチまたはスイッチ インターフェイスにマクロをグローバルに適用しても、インターフェイスの既存の設定は維持されます。これは、差分設定に適用する場合に役立ちます。
• 構文エラーまたは設定エラーが原因でコマンドが失敗した場合でも、マクロは引き続き残りのコマンドを適用します。マクロを適用およびデバッグして、構文エラーまたは設定エラーを検出するには、 macro global trace macro-name グローバル コンフィギュレーション コマンド、または macro trace macro-name インターフェイス コンフィギュレーション コマンドを使用できます。
• 特定のインターフェイス タイプ固有の CLI コマンドもあります。設定を受け入れないインターフェイスにマクロを適用すると、マクロは構文チェックまたは設定チェックに失敗し、スイッチはエラー メッセージを返します。
• インターフェイス範囲へのマクロの適用は、単一インターフェイスへのマクロの適用と同じです。インターフェイス範囲を使用すると、インターフェイス範囲内の各インターフェイスへマクロが順番に適用されます。1 つのインターフェイスでマクロ コマンドの実行に失敗しても、マクロは残りのインターフェイス上に適用されます。
• スイッチまたはスイッチ インターフェイスにマクロを適用すると、マクロ名が自動的にスイッチまたはインターフェイスに追加されます。 show running-config ユーザ EXEC コマンドを使用して、適用されたコマンドおよびマクロ名を表示できます。
スタティック SmartPort マクロの適用
スタティック SmartPort マクロを適用するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
show parser macro |
スイッチ ソフトウェアに組み込まれたデフォルト設定のスタティック SmartPort マクロを表示します。 |
ステップ 2 |
show parser macro name macro-name |
適用する特定のマクロを表示します。 |
ステップ 3 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 4 |
macro global { apply | trace } macro-name [ parameter { value }] [ parameter { value }] [ parameter { value }] |
マクロに定義されている個々のコマンドをスイッチに適用するには、 macro global apply macro-name を入力します。マクロを適用およびデバッグして、構文エラーまたは設定エラーを検出するには、 macro global trace macro-name を指定します。 parameter value キーワードを使用して、マクロに必要な値を加えます。 $ で始まるキーワードには、一意のパラメータ値が必要です。 macro global apply macro-name ? コマンドを使用すると、マクロで必要な値の一覧が表示されます。キーワード値を入力しないでマクロを適用すると、コマンドは無効になり適用されません。 (任意)スイッチに固有の一意のパラメータ値を指定します。キーワード/値ペアは、最大 3 つまで入力できます。パラメータ キーワードの照合では大文字と小文字が区別されます。キーワードがすべて照合できた場合、それに対応する値に置き換えられます。 |
ステップ 5 |
interface interface-id |
(任意)インターフェイス コンフィギュレーション モードを開始し、マクロを適用するインターフェイスを指定します。 |
ステップ 6 |
default interface interface-id |
(任意)指定のインターフェイスからすべての設定情報を消去します。 |
ステップ 7 |
macro { apply | trace } macro-name [ parameter { value }] [ parameter { value }] [ parameter { value }] |
マクロに定義されている個々のコマンドをポートに適用するには、 macro global apply macro-name を入力します。マクロを適用およびデバッグして、構文エラーまたは設定エラーを検出するには、 macro global trace macro-name を指定します。 parameter value キーワードを使用して、マクロに必要な値を加えます。 $ で始まるキーワードには、一意のパラメータ値が必要です。 macro global apply macro-name ? コマンドを使用すると、マクロで必要な値の一覧が表示されます。キーワード値を入力しないでマクロを適用すると、コマンドは無効になり適用されません。 (任意)スイッチに固有の一意のパラメータ値を指定します。キーワード/値ペアは、最大 3 つまで入力できます。パラメータ キーワードの照合では大文字と小文字が区別されます。キーワードがすべて照合できた場合、それに対応する値に置き換えられます。 |
ステップ 8 |
end |
特権 EXEC モードに戻ります。 |
ステップ 9 |
show running-config interface interface-id |
マクロがインターフェイスに適用されたことを確認します。 |
ステップ 10 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
スイッチ上のグローバル マクロ適用済みの設定を削除するには、マクロ内にある各コマンドの no バージョンだけを入力します。ポート上のマクロ適用済みの設定を削除するには、 default interface interface-id インターフェイス コンフィギュレーション コマンドを入力します。
次に、 cisco-desktop マクロを表示してそのマクロを適用し、インターフェイスのアクセス VLAN ID を 25 に設定する例を示します。
Switch# show parser macro cisco-desktop
--------------------------------------------------------------
Macro name : cisco-desktop
# Basic interface - Enable data VLAN only
# Recommended value for access vlan (AVID) should not be 1
switchport access vlan $AVID
# Enable port security limiting port to a single
# MAC address -- that of desktop
switchport port-security maximum 1
# Ensure port-security age is greater than one minute
# and use inactivity timer
switchport port-security violation restrict
switchport port-security aging time 2
switchport port-security aging type inactivity
# Configure port as an edge network port
spanning-tree bpduguard enable
--------------------------------------------------------------
Switch# configure terminal
Switch(config)# interface gigabitethernet0/4
Switch(config-if)# macro apply cisco-desktop $AVID 25