ネットワーク管理者をやっていると, 「ネットワークにつながらなくなった」, 「つながらないからどうにかして」という要望・悲鳴をよく聞きます. レクチャーで話した通り, 通信処理は階層構造を成しているので, ネットワークにつながらない場合は, それぞれの階層が正常に動いているかどうかチェックする必要があります. 今回の実習では「つながらなくなった場合の対処方法」を実際にやってみます.
「インターネットにつながらない」という悲鳴は, 大抵この物理層で何らかの障害が起きている場合におこりがちです. 急にインターネットにつながらなくなったら, まずネットワーク・インターフェイス層をチェックすると良いでしょう. ケーブルやハブ, ネットワークカードといったハードウェアが正常に動いているかどうか確認しましょう.
チェック項目 | チェック方法 |
---|---|
配線の確認 | 自分の PC につながっているケーブルがハブにつながっているか調べる. |
ケーブルの確認 | ケーブルが内部で断線している可能性があるので ケーブルを他のものに取り換えてみる. 特に自作したケーブルでは起こりやすい現象. |
ハブの電源 | ハブの電源が切れていないか確認. |
ハブまわり | ハブの「リンク」ランプが付いているか確認. 正常に動作している場合, このランプは点灯する. |
ネットワークカードの接続確認 | ネットワークカードを挿し直す. |
ネットワークカードのドライバ確認 | ドライバがインストールされているか確認する([1.1.1] 参照). |
写真 | 説明 |
---|---|
![]() |
ハブ. 前面下段の点灯している灯りが「リンク」ランプ |
Linux で確認する場合は /proc 内のファイルを確認します.
$ cat /proc/pci
そうすると, 例えば以下のような情報が表示されます. 必要な部分の抜粋.
Bus 0, device 12, function 0: Ethernet controller: Unknown vendor Unknown device (rev 49). Vendor id=1317. Device id=981. Medium devsel. Fast back-to-back capable. IRQ 11. Master Capable. Late ncy=32. Min Gnt=255.Max Lat=255. I/O at 0xa000 [0xa001]. Non-prefetchable 32 bit memory at 0xe0000000 [0xe0000000]. |
出力されたメッセージの中に, Ethernet controller が存在しない場合は, ネットワークカードがきちんと挿さっていない可能性があります.
ネットワークカードが挿してあっても, それを動かすための ドライバソフト がインストールされていなければ動作しません.
$ cat /proc/interrupts
そうすると, 例えば以下のような情報が表示されます.
CPU0 0: 928608744 XT-PIC timer 1: 176989 XT-PIC keyboard 2: 0 XT-PIC cascade 8: 1 XT-PIC rtc 9: 1379533 XT-PIC ide2 11: 54932591 XT-PIC eth0 <---- ネットワークカードのドライバ 12: 894474 XT-PIC PS/2 Mouse 13: 1 XT-PIC fpu NMI: 0 |
$ cat /proc/ioports
そうすると, 例えば以下のような情報が表示されます.
0000-001f : dma1 0020-003f : pic1 0040-005f : timer 0060-006f : keyboard 0080-008f : dma page reg 00a0-00bf : pic2 00c0-00df : dma2 00f0-00ff : fpu 01f0-01f7 : ide0 0213-0213 : isapnp read 02f8-02ff : serial(set) 03c0-03df : vga+ 03f6-03f6 : ide0 03f8-03ff : serial(set) 0a79-0a79 : isapnp write 0cf8-0cff : PCI conf1 b800-b8ff : ATI Technologies Inc 3D Rage Pro 215GP d000-d0ff : Linksys Fast Ethernet 10/100 <--- ネットワークカード d000-d0ff : tulip d400-d41f : Intel Corp. 82371AB/EB/MB PIIX4 USB d800-d80f : Intel Corp. 82371AB/EB/MB PIIX4 IDE d800-d807 : ide0 d808-d80f : ide1 e400-e43f : Intel Corp. 82371AB/EB/MB PIIX4 ACPI e800-e81f : Intel Corp. 82371AB/EB/MB PIIX4 ACPI |
もしもドライバソフトがインストールされていない場合は, カーネルを再構築する必要があります(ここでは詳細は省略).
項目 | 説明 |
---|---|
Interrupt | CPU に対する割り込み番号. IRQ とも呼ぶ. この番号を持っていないと, CPU に対して処理をお願いすることができない. |
ioport (Base Address) | 計算機の入出力(I/O: Input and output)アドレス. CPU が周辺機器に対して 入出力を行う際に, 入出力の出入り口を区別するために使う. |
インターネット層では IP アドレスによって PC を識別します. そのためこの層でチェックする項目としては, IP アドレス等の TCP/IP 通信で必須となる設定項目が正しく設定されているかのチェックとなります.
Linux で IP アドレス, ネットマスクを確認する場合には ifconfig コマンドを使います. ゲートウェイアドレスを確認する場合はnetstat コマンドを使います. (ifconfig コマンドは大抵 /sbin ディレクトリに格納されているので, 一般ユーザが ifconfig と入力してもパスの関係で実行できません. 一般ユーザで実行する場合は絶対パスで入力しましょう. )
まず IP アドレス, ネットマスクを確認ですが, ifconfig コマンドを使います. IP アドレス, ネットマスクが正しく設定されているか確認します.
$ /sbin/ifconfig -a
![]() |
項目 | 説明 |
---|---|
inet addr | 自分の IP アドレス. ネットワーク管理者から割り当ててもらう番号 |
Bcast | ブロードキャストアドレス. 所属する LAN によって一意に決まる. |
Mask | ネットマスク. 所属する LAN によって一意に決まる. |
eth0 | イーサネットに対するインターフェイスを意味する. ネットワークカードが 複数挿してある場合, その枚数に応じて eth1, eth2, ... となる. |
HWaddr | MAC アドレスのこと. ネットワークカードが正しく認識されていれば, カードの MAC アドレスが表示される. このエントリに何も書かれていない 場合や X と書かれている場合は, 認識に失敗したことを意味する. |
Interrupt | CPU に対する割り込み番号. IRQ とも呼ぶ. この番号を持っていないと, CPU に対して処理をお願いすることができない. |
Base Address | ネットワークカードの利用する I/O のアドレス. |
次にゲートウェイアドレスの確認ですが, これは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 |
実際の通信では以下のことを行っています.
例として 133.87.45.72 と通信したいとする. その場合,
である. また例えば, 157.82.18.12 と通信したいとする. その場合,
もしも eth0 が存在しない場合には, /etc/network/intetrfaces にしかるべき ネットワークパラメタを設定しなくてはならない. このファイルの編集は root しかできません. ファイルを編集したあとに, ネットワークを起動します. ここでは内容を見て確認してみて下さい.
# less /etc/network/interfaces
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # The loopback interface iface lo inet loopback # The first network card - this entry was created during the Debian installation # (network, broadcast and gateway are optional) iface eth0 inet static address 133.87.45.71 # IP アドレス netmask 255.255.255.128 # ネットマスク network 133.87.45.0 # ネットワークアドレス broadcast 133.87.45.127 # ブロードキャストアドレス gateway 133.87.45.1 # ゲートウェイアドレス |
# /etc/init.d/networking restart
Linux にはネットワークの状態を知るコマンドがいくつか存在します. それを簡単に紹介したいと思います.
時に通信相手の電源が入っていなかったり, ネットワークにつながっていない場合が あります. そのような場合, 自分の PC がきちんと設定してあっても, 当然のことながら通信することができません. 通信相手がインターネットに 接続しているかどうかを調べるには ping コマンド, traceroute コマンド を使います.
ping コマンドは引数として通信相手の IP アドレス, もしくはホスト名を 指定します. 通信相手がインターネットにつながっている場合は以下のように 相手に通信が届くまでにどのくらいの時間がかかったか表示されます (終了するには Ctrl + C を押してください).
$ ping www.ep.sci.hokudai.ac.jp
PING www.ep.sci.hokudai.ac.jp (133.87.45.72): 56 data bytes 64 bytes from 133.87.45.72: icmp_seq=0 ttl=253 time=81.8 ms 64 bytes from 133.87.45.72: icmp_seq=1 ttl=253 time=0.7 ms 64 bytes from 133.87.45.72: icmp_seq=2 ttl=253 time=0.7 ms 64 bytes from 133.87.45.72: icmp_seq=3 ttl=253 time=0.8 ms 64 bytes from 133.87.45.72: icmp_seq=4 ttl=253 time=0.7 ms 64 bytes from 133.87.45.72: icmp_seq=5 ttl=253 time=0.7 ms 64 bytes from 133.87.45.72: icmp_seq=6 ttl=253 time=0.6 ms |
traceroute コマンドは相手に通信が届くまでにどのルータを経由したかが 表示されます. 相手に通信が届かない場合, どこかでネットワークが切れている 可能性があります. traceroute はそれを検知するためのツールです. [(注) 北大から外へは ping, traceroute は通りません. HINES の方針.]
$ traceroute -I www.isas.jaxa.jp
traceroute to www.isas.jaxa.jp (133.74.10.80), 30 hops max, 38 byte packets 1 192.168.16.1 (192.168.16.1) 0.318 ms 0.214 ms 0.207 ms 2 ringo.ep.sci.hokudai.ac.jp (133.87.45.1) 0.795 ms 0.729 ms 0.729 ms 3 133.74.135.1 (133.74.135.1) 0.584 ms 0.591 ms 0.476 ms 4 133.74.35.200 (133.74.35.200) 138.076 ms 19.654 ms 45.702 ms 5 www.isas.jaxa.jp (133.74.10.80) 139.439 ms 20.011 ms 43.341 ms |
traceroute to www.isas.jaxa.jp (133.74.10.80), 30 hops max, 38 byte packets 1 usen-221x114x100x73.ap-US01.usen.ad.jp (221.114.100.73) 4.221 ms 4.290 ms 4.152 ms 2 61.122.120.134 (61.122.120.134) 5.736 ms 3.214 ms 3.032 ms 3 61.122.115.38 (61.122.115.38) 4.142 ms 3.603 ms 3.991 ms 4 61.122.127.217 (61.122.127.217) 4.038 ms 3.640 ms 3.566 ms 5 61.122.115.77 (61.122.115.77) 16.868 ms 16.823 ms 16.843 ms 6 61.122.115.17 (61.122.115.17) 21.323 ms 22.636 ms 23.271 ms 7 210.173.176.27 (210.173.176.27) 23.721 ms 18.898 ms 18.192 ms 8 nii-S1-P0-0.sinet.ad.jp (150.99.197.141) 17.709 ms 17.430 ms 17.390 ms 9 JT-tokyo-S1-P8-0.sinet.ad.jp (150.99.197.21) 18.530 ms 19.030 ms 20.005 ms 10 isas-S1-P2-0.sinet.ad.jp (150.99.197.46) 21.712 ms 20.567 ms 21.358 ms 11 isas-lan.sinet.ad.jp (150.99.197.166) 21.780 ms 24.007 ms 21.993 ms 12 133.74.120.63 (133.74.120.63) 24.085 ms 24.117 ms 25.620 ms 13 133.74.35.200 (133.74.35.200) 142.724 ms 144.490 ms 23.919 ms 14 www.isas.jaxa.jp (133.74.10.80) 38.123 ms 101.715 ms 25.390 ms |
基本的にインターネットでは計算機の区別を IP アドレスという数字によって 行います. しかしそれでは覚えにくいので, 「ホスト名」という名前も 用意されています. その対応を知るために host コマンド を使います.
$ host www.ep.sci.hokudai.ac.jp
www.ep.sci.hokudai.ac.jp CNAME orange.ep.sci.hokudai.ac.jp orange.ep.sci.hokudai.ac.jp A 133.50.160.51 |
# cp /etc/network/interfaces ~User/interfaces.bakバックアップを行ったら VTA がネットワークに繋がらない状態にします.
ネットワークカードのドライバがインストールされているか, ネットワークカードが PC から認識されているかを確認するには, 「コントロールパネル/システム」をチェックします.
![]() |
|
実行した結果, IP アドレスが表示されない場合は以下のことをする.
最終更新日: 2004/11/05 (道政広一) | Copyright © 2004 inex |