若手部員 貴子さん |
今日,営業部の人に質問されたんだけれど,答えられなくて困っちゃったわ。2台のパソコンに同じIPアドレスを割り当てたら,実際にはどんな障害が起こるかって聞かれたのよ。 | ||
若手部員 宇田くん |
そんなオキテ破りは,だれも試していないよ。ダメなのは確かだけれど,本当のところはどうなるんだろうね。ちょっと試してみようか。 |
宇田:やあ,貴子さん。お疲れさま。異動した初日はやっぱり緊張したでしょう。
貴子:えぇ。でも,前にいた営業部の先輩に変な質問をされたときに答えられなくて困っちゃったわ。
宇田:どんな質問だったのかな。
貴子:「同じLANにつながっている2台のパソコンに,同じIPアドレスを割り当てると,どういうトラブルが起こるんですか」っていう質問よ。宇田くんは知っている?
宇田:うーん。実際に試したことがないからなぁ。
貴子:じゃあ,今から実験してみることはできないかしら?
宇田:わかったよ。実験につき合えばいいんだろう。
このネットワーク実験室では,ネットワーク構築を手がける会社の技術部に勤める二人の若手社員,貴子さんと宇田くんを中心に話を進める。貴子さんと宇田くんは同期入社で,今年で入社3年目になる。貴子さんは,これまで営業部に所属していたが,宇田くんが所属する技術部に異動したばかり。何事にも慎重にとりかかる性格だ。一方の宇田くんは,思い込んだら突き進むところがある。
本連載では,ネットワーク技術者にとって非常識ともいえる“オキテ破り”の設定やシステム構成にしたとき,実際にはどんな不具合が起こるかを検証していく。その検証過程を通して,ネットワークの基本を再確認しながら,日常ありがちなトラブル・シューティングの事例として役立てていただければと考えている。
第1回は,LAN上に同じIPアドレスを割り当てたパソコンを2台設置するとどうなるのか --- というテーマである。まずは,Windowsパソコンを使って実験してみよう。
■Windowsマシン2台で実験
宇田:じゃあ,手近なWindowsマシン2台をつないでみよう。貴子:私はハブを持ってくるわね。
宇田:ありがとう。1台のパソコンAは,IPアドレスが192.168.1.2,サブネット・マスクが255.255.255.0になっているから,もう1台のパソコンBには192.168.1.1と255.255.255.0を割り当てよう*(図1)。
貴子:パソコンBの設定もOKよ。pingコマンド*で実際に通信できるか調べてみましょう。
宇田:pingコマンドは正常に実行できたみたいだね。今の状態だと,問題なく通信できるね。
ここで実験環境を確認しておこう。リピータ・ハブに2台のWindowsパソコンをつなぎ,パソコンAにはIPアドレスとして192.168.1.2,パソコンBには192.168.1.1を割り当てた。また,どちらのパソコンのサブネット・マスクも255.255.255.0とした。
この状態なら,相手とIPパケットを問題なくやりとりできる。貴子さんは実際に相手と通信できるかをpingコマンドで試した。このコマンドは,Windowsのコマンド・プロンプトから
ping <相手のIPアドレス>のように実行する。相手がLANにつながっていれば,「Reply from・・・」のようなメッセージが表示され,通信できなければ「Request timed out.」といったメッセージが表示される。
トラブル・シューティングなどの際に使用する機会が多いので,覚えておくとよいだろう。
■重複させたらメッセージが出てきた
宇田:ここからが本番だ。パソコンAのIPアドレスを,パソコンBと同じ192.168.1.1に変えてみるよ。貴子:いいわよ。
宇田:あとはOKボタンをクリック*してと・・・。あ!
貴子:あっ。パソコンBの画面にシステム・エラーのウインドウがポップアップしてきたわよ。
宇田:こっちもだ。パソコンAの方は,「IPアドレスを構成し直してください」と出てきたよ(図2)。ということは,どちらのパソコンも動かないのかな?
貴子:実際にIPアドレスがどうなっているかは調べられないかしら?
宇田:う~む・・・。そうだ,ipconfigコマンドを使ってみよう。
貴子:どんなコマンドなの?
宇田:貴子さんは使ったことがないかも知れないけれど,けっこう便利なコマンドだよ。自分のパソコンのIP設定を確かめるものさ。コマンド・プロンプトからipconfigと入力するだけで使えるよ。
貴子:じゃあ,試してみるわ。
宇田:こっちのパソコンAの方も試してみよう。こっちは,IPアドレスの項目が0.0.0.0になっているぞ(図3(a))。
貴子:パソコンBは192.168.1.1のままよ(図3(b))。
二人の実験のようにWindowsマシンのIPアドレスを重複させると,どちらのパソコンにもIPアドレスが重複したことを知らせるポップアップ・ウインドウが表示される。しかし,アドレス設定を変更したパソコンAは,設定作業完了後にOKボタンを押しても,実際にはそのIPアドレスが割り当てられない。ipconfigコマンドでは0.0.0.0と表示される。IPアドレスが割り当てられず,ネットワークにつながっていないということだ。
一方,最初からIPアドレスが割り当てられていた方のパソコンBは,元のIPアドレスである192.168.1.1がそのまま割り当てられている。つまり,パソコンBは,ほかのパソコンが自分と同じIPアドレスを使おうしたことを検出し,画面にメッセージを表示したものの,そのまま同じIPアドレスを使い続けている。
■どうして重複がわかったか
貴子:でも,どうしてIPアドレスが重複したことがわかったのかしら?宇田:きっと,何かパケットをやりとりしているはずだぞ。パケット・キャプチャ・ソフトを動かして,もう一度調べてみよう(図4)。
貴子:何かパケットが送受信されているみたいね。
宇田:ARP*パケットが出ているみたいだ。これでアドレスの競合を検出していたのかなぁ。
ARPとはIPアドレスに対応するMACアドレス*を調べるためのプロトコルである。LAN全体に届くブロードキャスト・パケットの中に調べたいIPアドレスを入れてARPパケットを送ると(ARP要求),そのIPアドレスが割り当てられているパソコンからMACアドレスを知らせる応答(ARP応答)が返ってくる。
WindowsではこのARPのしくみを使って,IPアドレスが重複していないかを調べる。このしくみは,Gratuitous ARP*と呼ばれる。順を追って具体的に説明しよう。
パソコンAのアドレス設定を変更してOKボタンを押すと(図4(1)),ARP要求というメッセージがLAN全体に届くブロードキャスト・パケットとして送出される(図4(2))。これは,「IPアドレスが192.168.1.1の人はいますか? いたら応答して下さい」というようなメッセージをLAN全体にパソコンAが呼びかけるものだ。
このブロードキャスト・パケットはLAN上にあるすべての機器が受信するが,中に書かれているIPアドレスが自分のものとは違う場合は無視する。しかし,パソコンBは同じ192.168.1.1が割り当てられている。このため,パソコンBはARPパケットを受信すると送信元のIPアドレスを調べて,自分と重複していることを確認し,画面にメッセージを表示したのだ(図4(3))。
さらに,パソコンBはARP応答パケットを返信し,自分がすでに利用中であることを知らせる(図4(4))。これを受け取ったパソコンAは,自分に割り当てようとしているIPアドレスがほかですでに利用中だとわかるので,実際には割り当てずにエラー・メッセージを表示したのである(図4(5))。
■Windowsは大丈夫だけれど・・・
貴子:Windowsって,なかなか考えられているのね。宇田:じゃあ,適当にIPアドレスを割り当てても大丈夫なんだ。重なっていればきちんと検出してくれるし。
貴子:そうかなぁ。それほど単純ではないと思うんだけれど・・・。
ということで,次回は重複するIPアドレスを割り当てるとトラブルが起こるケースを考えてみよう。それは,Windowsマシンではなく,ネットワーク機器同士に同じIPアドレスを割り当ててしまった場合だ。
寄稿者:ネットワークエンジニア集団 みずおか組●水岡 祥二 NPOアイタック代表理事●出口 雄一 株式会社タケキ IT教育事業部 ●久保 幸夫 情報・通信エンジニア |