研究室のネットワーク

本日、実験用ネットワークを構築。
仕様としては
・4台のルータと各ルータ間をつなぐ5つのサブネットで構成。
・ルータのウチ一つは研究室LANとのゲートウェイとしてNAT機能を実装
・残り3台の下にもサブネットを置き、1台はdhcpサーバとしても稼働
・全ルータは動的ルーティングを行い、経路情報を交換する。
 
方針としてはroutedとiptablesで構築すればいいかなって感じだったのですが、思いの外トラブル頻発。
物理的に接続をミスしていたとかはもう恥ずかしいだけなのでどうでもいいのですが、問題は各ルータ間をつなぐ経路の不振な挙動。
 
とりあえず現象だけ言うと、
・経路情報は交換されるのにpingが飛ばない経路が存在
pingが飛ぶが最初1分ぐらいはパケットロス
の二つが存在。
 
基本的に隣接ノード間の通信に障害が発生しているようだったのでtcpdumpしてみる。
平常時は沈黙を守り、一定の更新時間に従い経路情報が交換されるだけ。
そしてpingを送ってみると、arpの解決情報が全く存在しないためにarpのwho hasパケットが経路情報に従いブロードキャストされる。
のだが、なんとarpパケットが宛先に届いていない。ブロードキャストなので宛先というのも不適切だが、クロスケーブルでつないでいる故行き先はもう一端しかない。にもかかわらずそこで受信がされない。
いや、厳密には「すぐに届かない」と言うべきかもしれない。
経路によって届かずに終わるモノもあるのだが、一部は1分ぐらいの間arpのwhohas パケットが送信された後突然それら全てが宛先に到達する。
そして is-at パケットがwho has パケットとほぼ同数送り返される。
is-atパケットはたいした問題もなくwhohasの送信元に届く。そしてping-pongのやりとりが始まる。
これだけならちょっと品質の悪い回線 ぐらいに感じるが、問題はそのアドレス解決情報(MACアドレスとIPアドレスの対応)が保持されないこと。つまりもう一度pingを打てば再び同じやりとりが始まる。
とても不気味。arpの厳密な鼓動を知らないから何とも言えないが、とても気持ち悪い。これはいったい・・・

続く