yangがもたらしたもの - janog...オープンソース開発(onos) 1. fujitsu confidential...
TRANSCRIPT
![Page 1: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/1.jpg)
FUJITSU CONFIDENTIAL
YANGがもたらしたもの
JANOG 43@甲府 (2019/1/24 15:05~15:35)
清水 翔
株式会社 富士通研究所
Copyright 2019 Fujitsu Laboratories, Ltd.0
![Page 2: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/2.jpg)
FUJITSU CONFIDENTIAL
自己紹介
Copyright 2018 Fujitsu Laboratories, Ltd.
清水 翔
2018年4月 富士通研究所に帰任ネットワーク運用自動化の研究開発
2010年 富士通研究所入社SDNコントローラの研究開発
2014年10月 Fujitsu Laboratories of America
オープンソース開発 (ONOS)
1
![Page 3: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/3.jpg)
FUJITSU CONFIDENTIAL
YANG 1.0
Copyright 2019 Fujitsu Laboratories, Ltd.
YANG is a data modeling language used to model configuration
and state data manipulated by the Network Configuration
Protocol (NETCONF), NETCONF remote procedure calls, and
NETCONF notifications.
RFC 6020: YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)
2
![Page 4: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/4.jpg)
FUJITSU CONFIDENTIAL
YANG 1.1
Copyright 2019 Fujitsu Laboratories, Ltd.
YANG is a data modeling language used to model configuration
data, state data, Remote Procedure Calls, and notifications for
network management protocols.
RFC 7950: The YANG 1.1 Data Modeling Language
3
![Page 5: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/5.jpg)
FUJITSU CONFIDENTIAL
YANG
Copyright 2019 Fujitsu Laboratories, Ltd.
データモデリング言語
NETCONF向け一般化
データモデルを定義するための言語
C言語ライクな文法
4
![Page 6: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/6.jpg)
FUJITSU CONFIDENTIAL
YANG関連の過去の発表
NETCONF/YANG (JANOG 36)
OpenConfigを用いたネットワーク機器操作 (JANOG 40)
コンフィグの抽象化 (JANOG 40)
NETCONFとYANGの話 (ENOG 43)
Copyright 2019 Fujitsu Laboratories, Ltd.5
![Page 7: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/7.jpg)
FUJITSU CONFIDENTIAL
データ構造の定義
Copyright 2019 Fujitsu Laboratories, Ltd.
struct point {int x;int y;
};
container point {leaf x {
type int32;}leaf x {
type int32;}
}
C YANG
ちょっとリッチな構造体のようなデータ構造の定義
6
![Page 8: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/8.jpg)
FUJITSU CONFIDENTIAL
APIの定義 (Request – Response)
Copyright 2019 Fujitsu Laboratories, Ltd.
int add(int x, int y);
rpc add {input {
leaf x {type int32;
}leaf y {
type int32;}
}output {
leaf result {type int32;
}}
}
7
![Page 9: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/9.jpg)
FUJITSU CONFIDENTIAL
APIの定義 (非同期通知)
Copyright 2019 Fujitsu Laboratories, Ltd.
notification cpu-temperature {leaf temperature {
type int32;}
}
CPU温度を通知
温度は32 bit整数で表現
8
![Page 10: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/10.jpg)
FUJITSU CONFIDENTIAL
できること
Copyright 2019 Fujitsu Laboratories, Ltd.
特定のプログラミング言語に非依存な、human readableかつ
machine readableな標準化された記述方法で、構造化された
データ型を定義し、そのデータ型を使ったAPIを記述できる
9
![Page 11: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/11.jpg)
FUJITSU CONFIDENTIAL
使い所
Copyright 2019 Fujitsu Laboratories, Ltd.
ベンダー独自のモデルの公開
ベンダーニュートラルなモデルの定義
APIのテンプレートの自動生成
10
![Page 12: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/12.jpg)
FUJITSU CONFIDENTIAL
使い所
Copyright 2019 Fujitsu Laboratories, Ltd.
ベンダー独自のモデルの公開
ベンダーニュートラルなモデルの定義
APIのテンプレートの自動生成
11
![Page 13: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/13.jpg)
FUJITSU CONFIDENTIAL
https://github.com/YangModels/yang
Copyright 2019 Fujitsu Laboratories, Ltd.12
![Page 14: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/14.jpg)
FUJITSU CONFIDENTIAL
使い所
Copyright 2019 Fujitsu Laboratories, Ltd.
ベンダー独自のモデルの公開
ベンダーニュートラルなモデルの定義
APIのテンプレートの自動生成
13
![Page 15: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/15.jpg)
FUJITSU CONFIDENTIAL
ベンダーニュートラルなモデル
Copyright 2019 Fujitsu Laboratories, Ltd.
オペレータ主導
ROADMの相互接続
14
![Page 16: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/16.jpg)
FUJITSU CONFIDENTIAL
Stratum
Copyright 2019 Fujitsu Laboratories, Ltd.
ONFとGoogleが開発を進めるWhite box向け次世代SDN実装
Stratum Introducing the next generation of SDN interfaces
ASIC
OS P4
White box
OpenConfig
Management
gR
PC
15
![Page 17: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/17.jpg)
FUJITSU CONFIDENTIAL
使い所
Copyright 2019 Fujitsu Laboratories, Ltd.
ベンダー独自のモデルの公開
ベンダーニュートラルなモデルの定義
APIのテンプレートの自動生成
16
![Page 18: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/18.jpg)
FUJITSU CONFIDENTIAL
YANGを中心に様々な言語へのバインディングを生成
Copyright 2019 Fujitsu Laboratories, Ltd.
YANG
CPython
JavaGo
17
![Page 19: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/19.jpg)
FUJITSU CONFIDENTIAL Copyright 2019 Fujitsu Laboratories, Ltd.
http://www.1-4-5.net/~dmm/talks/OpenDaylight_SDN_Workshop_AZ.pdf YANGを中心としたSDNの開発ワークフロー (MPLS Japan 2018)
MD-SAL (Model Driven-Service Abstraction Layer)
18
![Page 20: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/20.jpg)
FUJITSU CONFIDENTIAL
Cisco YANG Development Kit (YDK)
Copyright 2019 Fujitsu Laboratories, Ltd.
https://developer.cisco.com/site/ydk/documents/overview/
19
![Page 21: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/21.jpg)
FUJITSU CONFIDENTIAL
ygot (YANG Go Tools)
Copyright 2019 Fujitsu Laboratories, Ltd.
OpenConfigの中の人の作
20
![Page 22: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/22.jpg)
FUJITSU CONFIDENTIAL Copyright 2019 Fujitsu Laboratories, Ltd.
ツール / エコシステム
21
![Page 23: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/23.jpg)
FUJITSU CONFIDENTIAL
pyang
Copyright 2019 Fujitsu Laboratories, Ltd.
Python実装のパーサ
YANGのエディターが開発してる模様規格準拠度が高そう
22
![Page 24: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/24.jpg)
FUJITSU CONFIDENTIAL
機能
ファイル形式の変換
フォーマッター
Linter
プラグインで拡張可能
Copyright 2019 Fujitsu Laboratories, Ltd.23
![Page 25: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/25.jpg)
FUJITSU CONFIDENTIAL
goyang
Go実装のパーサ
OpenConfigの中の人の作
Googleの人がメインっぽい
ライブラリとして使用可能
YANGのASTをいじれる
Copyright 2019 Fujitsu Laboratories, Ltd.24
![Page 26: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/26.jpg)
FUJITSU CONFIDENTIAL
YANG Tools (OpenDaylight)
Java実装のYANG処理系
MD-SALの核となる機能の一つ
YANG to Javaのコード生成
Copyright 2019 Fujitsu Laboratories, Ltd.25
![Page 27: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/27.jpg)
FUJITSU CONFIDENTIAL
その他のパーサ
YANG Tools (ONOS)
Java実装: Huaweiが実装をリードしていた
libyang
C実装: CESNET(チェコの学術ネットワークらしい)が開発
yang-js
JavaScript実装: Corenova(ステルスっぽいスタートアップ?)が開発
Copyright 2019 Fujitsu Laboratories, Ltd.26
![Page 28: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/28.jpg)
FUJITSU CONFIDENTIAL
ネットワーク自動化への適用に対する期待
Copyright 2019 Fujitsu Laboratories, Ltd.
実現したいこと
(Intent)
設定を反映
ユーザ
システム
ネット
ワーク
Intentの記述
コンフィグ生成
内部モデルYANGが共通言語として
使えるかもしれない
27
![Page 29: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/29.jpg)
FUJITSU CONFIDENTIAL
もたらされた利点
ネットワーク業界におけるモデル定義の共通言語になりつつある
実用的なパーサなどのツールが色々出てきた (pyang, goyang, etc.)
データモデルを公開する機運
ベンダー独自、ベンダーニュートラル問わず
Copyright 2019 Fujitsu Laboratories, Ltd.28
![Page 30: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/30.jpg)
FUJITSU CONFIDENTIAL
課題
ツールチェーン/エコシステム
コミュニティの広がり
Copyright 2019 Fujitsu Laboratories, Ltd.29
![Page 31: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/31.jpg)
FUJITSU CONFIDENTIAL
ツールチェーン/エコシステムの課題
言語を新規開発するコスト
YANGの言語仕様は結構複雑 (データ型定義 + バリデーション)
パーサ以外にパッケージマネージャ、コード補完、フォーマッタなど必要
開発体制への不安個人への依存度が高そう (pyang, goyang)
開発リソースの分断
Java実装のパーサ: OpenDaylightとONOSで個別に開発
Copyright 2019 Fujitsu Laboratories, Ltd.30
![Page 32: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/32.jpg)
FUJITSU CONFIDENTIAL
コミュニティの広がりの課題
開発リソースが限られる
ネットワーク業界限定の技術になりがち 開発者が増えにくい
ユーザ数が多いわけではない
良い入門書、入門資料が少ない (対初心者)
ベストプラクティスについての資料が少ない (対上級者)
• Authoring guidelines for OpenConfig models
• RFC 6087: Guidelines for Authors and Reviewers of YANG Data Model Documents
Copyright 2019 Fujitsu Laboratories, Ltd.31
![Page 33: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/33.jpg)
FUJITSU CONFIDENTIAL
聞きたいこと/議論したいこと
YANGをどういう目的/用途で使っているか?
もしくは、 YANGを使わない理由は何か?
YANGに何を期待しているか?
YANGの代わりになるような技術は他にあるか?
ネットワーク自動化とYANGとの関係性
Copyright 2019 Fujitsu Laboratories, Ltd.32
![Page 34: YANGがもたらしたもの - JANOG...オープンソース開発(onos) 1. fujitsu confidential yang 1.0 ... yangの言語仕様は結構複雑(データ型定義+ バリデーション)](https://reader033.vdocuments.site/reader033/viewer/2022042620/5f41abd7f3c8e616c2086341/html5/thumbnails/34.jpg)