Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

NAPALMで作るネットワークオペレーション自動化への道のり

2,361 views

Published on

Interop2017のセイコーソリューションズ様ブースにてお話した、ISPネットワーク上における自動化ツール開発についてです。
マルチベンダー環境を克服するためのツールとして、NAPALMを利用し、非常に便利だったので共有します。

Published in: Technology
  • Be the first to comment

NAPALMで作るネットワークオペレーション自動化への道のり

  1. 1. © BIGLOBE Inc. 2017 1 ネットワークオペレーション ⾃動化への道のり BIGLOBE Inc. Toshiya Mabuchi © BIGLOBE Inc. 2017
  2. 2. © BIGLOBE Inc. 20172 l⾺淵 俊弥(MABUCHI Toshiya) pビッグローブ株式会社 システム基盤本部 l現在のお仕事 pASネットワーク(AS2518)の設計/運⽤全般 ØPeering Øネットワーク設計 Ø各種回線の開通 Ø機器/機能検証 Ø⾃動化/可視化ツールの開発 など… ⾃⼰紹介
  3. 3. © BIGLOBE Inc. 20173 ShowNetも⾃動化!
  4. 4. © BIGLOBE Inc. 20174 ISPにおける ⾃動化の話をしていきます 今回は!
  5. 5. © BIGLOBE Inc. 20175 BIGLOBEがピアリングするまで l Peering情報のやりとり l ⼿順書/Script作成 l ⼿順書 Script査閲/承認 l 作業の実施 p ⼿順書印刷 p 各種確認ツールの起動 p ログイン p 事前確認 p 設定 p 事後確認 p コンフィグ保存 l 作業完了報告/資料更新
  6. 6. © BIGLOBE Inc. 20176 現状の課題 l作成 p作成/置換ミスを誘発する可能性がある⼿製の⼿順書 l査閲/承認 p⼿順書/スクリプトが⻑く, 査閲に時間がかかってしまう l作業 p確認ポイントが多く、コンフィグ投⼊/切り戻しにも 時間がかかる
  7. 7. © BIGLOBE Inc. 20177 何よりも… ピアリングをしていく上で、 「作成/査閲/査閲をする時間」 に時間は割きたくない 極⼒、⾃動化/省⼒化をしたい
  8. 8. © BIGLOBE Inc. 20178 ⾃動化の前提条件 l作業の全⼯程を極⼒省⼒化できる l事前の作業レビューが可能 l作業時のログを必ず残せる
  9. 9. © BIGLOBE Inc. 20179 自動化できそうな所を考える l ⼿順書/コンフィグ作成 p⼿順の抽象化で確認項⽬の差を吸収 p⼿順書⾃体の⾃動で作成 l査閲/承認 p⾃動化は難しいが, 査閲ポイントを絞ることで⾼速化 l設定作業 p既存のOSSツールを利⽤することで、 確認と設定を⾃動で実施
  10. 10. © BIGLOBE Inc. 201710 NAPALM使えば実現できそう!
  11. 11. © BIGLOBE Inc. 201711 l Pythonのネットワーク設定⽀援ライブラリ pマルチベンダー環境下においての⾃動化に対応 ØEOS/JUNOS/IOS-XR/NXOS/IOS/ FortiOS/Pluribus/PANOS/MikroTik/VyOS に対応(2017/06/05現在) p確認/設定が抽象化されているので全機種共通の 記述で使える NAPALM? Network Automation and Programmability Abstraction Layer with Multivendor support
  12. 12. © BIGLOBE Inc. 201712 NAPALMの抽象化例 -既存の機器出⼒結果- IOS-XR JUNOS • プログラムに認識させるための正規化がかなり厳しい • 採⽤機器毎にNETCONFやexpectから欲しい情報を それぞれ抜き出さないといけない • プログラムに優しい出⼒結果ではない
  13. 13. © BIGLOBE Inc. 201713 NAPALMの抽象化例 -既存の機器出⼒結果- Napalm • 取得も設定もpythonプログラム上 • 値は全てJSON • 抽象化された結果を返す • JUNOSもIOSXRも共通 • プログラム上の関数も勿論共通
  14. 14. © BIGLOBE Inc. 201714 実際に使って⾃動化してみました
  15. 15. © BIGLOBE Inc. 201715 システムの概要 作業者 ⼿順書 査閲者 Router1Router2 状態確認 設定変更 ⼿順書解析 ⼿順書作成/実⾏ Webから⼿順書の作成 確認結果から継続/中断の判断 設定反映の実⾏ 対象機器 設定するパラメータ 状態確認する内容 ⼿順書を解析 確認/設定はnapalm 結果を作業者に返す
  16. 16. © BIGLOBE Inc. 201716 ⾃動設定の設定作業例 lISPのPeering作業を想定 p今回はPrivatePeerの場合 Ø事前状態確認 ØInterfaceの設定 ØBGP Policyの設定 ØBGP Neighborの設定 Ø事後状態確認 AS65002 (GoBGP) AS65001 (JUNOS) 確認後、問題なければBGP設定 ・Hostname ・Version ・CPU/Memory ・Interface ・Route ・BGP BIGLOBE側
  17. 17. © BIGLOBE Inc. 201717 ⼿順書(シナリオ)ファイルの設定例 Validatate 事前確認する項⽬を記述する ・ホスト名とバージョン ・BGP状態 ・CPU/Memory 等…
  18. 18. © BIGLOBE Inc. 201718 ⼿順書(シナリオ)ファイルの設定例 設定投⼊編 設定したパラメータと Configのテンプレートから Configを作成し、投⼊
  19. 19. © BIGLOBE Inc. 201719 ⼿順書(シナリオ)ファイルの実⾏結果例 [状態の確認] ・設定したValidateと実機器の 状態が合っているか確認 ・invalidな状態があれば、 詳細を表⽰して、指⽰を待つ
  20. 20. © BIGLOBE Inc. 201720 ⼿順書(シナリオ)ファイルの実⾏結果例 [設定投⼊] ・設定したパラメータと Configのテンプレートから Configを作成し、投⼊ [既存コンフィグとの差分を表⽰] ・問題なければ投⼊ ・戻す場合はコンフィグを ロールバックして終了
  21. 21. © BIGLOBE Inc. 201721 https://goo.gl/aun4Cg デモ
  22. 22. © BIGLOBE Inc. 201722 l設定作業は現実的な環境下(マルチベンダ) においても、かなりの⾼速化ができた p2時間 → 5分! lコアの部分(抽象化)はNAPALMがある p⾃社に適合する形に適合させるだけでOK l勢いのあるOSSを使う p要望も取り込んでくれるかも Ø私もContributeしました! J 良かったこと
  23. 23. © BIGLOBE Inc. 201723 lNAPALMが使えない場合がある pサポートするOSのバージョンが⽐較的新しめ ØIOS-XR 5.1.0以上からサポートなど – http://napalm.readthedocs.io/en/latest/support/index.html pNETCONFやXML agentを有効にしないと 実施できない場合がある Ø各ルータに追加の設定が必要になる 超えるべき壁もまだ沢⼭
  24. 24. © BIGLOBE Inc. 201724 lYAML形式の⼿順書⾃体は⼿書き p作業者への学習コストが⾼め l作業は⾃動化できても、承認依頼や⼿順 書管理は既存のまま lNAPALMは発展途上中 pまだ微妙に⾜りない機能もあったりする 超えるべき壁もまだ沢⼭
  25. 25. © BIGLOBE Inc. 201725 ここで終われない! Extra round.
  26. 26. © BIGLOBE Inc. 201726 lYAML形式の⼿順書⾃体は⼿書き p作業者への学習コストが⾼め l作業は⾃動化できても、承認依頼や⼿順 書管理は既存のまま lNAPALMは発展途上中 pまだ微妙に⾜りない機能もあったりする (再掲)超えるべき壁もまだ沢⼭
  27. 27. © BIGLOBE Inc. 201727 作業者 ⼿順書 査閲者 Router1Router2 状態確認 設定変更 ⼿順書解析 ⼿順書作成/実⾏ ⼿書きでなくWebから⽣成 Webでそのまま査閲/承認 さらにWrapするWebGUIを開発 WebGUI (Django) NAPALM 実行ツール ⾃動通知で やりとりのロスを減らす
  28. 28. © BIGLOBE Inc. 201728 YML形式の手順書をWebから生成
  29. 29. © BIGLOBE Inc. 201729 手順書と作業状態の管理ツール
  30. 30. © BIGLOBE Inc. 201730 Chatops 作業が登録/承認されたらチャットで通知
  31. 31. © BIGLOBE Inc. 201731 手順書確認や承認もWeb上で
  32. 32. © BIGLOBE Inc. 201732 l運⽤者のみなさま p⾊んなツール使って⾃動化してみませんか? Øいろんなツールを使ってみた 情報共有だけでもすごく参考になります Ø⼩さいことでもOK! p⼀緒に⾊んな壁を乗り越えるためのフィード バックをお互いにしませんか? 皆様にお願い
  33. 33. © BIGLOBE Inc. 201733 lメーカー/ベンダーのみなさま p⾃動化のためのツール/APIを提供して下さい! Ø⾃動化がしやすいのは、選定される基準になります p⾃動化のハードルを下げて欲しい! Ø⾊んな事例の紹介ももっと聞きたいです Ø⾃動化にまつわるAPIのドキュメントも 充実させてほしいです! pOSSに乗ってきて欲しいです ØNapalmに搭載可能なモジュールの提供など 皆様にお願い
  34. 34. © BIGLOBE Inc. 201734 l SmartCS/SmartGSで抽象化してくれませんか? pいつも⼤変お世話になっているSmartCS Ø確実な接続性で信頼してます! ありがとうございます! p更に、各ベンダーの設定や状態取得の抽象化&中間APIが できると最⾼にHappyです! セイコーソリューションズさんへのお願い シナリオ SmartCS ベンダーA ベンダーC ベンダーB 差分吸収 REST API grpc
  35. 35. © BIGLOBE Inc. 201735 l マルチベンダ対応の⾃動化⽀援ライブラリ 「NAPALM」を使って⾃動化してみました p 現実的な⾃社の環境に適⽤できるものができた p 作業省⼒化が可能 l より省⼒化するためにWebGUIでの⼿順書作成⽀援ツールを 作りました l 抽象化レイヤーとしてのSmartCSお願いします! まとめ 一緒に自動化に向けて挑戦して、共有していきませんか? 皆様の共有が業界全体の自動化の歩みを早めます!
  36. 36. © BIGLOBE Inc. 201736 l 発表で使ったツールは全て公開してます p Napalm-scenario(YML⼿順書⾃動実⾏ツール) Ø https://github.com/as2518/napalm-scenario p OperationHQ(YML⼿順書作成/管理WebGUI) Ø https://github.com/as2518/ops-hq l NAPALM p https://github.com/napalm-automation/napalm l 参考リンク p JSNAPyとPyEZで作る次世代ネットワークオペレーションの可能性 Ø Napalm-scenarioの原型はこちら Ø https://www.slideshare.net/taijitsuchiya5/jsnapypyez Ø https://github.com/as2518/scenarioJUNOS 最後に

×