Cisco Configuration Engine ソフトウェアの概要
Cisco Configuration Engine は、ネットワーク管理ソフトウェアで、ネットワーク デバイスおよびサービスの配置と管理を自動化するためのコンフィギュレーション サービスとして機能します(図 4-1を参照)。各 Configuration Engine は、シスコ デバイス(スイッチとルータ)のグループとデバイスが提供するサービスを管理し設定を保存して、必要に応じて配信します。Configuration Engine はデバイス固有の設定変更を生成してデバイスに送信し、設定変更を実行してその結果をロギングすることで、初期設定および設定の更新を自動化します。
Configuration Engine は、スタンドアロン モードおよびサーバ モードをサポートし、次の CNS コンポーネントを備えています。
• コンフィギュレーション サービス(Web サーバ、ファイル マネージャ、ネームスペース マッピング サーバ)
• イベント サービス(イベント ゲートウェイ)
• データ サービス ディレクトリ(データ モデルおよびスキーマ)
スタンドアロン モードでは、Configuration Engine は組み込み型ディレクトリ サービスをサポートします。このモードでは、外部ディレクトリまたはその他のデータ ストアは必要ありません。サーバ モードでは、Configuration Engine はユーザ定義の外部ディレクトリの使用をサポートします。
図 4-1 Configuration Engine アーキテクチャの概要
ここでは、次の概要について説明します。
• 「コンフィギュレーション サービス」
• 「イベント サービス」
• 「CNS ID およびデバイスのホスト名に関する重要事項」
コンフィギュレーション サービス
コンフィギュレーション サービスは、Cisco Configuration Engine の中核コンポーネントです。スイッチ上にある Cisco IOS CNS エージェントと連携して動作するコンフィギュレーション サーバで構成されています。コンフィギュレーション サービスは、初期設定と論理グループによる大規模な再設定のために、デバイスとサービスの設定をスイッチに配信します。スイッチはネットワーク上で初めて起動するときに、コンフィギュレーション サービスから初期設定を受信します。
コンフィギュレーション サービスは CNS イベント サービスを使用して設定変更イベントを送受信し、成功および失敗の通知を送信します。
コンフィギュレーション サーバは Web サーバであり、コンフィギュレーション テンプレートと組み込み型ディレクトリ(スタンドアロン モード)またはリモート ディレクトリ(サーバ モード)に保存されているデバイス固有の設定情報を使用します。
コンフィギュレーション テンプレートは、CLI(コマンドライン インターフェイス)コマンド形式で静的な設定情報を含んだテキスト ファイルです。テンプレートでは、変数は、Lightweight Directory Access Protocol(LDAP)URL を使用して指定します。この URL はディレクトリに保存されているデバイス固有の設定情報を参照します。
Cisco IOS エージェントは受信したコンフィギュレーション ファイルの構文をチェックし、イベントを発行して構文チェックが成功または失敗したかを表示します。コンフィギュレーション エージェントは設定をただちに適用することも、あるいは同期化イベントをコンフィギュレーション サーバから受信するまで適用を遅らせることもできます。
イベント サービス
Cisco Configuration Engine は、設定イベントの受信および生成にイベント サービスを使用します。イベント エージェントはスイッチ上にあり、スイッチと Configuration Engine のイベント ゲートウェイ間の通信を容易にします。
イベント サービスは、非常に有効なパブリッシュ サブスクライブ通信方式です。イベント サービスは、サブジェクトベースのアドレス指定を使用して、メッセージを宛先に送信します。サブジェクトベースのアドレス表記法では、メッセージおよび宛先には簡単で均一なネームスペースを定義します。
NSM
Configuration Engineには NameSpace Mapper(NSM)を装備しています。NSM は、アプリケーション、デバイス、またはグループ ID、およびイベントに基づくデバイスの論理グループ管理用に検索サービスを提供します。
Cisco IOS デバイスは、たとえば cisco.cns.config.load といった、Cisco IOS ソフトウェアで設定されたサブジェクト名と一致するイベント サブジェクト名のみを認識します。ネームスペース マッピング サービスを使用すると、希望する命名規則を使用することでイベントを指定できます。サブジェクト名でデータ ストアにデータを入力した場合、NSM はイベント サブジェクト名ストリングを、Cisco IOS が認識するものへ変更します。
サブスクライバの場合、一意のデバイス ID とイベントが指定されると、ネームスペース マッピング サービスは、サブスクライブ対象のイベント セットを返します。同様にパブリッシャの場合、一意のグループ ID、デバイス ID、およびイベントが指定されると、マッピング サービスは、パブリッシュ対象のイベント セットを返します。
CNS ID およびデバイスのホスト名に関する重要事項
Cisco Configuration Engine は、設定済みのスイッチごとに一意の識別子が関連付けられていることを想定しています。一意の識別子は複数の同義語を持つことができますが、各同義語は特定のネームスペース内で一意です。イベント サービスは、ネームスペースの内容を使用してメッセージのサブジェクトベース アドレス指定を行います。
Configuration Engine では、2 つのネームスペース(イベント バス用とコンフィギュレーション サーバ用)があります。コンフィギュレーション サーバのネームスペースでは、 ConfigID という用語がデバイスの一意な識別子です。イベント バスのネームスペースでは、 DeviceID という用語がデバイスの CNS 一意識別子です。
Configuration Engine は、イベント バスとコンフィギュレーション サーバの両方を使用してデバイスに設定を提供するので、設定済みのスイッチごとに ConfigID と DeviceID の両方を定義する必要があります。
コンフィギュレーション サーバの 1 つのインスタンスでは、設定済みの 2 つのスイッチが同じ ConfigID 値を共有できません。イベント バスの 1 つのインスタンスでは、設定済みの 2 つのスイッチが同じ DeviceID 値を共有できません。
ConfigID
設定済みのスイッチごとに一意の ConfigID があります。これは対応するスイッチ CLI アトリビュートに対する Configuration Engine ディレクトリへのキーの役割を果たします。スイッチ上で定義された ConfigID は、Configuration Engine の対応するスイッチ定義の ConfigID と一致している必要があります。
ConfigID は起動時に固定され、スイッチ ホスト名を再設定した場合でもデバイスを再起動するまで変更できません。
DeviceID
イベント バスに参加している設定済みのスイッチごとに一意の DeviceID があります。これはスイッチの送信元アドレスに似ているので、スイッチをバス上の特定の宛先として指定できます。 cns config partial グローバル コンフィギュレーション コマンドを使用して設定されたすべてのスイッチは、イベント バスにアクセスする必要があります。したがって、スイッチから発信される DeviceID は、Configuration Engine の対応するスイッチ定義の DeviceID と一致する必要があります。
DeviceID の発信元は、スイッチの Cisco IOS ホスト名によって定義されます。ただし、DeviceID 変数およびその使用は、スイッチに隣接するイベント ゲートウェイ内にあります。
イベント バス上の Cisco IOS の論理上の終点は、イベント ゲートウェイに組み込まれ、それがスイッチの代わりにプロキシとして動作します。イベント ゲートウェイはイベント バスに対して、スイッチおよび対応する DeviceID を表示します。
スイッチは、イベント ゲートウェイとの接続が成功するとすぐに、そのホスト名をイベント ゲートウェイに宣言します。接続が確立されるたびに、イベント ゲートウェイは DeviceID 値を Cisco IOS ホスト名に組み合わせます。イベント ゲートウェイは、スイッチと接続している間にこの DeviceID 値をキャッシュします。
ホスト名および DeviceID
DeviceID は、イベント ゲートウェイと接続したときに固定され、スイッチ ホスト名を再設定した場合でも変更されません。
スイッチのスイッチ ホスト名を変更する場合、DeviceID を更新する唯一の方法はスイッチとイベント ゲートウェイ間の接続を中断することです。 no cns event グローバル コンフィギュレーション コマンドを入力してから、 cns event グローバル コンフィギュレーション コマンドを入力します。
接続が再確立されると、スイッチは変更したホスト名をイベント ゲートウェイに送信します。イベント ゲートウェイは DeviceID を新しい値に再定義します。
注意 Configuration Engine ユーザ インターフェイスを使用する場合、スイッチで
cns config initial グローバル コンフィギュレーション コマンドを使用する
前ではなく、使用した
あとにスイッチが取得したホスト名の値に、DeviceID フィールドを最初に設定する必要があります。そうしないと、後続の
cns config partial グローバル コンフィギュレーション コマンドの操作が誤動作します。
Cisco IOS エージェントの概要
CNS イベント エージェント機能によって、スイッチはイベント バス上でイベントにパブリッシュおよびサブスクライブを行い、Cisco IOS エージェントと連携できます。Cisco IOS エージェント機能は、次の機能によりスイッチをサポートします。
• 「初期設定」
• 「差分(部分)設定」
• 「同期設定」
初期設定
スイッチが最初に起動すると、ネットワークで Dynamic Host Configuration Protocol(DHCP)要求をブロードキャストすることで IP アドレスを取得しようとします。サブネット上には DHCP サーバがないものと想定し、ディストリビューション スイッチは DHCP リレー エージェントとして動作し、要求を DHCP サーバに転送します。DHCP サーバは要求を受信すると、新しいスイッチに IP アドレスを割り当て、Trivial File Transfer Protocol(TFTP; 簡易ファイル転送プロトコル)サーバの IP アドレス、ブートストラップ コンフィギュレーション ファイルへのパス、デフォルト ゲートウェイの IP アドレスを、DHCP リレー エージェントに対するユニキャスト応答に組み入れます。DHCP リレー エージェントは、この応答をスイッチに転送します。
スイッチは、割り当てられた IP アドレスを自動的にインターフェイス VLAN 1(デフォルト)に設定し、TFTP サーバからブートストラップ コンフィギュレーション ファイルをダウンロードします。ブートストラップ コンフィギュレーション ファイルが正常にダウンロードされると、スイッチはそのファイルを実行コンフィギュレーションにロードします。
CNS IOS エージェントは、該当する ConfigID および EventID を使用して Configuration Engine との通信を開始します。Configuration Engine はこの ConfigID をテンプレートにマッピングして、スイッチに完全なコンフィギュレーション ファイルをダウンロードします。
図 4-2 に、DHCP ベースの自動設定を使用して初期ブートストラップ コンフィギュレーション ファイルを取得するためのネットワーク構成例を示します。
図 4-2 初期設定の概要
差分(部分)設定
ネットワークが稼動すると、Cisco IOS エージェントを使用して新しいサービスを追加できます。差分(部分)設定は、スイッチに送信できます。実際の設定を、イベント ペイロードとしてイベント ゲートウェイを介して(プッシュ処理)、またはスイッチにプル オペレーションを開始させる信号イベントとして送信できます。
スイッチは、適用する前に設定の構文をチェックできます。構文が正しい場合は、スイッチは差分設定を適用し、コンフィギュレーション サーバに成功を信号で伝えるイベントを発行します。スイッチが差分設定を適用しない場合、エラー ステータスを示すイベントを発行します。スイッチが差分設定を適用した場合、NVRAM(不揮発性 RAM)に書き込むか、または書き込むように指示されるまで待つことができます。
同期設定
スイッチは、設定を受信した場合、書き込み信号イベントの受信時に設定の適用を遅らせることができます。書き込み信号イベントは、更新された設定を NVRAM に保存しないようにスイッチに指示します。スイッチは更新された設定を実行コンフィギュレーションとして使用します。これによりスイッチの設定は、次の再起動時の使用のために NVRAM に設定を保存する前に、他のネットワーク アクティビティと同期化されます。
Cisco IOS エージェントの設定
スイッチの Cisco IOS ソフトウェアに組み込まれた Cisco IOS エージェントによって、スイッチを接続して自動的に設定できます(「自動 CNS 設定のイネーブル化」を参照)。設定を変更する場合、またはカスタム コンフィギュレーションをインストールする場合は次の手順を参照してください。
• 「CNS イベント エージェントのイネーブル化」
• 「Cisco IOS CNS エージェントのイネーブル化」
自動 CNS 設定のイネーブル化
スイッチの自動 CNS 設定をイネーブルにするには、まず 表 4-1 の条件を満たす必要があります。条件設定を完了したらスイッチの電源を入れます。 setup プロンプトでは何も入力しません。スイッチは初期設定を開始します(「初期設定」を参照)。コンフィギュレーション ファイル全体がスイッチにロードされると作業は完了です。
表 4-1 自動設定イネーブル化の条件
|
|
アクセス スイッチ |
出荷時の設定(コンフィギュレーション ファイルなし) |
ディストリビューション スイッチ |
• IP ヘルパー アドレス • DHCP リレー エージェントのイネーブル化 • IP ルーティング(デフォルト ゲートウェイとして使用する場合) |
DHCP サーバ |
• IP アドレスの割り当て • TFTP サーバの IP アドレス • TFTP サーバのブートストラップ コンフィギュレーション ファイルへのパス • デフォルト ゲートウェイの IP アドレス |
TFTP サーバ |
• スイッチと Configuration Engine との通信を可能にする CNS 設定 コマンドを含むブートストラップ コンフィギュレーション ファイル • (デフォルトのホスト名の代わりに)スイッチ MAC(メディア アクセス制御)アドレスまたはシリアル番号のいずれかを使用して ConfigID および EventID を生成するように設定されたスイッチ • スイッチにコンフィギュレーション ファイルをプッシュするように設定された CNS イベント エージェント |
CNS Configuration Engine |
デバイス タイプ別の 1 つまたは複数のテンプレートで、テンプレートにデバイスの ConfigID がマッピングされています。 |
(注) Configuration Engine のセットアップ プログラムの実行と Configuration Engine でのテンプレートの作成については、次の URL から『Cisco Configuration Engine Installation and Setup Guide, 1.5 for Linux』を参照してください。
http://www.cisco.com/en/US/docs/net_mgmt/configuration_engine/1.5/installation_linux/guide/setup_1.html
CNS イベント エージェントのイネーブル化
(注) スイッチ上で CNS イベント エージェントをイネーブルにしてから、CNS 設定 エージェントをイネーブルにする必要があります。
スイッチ上で CNS イベント エージェントをイネーブルにするには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
cns event { ip-address | hostname } [ port-number ] [ backup ] [ init-retry retry-count ] [ keepalive seconds retry-count ] [ source ip-address ] |
イベント エージェントをイネーブルにして、ゲートウェイ パラメータを入力します。 • { ip-address | hostname } に、イベント ゲートウェイの IP アドレスまたはホスト名を入力します。 • (任意) port number に、イベント ゲートウェイのポート番号を入力します。デフォルトのポート番号は 11011 です。 • (任意)バックアップ ゲートウェイであることを示す場合は、 backup を入力します (省略した場合は、プライマリ ゲートウェイになります)。 • (任意) init-retry retry-count に、バックアップに切り替えるまでの最初の再試行回数を入力します。デフォルト値は 3 です。 • (任意) keepalive seconds に、スイッチがキープアライブ メッセージを送信する間隔を入力します。 retry-count に、キープアライブ メッセージへの応答がない場合に接続を終了するまでのメッセージ送信回数を入力します。デフォルト値はいずれも 0 です。 • (任意) source ip-address に、このデバイスの送信元 IP アドレスを入力します。 キーワードは、コマンドラインのヘルプ ストリングに表示されますが、サポートされていません。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show cns event connections |
イベント エージェントに関する情報を確認します。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
CNS イベント エージェントをディセーブルにするには、 no cns event { ip-address | hostname } グローバル コンフィギュレーション コマンドを使用します。
次に、CNS イベント エージェントをイネーブルにして、IP アドレス ゲートウェイを 10.180.1.27、キープアライブ間隔を 120 秒、再試行回数を 10 回に設定する例を示します。
Switch(config)# cns event 10.180.1.27 keepalive 120 10
Cisco IOS CNS エージェントのイネーブル化
CNS イベント エージェントをイネーブルにしたあと、スイッチ上で Cisco IOS CNS エージェントを起動します。次のコマンドを使用して、Cisco IOS エージェントをイネーブルにできます。
• cns config initial グローバル コンフィギュレーション コマンドは、Cisco IOS エージェントをイネーブルにして、スイッチの初期設定を開始します。
• cns config partial グローバル コンフィギュレーション コマンドは、Cisco IOS エージェントをイネーブルにして、スイッチの部分的な設定を開始します。Configuration Engine を使用して、リモートでスイッチに差分設定を送信できます。
初期設定のイネーブル化
スイッチ上で CNS 設定 エージェントをイネーブルにして初期設定を開始するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
cns config connect-intf interface-prefix [ ping-interval seconds ] [ retries num ] |
connect-interface-config サブモードを開始して、Configuration Engine に接続するためのインターフェイスを指定します。 • 接続するインターフェイスの interface-prefix を入力します。インターフェイス タイプを指定する必要がありますが、インターフェイス番号を指定する必要はありません。 • (任意) ping-interval seconds に、連続する ping の試行間隔を入力します。指定できる範囲は 1 ~ 30 秒です。デフォルト値は 10 秒です。 • (任意) retries num に、ping の再試行回数を入力します。指定できる範囲は 1 ~ 30 です。デフォルト値は 5 です。 |
ステップ 3 |
config-cli または line-cli |
cns config connect-intf で定義されたインターフェイスを介して Configuration Engine に接続するには、 config-cli を入力します。モデム ダイアルアップ回線を介して Configuration Engine に接続するには、 line-cli を入力します。 を生成します。 |
ステップ 4 |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 5 |
hostname name |
スイッチのホスト名を入力します。 |
ステップ 6 |
ip route network-number |
IP アドレスが network-number の Configuration Engine へのスタティック ルートを確立します。 |
ステップ 7 |
cns id interface num { dns-reverse | ipaddress | mac-address } [ event ] または cns id { hardware-serial | hostname | string string } [ event ] |
Configuration Engine が使用する一意の EventID または ConfigID を設定します。 • interface num に、インターフェイスの種類(たとえば、イーサネット、Group-Async、Loopback、Virtual-Template)を入力します。この設定では、一意の ID を定義するためにどのインターフェイスから IP アドレスまたは MAC アドレスを取得するかを指定します。 • { dns-reverse | ipaddress | mac-address } では、ホスト名を取得してそのホスト名を UID として割り当てるには dns-reverse を、IP アドレスを使用するには ipaddress を、MAC アドレスを一意の ID として使用するには mac-address を使用します。 • (任意)ID をスイッチの識別に使用する event-id 値になるように設定するには、 event を入力します。 • { hardware-serial | hostname | string string } で、 hardware-serial を入力してスイッチのシリアル番号を一意の ID として設定するか、 hostname (デフォルト)を入力してスイッチのホスト名を一意の ID として選択するか、または string string に任意のテキスト ストリングを一意の ID として入力します。 |
ステップ 8 |
cns config initial { ip-address | hostname } [ port-number ] [ event ] [ no-persist ] [ page page ] [ source ip-address ] [ syntax-check ] |
Cisco IOS をイネーブルにし、初期設定を開始します。 • { ip-address | hostname } に、コンフィギュレーション サーバの IP アドレスまたはホスト名を入力します。 • (任意) port number に、コンフィギュレーション サーバのポート番号を入力します。デフォルトのポート番号は 80 です。 • (任意)設定が完了したときの設定の成功、失敗、または警告のメッセージ用に event をイネーブルにします。 • (任意) cns config initial グローバル コンフィギュレーション コマンドの入力結果によってプルされた設定の NVRAM への自動書き込みを抑制するには、 no-persist を入力します。 no-persist キーワードを入力しない場合、 cns config initial コマンドを使用すると、その結果の設定が自動的に NVRAM に書き込まれます。 • (任意) page page に、初期設定の Web ページを入力します。デフォルトは /Config/config/asp です。 • (任意)送信元 IP アドレスに使用するには、 source ip-address を入力します。 • (任意)このパラメータを使用したときの構文をチェックするには、 syntax-check をイネーブルにします。 キーワードは、コマンドラインのヘルプ ストリングに表示されますが、サポートされていません。 |
ステップ 9 |
end |
特権 EXEC モードに戻ります。 |
ステップ 10 |
show cns config connections |
コンフィギュレーション エージェントに関する情報を確認します。 |
ステップ 11 |
show running-config |
設定を確認します。 |
CNS Cisco IOS エージェントをディセーブルにするには、 no cns config initial { ip-address | hostname } グローバル コンフィギュレーション コマンドを使用します。
次に、リモート スイッチで初期設定を実施する例を示します。スイッチのホスト名は一意の ID です。Cisco Configuration Engine の IP アドレスは 172.28.129.22 です。
Switch(config)# cns config connect-intf serial ping-interval 1 retries 1
Switch(config-cns-conn-if)# config-cli ip address negotiated
Switch(config-cns-conn-if)# config-cli encapsulation ppp
Switch(config-cns-conn-if)# config-cli ip directed-broadcast
Switch(config-cns-conn-if)# config-cli no keepalive
Switch(config-cns-conn-if)# config-cli no shutdown
Switch(config-cns-conn-if)# exit
Switch(config)# hostname RemoteSwitch
RemoteSwitch(config)# ip route 10.1.1.1 255.255.255.255 11.11.11.1
RemoteSwitch(config)# cns id Ethernet 0 ipaddress
RemoteSwitch(config)# cns config initial 10.1.1.1 no-persist
部分設定のイネーブル化
スイッチ上で Cisco IOS エージェントをイネーブルにして部分設定を開始するには、特権 EXEC モードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
cns config partial { ip-address | hostname } [ port-number ] [ source ip-address ] |
コンフィギュレーション エージェントをイネーブルにし、部分設定を開始します。 • { ip-address | hostname } に、コンフィギュレーション サーバの IP アドレスまたはホスト名を入力します。 • (任意) port number に、コンフィギュレーション サーバのポート番号を入力します。デフォルトのポート番号は 80 です。 • (任意)送信元 IP アドレスに使用するには、 source ip-address を入力します。 キーワードは、コマンドラインのヘルプ ストリングに表示されますが、サポートされていません。 |
ステップ 3 |
end |
特権 EXEC モードに戻ります。 |
ステップ 4 |
show cns config stats または show cns config outstanding |
コンフィギュレーション エージェントに関する情報を確認します。 |
ステップ 5 |
show running-config |
設定を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
Cisco IOS エージェントをディセーブルにするには、 no cns config partial { ip-address | hostname } グローバル コンフィギュレーション コマンドを使用します。部分設定を取り消すには、 cns config cancel 特権 EXEC コマンドを使用します。