Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos OS 実行デバイスでの YANG について

YANGは、スタンダードベースの拡張可能なデータモデリング言語で、ネットワークデバイスの設定および運用状態データ、リモートプロシージャコール(RPC)、サーバーイベント通知のモデル化に使用されます。IETF の NETMOD ワーキング グループは当初、ネットワーク管理データをモデル化し、ネットワーク設定プロトコル(NETCONF)モデルのコンテンツ層の標準を提供するために YANG を設計しました。ただし、YANGはプロトコルに依存せず、YANGデータモデルはトランスポートプロトコルやRPCプロトコルに依存せずに使用でき、ネットワーク設定プロトコルでサポートされている任意のエンコーディング形式に変換できます。

ジュニパーネットワークスは、Junosデバイスの設定階層、運用コマンド、運用状態データ、YANG拡張を定義するYANGモジュールを公開しています。YANGモジュールは、ジュニパーネットワークスWebサイトまたはYANG用ジュニパーネットワークスのGitHubリポジトリからダウンロードするか、Junosデバイスでモジュールを生成することができます。

YANG は、C に似た構文、つまりデータの階層的な編成を使用し、組み込み型のセットと派生型を定義する機能を提供します。YANGは可読性を重視し、モジュールとサブモジュール、および再利用可能なタイプとノードグループを使用することでモジュール性と柔軟性を提供します。

YANG モジュールは、単一のデータ モデルを定義し、そのデータのエンコーディングを決定します。YANGモジュールは、そのデータ、およびそのデータの階層的な編成と制約を通じてデータモデルを定義します。モジュールは、完全なスタンドアロンエンティティにすることも、他のモジュールやサブモジュールの定義を参照したり、追加のノードで他のデータモデルを拡張したりすることもできます。

YANG モジュールは、データの構文だけでなくセマンティクスも定義します。データ間の関係と制約を明示的に定義します。これにより、制約要件を満たす構文的に正しいコンフィギュレーションデータを作成し、アップロードしてデバイスにコミットする前に、モデルに対してデータを検証できます。

YANG は、管理情報の構造(SMI)が MIB を使用して SNMP 操作のデータをモデル化する方法と同様の方法で、モジュールを使用してネットワーク運用の構成および状態データ、通知、および RPC を定義します。ただし、YANG には、運用データと設定データを区別できるという利点があります。YANG は SNMP の SMI バージョン 2(SMIv2)との互換性を維持しており、libsmi を使用して SMIv2 MIB モジュールを YANG モジュールに、またはその逆の変換を行うことができます。さらに、YANG パーサーを使用できない場合は、YANG モジュールを YANG 独立記法 (YIN) に変換できます。これは、XML パーサーおよび XSLT スクリプトで読み取ることができる同等の XML 構文です。

既存のYANGベースのツールを使用することも、カスタムネットワーク管理アプリケーションを開発してYANGモジュールを利用することで、より高速で正確なネットワークプログラマビリティを実現できます。たとえば、クライアント アプリケーションでは、YANG モジュールを利用して、さまざまなデバイスのベンダー固有の構成データを生成し、そのデータをデバイスにアップロードする前に検証できます。アプリケーションは、予期しない RPC 応答とエラーを処理およびトラブルシューティングすることもできます。

YANG の詳細については、RFC 6020YANG - ネットワーク コンフィギュレーション プロトコル (NETCONF) のデータ モデリング言語、および関連する RFC を参照してください。