Slide 1

Slide 1 text

構成管理DB から ネットワーク図を ⾃動⽣成する Shintaro Kojima コーダンス / @codeout

Slide 2

Slide 2 text

ネットワーク図の話をします ໰୊
 ߋ৽͕໘౗͍͘͞ 2

Slide 3

Slide 3 text

作図で悩む 3

Slide 4

Slide 4 text

間違う 4

Slide 5

Slide 5 text

忘れる 5

Slide 6

Slide 6 text

ネットワーク図? ないけど? 6

Slide 7

Slide 7 text

なんとかしたい w ࣗಈͰωοτϫʔΫਤΛඳ͘νϟϨϯδ w ೖྗʮσόΠεͱσόΠε͕ͭͳ͕͍ͬͯΔʯ Ϩϕϧͷ઀ଓ৘ใͷू·Γ w ʮҐஔ৘ใͳ͠ʯറΓ codeout/inet-henge 7

Slide 8

Slide 8 text

⼊⼒する情報 A B { "nodes": [ { "name": "A" }, { "name": "B" } ], "links": [ { "source": "A", "target": "B" } ] } "ͱ#͕ͭͳ͕͍ͬͯΔ 8

Slide 9

Slide 9 text

使いかた ߏ੒؅ཧ%#͔Β+40/Λॻ͖ग़͢ )5.-+BWBTDSJQUͱҰॹʹɺ8FCαʔόʔʹͷͤΔ ϒϥ΢βͰΞΫηε͢ΔɻҎ্ʂ ࢀߟhttps://github.com/codeout/inet-henge σϞhttps://inet-henge.herokuapp.com/ 9

Slide 10

Slide 10 text

出⼒サンプル ⼊⼒ { "nodes": [ { "name": "A" }, { "name": "B" } ], "links": [ { "source": "A", "target": "B" } ] } 10

Slide 11

Slide 11 text

3ノード ⼊⼒ { "nodes": [ { "name": "A" }, { "name": "B" }, { "name": "C" } ], "links": [ { "source": "A", "target": "B" }, { "source": "B", "target": "C" }, { "source": "C", "target": "A" } ] } 11

Slide 12

Slide 12 text

POP名による
 グルーピング ⼊⼒ # json { "nodes": [ { "name": "POP1-A" }, { "name": "POP1-B" }, { "name": "POP2-C" } ], "links": [ { "source": "POP1-A", "target": "POP1-B" }, { "source": "POP1-B", "target": "POP2-C" }, { "source": "POP2-C", "target": "POP1-A" } ] } # html var diagram = new Diagram( '#diagram', 'index.json', {pop: /^([^\s-]+)-/} ); diagram.init('loopback', 'interface'); 12

Slide 13

Slide 13 text

アイコンと メタデータ ⼊⼒ { "nodes": [ { "name": "POP1-A", "icon": "./images/router.png" }, { "name": "POP1-B", "icon": "./images/router.png" }, ... ], "links": [ { "source": "POP1-A", "target": "POP1-B", "meta": { "interface": { "source": "ge-0/0/0", "target": "Te0/0/0/0" }} }, ... ] } 13

Slide 14

Slide 14 text

ShowNet 2017 トポロジー https://www.interop.jp/2017/images/shownet/shownet_topology.pdf +40/ ஫ ൺֱͷͨΊ ճస͍ͯ͠·͢ 14

Slide 15

Slide 15 text

デモ https://inet-henge.herokuapp.com/ w ஫໨ϙΠϯτ w ϦϩʔυͰ഑ஔ͕มΘΒͳ͍ w ζʔϜ͢Δͱࡉ͔͍৘ใΛදࣔ 15

Slide 16

Slide 16 text

まとめ w ࣗಈͰωοτϫʔΫਤΛඳ͘νϟϨϯδ w ʮҐஔ৘ใͳ͠ʯറΓ w %KTϕʔεͷ47(Λग़ྗ w ͍͚ͦͦ͜͜Δ͸ͣɻͥͻ࢖ͬͯΈ͍ͯͩ͘͞ʂ codeout/inet-henge 16

Slide 17

Slide 17 text

⼿伝ってくれる⽅を募集!! w ࢖ͬͯΈͯ͘ΕΔํ w ͝ҙݟɺෆ۩߹ใࠂΛͯ͘͠ΕΔํ w ύονΛૹͬͯ͘ΕΔํ Έͳ͞Μͷ͝ڠྗΛ͓଴͍ͪͯ͠·͢ʂ 17