LAN上にDHCPサーバが複数出現してしまった。さてどうする?

私がずいぶんお世話になっている取引先から問い合わせがありました。 「藤岡さん、以前にも相談したことあるんですが、LANと全然違うIPアドレスが勝手に振られることがあるんですよ。192.168.10.xが勝手に振られてしまってインターネットに繋がりません。」

この取引先のLANは私が整備しているので大体のことはわかっています。 ははーん、さてはDHCPサーバが複数あるんだなということまではすぐにピンときました。 元々はDHCPサーバは私が設置したブロードバンドルーターです。 おそらく、何か別のDHCPサーバを割りこませたんじゃないかなと思いました。

まず、DHCPサーバのIPアドレスを調べます。 Windowsだったら、コマンドプロンプトを開き、ipconfig /allと打てばわかります。

f:id:xibbar:20141108113406p:plain

DHCPサーバからIPアドレスをもらって振っているのがわかりました。DHCPサーバのIPアドレスがわかったので、そのmacアドレスを調べます。macアドレスはEtherカード特有のアドレスです。詳しくは自分で調べてね。Windowsだったらarp -aを叩くと通信しているIPアドレスmacアドレスの対応表が出てきます。

f:id:xibbar:20141108113452p:plain

このmacアドレスの製造メーカーを引きます。macアドレス ベンダーなどでググってください。

f:id:xibbar:20141108113817p:plain

上のmacアドレスVMWare上のものなので、VMWareが出てくるのですが、実際のトラブルでは以下のようにFONが出てきました。

f:id:xibbar:20141108114218p:plain

さて、ここまで来たらこっちのものです。NICのメーカーのものが出てくるとパソコンが犯人なのでやりにくいのですが、それ以外が出てくると犯人探しがしやすいです。 問い合わせてきたお客さんに電話をしました。 「社内のLANにFONを入れてないですか?」 「あー、ある!」 「じゃ、そのケーブル、抜いてみてもらえますか?」 この間、DHCPサーバに向かってpingを打ち続けます。 ・・・・・・・ そして、pingの反応がなくなりました。 「原因はこれですね。今度行ったときにLANを整備しましょう。」

というわけで無事解決しました。

  1. 実際は私はリモートにいるので、まず、お客さんにWindowsマシンのコマンドプロンプトを開いてもらい、DHCPサーバのIPアドレスを教えてもらいました。
  2. お客さんのLANにVPNで入り、Linuxサーバにログインし、間違って振られたIPアドレスと同じサブネットのIPアドレスを名乗ります。(そうしないとpingがルータ越えをしようとするので。)この時、自分が接続しているIPを切るわけには行かないので、IPエイリアスを使います。debian系だと、/etc/network/interfacesにeth0:0の項目を追加して、ifup eth0:0 を実行すると楽です。以下の様な感じ。
  3. その後、pingを打ち続けました。
iface eth0:0 inet static
        address 192.168.10.120
        netmask 255.255.255.0
        network 192.168.10.0
        broadcast 192.0.10.0