Heartbleed + DNS Poisoning の合わせ技がやばい

2014-04-15 by Daisuke Kotani

OpenSSLのHeartbleedで証明書の秘密鍵が盗まれた可能性のあるサービスがたくさんあるようで、すぐに失効と再発行の手続きをしようというアナウンスがありました。

でも、ちゃんと証明書が失効されたことがブラウザまで伝わっているかというとそれは嘘で、Chrome は標準で証明書の失効のチェックをしないし、Firefox はOCSPはチェックするけどCRLは見ないようなんですよね。手元のクリーンな環境にFirefoxを入れてOCSP非対応の証明書を使っているページにアクセスするとCRLを取りに行くようなパケットが流れていなかったので、本当っぽいです(ちゃんと検証したわけじゃないけど)。

ちなみに、証明書の失効のチェックがCRLのみのものにはGPKI …

read more

石狩データセンターに行ってきた

2013-11-26 by Daisuke Kotani

第2回 さくら石狩DC見学ツアーに当選したので行ってきました。 飛行機で北海道に行って、石狩DCに行ってすすきので飲んで石狩DCに行って帰ってくる、とても楽しいツアーでした。

北海道まで行ってなんでデータセンターしか行かんの?という質問はなしです。データセンターの視察が観光のようなものです。

個人的に「おぉ〜」って思ったポイントをまとめておきます。

データセンターのモニタリング

PUE低っ(公開OKの写真に含まれていたものです。念のため。)

PUE Monitoring Display

いろんなところにセンサーがついてて(各ラックに複数個、その他にも)、すごい細かくモニタリングされているようで …

read more

ACM SIGCOMM 2013 メモ

2013-08-20 by Daisuke Kotani

ACM SIGCOMM 2013に参加してきました。自分が取っていたメモの一部を公開します(途中で分からなくなってメモ取れなかったものは省きました^^;)。印象に残っていることが主だったり、抜けていたりするので、詳しくは論文を参照していただければと思います。

途中、台風で一部のセッションが延期になることがありましたが、無事全部の発表が行われました。

Statistics

  • 700人超の参加者
  • 246本の論文の投稿、そのうち第2ラウンドの査読に残ったものが96本、PCミーティングで80本、最終的に採択されたものは38本(15%)。採択率は増加傾向 …
read more

MacVimで全角文字の表示が崩れるときの対処法

2013-07-03 by Daisuke Kotani

MacVim で、全角文字の表示が以下のように崩れたときにの対処法が Google で出てこなかったので、将来の自分が同じことに引っかからないようにメモしておきます。

全角文字の表示が崩れた図

「修正〇〇」という文字の幅が半角分として処理されてしまっています。

ambiwidth

東アジアの文字で文脈によって文字幅が異なる文字の幅を指定するもの。

:set ambiwidth=double

にすればいいらしい。

MMRenderer

今回は set ambiwidth=double でも直らなかった …

read more

Open vSwitchのソースコードを読む(11) flow table のエントリ

2013-06-21 by Daisuke Kotani

エントリの追加、削除をする関数を探す

第8回で、Controllerから送られてきたOpenFlowのメッセージの処理は ofproto/ofproto.c の handle_openflow 関数で行われると説明しました。ここから、Flow Table を変更する flow_mod メッセージがどう処理されるのかを探していきます。

static bool
handle_openflow …
read more

Open vSwitchのソースコードを読む(10) flow table の検索

2013-06-18 by Daisuke Kotani

今回は、kernel module から渡されたパケットがどのように処理されるのかを追いながら、flow tableの検索について調べていきます。

handle_upcalls

kernel module で flow miss をしたものは、userspace process の handle_upcalls (ofproto-dpif.c) で処理されます …

read more

Open vSwitchのソースコードを読む(9) dpif

2013-06-18 by Daisuke Kotani

dpif の構造

datapath には2種類あります。dpif_linux と dpif_netdev です。dpif_linux は kernel module と連携して動くもので、dpif_netdev は userspace process のみで転送処理を行うものです。

ofproto と …

read more

Open vSwitchのソースコードを読む(8) OpenFlow channel の管理

2013-06-18 by Daisuke Kotani

Connection Manager, OpenFlow listener and OpenFlow connection

ofproto 内で、OpenFlow Controller との接続に関する処理を行っているのが Connection Manager です。ofproto/connmgr.c にあります。

これに関する構造体は3つあります …

read more

Open vSwitchのソースコードを読む(7) ovs-vswitchd の ofproto

2013-06-18 by Daisuke Kotani

前回はmain loopの中のbridgeに関する処理を見ました。今回はofprotoに関する関数、ofproto_run, ofproto_type_run_fast, ofproto_run_fast, ofproto_enumerate_types, ofproto_type_wait, ofproto_wait などを読んでいきます。

ofproto とは

第1回で、Open vSwitchのアーキテクチャを引用しました。再掲します。

            _
           |   +-------------------+
           |   |    ovs-vswitchd …
read more

Open vSwitchのソースコードを読む(6) ovs-vswitchd の bridge

2013-06-17 by Daisuke Kotani

前回はmain loopの流れを一通り眺めましたが、長い関数(bridge, ofproto, ofproto-dpif, netdev)は後回しにしていました。今回はbridge_run関数、bridge_run_fast関数、bridge_wait関数を少し詳しく見ていきます。

bridgeとは

Open vSwitch内では、いくつもの仮想スイッチのようなもの(それぞれ別々のポートが割り当てられていて、別々のOpenFlow Controllerとのコネクションを持つことができます)が作られています …

read more