Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)

648 vues

Publié le

Cisco Modeling Labs (通称、CML) は、仮想的にネットワーク環境を構成するソフトウェアプラットフォームです。2020年5月に、待望のメジャーバージョンアップを行い、簡単なインストールや軽量化など、より使い易く身近なものになりました。
ネットワークの自動化はますます重要な分野になってきており、最近では Cisco DevNet 認定資格が新設されるなど、ネットワークプログラマビリティに対する注目度が高くなっています。今回のセッションでは CML のおさらいから始まり、デモンストレーションを中心に CML に備わっている API のご紹介や、CML で構築したラボネットワークをプログラマビリティで制御するといった内容をご紹介します。

Publié dans : Technologie
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(DevNet編)

  1. 1. シスコシステムズ合同会社 システムズエンジニア 丸山 隆太 2020/7/28 DevNet 編 Cisco Modeling Labs (CML) を使って ネットワークを学ぼう!
  2. 2. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public Cisco Modeling Labsを使ってネットワークを学ぼう! CMLとは何か、ユースケースや基本機能、ラボ構築など、デモを交えながらご紹介します https://learningnetwork.cisco.com/s/article/jp-webinar-cml01 基礎編 (7/7 済) CMLの活用方法、資格での勉強方法などをデモを交えCCIEホルダーがご紹介します https://learningnetwork.cisco.com/s/article/jp-webinar-cml02 応用編 (7/14 済) CMLのAPI/プログラマビリティを用いたネットワーク自動化の観点でご紹介します https://learningnetwork.cisco.com/s/article/jp-webinar-cml03 DevNet編 終了したセミナーについては、順次、資料と動画を公開中
  3. 3. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public アジェンダ 1 2 3 4 5 CML のおさらい DevNetについて CML 2.0 API DevNet における CML 活用例 まとめ
  4. 4. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public • 丸山 隆太(まるやま りゅうた) • 人材育成の一環でインターンシップとして出向中 (2019/04〜) • 出向元:富士通ネットワークソリューションズ株式会社 • インターンシップで学んでいること • CiscoDNA 関連の製品知識 (Cisco DNA Center, ISE, etc.) • Python/API/ネットワークプログラマビリティ関連 • お気に入りのCisco製品/技術 • IOS XE 17.2, Catalyst 9000シリーズ 自己紹介
  5. 5. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public アジェンダ 1 2 3 4 5 CML のおさらい DevNetについて CML 2.0 API DevNet における CML 活用例 まとめ
  6. 6. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public Cisco Modeling Labs (CML) とは? Ciscoが提供する ネットワークシミュレーションプラットフォーム • CML1.x • VIRL (Virtual Internet Routing Labs) • CML-Enterprise 2.0 (企業向け) • CML-Personal 2.0 (個人向け) 待望のメジャーバージョンアップ ブランドはCMLに統一
  7. 7. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public CML 標準付属 プラットフォーム IOS IOSv & IOSv L2 IOS XR XRv & XRv 9000 IOS XE CSR1000v NexusASA ASAv Other • TRex • WAN Emulator • Tiny Core Linux • Ubuntu 18.04 • CoreOS • Alpine Linux NX-OS 7000v & 9000v ※カスタムVMイメージ機能により新規イメージ、サードパーティ製イメージを追加可能 ※ディスクイメージバージョン: refplat-20200409-fcs.iso ※各イメージのバージョン等の情報 https://developer.cisco.com/docs/modeling-labs/#!reference-platforms-and-images
  8. 8. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public CML 付属 仮想ノード ルーター, ファイアウォール スイッチ サーバー シミュレーター, その他
  9. 9. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 新規仮想ノードの追加例 新規仮想ノードを追加する際、下記2つのコンポーネントが必要 YAML形式のノード構成ファイル • CPU,RAM,ネットワークアダプターなどの情報 • 参考:GitHub CML Community qcow2形式のディスクイメージ • OSのイメージ • 別途入手が必要(ベンダーサイトなど) 参考: https://github.com/CiscoDevNet/cml-community/tree/master/node-definitions 例) A10 vThunderを起動
  10. 10. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public ラボマネージャー と ワークベンチ ラボ ワークベンチラボマネージャ ラボ • ラボマネージャー: CMLサーバのステータス、ラボを管理するCMLのトップ画面 • ワークベンチ:作成したラボの編集、ネットワークシミュレーションを行うためのメイン画面 • CMLでは1つのネットワークシミュレーションの単位をラボとよぶ
  11. 11. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public ラボマネージャー システムステータス • CPU使用率 • メモリ使用率 • ディスク使用率 • 合計仮想ノード数 • 実行中仮想ノード数 など ラボリスト • ワークベンチへの移動 • ラボの実行 • ラボの停止 • ラボの初期化 • ラボの削除 など メニューバー • ラボの表示切替 • ラボ追加 • ラボのインポート • ツールへのアクセス など
  12. 12. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public ワークベンチ 操作・情報表示パネル • ラボ・ノードの情報 • シミュレーション・ノードの開始 • コンソールアクセス • ラボのログ表示 など メニューバー • ラボのログ表示 • ラボマネージャへの移動 • ラボのエクスポート • ラボの強制初期化 など ノード一覧 トポロジ作成 フィールド
  13. 13. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public CML-Enterprise, CML-Personal の比較 Cisco Modeling Labs–Enterprise Cisco Modeling Labs–Personal 対象ユーザ 企業・組織 個人 ユーザ数 マルチユーザ シングルユーザ ノード数(標準) 20ノード 20ノード ノード数(最大) 300ノード 20ノード サポート Cisco TAC Community Support Forum 購入方法 Cisco パートナー経由 Cisco Learning Network Store ライセンシング スマートライセンス スマートライセンス スマートアカウントの取得 必要 不要(Cisco.comアカウントがあればOK) インターネット接続性 必須ではない ※オフラインでの認証も可能 必要 ※1度認証すれば30日間はオフラインでも 使用可能 クラスタリング ロードマップに有り 無し ※現在のバージョンに基づきます。将来のバージョンでは変更される可能性があります。
  14. 14. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public CML 仮想 ラボ コンソールサーバーとブレイクアウトツール • CML自体がコンソールサーバーとして機能 • CMLへSSH接続し、各仮想ノードへ接続 • クライアントPCに「ブレイクアウトツール」をインストール • クライアントPCがプロキシとして、CMLラボのノードに直 接コンソール接続 ブレイクアウトツールコンソールサーバー 自身の端末 CML (コンソールサーバ) SSH接続 CML 仮想 ラボ iTerm2 ブレイクアウト ツール Windows, Mac, Linux TLS通信 CML
  15. 15. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 外部接続コネクター CML内の仮想ラボ物理ラボ External Connector • Cisco DNA Center • Zabbix • Ansible • Docker • …
  16. 16. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public アジェンダ 1 2 3 4 5 CML のおさらい DevNetについて CML 2.0 API DevNet における CML 活用例 まとめ
  17. 17. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public Cisco DevNet • アイデアソン&ハッカソン • DevNet Express • DevNet Create • DevNet イノベーションチャレンジ • DevNet Code Exchange • DevNet Automation Exchange • ビジネス、サービス事例 • DevNet Solution Exchange • 人材開発 • DevNet Learning Labs • DevNet Sandbox • DevNet 資格取得 学習、スキル 経験、体験 成果、コードビジネス価値
  18. 18. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public Cisco DevNet コンテンツ/リソース ソリューションポータル: Ecosystem Exchange 開発者コミュニティ コードリポジトリ: Code Exchange 認定資格: DevNet Certifications イベント: • DevNet Express, DevNet Create • Cisco Live, Cisco Connect API ガイド リモートラボ環境: DevNet Sandbox 学習コンテンツ: Learning labs
  19. 19. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public DevNet 認定資格 2020年2月24日開始 https://developer.cisco.com/certification/ インフラ ストラクチャ ソフトウェア アソシエイト スペシャリスト プロフェッショナル エキスパート
  20. 20. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public CCNA Cisco Certified Network Associate DevNet Associate Cisco Certified DevNet Associate https://www.cisco.com/c/ja_jp/training-events/training-certifications/exams/current- list/ccna-200-301.html https://www.cisco.com/c/ja_jp/training-events/training- certifications/certifications/devnet/cisco-certified-devnet-associate.html CMLを活用!
  21. 21. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public https://developer.cisco.com/modeling-labs/
  22. 22. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public アジェンダ 1 2 3 4 5 CML のおさらい DevNetについて CML 2.0 API DevNet における CML 活用例 まとめ
  23. 23. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public CML 2.0 API • APIドキュメントはCML組込 • CMLを操作する135種類のAPI • Swagger GUIからAPIアクセスの確認
  24. 24. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public Swagger, Postman による認証 Token取得 参考 Postman Collection https://github.com/sttrayno/CML-Personal-Guide
  25. 25. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public はじめての CML REST API コール import json import requests import urllib3 urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) url = "https://<cml_ipaddress>/api/v0/authenticate" headers = { 'Content-Type': 'application/json', 'accept': 'application/json' } payload = { "username": ”<username>", "password": ”<password>" } response = requests.request("POST", url, headers=headers, data=json.dumps(payload), verify=False).json() print(response) 認証Tokenの取得例 取得したTokenをヘッダに付けて各APIへアクセス Pythonライブラリのインポート HTTPヘッダやペイロードに格納する内容を作成 HTTP POSTメソッドで必要なヘッダ, ペイロードを送信 警告メッセージを表示しない 認証トークン取得APIの変数を作成 APIから返される認証トークンをプリント
  26. 26. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 参考: CMLクライアントライブラリ - virl2-client 認証、リンクやノードの追加削除をシンプルに行う Python クライアントライブラリ https://developer.cisco.com/codeexchange/github/repo/CiscoDevNet/virl2-client
  27. 27. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 参考: CMLクライアントライブラリ - virl2-client 参考: virl2-clientを試すJupyter notebook ファイル(DevNet/Github) https://github.com/CiscoDevNet/virl2-client/tree/master/examples
  28. 28. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 1. シミュレーションラボ稼働情報の取得 2. YAMLファイルを使ったラボ構成のインポートと起動 3. シミュレーションラボの停止と消去 4. pyATS Testbedファイル(yaml)の出力 ユースケース 1. ラボ情報取得 2. ラボ構成のインポートと起動 test-topology.yaml 3. ラボの停止と消去 getlab.py importlab.py deletelab.py CML pyatsTb_f2d3c5.yaml 4. pyATS用のTestbedファイルを出力 ※本セッションでは, pyATSそのも のについての説明は行いません。
  29. 29. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 1. シミュレーションラボ稼働情報の取得 import json import requests cml_url = "https://<cml_ip>/api" uname = ”<username>" passwd = ”<password>" labname = ”<labname>" def get_token(url, user, password): api_call = "/v0/authenticate" url += api_call headers = { 'Content-Type': 'application/json', 'accept': 'application/json' } payload = { "username": user, "password": password } response = requests.request("POST", url, headers=headers, data=json.dumps(payload), verify=False).json() return response def get_labs(token, url): api_call = "/v0/labs" url += api_call token = 'Bearer' + ' ' + token headers = { 'accept': 'application/json', 'Authorization': token } response = requests.get(url, headers=headers, verify=False).json() print("#" + " " + "CML 稼働ラボ数" + ": " + str(len(response)) + " at " + labname) return response def get_labsdetail(token, url, labids): token = 'Bearer' + ' ' + token headers = { 'accept': 'application/json', 'Authorization': token } for labid in labids: api_call = "/v0/labs/" + labid laburl = url + api_call guiurl = url.rstrip('api') guiurl = guiurl + "lab/" + labid response = requests.get(laburl, headers=headers, verify=False).json() print("{0:42}{1:22}{2:18}{3:18}". format(str(response['lab_title']), str(response['created']), str(response['state']), str(guiurl))) if __name__ == "__main__": auth_token = get_token(cml_url, uname, passwd) print("#"*113) labids = get_labs(auth_token, cml_url) print("#"*113) get_labsdetail(auth_token, cml_url, labids) print("#"*113) hellocml.py 認証Token取得 稼働ラボ情報取得
  30. 30. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 1. シミュレーションラボ稼働情報の取得 cont. ~ $python hellocml.py ################################################################################################################# # CML 稼働ラボ数: 19 at Cisco SE ラボ ################################################################################################################# Test by tatsaito 2020-06-11 13:33:46 STOPPED https://10.71.154.73/lab/866cb6 test by rmaruyam 2020-06-11 09:17:08 DEFINED_ON_CORE https://10.71.154.73/lab/b3a6eb To DNAC96 2020-06-17 05:01:40 STARTED https://10.71.154.73/lab/2ba4d1 test by asai 2020-06-17 07:21:17 STOPPED https://10.71.154.73/lab/eeca34 CML-DevNet-Lab 2020-06-22 11:16:04 STARTED https://10.71.154.73/lab/48cadf TEST Lab asai 2020-06-23 17:42:14 STOPPED https://10.71.154.73/lab/72cbd5 Lab asai 2020-06-24 11:00:16 STOPPED https://10.71.154.73/lab/0fbd5d TEST Lab asai 2020-06-24 13:17:08 STOPPED https://10.71.154.73/lab/f2d3c5 asai 2020-06-25 13:36:02 STOPPED https://10.71.154.73/lab/0574e5 CML Basic Lab 2020-06-26 13:37:36 STOPPED https://10.71.154.73/lab/deaf38 manual_config_live_vis_configured.virl 2020-06-29 04:11:33 STOPPED https://10.71.154.73/lab/80bbfd Nov_webinar_demo_topology.virl 2020-06-29 06:25:31 DEFINED_ON_CORE https://10.71.154.73/lab/65ccf2 July_webinar_ospf_eigrp.virl 2020-06-29 06:37:50 DEFINED_ON_CORE https://10.71.154.73/lab/609fbc Mar15_webinar_l2_unmanaged.virl 2020-06-29 06:38:18 DEFINED_ON_CORE https://10.71.154.73/lab/bae85c Basic Lab 2 2020-07-08 11:17:55 STOPPED https://10.71.154.73/lab/f72c4b maruyama-API-Lab 2020-07-19 09:07:25 STOPPED https://10.71.154.73/lab/ebbddc test-topology-kikuta 2020-07-20 13:23:37 DEFINED_ON_CORE https://10.71.154.73/lab/94d9b1 testtesttest-by-kikuta 2020-07-20 13:27:07 DEFINED_ON_CORE https://10.71.154.73/lab/bf2acf test-topology.yaml 2020-07-20 15:07:35 STARTED https://10.71.154.73/lab/6b20de #################################################################################################################
  31. 31. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 2. YAMLファイルを使ったラボ構成のインポートと起動 ~ $python import.py test-topology.yaml Please input an lab title [type q to quit]: test-by-kikuta test-topology.yaml <Response [200]> CMLラボ構成ファイル(YAML or JSON) インポート/起動するCMLラボの名称 • コンフィグレーションを含めたラボテスト構成を YAMLで管理し、チームやコミュニティで共有 • CI/CDツールと組み合わせたNetDevOps
  32. 32. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 2. YAMLファイルを使ったラボ構成のインポートと起動 cont. import.py def import_lab(token, url): labtitle = input("Please input an lab title [type q to quit]: ") api_call = "/v0/import" url += api_call + "?title=" + labtitle token = 'Bearer' + ' ' + token headers = { 'Content-Type': 'application/json', 'accept': 'application/json', 'Authorization': token } args = sys.argv f = open(args[1]) data = f.read() response = requests.request("POST", url, headers=headers, data=data, verify=False) print(response) 作成するラボ名称を含めてPOST ラボ構成YAMLファイルの読み込み
  33. 33. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public lab: description: '' notes: '' timestamp: 1589315403.782141 title: Lab at Tue 20:30 PM version: 0.0.3 nodes: - id: n0 label: csr1000v-0 node_definition: csr1000v x: -600 y: -50 configuration: hostname inserthostname_here image_definition: csr1000v-161101b tags: [] interfaces: - id: i0 label: Loopback0 type: loopback - id: i1 slot: 0 label: GigabitEthernet1 type: physical - id: i2 slot: 1 label: GigabitEthernet2 type: physical - id: i3 slot: 2 label: GigabitEthernet3 type: physical - id: i4 slot: 3 label: GigabitEthernet4 type: physical - id: n1 label: csr1000v-1 node_definition: csr1000v x: 0 y: -50 configuration: hostname inserthostname_here image_definition: csr1000v-161101b tags: [] interfaces: - id: i0 label: Loopback0 type: loopback - id: i1 slot: 0 label: GigabitEthernet1 type: physical - id: i2 slot: 1 label: GigabitEthernet2 type: physical - id: i3 slot: 2 label: GigabitEthernet3 type: physical - id: i4 slot: 3 label: GigabitEthernet4 type: physical - id: n2 label: wan-em-0 node_definition: wan_emulator x: -300 y: -100 configuration: |- LATENCY="500" JITTER="5" LOSS="30.0" BANDWIDTH="512" image_definition: alpine-3-10-wanem tags: [] interfaces: - id: i0 slot: 0 label: eth0 type: physical - id: i1 slot: 1 label: eth1 type: physical links: - id: l0 i1: i1 n1: n0 i2: i0 n2: n2 - id: l1 i1: i1 n1: n2 i2: i1 test-topology.yaml
  34. 34. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 参考: CMLラボ構成のエクスポート エクスポートされたCMLラボ構成のYAMLファイル
  35. 35. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 3. シミュレーションラボの停止と消去 def delete_lab(token, url): token = 'Bearer' + ' ' + token headers = { 'accept': 'application/json', 'Authorization': token } deletelabid = input("Please input lab ID to be deleted? [type q to quit]: ") api_call = "/v0/labs/" + deletelabid url = url + api_call response = requests.delete(url, headers=headers, verify=False) print(response) 消去したいラボIDをDeleteメソッドで送信
  36. 36. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public 4. pyATS Testbedファイル(yaml)の出力 def get_pyats_testbed(token, url, hostname): pyatslabid = input("Please input lab ID to be deleted? [type q to quit]: ") token = 'Bearer' + ' ' + token headers = { 'accept': 'application/json', 'Authorization': token } api_call = "/v0/labs/" + pyatslabid + "/pyats_testbed?hostname=" + hostname url = url + api_call response = requests.get(url, headers=headers, verify=False) print(response.text) with open('testbed.yaml', 'w') as f: f.write(response.text) pyATS用のTestbed YAMLファイルをリクエストするAPI ※本セッションでは, pyATSそのも のについての説明は行いません。
  37. 37. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public ~ $ python pyats_testbed.py Please input lab ID to be deleted? [type q to quit]: deaf38 testbed: name: CML Basic Lab tacacs: login_prompt: 'login:' password_prompt: 'Password:' username: '%ENV{PYATS_USERNAME}' passwords: tacacs: '%ENV{PYATS_PASSWORD}' enable: '%ENV{PYATS_AUTH_PASS}' line: '%ENV{PYATS_PASSWORD}' devices: terminal_server: os: linux type: linux connections: cli: protocol: ssh ip: 10.71.154.73 username: change_me password: change_me iosv-0: os: ios type: router series: iosv tacacs: username: cisco passwords: tacacs: cisco connections: defaults: class: unicon.Unicon a: protocol: telnet proxy: terminal_server command: open /deaf38/n7/0 iosv-1: os: ios type: router series: iosv tacacs: username: cisco passwords: tacacs: cisco connections: defaults: class: unicon.Unicon a: protocol: telnet proxy: terminal_server command: open /deaf38/n10/0 iosv-2: os: ios type: router series: iosv tacacs: username: cisco passwords: tacacs: cisco connections: defaults: class: unicon.Unicon a: protocol: telnet proxy: terminal_server command: open /deaf38/n11/0 iosv-3: os: ios <省略> ~ $ ls | grep deaf38 pyatsTb_deaf38.yaml pyATS用のTestbed YAMLファイルを出力
  38. 38. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public スキル人材育成のサイクル短縮を目指し、プログラマビリティをフル活用した 新たな研修プラットフォーム「バーチャルリモートラボ(VRL)」を構築 NTT 西日本のグループ企業として西日本に約 200 の拠点で通信ネットワーク環境の構築から開通・運用サポート・修理まで、暮らしの 快適・安心を地域密着で支えている NTT フィールドテクノ。通信設備の維持管理業務からより付加価値の高い設備系 BPO 事業への シフトチェンジを推進する上で高品質なスキル人材育成のスピードアップが求められた同社は、プログラマビリティを最大限活用した新 たな研修プラットフォーム「バーチャルリモートラボ(VRL)」を構築。CML (Cisco Modeling Lab) API による仮想での NW 構築研修も実 施し、Off-JT(学び)とOJT(実践)のサイクル短縮化を実現しました。* DevNet 活用事例:株式会社NTTフィールドテクノ ・豊富な実践的ドキュメントと充実したコミュニティ ・DevNet Expressでシスコ SEから実践的な API / プログラマビリティが学べる 事業内容 課題 ソリューション 結果〜今後 設立 シスコ との関係 1999年4月1日 エンドユーザー Why DevNet? コールセンター業務/宅内設備の保守業務/ 光開通関連オペレーション業務/交換・伝送路 設備のオンサイト保守業務/設備業務に関す る技術者育成の業務 など • CML(Cisco Modeling Labs) • Cisco DNA Center • Cisco ISE • Cisco TrustSec • Cisco Stealthwatch シスコ関連製品・サービス DevNetユースケース 人材育成/高付加価値化  通信設備の維持管理業務から、より付加 価値の高い設備系BPO*事業へのシフト チェンジを推進する上で、高品質なスキル 人材育成のスピードアップが求められる *BPO .. Business Process Outsourcing  従来型の集合研修は開催時期が限られ、 事前や事後学習もままならない  専用ハードウェア購入費用や設置スペー スを抑えたい  突発的な業務繁忙や災害発生などで学習 機会が失われることも多かった デジタル技術活用により、いつでもどこ でも研修を受講できる環境「バーチャル リモートラボ(VRL)」を構築  CML (Cisco Modeling Lab) API :NW 設計、構築、視覚化、シミュレー ションを仮想環境で実現(CMLをバック エンドで活用した研修プラットフォーム)  Cisco ISE REST API 、pxGrid  Cisco TrustSec  Cisco DNA Center  Cisco Stealthwatch :受講者のセキュアなアクセスを可能に する認証システムを構築  新研修プラットフォーム「VRL」により、オンデ マンド型でいつでもどこでも学べる研修環境 を実現  CML により ネットワーク 機器購入コストを 大幅に抑え、受講者は自由な NW 設計、構 築、シミュレーション環境がいつでも活用で きる  VRL での研修分野を広げフィードバック、集 合研修とのブレンディッドラーニングで育成 効果を向上。今後はグループ企業への提供 拡大も計画 *本取り組みは日本最大級の人事ポータル HR プロの「第 9 回日本 HR チャレンジ大賞」を受賞しました。 https://www.hrpro.co.jp/challenge.php 参考事例
  39. 39. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public アジェンダ 1 2 3 4 5 CML のおさらい DevNetについて CML 2.0 API DevNet における CML 活用例 まとめ
  40. 40. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public DevNet における CML 活用例 デモ1)NETCONF/RESTCONFネットワークOSでのAPI デモ2)IOS XE on-box pythonネットワーク装置でのプログラマビリティ デモ3)Cisco DNA CenterSDNコントローラー API デモ4)AnsibleIaC/構成管理ツール DevNet/プログラマビリティの要素 CML活用例
  41. 41. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public ネットワークOSでのAPI ネットワーク装置でのプログラマビリティ SDNコントローラー API IaC/構成管理ツール
  42. 42. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public ネットワークOSでのAPI ネットワーク装置でのプログラマビリティ SDNコントローラー API IaC/構成管理ツール
  43. 43. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public ネットワークOSでのAPI ネットワーク装置でのプログラマビリティ SDNコントローラー API IaC/構成管理ツール 複数の装置(OS)での Netconf/Restconfのテスト CML上でのLinux活用 複数の装置(OS)での On-boxプログラミング機能 外部接続を使った コントローラー接続 外部接続を使った IaCツール試験 CML上でのIaCツール構築
  44. 44. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public デモ1 NETCONF/RESTCONF ネットワーク機器の情報取得, 設定変更 CML CML 実機 CSR1000V Postman Ubuntu デモ1.1 NETCONF/YANG (RFC6241) デモ1.2 RESTCONF/YANG (RFC8040)
  45. 45. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public デモ2 IOS XE on-box Python 設定変更後に疎通確認&結果報告 event manager applet TestAfterConfig event syslog pattern "SYS-5-CONFIG_I" action 100 cli command "enable" action 110 syslog msg "## Testing after Configuration Change ...... ##" action 200 cli command "guestshell run python /home/guestshell/pingreport.py" IOS XE, NXOS, IOS XR.. CML on-box Python: pingreport.py IOS XE: EEM* *EEM … Embedded Event Manager 例)コンフィグ変更のsyslogを検知し、 On-box Pythonを実行 例)ルーター上のpythonスクリプトでは、 事前に指定されたIPアドレスに対してping を実行し、その結果をExcelファイルにまと め、Webex Teamsへ送信
  46. 46. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public デモ3 SDNコントローラー API CML ネットワーク 実機 Cisco DNA CenterPC Cisco DNA CenterのAPIで機器情報取得 Cisco DNA Center API ドキュメント 例) • PC上で, DNAC Command Runner APIへアクセスする Pythonスクリプトを実行 • DNA Center経由で装置のCLIへアクセス
  47. 47. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public デモ4 IaC/構成管理ツール Ansibleで複数機種に一括設定変更 例) • CML上で動作するUbuntu仮想マシンから、 Ansibleを実行 • IOSv, IOSv-L2, IOS XE, Nexus9000vといった 様々なモデルにVRFを設定するPlaybookを実行 VRF設定Playbook: vrf-test.yaml
  48. 48. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public© 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public アジェンダ 1 2 3 4 5 CML のおさらい DevNetについて CML 2.0 API DevNet における CML 活用例 まとめ
  49. 49. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public • CML環境を使ったネットワークのコンフィグや学習に加え、CML環境をAPIから操作すること で、環境の自動生成や共有が容易  ネットワークインフラのCI/CD, NetDevOps  カスタマイズされた学習システム – NTTフィールドテクノ様事例 • CML環境を使ったネットワークのコンフィグや学習に加え、仮想ノードのAPIやプログラミング 機能の学習に活用  装置のモデルドリブンインターフェース - Netconf, Restconf  On-box プログラマビリティ  SDN コントローラー API  構成管理/IaCツール • DevNet資格取得への近道 まとめ CML API 確認 インポート,起動 消去
  50. 50. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public ・ CML 紹介ページ https://developer.cisco.com/modeling-labs/ • CMLのドキュメント一覧ページ https://developer.cisco.com/docs/modeling-labs/ • CML-Pのコミュニティサイト https://learningnetwork.cisco.com/s/topic/0TO3i00000094ZjGAI/cisco-modeling-labs-personal-community • DevNet ポータルサイト https://developer.cisco.com/ • DevNet コードリポジトリ検索ページ https://developer.cisco.com/codeexchange/ • CML – Personal(日本語) https://learningnetwork.cisco.com/s/article/jp-cisco-cml-personal • CML – Enterprise(日本語) https://learningnetwork.cisco.com/s/jp-modeling-labs 参考リンク
  51. 51. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public • 102のラーニングモジュール(7/27現在) • テクノロジーごとにトラックとして分類された学習コース (DevNet Express) • PC環境セットアップ, プログラミング基礎, REST-API 基礎, AnsibleやPowerShellなどのシスコ以外の内 容もカバー • 概念/考え方, 必要性, プログラミング初歩, 実用コー ドまでステップ • サンドボックスのラボに対応 • 学習コードはすべてGitHubで公開 • DevNet 資格の勉強にも有用! DevNet Express Tracks https://developer.cisco.com/learning/devnet-express https://github.com/CiscoDevNet https://developer.cisco.com/site/sandbox/
  52. 52. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public NETCONF/RESTCONF https://developer.cisco.com/learning/devnet-express/dnav3-track-jp 1. 複数の装置(OS)でのNetconf/Restconfのテスト 2. CML上でのLinux活用 CML CML 実機
  53. 53. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public IOS XE on-box python https://developer.cisco.com/learning/devnet-express/dnav3-track-jp IOS XE, NXOS, IOS XR.. 複数の装置(OS)でのOn-boxプログラミング機能 CML
  54. 54. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public SDNコントローラー API https://developer.cisco.com/learning/devnet-express/dnav4-track CML ネットワーク 実機 外部接続を使ったコントローラー接続 Cisco DNA CenterPC
  55. 55. © 2020 Cisco and/or its affiliates. All rights reserved. Cisco Public IaC/構成管理ツール https://developer.cisco.com/learning/devnet-express/dnav4-track ネットワーク Ansible 1. 外部接続を使ったIaCツール試験 2. CML上でのIaCツール構築 CML CML 実機 各種ネットワークOS, 構成各種Ansibleモジュール

×