このセクションでは、データストアの操作とクエリのためにサポートされている NETCONF 操作について説明します。クライアントは、NETCONF エージェントとのセッションを確立した後、これらの操作の RPC メッセージを送信できます。これらの操作の基本的な使用方法について説明しています。詳細については、RFC 6242 を参照してください。
<get-config>
この操作により、指定したデータストアの構成データを取得します。サポートされるパラメータは <source>
と <filter>
です。<source>
は、<running/>
のように、クエリの対象となるデータストアを指定します。これは現在アクティブな構成を保持しています。<filter>
は、指定されたデータストアのうち、どの部分を取得するかを指定します。
次に、<get-config>
を使用する要求および応答メッセージの例を示します。
-
全体を取得します。<System>サブツリー:
<rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<get-config>
<source>
<running/>
</source>
<filter>
<System xmlns="http://cisco.com/ns/yang/cisco-nx-os-device"/>
</filter>
</get-config>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="101">
<data>
<System xmlns="http://cisco.com/ns/yang/cisco-nx-os-device">
...
</System>
</data>
</rpc-reply>
-
特定のリスト項目を取得します。
<rpc message-id="102" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<get-config>
<source>
<running/>
</source>
<filter>
<System xmlns="http://cisco.com/ns/yang/cisco-nx-os-device">
<bgp-items>
<inst-items>
<dom-items>
<Dom-list>
<name>default</name>
</Dom-list>
</dom-items>
</inst-items>
</bgp-items>
</System>
</filter>
</get-config>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="102">
<data>
<System xmlns="http://cisco.com/ns/yang/cisco-nx-os-device">
<bgp-items>
<inst-items>
<dom-items>
<Dom-list> <name>default</name>
...
<rtctrl-items>
<enforceFirstAs>enabled</enforceFirstAs>
<fibAccelerate>disabled</fibAccelerate>
<logNeighborChanges>enabled</logNeighborChanges>
<supprRt>enabled</supprRt>
</rtctrl-items>
<rtrId>1.2.3.4</rtrId>
</Dom-list>
</dom-items>
</inst-items>
</bgp-items>
</System>
</data>
</rpc-reply>
<edit-config>
この操作は、指定された構成をターゲットデータストアに書き込みます。
は、<target>パラメータは、編集するデータストアを指定します。<running/>または<candidate/>。<running/> データストアを操作すると、スイッチの構成に直ちに変更が加えられます。一方、候補データストアは、変更がコミットされるまで、実行中のデータストアに影響を与えることなく操作できます。詳細については、を参照してください。<commit>セクションを参照してください。
<config>
パラメータは、ターゲットデータストアに書き込まれるモデル化されたデータを指定します。意図するモデルは「xmlns」属性で指定します。<config>
サブツリーの任意の数の要素に、それぞれ 1 つの「operation」属性を含めることができます。要素の操作は、新しい「操作」属性によってオーバーライドされるまで、その子孫要素に継承されます。サポートされている操作は、「merge」、「replace」、「create」、「delete」、および「remove」です。「operation」属性が指定されていない場合は、「merge」操作がデフォルトと見なされます。デフォルトの動作は、オプションの
<default-operation>
パラメータによって上書きできます。パラメータには「merge」、「replace」、「none」などがあります。
次に、<edit-config>
を使用する要求および応答メッセージの例を示します。
-
MTU 9216 と実行コンフィギュレーションの説明を使用して、「po5」という名前のポートチャネルを作成します。
<rpc message-id="103" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<edit-config>
<target>
<running/>
</target>
<config
xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
<System
xmlns="http://cisco.com/ns/yang/cisco-nx-os-device">
<intf-items>
<aggr-items>
<AggrIf-list xc:operation="create">
<id>po5</id>
<mtu>9216</mtu>
<descr>port-channel 5</descr>
</AggrIf-list>
</aggr-items>
</intf-items>
</System>
</config>
</edit-config>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="103">
<ok/>
</rpc-reply>
-
ポートチャネルのすべての設定を新しい設定に置き換えます。
<rpc message-id="104" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<edit-config>
<target>
<running/>
</target>
<config
xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
<System
xmlns="http://cisco.com/ns/yang/cisco-nx-os-device">
<intf-items>
<aggr-items>
<AggrIf-list xc:operation="replace">
<id>po5</id>
<mtu>1500</mtu>
<adminSt>down</adminSt>
</AggrIf-list>
</aggr-items>
</intf-items>
</System>
</config>
</edit-config>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="104">
<ok/>
</rpc-reply>
-
ポートチャネルを削除します:
<rpc message-id="105" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<edit-config>
<target>
<running/>
</target>
<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
<System xmlns="http://cisco.com/ns/yang/cisco-nx-os-device">
<intf-items>
<aggr-items>
<AggrIf-list xc:operation="delete"> <id>po5</id>
</AggrIf-list>
</aggr-items>
</intf-items>
</System>
</config>
</edit-config>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="105">
<ok/>
</rpc-reply>
<copy-config>
この操作は、ターゲットの構成データストアを、ソース構成データストア全体のコンテンツによって置き換えます。ソースデータストアとターゲットデータストアのパラメータは、それぞれ <source>
と <target>
です。
次に、<copy-config>
を使用する要求および応答メッセージの例を示します。
-
実行構成をスタートアップ構成にコピーします。
<rpc message-id="106" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<copy-config>
<target>
<startup/>
</target>
<source>
<running/>
</source>
</copy-config>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="106">
<ok/>
</rpc-reply>
-
実行構成を候補構成にコピーします。
<rpc message-id="107" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<copy-config>
<target>
<candidate/>
</target>
<source>
<running/>
</source>
</copy-config>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="107">
<ok/>
</rpc-reply>
<lock>
<lock>
操作を使用すると、クライアントは構成データストアをロックし、他のクライアントがデータストアをロックまたは変更するのを防ぐことができます。クライアントが保持しているロックは、<unlock>
セッションの操作時、またはセッションの終了時にリリースされます。<target>
パラメータは、ロックするデータストアを指定します。
次に、<lock>
を使用する要求および応答メッセージの例を示します。
-
ロックの取得に成功した場合:
<rpc message-id="108" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<lock>
<target>
<running/>
</target>
</lock>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="108">
<ok/>
</rpc-reply>
-
別のセッションですでに使用されているロックの取得に失敗しました。
<rpc message-id="109" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<lock>
<target>
<candidate/>
</target>
</lock>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="109">
<rpc-error>
<error-type>protocol</error-type>
<error-tag>lock-denied</error-tag>
<error-severity>error</error-severity>
<error-message xml:lang="en">Lock failed, lock is already held</error-message>
<error-info>
<session-id>1553704357</session-id>
</error-info>
</rpc-error>
</rpc-reply>
<unlock>
<unlock>
操作は、<lock> 操作によって取得した構成のロックをリリースします。<lock>
操作を発行したのと同じセッションでのみ、<unlock>
操作を使用できます。<target>
パラメータは、ロックを解除するデータストアを指定するために使用します。
次に、<unlock>
を使用する要求および応答メッセージの例を示します。
-
ロック解除
<rpc message-id="110" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<unlock>
<target>
<candidate/>
</target>
</unlock>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="110">
<ok/>
</rpc-reply>
<get>
<get> 操作は、実行中の構成とデバイスの状態情報を取得します。サポートされているパラメータは <filter>
です。<filter>
パラメータは、実行構成の動作状態データのうち、どの部分を取得するかを指定します。
次に、<get>
を使用する要求および応答メッセージの例を示します。
-
リスト項目の実行コンフィギュレーションおよび動作状態データを取得します。
<rpc message-id="111" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<get>
<filter>
<System
xmlns="http://cisco.com/ns/yang/cisco-nx-os-device">
<bgp-items>
<inst-items>
<dom-items>
<Dom-list>
<name>default</name>
</Dom-list>
</dom-items>
</inst-items>
</bgp-items>
</System>
</filter>
</get>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="111">
<data>
<System
xmlns="http://cisco.com/ns/yang/cisco-nx-os-device">
<bgp-items>
<inst-items>
<dom-items>
<Dom-list>
<name>default</name>
<always>disabled</always>
<bestPathIntvl>300</bestPathIntvl>
<clusterId>120</clusterId>
<firstPeerUpTs>2020-04-20T16:19:03.784+00:00</firstPeerUpTs>
<holdIntvl>180</holdIntvl>
<id>1</id>
<kaIntvl>60</kaIntvl>
<mode>fabric</mode>
<numEstPeers>0</numEstPeers>
<numPeers>0</numPeers>
<numPeersPending>0</numPeersPending>
<operRtrId>1.2.3.4</operRtrId>
<operSt>up</operSt>
<pfxPeerTimeout>90</pfxPeerTimeout>
<pfxPeerWaitTime>90</pfxPeerWaitTime>
<reConnIntvl>60</reConnIntvl>
<rtrId>1.2.3.4</rtrId>
<vnid>0</vnid> ...
</Dom-list>
</dom-items>
</inst-items>
</bgp-items>
</System>
</data>
</rpc-reply>
<validate>
この操作では、候補データストアの設定内容を検証します。これは、実行中のデータストアにコミットする前に、候補データストアで行われた設定変更を検証するのに役立ちます。<source>
パラメータは <candidate/>
をサポートします。
次に、<validate>
を使用する要求および応答メッセージの例を示します。
-
候補データストアの内容を検証します:
<rpc message-id="112" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<validate>
<source>
<candidate/>
</source>
</validate>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="112">
<ok/>
</rpc-reply>
<commit>
候補構成を実行構成にコミットします。パラメータのない操作は最終と見なされ、元に戻すことはできません。
<commit>
は、<confirmed/>
パラメータとともに発行されます。これは確認を求めるコミットと見なされ、<confirmed/>
パラメータを持たない別の <commit> 操作が続く場合にのみ、実際に確定します。つまり、コミットの確認です。確認済みコミットでは、次の 2 つのパラメータを使用できます。<confirm-timeout>および<persist>。<confirm-timeout>
は、確認を求めるコミットが発行されてから、そのコミットが元に戻されて、実行構成が復元されるまでの秒数です。その間に確認を行うコミットが発行されると、コミットは確定します。または、確認を求める別のコミットにより、タイムアウトがリセットされる場合もあります。<confirm-timeout>
が指定されていない場合の、デフォルトのタイムアウトは 600 秒です。また、セッションが終了すると、確認されたコミットは元に戻ります。<persist>
パラメータを使用すると、セッションが終了しても確認を求めるコミットは保持されます。<persist>
パラメータの値は、任意のセッションからの確認を求めるパラメータを識別するために使用されるもので、その後の確認を求めるコミットまたは確認を行うコミットの <persist-id>
パラメータの値でも使用する必要があります。
次に、<commit>
を使用する要求および応答メッセージの例を示します。
-
候補データストアの内容をコミットします。
<rpc message-id="113" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<commit/>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="113">
<ok/>
</rpc-reply>
-
タイムアウトで確定されたコミット:
<rpc message-id="114" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<commit>
<confirmed/>
<confirm-timeout>120</confirm-timeout>
</commit>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="114">
<ok/>
</rpc-reply>
-
永続的な確認済みコミットを開始し、永続的な確認済みコミットを確認します。
<rpc message-id="115" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<commit>
<confirmed/>
<persist>ID1234</persist>
</commit>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="115">
<ok/>
</rpc-reply>
<!-- confirm the persistent confirmed-commit, from the same session or another session -->
<rpc message-id="116" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<commit>
<persist-id>ID1234</persist-id>
</commit>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="116">
<ok/>
</rpc-reply>
<cancel-commit>
この操作は、進行中の確認済みコミットをキャンセルします。別のセッションからの確認を求めるコミットをキャンセルする必要がある場合、確認を求めるそのコミットの <persist>
パラメータで与えたのと同じ値を、<persist-id>
パラメータで使用する必要があります。
-
同じセッションから確認されたコミットをキャンセルします。
<rpc message-id="117" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<cancel-commit/>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="117">
<ok/>
</rpc-reply>
<discard-changes>
この操作では、実行コンフィギュレーションの内容にリセットすることによって、候補コンフィギュレーションで行われたコミットされていない変更が破棄されます。パラメータは必要ありません。
次に、<discard-changes>
を使用する要求および応答メッセージの例を示します。
-
候補データストアで行われた変更を破棄します。
<rpc message-id="118" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<discard-changes/>
</rpc>
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="118">
<ok/>
</rpc-reply>