元の YANG と OpenConfig YANG

YANG について

Yet Another Next Generation(YANG)は、ネットワーク管理プロトコルを介して転送されるデータを定義するためのデータモデリング言語です。YANG は、ツリーデータ構造を定義する主要な構造と、デバイス構成と動作ステータスを表すために一般的に使用されるさまざまなタイプを定義しています。

YANG はテキスト言語であり、モデルの定義に使用できます。Cisco NX-OSは、次の YANG モデルをサポートします。

  • Cisco NX-OS-device

    これは、DME REST 定義を反映した Cisco NX-OS 独自の YANG モデルです。このドキュメントでは、このモデルを「デバイス」または「オリジナル」モデルと呼びます。NX-OS デバイス上でのフルアクセスが必要な場合は、「オリジナル」モデルを使用することをお勧めします。詳細については、『NX- API REST』ガイドを参照してください。

  • Open Config

    このモデルの主な目的は、ネットワーク管理全体の共通機能を抽象化することです。出力は YANG モデルのコレクションであり、Open Config モデルと呼ばれます。詳細については、「OpenConfig YANG について」を参照してください。

    NX-OS でサポートされているモデルを確認するには、『Yang NX リポジトリ』ガイドを参照してください。Open Config YANG モデルは、 Cisco NX-OS のリリースに基づいてグループ化されます。

この章では、オリジナルモデルと Open Config モデルの使用方法と制限事項について説明します。

Cisco デバイス YANG

Cisco NX-OSは、構成と状態の一元化されたビューを表す単一の DME データベースを保持します。セキュアな NX- API RESTインターフェイスを介して DME にアクセスできます。標準規格の YANG セマンティクスに基づいて動作させる場合は、以下のオリジナル YANG の名前空間からデバイスにアクセスできます。

Cisco-NX-OS-device - http://cisco.com/ns/yang/cisco-nx-os-device.


(注)  


デバイス YANG の URL は、一意の名前空間識別子を定義するために使用されます。上記の URL は例であり、実際にアクセス可能な HTTP URL ではありません。


注意事項と制約事項

元の YANG は DME データベースを表しており、標準規格の YANG 動作に従っていない動作を継承します。YANG モデルのガイドラインと制限事項は次のとおりです。

  • プロパティが数値の場合、DME は特定の値の文字列エイリアスの定義をサポートします。プロパティは、エイリアスまたは数値を使用して構成できます。DME はエイリアスを数値に変換します。YANG 標準を厳守する場合は、エイリアスの使用を避けてください。

  • プロパティがビットマスクの場合、DME は特別なキーワード(+-)をサポートします。ビットマスク範囲の数値を徐々に変更するためのものです。このシンタックスはデバイス YANG で表示されますが、YANG に準拠してはいません。YANG 標準を厳守する場合は、特別なキーワードの使用を避けてください。

  • デバイス YANG では、エフェメラルパスはコメント Ephemeral data で識別されます。これらのパスは、NX-OS 固有の非永続的な大容量データであり、他のモデルとは異なる方法で管理されます。<GET> クエリの <FILTER> パラメータに、コメントでマークされた要素に固有のマークがある場合にのみ、取得できます。詳細については、「エフェメラルデータのサポート」を参照してください。

  • Cisco NX-OS リリース 10.4(3)F 以降、YANG は 92348GC-X でサポートされます。

DME からデバイス YANG への移行

Cisco NX-OS DME インターフェイスをよく理解している場合は、既存の DME をデバイス YANG に移行できます。スイッチは、DME モデルとデバイス YANG モデルの間で 1 対 1 の対応を維持します。

次の表に、DME およびデバイス YANG の VRF の表現を示します。

DME デバイス YANG
sys
  +- name
  +- inst
  |    +- name = default
  +- inst
       +- name = management
System
  +- name
  +- inst-items
       +- Inst-list
       |    +- name = default     
       +- Inst-list
            +- name = management

DME モデルをデバイス YANG モデルに移行する場合は、以下のガイドラインに従ってください。

  • ルート要素「sys」MO は、YANG モデルでは「System」ルート要素として表されます。

  • YANG モデルでは、DME MO はサフィックス「-items」で表されます。

  • DME MO に同じタイプの子がある場合、デバイス YANG モデルは子ごとに中間親ノードを追加し、サフィックス「-list」を使用してリストを表します。この動作は OpenConfig と同じです。

  • DME プロパティ名は、デバイス YANG モデルでも同じままです。

OpenConfig YANG について

OpenConfig YANG モデルは、宣言型の構成やモデル駆動型の管理と操作など、高度なネットワーキングの標準をサポートしています。OpenConfig は、ネットワークを構成およびモニタリングするためのビジネスデータモデルです。このデータモデルは、サブスクリプションとイベント更新ストリーミングにより、プルモデルからプッシュモデルへの移行を支援します。

Cisco NX-OS は、BGP、OSPF、インターフェイス L2 および L3、VRF、VLAN、TACAC などの幅広い機能領域をサポートしています。

注意事項と制約事項

OpenConfig YANG モデルのガイドラインと制限事項は次のとおりです。

引き続き必要なガイドラインと制限事項

  • ネットワーキングプロトコルでは、別の方法で L2 MACを追加できます。MAC リーフスイッチプロパティ値を入力として NETCONF GET 操作を実行する場合は、MAC アドレスの文字を大文字フォーマット(AA:AA:AA:AA:AA:AA)で入力することをお勧めします。たとえば、source-mac: 0A:0B:0C:0D:0E:0F です。

OpenConfig パス

表 1. OpenConfig IP
パス 説明
…/oc-ip:ip
…/oc-ip:prefix_length

IPv4 および IPv6 アドレスの場合、IP アドレス フィールド(oc-ip:ip および oc-ip:prefix_length)の削除で同じ操作を提供する必要があります。

次に例を示します。

oc-ip:ip: remove 
 oc-ip:prefix_length: remove
表 2. OpenConfig ネットワークインスタンス
パス 説明
bgp

OpenConfig YANG ネットワークインスタンス(OCNI)を使用して、BGP ルーティングインスタンスを削除するのではなく、デフォルトの VRF の BGP 構成のみを削除しようとしても、プロトコルまたは BGP レベルで BGP 情報を削除することはできません。ペイロードに自律システム番号を入力し、デフォルトVRF の設定のみを削除することはできますが、BGP ルーティングインスタンスを削除することはできません。

以下は、BGP のデフォルト VRF で構成を削除するために使用するペイロードの例です。

<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="101">
<edit-config>
<target>
<running/>
</target>
<config>
<network-instances xmlns="http://openconfig.net/yang/network-instance">
<network-instance>
<name>default</name>
<protocols>
<protocol> <identifier>BGP</identifier>
<name>bgp</name>
<bgp xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" nc:operation="delete">
<global>
<config>
<as>100</as>
</config>
</global>
</bgp>
</protocol>
</protocols>
</network-instance>
</network-instances>
</config>
</edit-config>
</rpc>

予期される動作:BG ルーティングインスタンスが削除されることを予期します。これは、 no rout bgp 100 の構成と同様です。

実際の動作:デフォルト VRF の BGP 構成のみが削除されます。同等の結果になる単一の CLI 構成はありません。

以下で言及されているのは、削除操作前の実行構成です。

router bgp 100
router-id 1.2.3.4 address-family ipv4 unicast
vrf abc
address-family ipv4 unicast maximum-paths 2

以下で言及されているのは、削除操作後の実行構成です。

router bgp 100
vrf abc
address-family ipv4 unicast
  maximum-paths 2
.../set-med

OpenCofig NETCONF を経由し、同じルートマップ内のメトリックを使用して、 set-med コマンドと OSPF コマンドにより BGP アクションを構成しないでください。OSPF コマンドメトリックは、BGP set-med プロパティを介した場合、成功するからです。

2 つの異なるルートマップを使用して、OSPF アクションでメトリックを設定する必要があります。個別のルートマップを使用して、BGP アクションで set-med を使用します。

Cisco は、単一のペイロードで、BGP アクションのメトリックを OSPF アクションに変更したり、OSPF アクションをルートマップの BGP アクションに変更したりしないことをお勧めします。

…/is-reachability

システム ID をキーとして IS-IS のis 到達可能性 を検索すると、オリジナルの DME がすべてのエントリを返します。しかし、OpenConfig はメトリック値が最大のエントリを 1 つだけ返します。

…/bgp/global/config/as

有効な BGP インスタンスを使用するには、自律システム (AS) 番号を指定する必要があります。AS 番号にはデフォルト値が存在しないため、BGP インスタンスを削除しないで NETCONF/OPENCONFIG<asn> を削除しようとすると、次の強調表示されたエラーメッセージが表示されます。

764
<nc:rpc xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:1ea09de2-605e-46aa-984b-9dfdad03354d">
<nc:edit-config>
<nc:target>
<nc:running/>
</nc:target>
<nc:config>
<network-instances xmlns="http://openconfig.net/yang/network-instance">
<network-instance>
<name>default</name>
<protocols>
<protocol>
<identifier>BGP</identifier>
<name>bgp</name>
<bgp>
<global>
<config nc:operation="delete"> <as>100</as>
</config>
</global>
<neighbors>
<neighbor>
<neighbor-address>1.1.1.1</neighbor-address>
<enable-bfd xmlns="http://openconfig.net/yang/bfd">
<config>
<enabled>true</enabled>
</config>
</enable-bfd>
</neighbor>
</neighbors>
</bgp>
</protocol>
</protocols>
</network-instance>
</network-instances>
</nc:config>
</nc:edit-config>
</nc:rpc>
## Received:
<rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:1ea09de2-605e-46aa-984b-9dfdad03354d">
<rpc-error>
<error-type>protocol</error-type>
<error-tag>operation-failed</error-tag>
<error-severity>error</error-severity>
<error-message xml:lang="en">invalid property value , for property asn, class bgpInst</error-message>
<error-path>/config/network-instances</error-path>
</rpc-error>
<rpc-error>
<error-type>protocol</error-type>
<error-tag>operation-failed</error-tag>
<error-severity>error</error-severity>
<error-message xml:lang="en">invalid property value , for property asn, class bgpInst Commit Failed</error-message>
<error-path>/config/network-instances</error-path>
</rpc-error>
</rpc-reply>

…/protocol/ospf

  • OSPF でエリア構成を構成してから削除した場合、削除されたエリア(古いエントリ)が引き続き DME に表示されます。これらエリアは、OpenConfig YANG の GETCONFIG/GET 出力に表示されます。

  • ユーザーは、OSPF ポリシー match ospf-area 構成で、OpenConfig YANG の 1 つのエリアを構成できます。match ospf-area 100 101 などのように、複数のエリアを構成することもできます。ただし、OpenConfig YANG で構成できるのは、1 つのエリアのみです。

    たとえば、 match ospf-area 100 と入力します。

  • 同じエリアリストで、エリア仮想リンクと、エリアインターフェイス構成ペイロードの両方を構成することはできません。同じペイロード内で、エリアコンテナペイロードを、仮想リンクエリアと、インターフェイスエリアに分割したことを確認してください。

  • OSPF OpenConfig YANG では MD5 認証文字列は構成できません。

    OSPF モデルでは、認証に対して認証タイプが定義されています。
    leaf authentication-type {
    type string;
    description
    "The type of authentication that should be used on this interface";
    }
  • OSPF OpenConfig YANG は、認証パスワードのオプションをサポートしていません。

  • OSPF エリア認証構成はサポートされていません。たとえば、area 0.0.0.200 authentication message-digest は、OpenConfig YANG から設定できません。

  • デフォルトVRF にある OSPF または BGP インスタンス構成は削除できません。たとえば、router ospf 1/router bgp 1 で、デフォルトのネットワークインスタンスを使用してプロトコルコンテナを削除することはできません。

  • OpenConfig YANG を介してインターフェイスを追加しようとすると、OSPFv2 がエラー応答を送信することがあります。問題がある場合、インターフェイスを追加することはできず、RPC 応答には次のようなリストマージ失敗エラーが表示されます。
    <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="urn:uuid:39507023-8569-4cf8-869c-e19aaf76a260">
    <rpc-error>
    <error-type>protocol</error-type>
    <error-tag>operation-failed</error-tag>
    <error-severity>error</error-severity>
    <error-message xml:lang="en">List Merge Failed: operation-failed</error-message>
    <error-path>/network-instances/network-instance/protocols/protocol/ospfv2/areas/area/interfaces/interface/id</error-path> 
    </rpc-error>
    </rpc-reply>
    
表 3. OpenConfig ルーティングポリシー
パス 説明

/bgp-defined-sets/community-sets/community-set/

/bgp-defined-sets/as-path-sets/as-path-set/

community-set および as-path-set のアクションタイプは常に permit です。

OpenConfig YANG には、community-set および as-path-set の CLI にあるようなアクションタイプの概念はありません。したがって、community-set および as-path-set のアクション タイプは常に permit です。

/bgp-defined-sets/community-sets/community-set/

/bgp-defined-sets/as-path-sets/as-path-set/

community-set および as-path-set のアクションタイプは常に permit です。

OpenConfig YANG には、community-set および as-path-set の CLI にあるようなアクション タイプの概念はありません。したがって、community-set および as-path-set のアクション タイプは常に permit です。

/bgp-defined-sets/community-sets/community-set/

CLI では、community-list には、標準と拡張の 2 つの異なるタイプがあります。OpenConfig YANG モデルでは、community-set-name に区別はありません。

OpenConfig YANG を使用して community-set-name を作成すると、次の変更が構成されます。

  • community-member が標準形式(AS:NN)の場合、community-set-name の後に _std サフィックスが追加されます。

  • community-member が拡張形式(正規表現)の場合、community-set-name の後に _exp サフィックスが追加されます。

    <community-set> <community-set-name>oc_commset1d</community-set-name>
    <config>
    <community-set-name>oc_commset1d</community-set-name>
    <community-member>0:1</community-member>
    <community-member>_1_</community-member>
    </config>
    </community-set>
    
上記の OpenConfig YANG 構成は、次の CLI にマップされます。
ip community-list expanded oc_commset1d_exp seq 5 permit "_1_" 
ip community-list standard oc_commset1d_std seq 5 permit 0:1

/bgp-defined-sets/community-sets/community-set/

CLI では、community-list には、標準と拡張の 2 つの異なるタイプがあります。OpenConfig YANG モデルでは、community-set-name に区別はありません。

OpenConfig YANG を使用して community-set-name を作成すると、次の変更が構成されます。

  • community-member が標準形式(AS:NN)の場合、community-set-name の後に _std サフィックスが追加されます。

  • community-member が拡張形式(正規表現)の場合、community-set-name の後に _exp サフィックスが追加されます。

    <community-set> <community-set-name>oc_commset1d</community-set-name>
    <config>
    <community-set-name>oc_commset1d</community-set-name>
    <community-member>0:1</community-member>
    <community-member>_1_</community-member>
    </config>
    </community-set>
    
上記の OpenConfig YANG 構成は、次の CLI にマップされます。
ip community-list expanded oc_commset1d_exp seq 5 permit "_1_" 
ip community-list standard oc_commset1d_std seq 5 permit 0:1

/bgp-conditions/match-community-set/config/community-set/

OpenConfig YANG は 1 つのコミュニティ セットにのみマッピングできますが、CLI はコミュニティ セットの複数のインスタンスに一致できます。

  • CLI の場合:
    ip community-list standard 1-1 seq 1 permit 1:1
     ip community-list standard 1-2 seq 1 permit 1:2
     ip community-list standard 1-3 seq 1 permit 1:3
    route-map To_LC permit 10
     match community 1-1 1-2 1-3
    
  • 対応する OpenConfig YANG ペイロードは次のとおりです。
    <config>
    <routing-policy xmlns="http://openconfig.net/yang/routing-policy">
    <defined-sets>
    <bgp-defined-sets xmlns="http://openconfig.net/yang/bgp-policy">
    <community-sets>
    <community-set> <community-set-name>cs</community-set-name>
    <config>
    <community-set-name>cs</community-set-name>
    <community-member>1:1</community-member>
    <community-member>1:2</community-member>
    <community-member>1:3</community-member>
    </config>
    </community-set>
    </community-sets>
    </bgp-defined-sets>
    </defined-sets>
    <policy-definitions>
    <policy-definition>
    <name>To_LC</name>
    <statements>
    <statement>
    <name>10</name>
    <conditions>
    <bgp-conditions xmlns="http://openconfig.net/yang/bgp-policy">
    <match-community-set>
    <config>
    <community-set>cs</community-set>
    </config>
    </match-community-set>
    </bgp-conditions>
    </conditions>
    </statement>
    </statements>
    </policy-definition>
    </policy-definitions>
    </routing-policy>
    </config>
    
    回避策として、OpenConfig YANG を介して複数のステートメントを持つ 1 つのコミュニティを作成します。
    ip community-list standard cs_std seq 5 permit 1:1
     ip community-list standard cs_std seq 10 permit 1:2
     ip community-list standard cs_std seq 15 permit 1:3
    route-map To_LC permit 10 match community cs_std

/bgp-conditions/state/next-hop-in

OpenConfig YANG では、next-hop-in タイプは IP アドレスですが、CLI では IP プレフィックスです。OpenConfig YANG を介して next-hop-in を作成する際、IP アドレスは CLI 設定で「/32」マスク プレフィックスに変換されます。以下は、OpenConfig YANG ペイロードの next-hop-in の例です。
<policy-definition>
<name>sc0</name>
<statements>
<statement>
<name>5</name>
<conditions>
   <bgp-conditions xmlns="http://openconfig.net/yang/bgp-policy">
<config>
<next-hop-in>2.3.4.5</next-hop-in>
</config>
</bgp-conditions>
</conditions>
</statement>
</statements>
</policy-definition>
以下は、CLI での同じ情報の例です。
ip prefix-list IPV4_PFX_LIST_OPENCONFIG_sc0_5 seq 5 permit 2.3.4.5/32 
route-map sc0 permit 5 match
 ip next-hop prefix-list IPV4_PFX_LIST_OPENCONFIG_sc0_5

/bgp-actions/set-community/config/method

enum "REFERENCE" はサポートされていません

/bgp-actions/config/set-next-hop

enum "SELF" はサポートされていません

/bgp-conditions/match-community-set/config/community-set

match community <community-set>_std にのみマップした場合、標準コミュニティのみがサポートされます。拡張コミュニティ セットへのマッチングはサポートされていません。

…/match-tag-set

tag-sets の定義済みセットは現在実装されていないため、match-tag-set の置換には制限があります。

現在、match-tag-set を置き換えると、値が追加されます。match-tag-set を置き換えるには、それを削除してから、もう一度作成します。
表 4. OpenConfig インターフェイス
パス 説明

interfaces/interface/ethernet/switched-vlan/config/interface-mode

トランク モード インターフェイスとトランク VLAN を同じ OpenConfig ペイロードで同時に構成しようとしても、構成は正常に完了しません。ペイロードを分割し、トランク モード インターフェイスを構成してからトランク VLAN を構成すると、構成は正常に行われます。

Cisco NX-OS インターフェイスでは、インターフェイス モードのデフォルト値は access です。トランク関連の構成を実装するには、最初にインターフェイス モードを trunk に変更してから、トランク VLAN 範囲を構成する必要があります。これらの構成は、個別のペイロードで行います。

次の例は、トランク モードと VLAN 範囲を構成するための個別のペイロードを示しています。

次の例は、インターフェイスをトランク モードに構成するペイロードを示しています。
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="101">
<edit-config>
<target>
<running/>
</target>
<config>
<interfaces xmlns="http://openconfig.net/yang/interfaces">
<interface>
<name>eth1/47</name>
<subinterfaces>
<subinterface>
<index>0</index>
<config>
<index>0</index>
</config>
</subinterface>
</subinterfaces>
<ethernet xmlns="http://openconfig.net/yang/interfaces/ethernet"> <switched-vlan xmlns="http://openconfig.net/yang/vlan">
<config>
<interface-mode>TRUNK</interface-mode>
</config>
</switched-vlan>
</ethernet>
</interface>
</interfaces>
</config>
</edit-config>
</rpc>
次に、VLAN 範囲を構成するペイロードを示します。
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="101">
<edit-config>
<target>
<running/>
</target>
<config>
<interfaces xmlns="http://openconfig.net/yang/interfaces">
<interface>
<name>eth1/47</name>
<subinterfaces>
<subinterface>
<index>0</index>
<config>
<index>0</index>
</config>
</subinterface>
</subinterfaces>
<ethernet xmlns="http://openconfig.net/yang/interfaces/ethernet"> <switched-vlan xmlns="http://openconfig.net/yang/vlan">
<config>
<native-vlan>999</native-vlan>
<trunk-vlans xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
nc:operation="delete">1..4094</trunk-vlans>
<trunk-vlans>401</trunk-vlans>
<trunk-vlans>999</trunk-vlans>
</config>
</switched-vlan>
</ethernet>
</interface>
</interfaces>
</config>
</edit-config>
</rpc>

interfaces/interface/ethernet/switched-vlan/config/trunk-vlans

OpenConfig YANG の制限により、ペイロード内の VLAN とインターフェイスで構成された VLAN との間で VLAN の構成が重複しないようにしてください。重複した場合、OpenConfig による構成は失敗します。

インターフェイスに設定されている VLAN が、OpenConfig ペイロードの VLAN と異なり、VLAN 範囲に関して適切であることを確認してください。

スイッチポート、shut/no shut、MTU、および mac-address の場合は次のとおりです。

スイッチポート、shut/no shut、MTU、および mac-address を設定する場合は、ASCII リロードが必要です。バイナリ結果をリロードすると、構成は失われます。

表 5. OpenConfig LACP
パス 説明

lacp/interfaces/interface/config/lacp-mode

OC-LACP を使用すると、ポートチャネル インターフェイスでポートチャネル モードを設定できます。ただし、NXOS-CLI の場合、ポートチャネルモードは、チャネルグループモードアクティブまたはパッシブを使用して、メンバーインターフェイスで構成されます。

OC-LACP はポートチャネルインターフェイスでポートチャネルモードを明示的に構成しますが、ポートチャネルインターフェイスで NX-OS の show running-config コマンドを発行しても、空または空でないポートチャネルのポートチャネルモード構成は表示されません。

メンバーをポートチャネルに追加すると、show running interface ethernet <> は、ポートチャネル モードの構成を、チャネルグループモードアクティブまたはパッシブとして表示します。

(注)  

 

OpenConfig を介して作成されたすべてのポートチャネルは、その後も OpenConfig によって管理する必要があります。

lacp/interfaces/interface/config/interval

ポートチャネルの間隔は、メンバーがシャット状態の場合にのみ変更できます。

OC-LACP 間隔はポートチャネルごとです。NX-OS LACP 間隔は、ポートチャネル メンバーごとです。この違いにより、次の動作が予想されます。

  • OpenConfig を使用してポートチャネル間隔を設定すると、ポートチャネルのすべてのメンバーに同じ設定が適用されます。

OpenConfig を使用してポートチャネル間隔を構成し、メンバーを追加します。新しいメンバーに構成を適用するために、OpenConfig を使用して間隔を構成してください。

lacp/interfaces/interface/config/system-id-mac

ポートチャネルごとの system-id-mac はサポートしていません。

LACP

次のメンバー状態データは、ポートが管理上アップ状態の場合にのみに限られます。

  • LACP

  • インターフェイス

  • インターフェイス

  • メンバー

  • 状態

次の状態コンテナは、OpenConfig ACL にインターフェイス参照レベルで実装されています。

表 6. OpenConfig ACL
パス 説明

acl/interfaces/interface/interface-ref/stateforacl/interfaces/state

該当なし

acl/interfaces/interface/interface-ref/state/interface

read-only

acl/interfaces/interface/interface-ref/state/subinterface

read-only

表 7. OpenConfig QoS
パス 説明

QoS

  • HIG (ii) ポートの統計のキューイングはサポートされていません。

  • ユニキャスト、マルチキャスト、またはブロードキャスト キューごとの tx パケット、またはバイト、およびドロップ パケットは表示されません。OC 応答に表示される統計は、qos-group ごとの ucast、mcast、および bcast キューの合計です。

  • VLAN レベルで適用される QoS ポリシーの統計をサポートしていません。

  • OC を介して取得できる入力キュー ドロップ数は、プラットフォームに応じてスライス/ポート/キュー レベルで表示できます。

次のシステム構成コンテナは、ドメイン名、ログインバナー、および motd-バナーモデルに実装されています。

表 8. OpenConfig システム
パス 説明

system/config/domain-name

System/dns-items/ prof-items/Prof-list/dom-items/name

system/config/login-banner

System/userext-items/postloginbanner-items/message

system/config/motd-banner

System/userext-items/preloginbanner-items/message

ハイスケールデータに関するガイドラインと制約事項

Cisco NX-OSは、ハイスケールデータを持つ新しい一連の動作状態として、OpenConfig パスをサポートします。ガイドラインとと制約事項は次のとおりです。

  • 最適なパフォーマンスを得るには、正確なパスを指定してデータを取得する必要があります。親レベルのパスクエリでは、同じパフォーマンスは得られません。

  • ハイスケールパスは gNMI でのみサポートされ、RESTCONF または NETCONF ではサポートされません。

  • ハイスケールパスは、suppress-redundant をサポートしていません。

  • ハイスケールパスは、gNMI ON_CHANGE サブスクリプションをサポートしていません。

パス 説明

/network-instances/network-instance/fdb/l2rib/mac-table

l2rib の親レベルのクエリは、l2rib レベルでサポートされています。たとえば、network-instances/network-instance/fdb/l2rib まではクエリできますが、fdb レベルの network-instances/network-instance/fdb ではクエリできません。

/interfaces/interface/routed-vlan/ipv4/neighbors/neighbor/state

/interfaces/interface/routed-vlan/ipv6/neighbors/neighbor/state

親レベルクエリの場合、インフラストラクチャはリスト項目のすべてのキーを取得し、これらのリスト項目ごとに、残りのデータを入力する要求が送信されます。つまり、インフラストラクチャにはバックエンドと同じツリービューが必要です。

インフラストラクチャに静的エントリのトラックがあり、バックエンドに静的エントリとダイナミックエントリがある場合を考えてみましょう。リストについては、インフラストラクチャをたどって静的エントリごとに要求が送信されるため、不完全なデータが生成されます。現在のリリースでこの制限を受けるパスは次のとおりです。

「/interfaces/interface/routed-vlan/ipv6/neighbors/neighbor/state」 および 「/interfaces/interface/routed-vlan/ipv4/neighbors/neighbor/state」です。

データには、ダイナミックと静的の両方の ARP および ND エントリが含まれています。正確な経路が指定されている場合、親経路が与えられていれば、静的エントリが含まれることになります。

/network-instances/network-instance/protocols/protocol/bgp/rib/afi-safis/afi-safi/l2vpn-evpn/loc-rib/routes

network-instances/network-instance/protocols/protocol/bgp/rib/attr-sets

/network-instances/network-instance/protocols/protocol/bgp/rib/communities

/network-instances/network-instance/protocols/protocol/bgp/rib/ext-communities

/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-peers

/network-instances/network-instance/connection-points/connection-point/endpoints/endpoint/vxlan/endpoint-vnis

OpenConfig サポートの構成

NETCONF、RESTCONF、および gRPC などのプログラマビリティエージェントで、OpenConfig サポートを有効または無効にします。

手順の概要

  1. configureterminal
  2. featureopenconfig

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configureterminal

例:

switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

featureopenconfig

例:

グローバル コンフィギュレーション モードを開始します。

switch(config)# feature netconf

YANG バージョンのアップグレードまたはダウングレード

YANG モデル は、論理的にサポートされている構成または状態の集合です。このモデルは、以前または将来の互換性リリースをサポートしていません。

Cisco NX-OSは、1 つのリリースで複数の YANG バージョンをサポートしていません。各 NX-OSリリースは、特定の認可された YANG コレクションをサポートします。それぞれの NX-OS リリースについては、「Yang NX リポジトリ」を参照してください。

NX-OS リリースをアップグレードまたはダウングレードすると、サポートされる YANG モデルにいくらかの変更が生じます。YANG モデルを確認し、適切なアクションを実行する必要があります。

変更 推奨

追加されたパス

追加の YANG パスを処理する方法を評価できます。

変更されたパス

これは、プロパティタイプが整数から浮動小数点数に変更されたためです。それに応じてクライアント側のロジックを更新する必要があります。

パスが削除された

OpenConfig では、コミュニティが、ベンダー間で適用されないパスの削除を決定します。このような場合に対応する機能を使用するには、デバイス YANG や CLI などの他のインターフェイスを介してアクセスします。

YANG 向けの RBAC

Cisco NX-OSは、管理者以外のユーザーロールによる YANG パスへの書き込み権限をサポートします。

注意事項と制約事項

次に、YANG の RBAC のガイドラインと制限事項を示します:

  • ロール network-admin を持つユーザーには、書き込みアクセス権があります。このユーザーは、管理者以外のグループに他の編集権限を付与できます。

  • ユーザーロール network-admin にのみ、読み取りアクセス権があります。

  • RBAC は、管理者以外のユーザーロールへ、ルートシステムアクセス権を提供しません。

  • RBAC は、管理者以外のユーザーロールへ、パス System/yangrbacdb-items または System/rbacdb-items へのアクセス権を提供しません。これらのユーザーロールは、自分のロールのアクセス権を変更できないよう制限されています。

  • RBAC の承認は、候補ではなく実行構成でサポートされます。候補構成は NETCONF でサポートされ、RESTCONF または gNMI ではサポートされません。Cisco では、単一トランザクションの実行構成で RBAC を構成することを推奨しています。候補構成を使用して RBAC を変更する場合は、 RBAC 自体を変更してコミットすることをお勧めします。RBAC 構成と通常の構成を同時に変更しないでください。このような場合、候補構成での RBACの変更は、実際には変更されません。

  • パスの最後の要素とそのサブツリーへのアクセスを提供していることを確認します。たとえば、パス「x/y/z」の場合、最後のパス要素と子ツリーを変更するためのアクセスをユーザーに提供します。

  • 同じパス内の特定の親または子ノードへの書き込みアクセス権を提供する場合、それらのルールを単一のルールにまとめる構文はありません。個別に設定する必要があります。

    たとえば、次のルールは、priv-9 へのアクセスを提供して、すべてのインターフェイスの説明を変更します。ただし、特定の SVI インターフェイスの 2 つのプロパティを変更することはできます。これらのルールをまとめることはできません。

    • interfaces/interface/description (priv-9)

    • interfaces/interface[id=vlan100]/type (priv-9)

    • interfaces/interface[id=vlan100]/enabled (priv-9)

  • RBAC は最大 512 のルールをサポートします。

  • RBAC ユーザーロールは前方参照をサポートします。

    • ユーザーロールは、存在しないロールを指定できます。

    • ユーザーロールは、存在しない yang パスを指定できます。

  • 次の構文を確認してください。

    • 特定のワイルドカード文字を追加しないでください。

    • 名前空間の文字列は、最初の要素にのみ追加してください。

    • パスの先頭に「/」を追加しないでください。

    • 「system」文字列のみのパスは使用できません。

  • RBAC は、NETCONF の既存の制限、none 動作には影響しません。

YANG RBAC の構成

特定のユーザーロールへの yang パスを構成します。

手順の概要

  1. cofnigureterminal
  2. rbacyang-ruleyang-pathrole
  3. allow-writes

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

cofnigureterminal

例:

switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

rbacyang-ruleyang-pathrole

例:

switch(config)# rbac yang-rule
System/intf-items/aggr-items/AggrIf-list[id=po101] network-operator

例:

switch(config)# rbac yang-rule openconfig-interface:interfaces/interface[name=vlan100]/desc priv-9

ユーザーロールへの yang パスを構成します。パスはデバイスまたは OpenConfig YANG パスのいずれかです。

ステップ 3

allow-writes

例:

switch(config)# allow-writes

書き込み権限を有効にします。

YANG のトラブルシューティング

次のコマンドを使用して、YANG の構成を確認できます。具体的には、「機能 OpenConfig」の有効化を確認します。

特定のエージェントの読み取りまたは書き込み操作に関連する問題については、それぞれのエージェントのトラブルシューティングガイドを参照してください。

コマンド 説明

show running-config openconfig

OpenConfig が有効になっているかどうかを確認します。

show openconfig nxsdk event-history { event | errors }

OpenConfig 機能のデバッグを確認します。

show telemetry yang direct-path cisco-nxos-device

サポートされているパスを表示します。