最低限 internet

  1. はじめに
  2. ネットワークの形態: LAN(local area network)
  3. ネットワークアプリケーション
  4. インターネットの裏側: 通信機能の階層構造
  5. つながらないな, という時は
  6. ホスト名と IP アドレス, ネットマスク

[5]「つながらないな?」というときには

ネットワーク管理者をやっていると, 「ネットワークにつながらなくなった」, 「つながらないからどうにかして」という要望・悲鳴をよく聞きます. 前述の ように通信処理は階層構造を成しているので, ネットワークにつながらない場 合は, それぞれの階層が正常に動いているかどうかチェックする必要がありま す. この章ではつながらなくなった時になにをすべきか概観します. 以下の 事項は利用者として最低限知っていなくてはならない内容だと考えます.


[5.1]ネットワーク・インターフェイス層のチェック

「インターネットにつながらない」という悲鳴は, 大抵この物理層で何らかの 障害が起きている場合におこりがちです. 急にインターネットにつながらな くなったら, まずネットワーク・インターフェイス層をちぇっくすると良いで しょう. ケーブルやハブ, ネットワークカードといったケーブルやハードウェ アが正常に動いているかどうか確認しましょう.

チェック項目 チェック方法
ケーブルがつながっていない 自分の PC につながっているケーブルがハブにつながっているか調べる.
ケーブル内部での断線 ケーブルを他のものに取り換えてみる. 特に自作したケーブルでは起こりやすい現象.
ハブの電源 ハブの電源が切れていないか確認.
ハブまわり ハブの「リンク」ランプが付いているか確認. 正常に動作している場合, このランプは点灯する.
ネットワークカードが挿さっていない ネットワークカードを挿し直す
ネットワークカードのドライバがインストールされていない ドライバがインストールされているか確認する([5.1.1]参照).


写真 説明
ハブ.
前面下段の点灯している灯りが「リンク」ランプ


ネットワークカードのドライバがインストールされているか/ ネットワークカードが PC から認識されているかを確認するには, Windows では「コントロールパネル/システム」, Linux ではifconfig コマンドを使用します.

[5.1.1]Windows での確認

マイコンピュータをクリックして, コントロールパネルを開く
コントロールパネルの「システム」をクリックする.
図のように「ネットワークアダプタ」という項目にネットワークカードが 存在するか確かめる. もしもネットワークカードが PC から認識されていない 場合は ? (ハテナ)印が付いているのですぐわかるでしょう.
万が一 ? 印が付いていたら, ネットワークカード付属のドライバディスクから ネットワークカードのドライバをインストールすること.

[5.1.2]Linux での確認

Linux で確認する場合は ifconfig コマンドを使います. このコマンドは大抵 /sbin ディレクトリに格納されているので, 一般ユーザが ifconfig と打鍵 してもパスの関係で実行できません. 一般ユーザで実行する場合は絶対パスで 打鍵しましょう. (このコマンドはインターネット層をチェックするものでもあるので, [5.2.2]と説明が一部重複します. )

$ /sbin/ifconfig -a

そうすると, 例えば以下のような情報が表示されます.

ここで確認すべきは, eth0のエントリが存在すること. そして, Interrupt と base address に何らかの数字が入っていることです. もしも MAC アドレスは表示されているが IRQ が取れていない場合は, BIOS を立ち上げてネットワークカードに陽に IRQ を設定する. もしも MAC アドレスすら表示されない場合は, カーネルを再構築して ネットワークカードのドライバを Linux に組み込む.

項目 説明
eth0 イーサネットに対するインターフェイスを意味する. ネットワークカードが 複数挿してある場合, その枚数に応じて eth1, eth2, ... となる.
HWaddr MAC アドレスのこと. ネットワークカードが正しく認識されていれば, カードの MAC アドレスが表示される. このエントリに何も書かれていない 場合や X と書かれている場合は, 認識に失敗したことを意味する.
Interrupt CPU に対する割り込み番号. IRQ とも呼ぶ. この番号を持っていないと, CPU に対して処理をお願いすることができない.
Base Address ネットワークカードの利用する I/O のアドレス.



[5.2]インターネット層のチェック

インターネット層では IP アドレスによって PC を識別します. そのためこの 層でチェックする項目としては, IP アドレス等の TCP/IP 通信で必須となる 設定項目が正しく設定されているかのチェックとなります.


[5.2.1]Windows での確認

「ファイル名を指定して実行」を選び, winipcfg と打鍵.

実行した結果, IP アドレスが表示されない場合は以下のことをする.

マイコンピュータをクリックして, コントロールパネルを開く
コントロールパネルから「ネットワーク」をクリックする.
そして「TCP/IP → (ネットワークカード名)」を選択する.
IP アドレス, ゲートウェイが正しく設定されているか確認する.
万が一正確に設定されていない場合は設定し直し, PC を再起動する.

[5.2.2]Linux での確認

Linux で IP アドレス, ネットマスクを確認する場合にも ifconfig コマンドを 使います. ゲートウェイアドレスを確認する場合は netstat コマンドを使います. ifconfig コマンドは大抵 /sbin ディレクトリに格納されているので, 一般ユーザが ifconfig と打鍵してもパスの関係で実行できません. 一般ユー ザで実行する場合は絶対パスで打鍵しましょう. (このコマンドはインター ネット層をチェックするものでもあるので, [5.1.2]と説明が一部重複します. )

まず IP アドレス, ネットマスクを確認ですが, ifconfig コマンドを 使います. IP アドレス, ネットマスクが設定されているか確認します.

$ /sbin/ifconfig -a

項目 説明
inet addr 自分の IP アドレス. ネットワーク管理者から割り当ててもらう番号
Bcast ブロードキャストアドレス. 所属する LAN によって一意に決まる.
Mask ネットマスク. 所属する LAN によって一意に決まる.


次にゲートウェイアドレスの確認ですが, これは netstat コマンドを使います. ここで 0.0.0.0 のエントリにゲートウェイアドレス(ルータの IP アドレス)が 設定されているか確認します.

$ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
133.87.45.0     0.0.0.0         255.255.255.128 U      1500 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U      3584 0          0 lo
0.0.0.0         133.87.45.1     0.0.0.0         UG     1500 0          0 eth0

通信相手の IP アドレスと Genmask との論理積をとり, それが Destination と同じかどうか判定し, それが真であれば Gateway に対して IP パケットを投げる. 上記の例では自らの属する LAN に含まれる IP アドレス は 133.87.45.0 -- 133.87.45.127 である. もしも通信相手が 133.87.45.15 で あるならば, 一行目の Genmask (255.255.255.128) と 133.87.45.15 との論理積 が Destination (133.87.45.0) となるので, 133.87.45.15 は自分と同じ LAN に 属すると判定できる. もしも通信相手が 133.50.128.21 ならば, 3 行目の Genmask (0.0.0.0) と 133.50.128.21 の論理積がそのDestination (0.0.0.0) となるので, 133.50.128.21 は同一の LAN に存在せず, ゲートウェイ(ルータ) を通して外に出なくてはならないと判定できる.



[5.3]その他のネットワークの状態をチェックするコマンド

Linux にはネットワークの状態を知るコマンドがいくつか存在します. それを簡単に紹介したいと思います.

[5.3.1]通信相手がネットワークにつながっているか確認する方法

時に通信相手の電源が入っていなかったり, ネットワークにつながっていない場合が あります. そのような場合, 自分の PC がきちんと設定してあっても, 当然のことながら通信することができません. 通信相手がインターネットに 接続しているかどうかを調べるには ping コマンド, traceroute コマンド を使います.

ping コマンドは引数として通信相手の IP アドレス, もしくはホスト名を 指定します. 通信相手がインターネットにつながっている場合は以下のように 相手に通信が届くまでにどのくらいの時間がかかったか表示されます.

$ ping asura.ep.sci.hokudai.ac.jp
PING asura.ep.sci.hokudai.ac.jp (133.87.45.15): 56 data bytes

64 bytes from 133.87.45.15: icmp_seq=0 ttl=253 time=81.8 ms
64 bytes from 133.87.45.15: icmp_seq=1 ttl=253 time=0.7 ms
64 bytes from 133.87.45.15: icmp_seq=2 ttl=253 time=0.7 ms
64 bytes from 133.87.45.15: icmp_seq=3 ttl=253 time=0.8 ms
64 bytes from 133.87.45.15: icmp_seq=4 ttl=253 time=0.7 ms
64 bytes from 133.87.45.15: icmp_seq=5 ttl=253 time=0.7 ms
64 bytes from 133.87.45.15: icmp_seq=6 ttl=253 time=0.6 ms

traceroute コマンドは相手に通信が届くまでにどのルータを経由したかが 表示されます. 相手に通信が届かない場合, どこかでネットワークが切れている 可能性があります. traceroute はそれを検知するためのツールです.

$ traceroute rcen00.ec.hokudai.ac.jp
 1  kurage.ep.sci.hokudai.ac.jp (133.87.45.1)  0.62 ms  0.468 ms  0.558 ms
 2  * 133.50.134.1 (133.50.134.1)  15.188 ms  14.746 ms
 3  daikeir1.sys.hokudai.ac.jp (133.87.4.1)  1.082 ms  1.014 ms  0.979 ms
 4  133.87.10.21 (133.87.10.21)  1.22 ms  1.102 ms  1.104 ms
 5  eczgw01.ec.hokudai.ac.jp (133.87.36.2)  1.59 ms  1.555 ms  1.591 ms
 6  eczgw06.ec.hokudai.ac.jp (133.87.38.3)  2.245 ms  2.284 ms  2.293 ms
 7  rcen00.ec.hokudai.ac.jp (133.87.38.137)  3.189 ms  3.119 ms  3.233 ms


[5.3.2]ホスト名と IP アドレスの対応を知る方法

基本的にインターネットでは PC の区別を IP アドレスという数字によって 行います. しかしそれでは覚えにくいので, 「ホスト名」といういわゆる PC の名前も定義されています. 例えばある PC の IP アドレスは 133.87.45.15, それに対応するホスト名は asura.ep.sci.hokudai.ac.jp です. この対応を知るためにnslookup コマンド を使います.

$ nslookup asura.ep.sci.hokudai.ac.jp
Default Server:  localhost
Address:  127.0.0.1

Name:   asura.ep.sci.hokudai.ac.jp
Address: 133.87.45.15




最終更新日: 2000/11/10(杉山耕一朗) Copyright © 2000 inex