LGTM

Looks Good To Me

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 に接続したときに脅してくるこれ,しばらく意味が分からなくて放置していた. たぶんこういうことかな,というのを教えてもらって「なるほど,良くないかもしれん」と思い駆逐した. @codeout 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, ...) を気に入って使っている. xlo…

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 のうち,とくにバリデーションについて調べまし…

VirtualBox 上の IOS-XRv コンソールに接続する

Cisco IOS-XRv は ハイパーバイザーが開くTTY にコンソールを接続してくれないので,自分で設定する必要がある. たとえばVMWare Fusion はコンソールをPTY に繋ぐ機能があるので簡単だが,VirtualBox は面倒. コンソールをドメインソケットとして出す 下の…

ネットワークエンジニアリングはアジャイルじゃない

リーン・スタートアップと言ってもいい.Web 界隈ではあたりまえの開発手法を ネットワークの開発に使うのはむずかしい. 自分はインターネットが得意で (ネットワークとしてのインターネットね!) たかだかIP と上下レイヤーくらいしか分からないんだけど,…

Time Attack: bgpsimple vs exabgp 2nd Heat

After @exabgp thankfully gave me an advice on my previous post, I carried out performance tests of bgpsimple and exabgp again. @codeout Great blog entry: http://t.co/FHKPp9DXN6 . It would be great if you could check how much faster our API…

ruby で pcap を読む

tcpdump やtshark などでキャプチャーしたパケットを,ruby で読むためのライブラリがあります. The Ruby Toolbox などで検索すると山のように出てきますが,いくつか良さそうなのを紹介します. PacketFu 例: IP パケットのsource address だけを抽出した…

Time Attack: bgpsimple vs exabgp

お手軽フルルート環境に興味が出て,どの程度お手軽にできるのか試しました. Bird Quagga BGPFeeder bgp4r bgpsimple eggpg gobgp pybgp announcer exabgp (参考: Other OSS BGP implementations · Exa-Networks/exabgp Wiki · GitHub) をざっと見て MRT か…

HipChat ゲストアクセス時も履歴を保存したい

Read in English HipChat は無料プランでもゲストを招待できて便利だけど,招待された側は履歴をたどれなくて不便. 自分がオフラインだった期間の履歴は読めない 前回ゲストとして発言した自分の履歴も読めない タブを閉じたり,リロードしても消える 毎回…

古いメールを全文検索できるよう保存する

昔からのメールが溜まってて,検索できる状態で置いときたい. 26GB 85万通 Maildir 形式 IMAP サービスするのはアリ (dovecot が動いてる) どんな検索エンジンを使うのがいいかを検討した. ざっくり言うと Xapian をバックエンドとするmu でインデックスし…

JANOG35 に行ってきた (Day3)

JANOG35 に行ってきた (Day2) に引き続き,JANOG35 レポート. ほぼ毎回行ってるイベントで,インターネットに関するネットワーク寄りの知見を得られる.参加者はネットワークエンジニア中心. 気になったセッションをいくつか紹介しようと思う. JANOG35会…

JANOG35 に行ってきた (Day2)

先日,JANOG35 というネットワーク系イベントに行ってきた.Day1 は参加してない. ほぼ毎回行ってるイベントで,インターネットに関するネットワーク寄りの知見を得られる.参加者はネットワークエンジニア中心. 気になったセッションをいくつか紹介しよう…

ものづくりの理想郷 を読んだ

著者の山本さん から頂きました.ありがとうございます. この本は,平和酒造 という酒蔵が抱えていた組織的な問題をどうやって解決したか,蔵元の視点で書かれている.斜陽の日本酒業界にあって,昔はうまくいっていた 蔵(職人たち) が酒を造り,蔵元(経営…

SpamAssassin が何をしてるか

スパムフィルターをSpamAssassin に変えてから,DNS クエリーが増えた. 「なにこれ」と思ってだいぶ放置してたんだけど,あらためて何をしているか調べた. ざっくり言うと SpamAssassin は多数の外部ブラックリストサービスに依存しており,DNS クエリーを…

Yosemite でSCR3310-NTTCom をつかう

mac

e-Tax などでおなじみの公的個人認証サービス(JPKI) に必要なICカードリーダーのうち,鉄板だという「SCR3310-NTTCom」が生産終了になるらしい ので1つ買ってみた. ざっくり言うと OSX10.10 (Yosemite) で使うには メーカー製のドライバーには触れるな 必要…

やってみよう NETCONF

知ったかぶりしない NETCONF に続く, NETCONF エントリーです. 今回はNETCONF の実装をいくつか試す. A Ruby gem for NETCONF Netopeer 前のエントリーでは「NETCONF 便利そうだけど, データモデル*1 が共通じゃないので使うのつらそう. 特にいろんな種類の…

知ったかぶりしない NETCONF

最近ネットワーク関連のカンファレンスなどで 再び注目され始めたNETCONF について調べてみた. NETCONF はネットワークデバイスの設定や状態を取得/更新するための管理用プロトコルで, 特にネットワーク全体を統合管理できるという特徴を持つ. RFC で標準化…

emacs 24.4 をインストールしてみる

2014/03 月に出た24.3 以来, ひさしぶりのupdate. さっそくインストールしてみた. 見やすくなったブラウザー 自動インデント 矩形選択 -> コピー&ペースト 重複行の削除 などの便利機能が使える. OSX 10.10 $ brew update $ brew install emacs --cocoa /usr…

通信内容からiPhone アプリの振る舞いを推測する

先日iPhone で撮った動画をメールで送ろうとして,送信エラーで送れなかった.ところがMessages.app だとちゃんと送れる. 「くそーなんだこれ.Messages なにやってんのかまったく分からん!」と思って,このアプリの振る舞いを調べてみた. 写真アプリの仕…

長〜いコマンドが終わったら Yo で知らせる

待ち時間の長いコマンドが終わったことを Yo で通知します. Github - codeout/doneyo つかいかた なかなか終わらなそうなコマンドの後で yo を呼ぶ. $ sleep 5; yo インストール 3つのうち,お好きな方法で.どれもyo がインストールされます. 1. Rubygem…

emacs + ag = ag.el

emacs 上で検索 → 編集するときの "検索" を高速化しよう! という話題です. color-moccur + moccur-edit の代わりにag.el + wgrep を使います. やりたいこと emacs 上で あるディレクトリー配下をキーワード検索し,結果を表示 検索結果を直接編集 → もと…

private なsetter メソッドの使いかた

ruby の話です. private なsetter を なぜかレシーバー付きで呼べるのですが,「そんなん使うの?」という声をときどき聞くのでメモっときます. おさらい private なsetter メソッドは,定義に反してself.var= :foo のように呼べる class Foo def test self…

ネットワークエンジニアのためのコンソール接続方法 一覧

クラウド,VPS,IaaS,PaaS だとコンソールをつかむのに苦労しませんが,ネットワークエンジニアはまだまだ「物理的にコンソール接続したい」場合があります. 接続方法を忘れて 毎回試行錯誤するのがアホなので,デバイスごとのコンソール接続方法をまとめ…

シェルコマンド履歴のインクリメンタルサーチとbc

シェルのコマンド履歴検索って便利ですよね. bc コマンドも同じくらい便利ですよね. コマンド履歴検索にCtrl+r (backward search) とCtrl+s (forward search) を使い分けているのですが,こいつはOSX 付属のbc コマンドと相性が悪い という話題です. 注: …

Feedly の記事一覧を色分けする

Feedly の記事一覧に色をつけるだけのChrome 拡張です. chrome web store Firefox のBetter GReader が便利でしたが,Feedly 向けで動くものがなかったので作りました. スクリーンショット

Tumblr Dashboard でChrome + AutoPagerize を動かす

普段Chrome にAutoPagerize 入れて楽しんでますが,Tumblr Dashboard ではうまく動きません. AutoPagerize の次ページロード方法を変えれば動くっぽいので,やってみました. 2014/05/22 追記 Chrome 35.0.1916.114 に対応 動かないのはなぜ? そのままだと…

RD をやめてMarkdown にする (emacs + howm)

[2016-06-15] 追記: markdown-mode をアップデートしたら動かなくなったのを修正 みなさん, いろんなところにメモを書いていると思います. 私は長らくRD Format で書いていましたが, 度々Markdown にしようかと考えてました. 2年くらい, 思いつくたびに後回…

Facebookで 既読の投稿を分かりやすく表示する

Short summary in English here Facemark というChrome 拡張をつくりました. Facebook タイムラインを読んでいるとき,既読の投稿を見えにくく します.すごくシンプルで,特別な操作は必要ありません. 既読履歴や設定情報は ブラウザーのみ に保存されま…