Skip to content

YANG#

データモデリング#

  • データモデリングとは、システムやソフトウェアが使用するデータの規則や定義を説明すること。
  • 詳細はRFC3444に記述されている

YANG#

  • RFC 7950 - The YANG 1.1 Data Modeling Languageにて定義
  • YANG データ モデリング言語はネットワークベンダーの間で一般的になり、データモデリングの場面で使用されている
  • YANG データ モデリング言語自体には、C言語に似たシンタックスを利用して、ネットワーク デバイスの設定および動作データをモデル化するといった特徴がある
  • OS やベンダーを問わず、YANG でモデル化されたデータを使用する RESTCONF およびNETCONF API に対してプログラミングを行うことができる(共通のシンタックスの利用)
  • YANG データ モデルは GitHub で確認することができる
  • 共通のYANGデータモデルに加えて、ベンダー固有のモデルも用意されいている
  • YANG モジュールは「それ自体がドキュメンテーション」であり、API に対してプログラミングを行う方法を理解するのに必要な情報の一部を提供している
  • YANG モジュールとは、基本的にYANG のデータモデリングシンタックスのファイルのこと

OpenConfig#

  • OpenConfigを使用することでYANGデータモデリング言語を利用して共通の設定をモデル化できる
  • デバイスで OpenConfig YANG モデルがサポートされていれば、ネットワークのオペレーティング システムやベンダーを問わずに、複数のデバイスで API の一貫性が確保される
  • つまり一貫した API を基にアプリケーションやスクリプトを作成することができる

YANG モデルをサポートしているデバイスへの接続#

from ncclient import manager
import sys

# parameter 
HOST = '198.18.32.XX'
PORT = 830
USER = 'cisco'
PASS = 'cisco123'

# create a main() method
def main():
    """
    Main method that prints netconf capabilities of remote device.
    """
    with manager.connect(
        host=HOST, port=PORT, username=USER,
        password=PASS, hostkey_verify=False,
        device_params={'name': 'default'},
        look_for_keys=False, allow_agent=False) as m:

        # print all NETCONF capabilities
        print('***Here are the Remote Devices Capabilities***')
        for capability in m.server_capabilities:
            print(capability)

if __name__ == '__main__':
 sys.exit(main())

yangsuite#