Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
モダンなネットワーク構成管理DBを最小労力で開発する
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Mabuchin
June 06, 2019
Technology
990
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
モダンなネットワーク構成管理DBを最小労力で開発する
Mabuchin
June 06, 2019
More Decks by Mabuchin
See All by Mabuchin
TIPSTARのライブ・プロダクションシステムの裏側
mabuchin
1
1.4k
ホワイトボックス伝送の動向と商用利用について
mabuchin
3
870
WhiteBoxSwitch NOSの変遷
mabuchin
5
2.2k
Cassini + Goldstone DCI use case and challenges
mabuchin
1
330
転びながらもネットワーク処理をソフトウェアで自作していく話
mabuchin
8
5k
Gitでネットワークオペレーションを進める話
mabuchin
0
170
TapAggregationを使ったデータプレーン性能測定
mabuchin
0
300
Github PullRequestで作業半自動化
mabuchin
0
140
お手軽! BGP RIBのリアルタイム経路解析+可視化
mabuchin
0
460
Other Decks in Technology
See All in Technology
顧客合意を取りながら進めるAWSコスト削減の実践
optim
0
140
【dbts2026】AIエージェントの 判断と探索を変える、 データベース エンジニアリング― 既存DBの処理と依存関係から作る、オペレーショナルオントロジー ―
shisyu_gaku
0
250
Content Mapper APIの応用例~CSS Modules、言語ファイル~
uhyo
2
620
レガシーコードに対する loop engineering的なAI開発プロセス導入について
kubell_hr
0
280
AI時代の組織作り:チーム開発から「個人×AI」への移行と、持続可能な「開発資本」の築き方
ham0215
2
340
コードレビューをなくして見えたもの
henteko
0
140
DBTS2026 盛り上がってますか!?Databricksが実現するAI時代のデータ基盤
akuwano
1
190
AI Agent 時代のデータ基盤: ClickHouse で実現する 超高速分析とコスト削減の両立
jozono
0
210
evcc & Home Assistant
naltatis
0
260
Kiro IDE 入門 (画面の各部から、頼み方、任せ方、戻し方まで) | 目指せ Kiro マスター 02
inariku
PRO
4
140
Context Ontology Accelerator 入門 (業務データの意味を、AI エージェントに渡す)
inariku
PRO
3
570
令和の今、あらためて IAM を考える。アクセスキーを「無くせない現実」との向き合い方
kazzpapa3
0
520
Featured
See All Featured
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
930
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
980
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Crafting Experiences
bethany
1
430
New Earth Scene 8
popppiees
4
2.8k
Facilitating Awesome Meetings
lara
57
7.2k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
590
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
520
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.8k
Practical Orchestrator
shlominoach
192
12k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
380
Claude Code のすすめ
schroneko
67
230k
Transcript
2019/06/13
ネットワーク構成の管理 2
どんな場⾯で欲しくなってくるか • ⼈が設定変更する場合 • 機器上で「あるべき状態」を確認 • 実際のConfigがMasterデータでも、ある程度問題ない • Botがやる場合 •
「あるべき状態」と「今の状態」を毎回解析してValidationは結構つらい • 「ネットワークの正の情報」は連携の観点でも機器外に持ちたい • 事前確認 • 設定変更 • 事後確認 Automation • Config Replace Master Network Data
DBをネットワーク構成のマスターにできれば Code baseなOperationが⾮常にやりやすい
何を管理する︖
ネットワーク構成で管理するもの • Device Info • OS • Location/Rack • Interface
• Inventory • VLAN • LAG • IP Address • Prefix • NAT Table • ACL Table (自社の場合) • IGP(OSPF) • Interface • Area • metric • VRF • Route Distinguisher • Interfaces • EGP(BGP) • ASN • Neighbor • Route-policy などなど...
結構多い
これ⾃分で全部実装するの︖ • 様々なソフトウェアと連携させる必要性がある • APIの実装が必須 • 作業する場合に、DBを変更してそれを波及させる • ⼈が弄るWeb UIが必要
• 管理する情報量が結構多い • DB設計も時間がかかる • 性質的に、継続的にメンテナンスする可能性が⾼い • 誰でも素早く追加実装できなければいけない • 実装にそんな時間をかけてられない • これだけやってるわけじゃないので...
1から⾃作は無理︕
NetBox is an IP address management (IPAM) and data center
infrastructure management (DCIM) tool. Initially conceived by the network engineering team at DigitalOcean, NetBox was developed specifically to address the needs of network and infrastructure engineers.
• Django製のIPAM兼DCIM OSSツール • Rest API完備 • ほぼ全ての操作に対してAPIが提供されている • Webhookサポート
• Salt/Napalmとの連携サポート • 使いやすい(?)WebUI • 高頻度なリリース • Rack/Device/Inventory/Interface/IP address/VRF/Curcuit/VM の管理機能提供 Netbox
(再掲)ネットワーク構成で管理するもの • Device Info • OS • Location/Rack • Interface
• Inventory • VLAN • LAG • IP Address • Prefix • NAT Table • ACL Table • IGP(OSPF) • Interface • Area • metric • VRF • Route Distinguisher • Interfaces • EGP(BGP) • ASN • Neighbor • Route-policy などなど...
我々には “少しだけ”⾜りない
None
Forkして⾃社カスタム • NetboxはApplication componentでしっかり分離している • 新規でDjango app追加して、既存に倣って分離して開発可能 • フォークしても分離が綺麗だから追従も楽々 •
実装コストがかなり低く、テストされた基盤を使える • Routing appを追加で開発 • テスト含めても1500⾏くらい • 細かい点抜きなら3⽇くらいで⼤体終わる • Netboxの作り込まれたUtilityが利⽤できる • Model/Template/View/APIは既存を真似すれば⼤体分かる
None
Swaggerも標準搭載
今 : 既存からのマイグレーション Netbox POST DATA Data Collector • まずはDBが「最新の構成を保つ」状態からスタート
• 作業者が⼿で設定を変えても、Collectorが情報を集めて差分を検知 • 「役に⽴たないDB」にならないために常に正常系を維持させる • 周辺ツールが機器情報を参照して使えるようにするとこから始める Operator Diff alert & CRUD Network 設定変更 Other Tool 機器情報参照
WIP : これからのフロー Netbox Bot worker • 「DBこそが真」なオペレーション • DBで変更を加えた場合、適⽤するための機器のConfigを丸々⽣成しPR
• CIでSyntax等のValidation実施、⼈が許可したらDeploy • Delete等の⼿続き的なオペレーションフローを伴わずに⾃動適⽤が可能 Network Config Replace Pull Request CI Tools Deploy Device Template Database change Create PR Approve パラメーター
メリット • DBで構成を集中管理 • 機器のConfig Templateと合わせることで 「その機器のConfig」を丸々⽣成し、それをReplaceする • GithubでConfigをPRにすれば、差分が⾒れる&CIも使える •
既存運⽤フローの活⽤ • 他ツールが情報参照する際に機器にアクセスしなくて良い • コードメンテナンス労⼒の抑制 • OSS部分のバグは本家にIssue&PRすればOK • 全て⾃分で保守するべきところは⾃作のところのみ
意外と⼤変だったこと • 常に最新に保つCollector • Diffを算出するのが結構⼤変 • DBに無いのはまだいいけど、DBにあって機器から 消えてるのを探すのもけっこう⼤変 • NAPALMで機器情報を取得しているが、結構情報が⾜りない
• 各メソッドをそこそこ改造している
ちなみにセイコーさんのSmartCSも管理できます︕
こんな機能があったら良いな︕(Serial LLDP) • ラベルの書き換えを忘れて、名前が古いままとかだったりする • 何がつながっているか分からなくなる ↑ ここのLabelをシリアルポートから 解析して⾃動設定してほしい
Thank you!!