LGTM

Looks Good To Me

JUNOS 17.2 の PEGパーサーで文法チェックする

ネットワーク運用のために、生成した / 手書きしたコンフィグを CIでテストしています。 おおよそ次のような単純なワークフローです。 コンフィグジェネレーターを実行、生成されたコンフィグをGitHub にpush あるいは、手書きしてpush Travis CI、Jenkins …

パブリックデータから経路リークを探る

2017/08/25 12:30 (JST) ごろ、日本国内で大規模な通信障害が観測されました。 通信障害の内容について、とても詳細にまとめられている記事があります。 d.hatena.ne.jp 障害の内容はさておき、このエントリでは障害のしくみについて探ってみようと思います…

sFlow は面倒くさいが、fluent-plugin-sflow を再実装する話

背景 ネットワークデバイスからの xFlow を Fluentd で集めて分析、あるいは可視化するということをよくやります。 ルーター製品であれば fluent-plugin-netflow が使えますが、スイッチ製品はそもそも NetFlow がサポートされていません。代わりに sFlow に…

フリーランスの税金対策

ネットワークエンジニアのまま脱サラし、個人事業をはじめて3年がたった。 おかげさまで ある程度の収益が出るようになったが、 節税のためにやってることのうち「これは」というやつについて書いておこうと思う。 みんな大好きお金の話です。 小規模企業共…

RIB / FIB コンバージェンスを可視化する方法論

高価なテスターを使わず、なんとかRIB / FIB コンバージェンスを計測することを考えています。 コンバージェンスとは ネットワークにBGP イベントが到着してから、さまざまな計算を行い、イベントを送信し、定常状態に落ち着くまでのプロセスをコンバージェ…

xlogin でコマンド自動投入→手動制御 を繰り返す

コマンド群を入れる 手動制御 別のコマンド群を入れる 手動制御 … を大量デバイス上でやりたい、ということがありました。 codeout.hatenablog.com これを少しいじると便利になります。 # configure.tcl source [file join [file dirname [info script]] jun…

Routing protocols' seed metrics for redistributing

When routes are redistributed into another routing protocol, their metrics are also translated to different values depending on vendor implementation and routing protocol which the routes are being redistributed to. Tables below show what …

inet-henge にいくつか機能を足した

inet-henge というネットワーク図生成ライブラリーに リンク太さを変えられる リンク両端に加え,中央にラベルを置ける 地味な機能を足した. github.com inet-henge とは? JSON データを元にネットワーク図を生成してくれる js ライブラリー.オートレイア…

Large BGP Community がやってくる前に,Community マッチをおさらいしよう

2017 / 02月,BGP Large Communities Attribute (RFC8092) がRFC 化された. これは新たに 4Bytes:4Bytes:4Bytes のBGP Community を使えるようにするもので,既存の BGP Community (RFC1997) - 2Bytes:2Bytes Extended BGP Community (RFC4360) - 4Bytes:2B…

ステルスWiFi AP を駆逐した

macos がステルスWiFi AP に接続したときに脅してくるこれ,しばらく意味が分からなくて放置していた. たぶんこういうことかな,というのを教えてもらって「なるほど,良くないかもしれん」と思い駆逐した. SSIDをstealth設定にしているAPにつなぐと、以後…

BGP Community を透過する事業者がどれくらいいるか調べた

11月末にInternet Week 2016 というイベントで,「BGP Community の基本設計」について発表してきた.内容については 発表スライド をご覧いただければ良いかな と思うが,壇上から挙手アンケートを取ってみてびっくりした. 「顧客から受信したBGP Communit…

xlogin でコマンド自動投入したあと,手動制御にもどす

xlogin -s に渡すexpect スクリプトを書けばよい. 設定投入は自動でやって,温かみのある commit を打ちたい場合などにつかう.( そんなのcommit まで自動でやれよ,という話ではある) jlogin の例 log_user 1 # 既存のrun_commands を参考に proc run { pr…

MRAI とBGP Withdrawn とパケットロス

BGP には,無駄な経路計算を減らすためのMRAI Minimum Route Avertisement Interval) というしくみがあります.BGP Update を送信する前に一定時間待ち,経路変化をバッファリングできる機能です.バッファ中にさらに経路変化があった場合,BGP Update を二…

MRAI の代表的なふるまい

BGP には古くからMRAI (Minimum Route Advertisement Interval) という機能がある. イマイチ理解していなかったが,動作を確認しておく必要があり いくつかの実装を調査した. ざっくり言うと vSRX IOS-XRv Quagga 新しいprefix の追加時 MRAI 待つ MRAI 待…

unicast route の変更により,flowspec validation は走るか

flowspec は forwarding に関するルールをルーター間で伝え合うプロトコルで,「他者から受け取ったルールを適用する前にvalidation しなさい」と仕様で決まっている. では,validation するのはいつだろう? flowspec route を受け取ったとき flowspec rou…

mention-bot を試した

Facebook が公開しているPull Request (PR) レビュー支援ツール. PR を作ったとき,最適なレビューアーを見つけてきてPR 上でメンションしてくれる. github.com 試したけど,うまくいかなかった. ざっくり言うと セキュリティ上の懸念があって断念した. …

高速にnetflow を吐く

最近 netflow コレクターをさわる機会が多く「コレクターをベンチマークしたい」と思っている. 「netflow v5 なら何 flow/s まで受けられる」「v9 ならこのくらい」など,性能限界を知っておきたい. 2016/02/20 追記: NetFlow-Generator 戦略 いくつか考え…

junoser internals

junoser というRuby gem をメンテしている. これはJUNOS Config のPEG パーサーで,標準入力やファイルを JUNOS Config として構文解析できる.解析後,文法チェックやスタイルの変換もできる. たとえば, 構文チェック.display | set 形式とデフォルトの…

netconf / restconf 時代にもxlogin 使いまくってる話

NetOpsCoding Advent Calendar 2015 18日目のエントリーです. ハードウェア製品を使ったネットワーキングの話. さまざまなコンポーネントについて YANG Model の標準化が進み,NETCONF 使える気運が高まっています.さらにRESTCONF も待っていて,ハードウ…

条件を満たすとチャット通知するリマインダーをつくる

NetOpsCoding Advent Calendar 2015 3日目のエントリーです. 最近はネットワーク運用をラクにすることに興味があります. たとえば RESTCONF のようなI-D が標準され,進化すれば ネットワークへの自動デプロイが実現できると思いますが,それはネットワー…

rancid の.cloginrc をvault 管理にする

rancid というツールがある.ネットワーク運用するにあたって,もはや手放せなくなっている.rancid のなにが便利かについては別エントリで書こうと思うが,本来の目的よりも付随する xlogin スクリプト (clogin, jlogin, …) を気に入って使っている. xlogi…

El Capitan でSCR3310-NTTCom をつかう

mac

El Capitan (OSX 10.11) でもSCR3310-NTTCom が使えた. やることはYosemite のときと同じだが,El Capitan 用のスマートカードドライバーを選べばよい. codeout.hatenablog.com

Hubot にlongest match 機能をつける

ネットワーク運用をしていると,ホストアドレスから経路をルックアップしたいことが結構ある. たとえばDDoS を受けたとき.いろいろな対処が考えられるが,網内のルーターでパケットフィルターする際に「src address → src prefix の変換をしてからガバッと…

iOS9 のMail.app で使えるcipher,使えないcipher

iOS9 に上げたiphone でimaps できなくなったため,Client Hello が送るcipher suite を調べた. iOS8.4.1 iOS9.0 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 × ○ TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 × ○ TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 ○ ○ …

JUNOS でCI する話

ネットワーク運用がどんどん便利になって「手軽にメトリック監視できる」「ネットワークリソース管理がほら簡単」みたいな話はけっこう聞く.ところが,本丸であるネットワーク本体への変更については「慎重に人手で」という運用をしているところが多いと思…

Gitlab + Gitlab CI をためす

Gitlab + Jenkins があまりグッとこなかったので,Gitlab + Gitlab CI をためしてみた.結論から言えば,Gitlab + Jenkins より良いと思う. Docker 上に準備 やることは Gitlab コンテナを動かす Gitlab CI コンテナを動かす Gitlab Runner コンテナを動か…

フルルート入れるのにgobgp を使ってみる

「どの程度お手軽にフルルートを注入できるか?」の続編です. 2015/08/12 追記 : gobgp の不具合,修正されました codeout.hatenablog.com 今回 gobgp のコミッターさんから「mrt 実装しましたー,もしお時間あったら試してみてください!」と連絡もらった…

Bot にお願いして 手順書を書いてもらう

ネットワーク運用のなかに「手順書を書く」という業務がある.事業者によっては 書く レビュー 直す レビュー 直す … みたいな比較的コスト高い作業になる. ネットワークは事前にテストしづらく「壊れるとヤバい」という側面から,日本では手作業による温か…

退職時の年金戦略

昨年12月に会社勤めをやめ,個人事業主になった.5ヶ月たって やっと退職関連の手続きが終わったので,なんでこんな面倒なことになったのかメモっておく. はー長かった… 企業年金の移換に時間がかかった 会社員だと 企業年金や厚生年金基金の積立をしている…

BGP Flowspec のバリデーション

BGP ルーターには,Flowspec という機能があります.2009年にRFC5575 として標準化されたもので,ざっくり言えば「遠くのルーターでパケットフィルターを発動させる」機能. 最近 注目されているこのFlowspec のうち,とくにバリデーションについて調べまし…