ルーティング エンジン間での設定の同期
冗長ルーティングエンジンを搭載したデバイスでは、両方のルーティングエンジンの設定をアクティブ化して同期する commit
synchronize
を行うことができます。
ルーティング エンジンの同期の概要
デバイスに2つのルーティングエンジンがある場合、 commit synchronize
コマンドを発行することで、一方のルーティングエンジンにもう一方のルーティングエンジンと設定を同期させるように手動で指示できます。このコマンドを実行するルーティング エンジン(要求元のルーティング エンジン)は、まず設定をコミットします。次に、要求元のルーティング エンジンは、その候補コンフィギュレーションをコピーして応答側のルーティング エンジンに読み込みます。各ルーティング・エンジンは、コミットする前に候補コンフィギュレーション・ファイルに対して構文チェックを行います。コミットの同期プロセスは、一度に 1 つのルーティング エンジンで行われます。
エラーが見つからなければ、コンフィギュレーションが有効になり、両方のルーティング エンジンの現在の動作コンフィギュレーションとなります。
いずれかのルーティング エンジンでコミットが失敗した場合、コミット プロセスはもう一方のルーティング エンジンでもロールバックされます。このセーフガードにより、両方のルーティングエンジンの設定を同じにすることができます。
設定に大量のテキストや多数のapplyグループが含まれている場合、コミット時間が必要以上に長くなることがあります。
例えば、両方のルーティング エンジンを同じ設定にすることができます。このシナリオでは、re1 (
要求ルーティング エンジン)
にログインしている場合は、re1
で commit synchronize
コマンドを発行します。ルーティングエンジンre1
、その候補コンフィギュレーションをコピーしてre0
(応答ルーティングエンジン)に読み込みます。そして、両方のルーティング・エンジンが、コミットされる候補コンフィギュレーション・ファイルに対してシンタックス・チェックを実行します。エラーが見つからなければ、re1
候補コンフィギュレーションが起動し、両方のルーティング エンジンの現在の動作コンフィギュレーションとなります。
commit synchronize
コマンドを発行する場合、グループre0
と re1.
を使用する必要があります。apply-groups
ステートメントの使用方法については、 設定グループの適用を参照してください。
あるルーティング エンジンの現在の運用設定ファイルを、他のルーティング エンジンの設定ファイルと同期させることができます。これを行うには、同期元のルーティングエンジンにログインし、 commit synchronize
コマンドを発行します。
例:
[edit]
user@host# commit synchronize
re0:
configuration check succeeds
re1:
commit complete
re0:
commit complete
システムの再起動中に無効な設定のため、バックアップ ルーティング エンジンが部分的にしかコミットされない場合があります。この場合、プライマリ ルーティング エンジンから force
オプションを指定した commit synchronize
コマンドは機能しません。
commit synchronize
コマンドは、応答するルーティング エンジンにコミットされていない設定変更がある場合は機能しません。ただし、force
オプションを使用して、ルーティング エンジンでコミットの同期を強制することはできます。一方のルーティング・エンジンから force
オプションを付けて commit synchronize
コマンドを発行すると、もう一方のルーティング・エンジンでのコンフィギュレーション・セッションは終了します。これらのセッションがもう一方のルーティング エンジンで終了すると、その設定は、コマンドを発行したルーティング エンジンの設定と同期されます。
force
オプションは、commit synchronize
コマンドの失敗の原因となった問題を解決できない場合にのみ使用することをお勧めします。
ルーティングエンジンで commit synchronize
を強制するには、同期元のルーティングエンジンにログインします。次に、 force
オプションを指定して コマンドを実行します。
例:
[edit]
user@host# commit synchronize force
re0:
re1:
commit complete
re0:
commit complete
[edit]
user@host#
デバイスでノンストップルーティングを有効にしている場合、設定を変更した後、プライマリルーティングエンジンから commit synchronize
コマンドを入力します。バックアップのルーティング エンジンでこのコマンドを入力すると、ソフトウェアは警告を表示し、設定をコミットします。
commit synchronize scripts
コマンドを使用して、ルーティング エンジンの設定とすべてのコミット、イベント、lib、op、SNMP スクリプトを他のルーティング エンジンと同期させることができます。要求元のルーティング エンジンに load-scripts-from-flash
ステートメントを設定すると、デバイスはスクリプトを同期します。デバイスは、要求元のルーティング エンジンのフラッシュ メモリから応答するルーティング エンジンのフラッシュ メモリにスクリプトを同期させます。それ以外の場合、デバイスは、要求元のルーティング エンジンのハード ディスクから応答するルーティング エンジンのハード ディスクにスクリプトを同期させます。デバイスは、スクリプトが構成で有効になっているか、前回の同期以降に更新されたかに関係なく、すべてのスクリプトを同期します。
ルーティングエンジンのコンフィギュレーション・ファイルとすべてのスクリプトを他のルーティング・エンジンと同期させるには、同期したいルーティング・エンジンにログインし、 commit synchronize scripts
コマンドを発行します。
例:
[edit]
user@host# commit synchronize scripts
re0:
configuration check succeeds
re1:
commit complete
re0:
commit complete
要求元のルーティングエンジンのコミットチェック操作が失敗した場合、プロセスは停止し、スクリプトは応答するルーティングエンジンにコピーされません。応答するルーティング エンジンのコミット チェックまたはコミット操作が失敗した場合でも、スクリプトは同期されたままになります。同期は、応答するルーティングエンジンでのコミットチェック操作の前に行われるため、スクリプトは同期されたままです。
[edit system scripts]
階層レベルに synchronize
ステートメントを含めると、commit synchronize
コマンドを発行するたびにスクリプトが同期されます。
[edit system scripts] synchronize;
コミットされた設定を自動的に同期するように複数のルーティングエンジンを設定する
デバイスに複数のルーティングエンジンがある場合、 commit synchronize
コマンドを発行することで、1つのルーティングエンジンにその設定を他のルーティングエンジンと同期させるように手動で指示することができます。
コンフィギュレーションがコミットされるたびにルーティング・エンジンが自動的に同期されるようにするには、[edit system]
階層レベルで commit synchronize
ステートメントを含めます。
[edit system] commit synchronize;
commit
コマンドを実行したルーティングエンジン(要求元のルーティングエンジン)は、その候補コンフィギュレーションを他の(応答側の)ルーティングエンジンにコピーし、読み込みます。そして、すべてのルーティング・エンジンは、コミットされる候補コンフィギュレーション・ファイルに対してシンタックス・チェックを実行します。エラーが見つからなければ、コンフィギュレーションが有効になり、すべてのルーティング エンジンの現在の動作コンフィギュレーションとなります。
コミット同期プロセスでは、プライマリ ルーティング エンジンが設定をコミットし、設定のコピーをバックアップ ルーティング エンジンに送信します。その後、バックアップのルーティング エンジンがコンフィギュレーションをロードしてコミットします。そのため、プライマリとバックアップのルーティングエンジン間のコミット同期は、一度に1つのルーティングエンジンで行われます。設定のテキストサイズが大きい場合やapply-groupsが多い場合は、コミット時間が必要以上に長くなることがあります。