Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos XML プロトコルを使用した設定オブジェクトの保護または保護解除

protect属性は、選択した設定階層とステートメントを変更できないようにします。保護された要素は、CLIを介して手動で変更することも、コミットスクリプトやリモートプロシージャコールを使用して自動的に変更することもできます。保護されたステートメントまたは保護された階層内で設定変更を加えようとすると、デバイスから警告が発行され、設定変更は失敗します。

設定階層またはステートメントが保護されている場合、ユーザーは以下のアクティビティを実行できません。

  • 保護された階層内の階層、またはステートメント、または識別子を削除または変更します (保護された要素を含む保護されていない階層を削除すると、保護されていない子要素はすべて削除され、保護された子要素はすべて保持されます)。

  • 保護された階層内に新しい設定ステートメントまたは識別子を挿入します

  • 保護されたステートメント、保護された階層内のステートメントまたは識別子の名前を変更します

  • 保護された階層に設定をコピーする

  • 保護されたステートメントまたは保護された階層内のステートメントを有効化または無効化します

  • 保護されたステートメントまたは階層、または保護された階層内のステートメントに注釈を付けます。

存在しない設定ステートメントまたは階層を保護する場合、デバイスはまず設定要素を作成してから保護します。保護されていないステートメントまたは要素の保護を解除した場合、アクションは実行されません。

設定を表示するときに、保護された要素を識別できます。 表1は 、さまざまな形式の設定データで保護された要素を特定する方法を示しています。

表1:保護された要素の識別
フォーマット 識別子

設定モードコマンド

protectコマンドは、保護された要素を示しています。

JSON

保護された階層とステートメントは、属性リストに "protect" : true 属性を含みます。

テキスト

保護された要素の先頭には protect:が付きます。

XML

protected 要素の開始タグには、 protect="protect" 属性が含まれています。

手記:

ユーザーまたはクライアントアプリケーションは、設定オブジェクトを保護または保護解除するために、設定を変更する権限を持っている必要があります。

JunosデバイスとのNETCONFまたはJunos XMLプロトコルセッションで、設定要素を変更から保護したり、以前に保護された要素の保護を解除したりするために、クライアントアプリケーションはまず、 Junos XMLプロトコルを使用した設定要素の作成、変更、または削除で説明されているタグ要素を含めます。

XML

Junos XML タグ要素を使用して設定を表す場合、クライアントアプリケーションはオブジェクトの開始タグに protect="protect" または unprotect="unprotect" 属性を含めます。アプリケーションには、必要な識別タグ要素が含まれます。次のサンプル RPC では、identifier タグ要素は <name> と呼ばれます。

手記:

YANG 準拠の NETCONF セッションでは、タグ要素に xmlns:jcmd="http://yang.juniper.net/junos/jcmd" 属性と jcmd:protect="(true | false)" 属性を含めることで、XML データの設定要素を保護または保護解除できます。詳細については、 JunosデバイスのYANGメタデータ注釈を参照してください。

テキスト

フォーマットされたASCIIテキストを使用してオブジェクトを保護または保護解除する場合、必要に応じて、アプリケーションは要素の前に protect: または unprotect: 運用担当者を付けます。階層レベルを保護していて、その階層の下に追加の子要素がない場合は、要素ステートメントの後にセミコロンを追加します。

設定モード(設定)コマンド

設定モードコマンドを使用してオブジェクトを保護する場合、アプリケーションはCLI設定モードコマンドに相当する protect または unprotect コマンドを指定します。階層と個々のステートメントの両方を保護できます。

JSON

JSON 設定データを使用して設定を表す場合、クライアントアプリケーションは、オブジェクトの属性リストに適切な属性を含めることで、オブジェクトを保護または保護解除します。クライアントには、オブジェクトを保護するための "protect" : true 属性と、オブジェクトの保護を解除するための "protect" : false または "unprotect" : true 属性が含まれます。識別子を持つオブジェクトを保護または保護解除するために、クライアントはオブジェクトの識別子も含めます。

以下の汎用JSON設定は、階層、識別子を持つオブジェクト、およびリーフステートメントを保護する場合の属性の配置を示しています。

手記:

JSON を使用して表されるJunos OS設定データでは、 "protect" および "unprotect" 属性の値はブール値であり、小文字で表され、引用符で囲まれていません。

手記:

YANG 準拠の NETCONF セッションでは、ステートメントのメタデータオブジェクトに "junos-configuration-metadata:protect" : (true | false) アノテーションを含めることで、JSON データ内の設定オブジェクトを保護または保護解除できます。詳細については、 JunosデバイスのYANGメタデータ注釈を参照してください。

次の例では、Junos XML タグ要素を使用して、設定の [edit access] 階層レベルを保護しています。

保護された後、 [edit access] 階層レベルを変更しようとすると警告が生成されます。次の RPC は、 [edit access] 階層レベルを削除しようとします。その階層レベルは保護されているため、サーバーは階層が保護されているという警告を返し、設定変更は失敗します。