2006/02/28

ひきつづき職場のPCの入れ替え。

弊社では、クライアントマシンのIPアドレスはDHCPで割り当てられている。この更新の頻度がけっこう高く、今日はちょっと固定的に同じ番号を使用したかったものだから、適当に空いてそうな番号を設定してみるという暴挙を犯してしまった。Windowsでは、固定的に割り当てようとしたIPアドレスがネットワークで既に使用されていると、強引に設定はされるものの警告が出る。おそらく、設定しようとしているIPアドレスを求めるARP要求をブロードキャストして応答を確かめているんだろうけど、とにかく警告が出ないアドレスは空いてるってことでしょ? ←これが思い込みであることがすぐに判明する

何がおこったかというと、最終的に警告なく設定できたIPアドレスが、Linux か何かが動いているマシンの固定IPアドレスと見事にバッティングして、相手をハングさせてしまった(おそらくNICが停止してリモートアクセスできなくなった)。管理者の S さん、ごめんなさい。本当にごめんなさい。

今回、相手のマシンは NIC の停止にいたったぽいけれど、ネットワーク上に同じ IP アドレスのマシンが存在してしまった場合(i.e. 自分のIPと同じ送信元IPを持つARPパケットを受信した場合)の挙動は、実装に依存して多種多用らしい。なかには気にせず通信を続ける実装もあるらしく、そんな場合は一部のパケットが別のマシンに取られてしまうことになる。ある種の実装で重複する IP アドレスを検出した場合に NIC を停止するのは、そのようなセキュリティ上のリスクを避けるためなのかもしれない。でも、ルータのような装置が NIC 停止型の実装だったら、かえって容易にサービス停止攻撃をまねきかねないよな。

こういう知識については、あまり知る機会がなかったりする。そんな話題にもしっかり触れている『基礎からわかるTCP/IP ネットワーク実験プログラミング第2版』は 2400 円。ぜひ ;)

『基礎からわかるTCP/IP ネットワーク実験プログラミング第2版』
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=4-274-06584-7

No comments :