Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ここまでできる ! 設定ファイルからの ネットワーク構成可視化 / OSC2019_Tokyo...
Search
m.hagiwara
October 10, 2019
Technology
2
1.2k
ここまでできる ! 設定ファイルからの ネットワーク構成可視化 / OSC2019_Tokyo_Enterprise
オープンソースカンファレンス2019 OSC2019.Enterprise
https://www.ospn.jp/osc2019.enterprise/
m.hagiwara
October 10, 2019
Tweet
Share
More Decks by m.hagiwara
See All by m.hagiwara
運用者の試行錯誤を想定したNWモデル上での並列検証システム / ood2024
corestate55
0
100
もし本番ネットワークをまるごと仮想環境に”コピー”できたらうれしいですか? / janog51
corestate55
1
820
モデルを基に本番環境を再現して事前に検証可能にする運用サイクル / ood2022
corestate55
0
1.2k
直観でとらえるネットワークの基本要素 / OSC_2020_Online_Fall
corestate55
0
1.1k
ネットワーク構成図を考える: よい構成図はなにがよいのか / OSC_2020_Hokkaido
corestate55
7
17k
ネットワーク構成図を考える: NW図の基本とモデル指向NW図のススメ / OSC_2020_Tokyo_Spring
corestate55
29
31k
ここまでできる! 設定ファイルからのネットワーク構成可視化 / npstudy17
corestate55
3
2.9k
「ネットワーク図」のモデル化とモデルを起点にした自動化の可能性 / onic2018
corestate55
1
2.9k
ネットワーク自動テストの実適用 / JTF2018
corestate55
4
1.5k
Other Decks in Technology
See All in Technology
abema-trace-sampling-observability-cost-optimization
tetsuya28
0
360
AWSが好きすぎて、41歳でエンジニアになり、AAIを経由してAWSパートナー企業に入った話
yama3133
2
190
猫でもわかるAmazon Q Developer CLI 解体新書
kentapapa
1
140
パフォーマンスチューニングのために普段からできること/Performance Tuning: Daily Practices
fujiwara3
2
150
可観測性は開発環境から、開発環境にもオブザーバビリティ導入のススメ
layerx
PRO
4
1.8k
[re:Inent2025事前勉強会(有志で開催)] re:Inventで見つけた人生をちょっと変えるコツ
sh_fk2
1
950
Amazon Athena で JSON・Parquet・Iceberg のデータを検索し、性能を比較してみた
shigeruoda
1
210
東京大学「Agile-X」のFPGA AIデザインハッカソンを制したソニーのAI最適化
sony
0
150
AI連携の新常識! 話題のMCPをはじめて学ぶ!
makoakiba
0
150
【SORACOM UG Explorer 2025】さらなる10年へ ~ SORACOM MVC 発表
soracom
PRO
0
170
頭部ふわふわ浄酔器
uyupun
0
240
アウトプットから始めるOSSコントリビューション 〜eslint-plugin-vueの場合〜 #vuefes
bengo4com
3
1.8k
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Documentation Writing (for coders)
carmenintech
75
5.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
44
7.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
Transcript
ここまでできる! 設定ファイルからの ネットワーク構成可視化 1 TIS株式会社 萩原 学 2019/10/10 OSC 2019
Enterprise
自己紹介 • 萩原 学 (HAGIWARA Manabu) – ネットワークの話が好きです • 今日の資料はこのへんにあります
2 twitter.com/ github.com/ qiita.com/ speakerdeck.com/ corestate55
今日話したいこと • 「構成を可視化する」話中心です – データソース=batfish の話はあまりしません • どう? – イイ!
/ いまいち… – ウチで問題になってるこれにはどうだろう… – もっとこういうことはできないか… • 何かやってみようかな 3
背景 4
課題感 • システムの複雑化 – 全体像をとらえるのが難しい – どこで何をすべきか? – どこで何が起きているか? •
結果… – 属人化 – 多重レビュー – 初動対応の遅れ • 構成要素単体ではなく、 相互の関係性をとらえたい 図から情報を読み取る 図を基に判断する ことがボトルネックに Monitor Network Fig data (config) 5
目指す世界 • 構成図 “職人芸” からの脱却 – 人による「図」読み書きの機械化 • Read: 全体像(構成)のキャッチアップ
– 実際の環境情報のマッピング – モデル(設計情報)との照合…影響範囲調査 – 状況に応じた情報量のコントロール – 変更差分の可視化 • Write: モデルベース設計 – 書いた図(モデル)がそのままデプロイされる – 図(モデル)レベルでのテスト自動化 (静的解析, verify, simulation) モデル中心 システム設計・運用 Fig data (config) RFC8345: Network Topology Data Model Monitor Network 各種 データ ソース 6
DEMO 7 デモ動画 https://youtu.be/YKKWg7Ap6H8
デモシナリオ • batfish のチュートリアル用 データを使用 – pybatfish/jupyter_notebooks/networks/ex ample at master
· batfish/pybatfish https://github.com/batfish/pybatfish/tree /master/jupyter_notebooks/networks/exa mple • 元のNW構成図との対比を とりながら見てください 8 元図 https://github.com/batfish/pybatfish/blob/master/jupyter_note books/networks/example/example-network.png
データ処理フロー Fig RFC8345 Topology data Monitor Network Device config Data
table Batfish コンフィグ解析 netomox データ 変換 netoviz トポロジ 可視化 利用者 (NWオペレータ) 9
データ処理フロー Fig RFC8345 Topology data Monitor Network Device config Data
table 利用者 (NWオペレータ) NW機器コンフィグをデータソースにした トポロジデータの作成 Batfish コンフィグ解析 netomox データ 変換 netoviz トポロジ 可視化 10
データ処理フロー Fig RFC8345 Topology data Monitor Network Device config Data
table 利用者 (NWオペレータ) 階層のあるトポロジデータの可視化 Batfish コンフィグ解析 netomox データ 変換 netoviz トポロジ 可視化 11
データ処理フロー Fig RFC8345 Topology data Monitor Network Device config Data
table 利用者 (NWオペレータ) アラート対象の可視化 Batfish コンフィグ解析 netomox データ 変換 netoviz トポロジ 可視化 12
データモデルとグラフの対応 network (topology) node termination point link supporting network supporting
node supporting tp supporting link +----------------+ | topology |<... +----------------+ : * * : : | | :...: | | +--------+ +--------+ ...>| node |<.......| link |<... : +--------+<.......+--------+ : : : * : : : : :..... | : : :...: | : : +--------+<...........: : | TP |<.............: +--------+ draft-medved-i2rs-topology-im-01 - An Information Model for Network Topologies https://datatracker.ietf.org/doc/draft- medved-i2rs-topology-im/ 13
隣接関係 (bgp/layer3) 14 元図 https://github.com/batfish/pybatfish/blob/master/jupyter_note books/networks/example/example-network.png BGP(AS) BGP(Proc) Layer3
tpX 見せ方 (dependency) network (topology) node termination point link supporting
network supporting node supporting tp supporting link Node A1 Node B1 Node A2 Node B2 Layer1 Layer2 Node A1 Node B1 Layer1 Layer2 tpY tpP tpQ tpY tpP Node A2 Node B2 tpQ tpX 隣接関係は無視する 15
階層間の関係性 16 大きな構造(AS)が 何から構成されているか? 小さな構成要素(L3機器)が 何に影響を及ぼすか?
tpY tpX 見せ方 (nested) network (topology) node termination point link
supporting network supporting node supporting tp supporting link Node A1 Node B1 Node A2 Node B2 Layer1 Layer2 Node A1 Node A2 Node B1 Node B2 tpY tpP tpQ tpX tpQ tpP 隣接関係と依存関係を合成する • ノードの依存関係→入れ子 • ポートの依存関係→矢印 17
隣接関係と階層間の関係性の合成 18 大きな構造(AS)が 何から構成されているか? 小さな構成要素(L3機器)が 何に影響を及ぼすか?
モデル検査 19 hagiwara@dev01:~/nwmodel/netomox-examples$ bundle exec netomox check public/model/bf_trial.json | jq
'.[] | select(.checkup == "link reference count of terminal-point").messages[] | select(.path|test("__Lo0")|not)' { "severity": "warn", "path": "layer3__as1border2__Gi2/0", "message": "irregular ref_count:0" } { "severity": "warn", "path": "layer3__as3core1__Gi2/0", "message": "irregular ref_count:0" } { "severity": "warn", "path": "layer3__as3core1__Gi3/0", "message": "irregular ref_count:0" } hagiwara@dev01:~/nwmodel/netomox-examples$ リンクのない 怪しいIPのポート がある
まとめ 20
できたこと • batfishをつかうと config から いろんなプロトコルのトポロジ情報が取れる • RFC8345データモデルを使うと複数のトポロジ (レイヤ)の関係性を定義できる •
関係性の定義された複数のトポロジの「見せ方」を いくつか試してみた 21
課題 • 今回使った batfish tutorial のトポロジは シンプルでわかりやすい – All L3
(VLAN/VRF他 仮想化技術系がない) – 複数の要素を束ねるような冗長化機能を使っていない • 運用上、把握が難しい構成要素をどう扱う(表現する)か? – 仮想化, 冗長化, Overlay, 動的に変わる状態など – 設計情報など “L8” 方向の関係性? – それらのモデル化 + 可視化(見せ方) • 脳内マッピングやめたい 22
Fig RFC8345 Topology data Network 利用者 (NWオペレータ) 自動化・テスト・ シミュレーション CMDBなど
各種データソース トポロジ エディタ 考えたいこと 23 Write: モデル中心の設計・設定・構成変更 構築・本番作業前の事前チェック・テスト・シミュレーションへの応用 「図を書いたらその通りのシステムができる」へ
参照 • TISとフィックスポイント、「標準トポロジモデルを応用したネットワーク構成の可 視化に関する研究」を共同で開始 https://www.tis.co.jp/news/2018/tis_news/20181017_1.html • 「ネットワーク図」のモデル化とモデルを起点にした自動化の可能性 / onic2018 https://speakerdeck.com/corestate55/onic2018
24 今回発表した内容の解説ブログあります • Batfish を使ってネットワーク構成を可視化してみよう (1) - Qiita https://qiita.com/corestate55/items/8a39af553785fd77c20a • (1)-(3)まであります
ツール • netomox: Network Topology Modeling Toolbox https://github.com/corestate55/netomox – データ定義DSL
– Topology Data (JSON) の CLI diff • netoviz: Network Topology Visualizer https://github.com/corestate55/netoviz – https://netoviz.herokuapp.com/ (demo) – Topology Data (JSON) Visualizer 25