北内さん:やりたいこと: ・Tracerouteで経由した (NW機器・Interface) を知りたい #janog #janog43_room
2019-01-24 10:27:39北内さん: ・NW機器→[SNMP]→LibreNMS→[WebAPI]→Code→[File作成]→hosts.txt #janog #janog43_room
2019-01-24 10:28:40北内さん: ・今回の方法だと、機器に直接操作する必要がない →ハードルが低いかと #janog #janog43_room
2019-01-24 10:29:07北内さん:今回必要なのは: ・IPアドレス ・I/F名 ・デバイス名 #janog #janog43_room
2019-01-24 10:29:23北内さん: これらを相互に紐付ける何か←大事 →キーになる ID みたいなものが必要になる →これらを意識して API を叩いてみた #janog #janog43_room
2019-01-24 10:29:59単純に 2のN乗じゃないと割り当てづらいっていうだけな話な気がするけど、最近の機械ならもっとかしこくてもいいなっていう気もする #janog
2019-01-24 10:32:12北内さん:Deviceの Listを作る ・API のサンプルが用意されているのでそれを参考に叩いてみた →まずはトークンを格納 →対象デバイスを指定 →JSONで返ってくるのでリストに格納 →→IDと機器名のリスト #janog #janog43_room
2019-01-24 10:33:08北内さん:PortのListを作る: ・ドキュメントに colums を使って情報を絞ったほうが良いと書かれていた →しかしこれを使ったサンプルがなかったので試行錯誤した #janog #janog43_room
2019-01-24 10:34:13北内さん:IPアドレスのListを作る: ・hostname が重要 →何台も機器があるとアクセス回数が増える →→外部サービスだとアクセス回数に制限があったりして、それが原因で止まったり →→アクセス先の負荷が高くなったり #janog #janog43_room
2019-01-24 10:36:22北内さん:自社内で使っているPrefixだけ抽出したい: ・Python に ipaddress module が用意されているのでそれを用いて #janog #janog43_room
2019-01-24 10:39:17北内さん:禁則文字とかdotを置換したい: ・DNS で用いることができる文字には制限がある →これらを置換する #janog #janog43_room
2019-01-24 10:41:18北内さん:さいごに: ・WebAPIコワクナイヨ →ドキュメントも公開されている ・WebAPI最強、デハナイヨ →適材適所で →今回は LibreNMS でやった ・NW運用コード化タノシイヨ →Happy Hacking Hackathon! #janog #janog43_room
2019-01-24 10:43:07長久さん:最初の話で、副作用の話。Write しちゃうところ。Dry run を挟むケースって、効果は限定的だと。僕はあまりやらない。Dry run って NW機器だとよく使われるのかな、と思いますが、これって、シンタックスエラーなどを確認するくらいだと思っていて。 #janog #janog43_room
2019-01-24 10:46:24土屋さん:殆どの場合で見れていないと。Dry run は Commit の前。このコマンドを打ったら NW 的にどうなるかまでは確認できない。そこが難しさ。サーバーだと、全く同じ環境を用意して確認できる。しかし NW だと、同じ環境を用意するだけでお金が…。 #janog #janog43_room
2019-01-24 10:46:29仮想 OS は出てきているので、そういうの模擬的にシミュレーション環境を用意して試してから、というのはできるようにはなってきた。しかし古い機器だとそういうのもないので悩ましい。 #janog #janog43_room
2019-01-24 10:47:33でもこれって、自動化に特化した話ではなくて、今までも課題だったと思う。手を付けられてこなかったのだと。 #janog #janog43_room
2019-01-24 10:47:34長久さん:人間がチェックせずに機械が全部やってしまいますだと、コードのバグや、マシンの動作が変わっていたり。 土屋さん:経営リスクだと思っていて。人手でチェックというのはしばらくは無くさないほうが良いと。Production 環境を対象にする場合は、ちゃんとチェックを。 #janog #janog43_room
2019-01-24 10:49:07dry-runではシンタックスチェックはできても、commit後のネットワーク機器の動作が見れない件。もしかしたら、実機ではないけどbatfish も解決の一つになりえるかも?あとは仮想ネットワークOS、コンテナネットワークOSで環境シミュレーション。 #janog #janog43_room
2019-01-24 10:49:16Anti-DDoS の為のBGP Community対応 大いに歓迎 自社ネットワークを自動化対応していても 上位キャリアへのRTBH依頼だけメールベース とかナンセンス #janog
2019-01-24 10:50:09