SmartPort マクロの概要
SmartPort マクロは、一般的な設定を保存したり、共有する作業を簡単に実行するための方法を提供します。SmartPort マクロを使用すると、ネットワーク内のスイッチの位置に基づいて機能および設定をイネーブルにしたり、ネットワーク中に多数の設定を導入したりできます。
各 SmartPort マクロは、ユーザが定義した CLI コマンドのセットです。SmartPort マクロ セットには新しい CLI コマンドは含まれません。各 SmartPort マクロは既存の CLI コマンドの集合です。
SmartPort マクロをインターフェイスに適用すると、マクロに含まれる CLI コマンドがインターフェイスに設定されますが、 インターフェイスに SmartPort マクロを適用しても、インターフェイスの既存の設定は失われません。新しいコマンドはインターフェイスに追加されて、実行コンフィギュレーション ファイルに保存されます。
シスコのデフォルト SmartPort マクロはスイッチ ソフトウェアに組み込まれています( 表 16-1 を参照)。これらのマクロやコマンドは、 show parser macro ユーザ EXEC コマンドを使用して表示できます。
表 16-1 シスコのデフォルト SmartPort マクロ
|
|
cisco-global |
Rapid PVST+、ループガード、リンク ステート障害用のダイナミック ポート エラー回復をイネーブルにするには、このグローバル コンフィギュレーション マクロを使用します。 |
cisco-desktop |
PC のようなデスクトップ デバイスをスイッチ ポートに接続する場合、ネットワーク セキュリティと信頼性を高めるために、このインターフェイス コンフィギュレーション マクロを使用します。 |
cisco-phone |
Cisco IP Phone を装備した PC のようなデスクトップ デバイスをスイッチ ポートに接続する場合、このインターフェイス コンフィギュレーション マクロを使用します。このマクロは、 cisco-desktop マクロの拡張機能で、同じセキュリティ機能と復元力機能を提供します。ただし、遅延に影響されやすい音声トラフィックを適切に処理するために、専用音声 VLAN が追加されています。 |
cisco-switch |
GigaStack モジュールまたは GBIC を使用して、アクセス スイッチとディストリビューション スイッチ、またはアクセス スイッチ同士を接続する場合、このインターフェイス コンフィギュレーション マクロを使用します。 |
cisco-router |
スイッチと WAN ルータを接続する場合、このインターフェイス コンフィギュレーション マクロを使用します。 |
Catalyst スイッチ向けには、シスコが推奨するテスト済みのベースライン コンフィギュレーション テンプレートも提供されています。オンライン リファレンス ガイド テンプレートは、ポートの使用状況に基づいて SmartPort マクロを作成するのに使用できる CLI コマンドを提供します。シスコ推奨のネットワーク設計や設定を構築し、展開するために、コンフィギュレーション テンプレートを使用して SmartPort マクロを作成できます。
SmartPort マクロの設定
新しい SmartPort マクロを作成するか、既存のマクロをテンプレートとして使用すると、ご使用のアプリケーション専用の新しいマクロを作成できます。作成したマクロは、特定のインターフェイスまたはインターフェイス範囲に適用できます。
ここでは、次の情報について説明します。
• 「マクロに渡されるパラメータ」
• 「SmartPort マクロのデフォルト設定」
• 「SmartPort マクロの設定時の注意事項」
• 「SmartPort マクロの作成」
• 「SmartPort マクロの適用」
マクロに渡されるパラメータ
コマンドの一部にはすべてのインターフェイスに対する汎用性のないものがあります。たとえば、レイヤ 2 インターフェイスの VLAN ID およびレイヤ 3 インターフェイスの IP アドレスです。マクロにこのようなコマンドを定義すると、このマクロを別のインターフェイスに適用する前に、パラメータ(VLAN ID または IP アドレス)の値を変更する必要があります。あるいは、パラメータの各値を設定するために別々のマクロを作成する必要があります。
マクロのインフラストラクチャは、マクロを適用している間にパラメータを受け入れるよう拡張できます。パラメータはキーワードと値のペアとして、渡されます。
CLI で入力できるキーワード/値ペア数は最大 3 つです。最初のパラメータはキーワードである必要があります。2 番めのパラメータは対応する値です。3 番めのパラメータは 2 番めのキーワード/値ペアのキーワードです。次に、パラメータをコマンドマクロに渡す例を示します。
Switch(config)# macro name parameter-test
Enter macro commands one per line. End with the character '@'.
switchport access vlan $VLANID
switchport port-security maximum $MAXHOST
上記のマクロがパラメータなしでインターフェイスに適用された場合、無効なコマンドは失敗します。代わりに、適切なキーワード/値ペアのパラメータを使用して、マクロを次のように適用する必要があります。
Switch(config-if)# macro apply parameter-test $VLANID 1 $MAXHOST 5
上記のコマンドを実行すると、$VLANID を 1 に、$MAXHOST を 5 に置き換えたあとでマクロが適用されます。マクロ内では任意のストリングをキーワードとして指定できることに注意してください。
マクロ パラメータのヘルプ
マクロをインターフェイスまたはスイッチに適用する場合、マクロのキーワードを覚えておくことは困難です。マクロには、必須キーワードの定義を含めることができます。これらのキーワード値を入力せずにマクロを適用した場合、コマンドは無効と見なされ失敗します。
マクロで定義されたキーワードに関するヘルプを提供するようマクロ インフラストラクチャを拡張できます。マクロを作成するとき、ヘルプ ストリングを(コメントとして)指定し、そのマクロの必須キーワードを一覧表示するように設定できます。
次に、キーワードに関するヘルプ ストリングを指定する例を示します。
Switch(config)# macro name test
switchport access vlan $VLANID
switchport port-security maximum $MAX
#macro keywords $VLANID $MAX
ヘルプ ストリングはマクロ内のどこにでも配置できます。次に、ヘルプ ストリングを指定する別の例を示します。
Switch(config)# macro name test
switchport access vlan $VLANID
switchport port-security maximum $MAX
cisco-global
次に、cisco-global マクロの例を示します。
# Enable dynamic port error recovery for link state failures.
errdisable recovery cause link-flap
errdisable recovery interval 60
# VTP requires Transparent mode for future 802.1x Guest VLAN
# and current Best Practice
# Enable aggressive mode UDLD on all fiber uplinks
# Enable Rapid PVST+ and Loopguard
spanning-tree mode rapid-pvst
spanning-tree loopguard default
spanning-tree extend system-id
cisco-desktop
次に、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
# Ensure port-security age is greater than one minute
# and use inactivity timer
# “Port-security maximum 1” is the default and will not
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
cisco-phone
次に、cisco-phone マクロの例を示します。
# VoIP enabled interface - Enable data VLAN
# Recommended value for access vlan (AVID) should not be 1\
switchport access vlan $AVID
# Update the Voice VLAN (VVID) value which should be
# different from data VLAN
# Recommended value for voice vlan (VVID) should not be 1
switchport voice vlan $VVID
# Enable port security limiting port to a 2 MAC
# addressess -- One for desktop and two for phone
switchport port-security maximum 2
# 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
# Enable auto-qos to extend trust to attached Cisco phone
auto qos voip cisco-phone
# Configure port as an edge network port
spanning-tree bpduguard enable@
cisco-router
次に、cisco-router マクロの例を示します。
# Access Uplink to Distribution
switchport trunk encapsulation dot1q
# Define unique Native VLAN on trunk ports
# Recommended value for native vlan (NVID) should not be 1
switchport trunk native vlan $NVID
# Update the allowed VLAN range (VRANGE) such that it
# includes data, voice and native VLANs
# switchport trunk allowed vlan $VRANGE
# Hardcode trunk and disable negotiation to
# Hardcode speed and duplex to router
# Configure qos to trust this interface
# Ensure fast access to the network when enabling the interface.
# Ensure that switch devices cannot become active on the interface.
spanning-tree bpduguard enable
cisco-switch
次に、cisco-switch マクロの例を示します。
# Access Uplink to Distribution
switchport trunk encapsulation dot1q
# Define unique Native VLAN on trunk ports
# Recommended value for native vlan (NVID) should not be 1
switchport trunk native vlan $NVID
# Update the allowed VLAN range (VRANGE) such that it
# includes data, voice and native VLANs
# switchport trunk allowed vlan $VRANGE
# Hardcode trunk and disable negotiation to
# Configure qos to trust this interface
# 802.1w defines the link as pt-pt for rapid convergence
spanning-tree link-type point-to-point
SmartPort マクロの設定時の注意事項
スイッチでマクロを設定するときには、次の注意事項に従ってください。
• マクロを適用した際に、構文エラーまたは設定エラーが発生してコマンドが失敗した場合、マクロは残りのコマンドを引き続きインターフェイスに適用します。
• cisco-global はグローバル コンフィギュレーション モードで適用する必要があります。他のインターフェイス レベルのマクロよりも先にこのマクロを適用することを推奨します。
• インターフェイス上でシステム定義マクロ(cisco-desktop、cisco-phone、cisco-switch、および cisco-router)を適用する場合は、特定のキーワードが必要です。
• cisco-phone マクロを使用してポート セキュリティを適用する場合、最大のポート セキュリティは 2 となります(switchport port-security maximum 2)。
• キーワード/値のペアは、システム定義マクロごとに最大 3 つまで指定できます。
• マクロを作成する際に、 exit や end コマンド、または interface interface-id コマンドを使用してコマンド モードを変更しないでください。これらのコマンドを使用すると、 exit 、 end 、または interface interface-id に続くコマンドが異なるコマンド モードで実行されることがあります。
• マクロを作成するときは、同じコンフィギュレーション モードの CLI コマンドを使用してください。
• 一意の値の割り当てを必要とするマクロを作成する場合、 parameter value キーワードを使用して、そのインターフェイスに固有の値を指定します。キーワードの照合では、大文字と小文字が区別されます。キーワードで一致が見られると、すべて対応する値に置き換えられます。キーワードが完全に一致すると、それが長い文字列の一部であったとしても一致と見なされて、対応する値に置き換えられます。
• マクロ名では、大文字と小文字が区別されます。たとえば、コマンド macro name Sample-Macro と macro name sample-macro は、別のマクロになります。
• 一部のマクロには、パラメータ値が必要なキーワードが含まれます。 macro global apply macro-name ? グローバル コンフィギュレーション コマンドまたは macro apply macro-name ? インターフェイス コンフィギュレーション コマンドを使用すると、マクロで必要な値を一覧表示できます。キーワード値を入力せずにマクロを適用した場合、コマンドは無効となり、マクロは適用されません。
• スイッチまたはスイッチ インターフェイスにマクロをグローバルに適用しても、インターフェイスの既存の設定はすべて維持されます。これは、差分設定に適用する場合に役立ちます。
• コマンドを追加または削除してマクロ定義を変更する場合、元のマクロを適用したインターフェイスに変更は反映されません。新規または変更済みのコマンドを適用するには、インターフェイスにアップデート済みマクロを再適用する必要があります。
• マクロを適用およびデバッグして、構文エラーまたは設定エラーを検出するには、 macro global trace macro-name グローバル コンフィギュレーション コマンド、または macro trace macro-name インターフェイス コンフィギュレーション コマンドを使用できます。構文エラーまたは設定エラーが原因でコマンドが失敗した場合でも、マクロは引き続き残りのコマンドを適用します。
• 特定のインターフェイス タイプ固有の CLI コマンドもあります。設定を受け入れないインターフェイスにマクロを適用すると、マクロは構文チェックまたは設定チェックに失敗し、スイッチはエラー メッセージを返します。
• インターフェイス範囲へのマクロの適用は、単一インターフェイスへのマクロの適用と同じです。インターフェイスの範囲を使用する場合、マクロはその範囲内の各インターフェイスに順番に適用されます。1 つのインターフェイスでマクロ コマンドの実行に失敗しても、マクロは残りのインターフェイス上に適用されます。
• マクロをスイッチまたはスイッチ インターフェイスに適用すると、マクロ名が自動的にスイッチまたはインターフェイスのマクロの説明に追加されます。 show parser macro description ユーザ EXEC コマンドを使用して、適用されたコマンドとマクロ名を表示できます。
• ユーザ設定可能なマクロには、最大 3000 文字のコマンドとコメントを保持できるバッファがあります。新しく 1 行入力するたびに、2 文字使用されます。空の行はそのままカウントされます。
シスコのデフォルト SmartPort マクロはスイッチ ソフトウェアに組み込まれています( 表 16-1 を参照)。これらのマクロやコマンドは、 show parser macro ユーザ EXEC コマンドを使用して表示できます。
インターフェイスにシスコ デフォルト Smartport マクロを適用する場合は、次の注意事項に従ってください。
• show parser macro ユーザ EXEC コマンドを使用して、スイッチ上のすべてのマクロを表示します。特定のマクロの内容を表示するには、 show parser macro macro-name ユーザ EXEC コマンドを使用します。
• $ で始まるキーワードには、一意のパラメータ値が必要です。 parameter value キーワードを使用して、必要な値をシスコ デフォルト マクロに追加します。
シスコ デフォルト マクロは $ という文字を使用しているので、必須キーワードを識別するのに役立ちます。マクロを作成する場合、 $ という文字を使用したキーワードの定義には制限がありません。
SmartPort マクロの作成
SmartPort マクロを作成するには、次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
macro name macro-name |
マクロ定義を作成し、マクロ名を入力します。マクロ定義には、最大 3000 文字を使用できます。 1 行ごとに 1 つのマクロ コマンドを入力します。マクロを終了するには、 @ 文字を使用します。マクロ内にコメント テキストを入力するには、行の最初に # 文字を使用します。 マクロ名では、大文字と小文字が区別されます。たとえば、コマンド macro name Sample-Macro と macro name sample-macro は、別のマクロになります。 exit または end コマンドを使用しないこと、またはマクロで interface interface-id を使用して、コマンド モードを変更しないことを推奨します。 exit または end 、または interface interface-id に続くコマンドが別のコマンド モードで実行されることがあるためです。最良の結果を出すには、マクロ内のすべてのコマンドが同じコンフィギュレーション モードである必要があります。 グローバル コンフィギュレーション コマンドでは、マクロ定義だけが削除されます。マクロがすでに適用されているインターフェイスの設定には、影響はありません。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show parser macro name macro-name |
マクロが作成されたことを確認します。 |
SmartPort マクロの適用
SmartPort マクロを適用するには、次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
macro global { apply | trace } macro-name [ parameter { value }] [ parameter { value }] [ parameter { value }] |
マクロで定義された各コマンドをスイッチに適用するには、 macro global apply macro-name を入力します。マクロを適用およびデバッグして、構文エラーまたは設定エラーを検出するには、 macro global trace macro-name を指定します。 (任意)スイッチに固有の一意のパラメータ値を指定します。最高 3 つのキーワードと値の組み合わせを入力できます。パラメータ キーワードの照合では、大文字と小文字が区別されます。キーワードで一致が見られると、すべて対応する値に置き換えられます。 一部のマクロには、パラメータ値が必要なキーワードが含まれます。 macro global apply macro-name ? コマンドを使用すると、マクロで必要な値を一覧表示できます。キーワード値を入力せずにマクロを適用した場合、コマンドは無効となり、マクロは適用されません。 |
ステップ 3 |
macro global description text |
(任意)スイッチに適用されるマクロの説明を入力します。 |
ステップ 4 |
interface interface-id |
(任意)インターフェイス コンフィギュレーション モードを開始して、マクロを適用するインターフェイスを指定します。 |
ステップ 5 |
default interface interface-id |
(任意)指定したインターフェイスからすべての設定を消去します。 |
ステップ 6 |
macro { apply | trace } macro-name [ parameter { value }] [ parameter { value }] [ parameter { value }] |
マクロで定義された各コマンドをインターフェイスに適用するには、 macro apply macro-name を入力します。マクロを適用およびデバッグして、構文エラーまたは設定エラーを検出するには、 macro trace macro-name を指定します。 (任意)インターフェイスに固有の一意のパラメータ値を指定します。最高 3 つのキーワードと値の組み合わせを入力できます。パラメータ キーワードの照合では、大文字と小文字が区別されます。キーワードで一致が見られると、すべて対応する値に置き換えられます。 一部のマクロには、パラメータ値が必要なキーワードが含まれます。 macro apply macro-name ? コマンドを使用すると、マクロで必要な値を一覧表示できます。キーワード値を入力せずにマクロを適用した場合、コマンドは無効となり、マクロは適用されません。 次に、このコマンドを適用する例を示します。
Switch(config-if)# macro apply cisco-phone ?
WORD Keyword to replace with a value e.g. $AVID, $VVID
|
ステップ 7 |
macro description text |
(任意)インターフェイスに適用されるマクロの説明を入力します。 |
ステップ 8 |
end |
特権 EXEC モードに戻ります。 |
ステップ 9 |
show parser macro description [ interface interface-id ] |
マクロがインターフェイスに適用されたことを確認します。 |
ステップ 10 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
スイッチ上のグローバル マクロ適用済みの設定を削除するには、マクロ内にある各コマンドの no バージョンだけを入力します。 default interface interface-id インターフェイス コンフィギュレーション コマンドを使用すれば、インターフェイスで適用されたマクロの設定を削除できます。
macro name グローバル コンフィギュレーション コマンドの no 形式を使用すると、マクロ定義だけを削除します。マクロがすでに適用されているインターフェイスの設定には、影響はありません。 default interface interface-id インターフェイス コンフィギュレーション コマンドを使用すれば、インターフェイスで適用されたマクロの設定を削除できます。また、元のマクロの対応するコマンドすべての no 形式を含む既存のマクロの anti-macro を作成できます。そのあと、このアンチマクロをインターフェイスに適用します。
ここでは、サポートされている各マクロを適用して、内容を表示する例を示します。
• 「cisco-global」
• 「cisco-desktop」
• 「cisco-phone」
• 「cisco-switch」
• 「cisco-router」
cisco-global
次に、cisco-global というシステム定義マクロを使用する例を示します。
Switch(config)# macro global apply cisco-global
Changing VTP domain name from gsg-switch to [smartports]
Setting device to VTP TRANSPARENT mode.
Switch# show parser macro name cisco-global
Macro name : cisco-global
Macro type : default global
# Enable dynamic port error recovery for link state failures.
errdisable recovery cause link-flap
errdisable recovery interval 60
# VTP requires Transparent mode for future 802.1x Guest VLAN
# and current Best Practice vtp domain [smartports] vtp mode transparent
# Enable aggressive mode UDLD on all fiber uplinks udld aggressive
# Enable Rapid PVST+ and Loopguard
spanning-tree mode rapid-pvst
spanning-tree loopguard default
spanning-tree extend system-id
cisco-desktop
次に、システム定義マクロ cisco-desktop を使用して、35 の値をファスト イーサネット インターフェイス 2/9 のアクセス VLAN に割り当てる例を示します。
(注) このマクロでは、ポートのアクセス VLAN を指定する $AVID キーワードが必要です。
Switch(config)# interface fastethernet2/9
Switch(config-if)# macro apply cisco-desktop $AVID 35
Switch# show parser macro name cisco-desktop
Macro name : cisco-desktop
Macro type : customizable
# Basic interface - Enable data VLAN only
# Recommended value for access vlan (AVID) should not be 1
switchport access vlan $AVID [access_vlan_id]
# Enable port security limiting port to a single
# MAC address -- that of desktop
# Ensure port-security age is greater than one minute
# and use inactivity timer
# “Port-security maximum 1” is the default and will not
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# show parser macro description
Interface Macro Description
--------------------------------------------------------------
--------------------------------------------------------------
cisco-phone
次に、システム定義マクロ cisco-phone を使用して、ファスト イーサネット インターフェイス 2/9 上のアクセス VLAN に 35 の値を、音声 VLAN に 56 の値を割り当てる例を示します。
(注) このマクロでは、ポートのアクセス VLAN を指定する $AVID、および音声 VLAN を指定する $VVID キーワードが必要です。
Switch(config)# interface fastethernet2/9
Switch(config-if)# macro apply cisco-phone
Switch(config-if)# macro description cisco-phone $AVID 35 $VVID 56
Switch# show parser macro name cisco-phone
Macro type : customizable
# VoIP enabled interface - Enable data VLAN
# Recommended value for access vlan (AVID) should not be 1\
switchport access vlan $AVID [access_vlan_id]
# Update the Voice VLAN (VVID) value which should be
# different from data VLAN
# Recommended value for voice vlan (VVID) should not be 1
switchport voice vlan $VVID [voice_vlan_id]
# Enable port security limiting port to a 2 MAC
# addressess -- One for desktop and one for phone
switchport port-security maximum 2
# 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
# Enable auto-qos to extend trust to attached Cisco phone
auto qos voip cisco-phone
# Configure port as an edge network port
spanning-tree bpduguard enable@
Switch# show parser macro description
Interface Macro Description
--------------------------------------------------------------
--------------------------------------------------------------
cisco-switch
次に、システム定義マクロ cisco-switch を使用して、38 の値をファスト イーサネット インターフェイス 2/9 上のネイティブ VLAN に割り当てる例を示します。
(注) このマクロでは、ポートのネイティブ VLAN を指定する $NVID キーワードが必要です。
Switch(config)# interface fastethernet2/9
Switch(config-if)# macro apply cisco-switch
Switch(config-if)# macro description cisco-switch $NVID 38
Switch# show parser macro name cisco-switch
Macro name : cisco-switch
Macro type : customizable
# Access Uplink to Distribution
switchport trunk encapsulation dot1q
# Define unique Native VLAN on trunk ports
# Recommended value for native vlan (NVID) should not be 1
switchport trunk native vlan $NVID [native_vlan_id]
# Update the allowed VLAN range (VRANGE) such that it
# includes data, voice and native VLANs
# switchport trunk allowed vlan $VRANGE [vlan_range]
# Hardcode trunk and disable negotiation to
# Configure qos to trust this interface
# 802.1w defines the link as pt-pt for rapid convergence
spanning-tree link-type point-to-point
Switch# show parser macro description
Interface Macro Description
--------------------------------------------------------------
--------------------------------------------------------------
cisco-router
次に、システム定義マクロ cisco-router を使用して、451 の値をファスト イーサネット インターフェイス 2/9 上のネイティブ VLAN に割り当てる例を示します。
(注) このマクロでは、ポートのネイティブ VLAN を指定する $NVID キーワードが必要です。
Switch(config)# interface fastethernet2/9
Switch(config-if)# macro apply cisco-router
Switch(config-if)# macro description cisco-router $NVID 45I
Switch# show parser macro name cisco-router
Macro name : cisco-router
Macro type : customizable
# Access Uplink to Distribution
switchport trunk encapsulation dot1q
# Define unique Native VLAN on trunk ports
# Recommended value for native vlan (NVID) should not be 1
switchport trunk native vlan $NVID [native_vlan_id]
# Update the allowed VLAN range (VRANGE) such that it
# includes data, voice and native VLANs
# switchport trunk allowed vlan $VRANGE [vlan_range]
# Hardcode trunk and disable negotiation to
# Hardcode speed and duplex to router
# Configure qos to trust this interface
# Ensure fast access to the network when enabling the interface.
# Ensure that switch devices cannot become active on the interface.
spanning-tree bpduguard enable
Switch# show parser macro description
Interface Macro Description
--------------------------------------------------------------
--------------------------------------------------------------