最低限 Internet 実技編 : 「つながらない!」そんなときの対処法

  1. 「つながらない!」そんなときの対処法
    [1.1] ネットワークインターフェース層のチェック
    [1.2] インターネット層のチェック
    [1.3] 通信経路のチェック
    --- 以降付録 ---
    [演習] ネットワーク・トラブルシューティング実践


  2. Windows7 でのネットワークトラブル対処法
    [2.1] ネットワークインターフェース層のチェック
    [2.2] インターネット層のチェック
  3. Windows8(8.1) でのネットワークトラブル対処法
    [3.1] ネットワークインターフェース層のチェック
    [3.2] インターネット層のチェック
  4. Windows10 でのネットワークトラブル対処法
    [4.1] ネットワークインターフェース層のチェック
    [4.2] インターネット層のチェック

1.「つながらない!」そんなときの対処法

ネットワーク管理者をやっていると, 「ネットワークにつながらなくなった」, 「つながらないからどうにかして」という要望・悲鳴をよく聞きます. レクチャーで話した通り, 通信処理は階層構造を成しているので, ネットワークにつながらない場合は, それぞれの階層が正常に動いているかどうかチェックする必要があります. 今回の実習では「つながらなくなった場合の対処方法」を実際にやってみます.

この資料で説明しているのは、旧来使われていた方法であり、現在では日常のネットワーク接続をこの方法で行うことは非推奨になっています。しかし、ネットワークの仕組みを理解するには欠かせない知識であるため、旧来の方法の説明を残しています。モダンな設定方法を知りたい場合は、Debian リファレンス 5.2デスクトップのためのモダンネットワーク設定を参考にしてください.


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

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

[1.1.1] ネットワーク関連機器の目視確認

チェック項目 チェック方法
配線の確認 自分の PC につながっているLANケーブル(図.1 参照)がハブにつながっているか調べる.
ケーブルの確認 ケーブルが内部で断線している可能性があるので ケーブルを他のものに取り換えてみる. 特に自作したケーブルでは起こりやすい現象.
ハブの電源 ハブの電源が切れていないか確認.
ハブまわり ハブの「リンク」ランプが付いているか確認. 正常に動作している場合, このランプは点灯する.
I/O パネルの LAN ケーブル挿し口 リンクランプが点灯しているかを確認する. このランプが点灯/点滅していれば, そこまでは信号が届いていると確認できる.
ネットワークカードの接続確認 ネットワークカードを挿し直す. 挿し直す場合は筐体の電源を切り,電源ケーブルを外してから行う.
Lanケーブル図.1 LAN ケーブル

[1.1.2] ネットワークカードの接続確認

ネットワークカードが計算機に認識されていることを確認します.

$ lspci -vb | grep Ethernet

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

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
        Subsystem: ASUSTeK Computer Inc. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller

情報実験機には1つのネットワークカードしか存在していないため, 上記には 1つ のみ出力されています.
たとえばネットワークカードが2つ存在する計算機の場合は以下のように出力されます.

  03:00.0 Ethernet controller: Qualcomm Atheros AR8161 Gigabit Ethernet (rev 10)
          Subsystem: ASUSTeK Computer Inc. AR8161 Gigabit Ethernet
  06:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

[1.1.3] インターフェースの確認

今年度は計算機本体を用いた作業が出来ないため, この[1.1.2]は実際の作業は出来ません. ですが大事な作業のため, しっかりと読んでおいてください.

ネットワークカードが複数ある場合はどのネットワークカードがどのインターフェースに割り当てられているかを確認しなければなりません.

インターフェースの認識のためにLAN ケーブルをネットワークカードから一度抜いて, もう一度指し直してください. このときカーネルのメッセージバッファを確認することで認識したインターフェースがどれかがわかります.

$ dmesg | grep enp 
[   12.496659] e1000e: enp3s0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

認識したインターフェイスが enp3s0 の場合は赤色の部分が enp3s0 となります.

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

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

[1.2.1] IP アドレス, サブネットマスクの確認

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

$ ip addr show 
例: 今年のアクセス先の場合
  
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp3s0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether a8:5e:45:6d:00:13 brd ff:ff:ff:ff:ff:ff
    inet XXX.XXX.XXX.XXX/24 brd XXX.XXX.XXX.255 scope global enp3s0  〈-- 各XXXには3桁の数字が入る. この情報はセキュリティ上大事な情報のため, 隠してある.
       valid_lft forever preferred_lft forever
    inet6 fe80::aa5e:45ff:fe6d:13/64 scope link
       valid_lft forever preferred_lft forever


このコマンドの結果の概要をまとめた表を以下に示します.


項目 説明
enp3s0 イーサネットに対するインターフェースを意味する.
link/ether MAC アドレスを示している.. ネットワークカード(NIC) が正しく認識されていれば, NIC の MAC アドレスが表示される.
inet 自分の IP アドレスを表している. ネットワーク管理者から割り当ててもらう番号.後ろについている「/24 」はサブネットマスクを表しており,数字の先頭から24 bit までがネットワーク部,それ以降はホスト部を示す.所属する LAN によって一意に決まる.
brd ブロードキャストアドレスを表している. 所属する LAN によって一意に決まる.

認識した enp3s0 のインターフェースに IP アドレス 192.168.16.XXX が割り振られています.



[1.2.2] ゲートウェイアドレスの確認

次にゲートウェイアドレスの確認を行います.[1.2.1] と同様にip コマンドを使います. ここで自分の計算機にネットワークの外と通信する時に用いられるゲートウェイアドレス(ルータの IP アドレス)が設定されているか確認します.

$ ip route
例: 今年のアクセス先の場合

default via XXX.XXX.XXX.1 dev enp3s0 onlink
133.87.45.0/24 dev enp3s0 proto kernel scope link src 133.87.45.106



実際の通信では以下のことを行っています.

  1. 通信相手の IP アドレスと 自分のサブネットマスクとの論理積をとる.
  2. 論理積の値が 自分のIP アドレスとサブネットマスクとの論理積と同じかどうか判定する.
  3. もしも偽ならば, ゲートウェイ(Gateway) に対してIP パケットを投げる.

ではおなじネットワークに所属する計算機までの通信経路を考えてみよう.例えばreciproと呼ばれる計算機(この計算機のipアドレスはMoodleにて通知している.以下YYY.YYY.YYY.100と記載する)と通信したいとする.その場合,

  1. YYY.YYY.YYY.100 と 255.255.255.0 との論理積をとる
  2. 論理積の値は YYY.YYY.YYY.0 なので, 自分の値(XXX.XXX.XXX.0)と一致する
  3. 相手は自分と同じネットワークに存在するため,ゲートウェイを介さず直接通信を行う.

となる.これを実際に確認してみる.

$ ip route get YYY.YYY.YYY.100 
<-- (例) joho14 -> 192.168.16.114
例: 今年のアクセス先 => recipro の場合

YYY.YYY.YYY.100 dev enp3s0 src XXX.XXX.XXX.XXX(今年のアクセス先のIPアドレス) uid 1003
    cache


同様に,今度は133.50.160.51 (www.ep.sci.hokudai.ac.jp) と通信したいとする.その場合,
  1. 133.50.160.51 と255.255.255.0 との論理積をとる
  2. 論理積の値は 133.50.160.0 なので, 自分の値(XXX.XXX.XXX.0)と一致しない
  3. 相手は自分と同じネットワークに存在しないため,ゲートウェイ(XXX.XXX.XXX.1)に仲介してもらう.

となる.これを実際に確認してみる.

$ ip route get 133.50.160.51
例: 今年のアクセス先 => www.ep.sci.hokudai.ac.jp の場合

133.50.160.51 via XXX.XXX.XXX.1(ゲートウェイのIPアドレス) dev enp3s0 src 133.87.45.106 uid 1003
    cache



[1.2.3] ネットワークパラメータの設定方法

ネットワークにつながるためには /etc/network/interfaces にしかるべきネットワークパラメタを設定しなくてはなりません. このファイルの編集は root しかできません. ファイルを編集したあとに, ネットワークを起動します. ここでは内容を見て確認してみて下さい.

$ less /etc/network/interfaces
例:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp6s0
iface enp6s0 inet static
        address 192.168.16.114/24
        gateway 192.168.16.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 133.87.45.70 133.87.45.66 133.87.1.11
        dns-search ep.sci.hokudai.ac.jp

書き直す場合は以下のように vi で編集し, その後再起動します. ただし, 書き直したり再起動するのは システムの管理者権限が必要です. 今回の実習では行いません. 実際にinterfaces を編集する際にはネットワークインターフェースを一度停止してから編集する必要があります.

# ifdown enp3s0

ifdown はネットワークインターフェースを停止するコマンドです. 引数にインターフェースを指定します. 停止した後,実際に編集し, その後ネットワークインターフェースの再起動を行います.

# vi /etc/network/interfaces

  ... interfaces の編集 ...

# ifup enp3s0

ifup はネットワークインターフェースを起動するコマンドです. 引数にインターフェースを指定します. これで編集した内容を読み込むことができます.



[1.2.4] DNS サーバの設定方法

基本的にインターネットでは計算機の区別を IP アドレスによって行います. しかしそれでは覚えにくいので, 「ドメイン名」という名前も用意されています. ドメイン名 (例: www.ep.sci.hokuda.ac.jp) と IP アドレス (例: 133.50.160.51) の対応関係を知るためには, その対応表を持っている DNS サーバの IP アドレス が正しく設定されている必要があります. (何故, DNS サーバの「ドメイン名」 ではダメなのか, 分かりますか?)

DNS サーバのIPアドレスは /etc/resolv.conf に 設定されています.

$ less /etc/resolv.conf
search ep.sci.hokudai.ac.jp
nameserver XXX.XXX.XXX.XXX(ここではネットワーク内のDNSサーバーのIPアドレス1つめ) 
nameserver XXX.XXX.XXX.XXX(ここではネットワーク内のDNSサーバーのIPアドレス2つめ) 
nameserver 133.87.1.11

項目 説明
nameserver DNS サーバの IP アドレス. ドメイン名を利用する際にはまず一番上の DNS サーバに問い合わせる. 問い合わせがタイムアウトになった場合, 次の DNS サーバに問い合わせる.
search ドメイン名探査のための検索リスト. 例えばここに "ep.sci.hokudai.ac.jp" と記述してある場合, "www" というドメイン名を入力するだけで, "www.ep.sci.hokudai.ac.jp" というドメイン名に補完される. 大抵はローカルドメイン名 (コンピュータ自身のドメイン名) が 書き込まれているが, 異なるドメイン名が複数書き込まれていても良い

書き直す場合は以下のように vi で編集します. ただし, 編集するにはシステムの管理者権限が必要です. 今回は行いませんの.

# vi /etc/resolv.conf

  ... resolv.conf の編集 ...

実際にドメイン名と IP アドレスの対応を知るためにはhost コマンド を使います.

$ host www.ep.sci.hokudai.ac.jp

このコマンドでは, 入力されたドメイン名を先に設定した DNS サーバに問い合わせ, 対応する IP アドレスを表示します.

www.ep.sci.hokudai.ac.jp is an alias for orange.ep.sci.hokudai.ac.jp.
orange.ep.sci.hokudai.ac.jp has address 133.50.160.51

ここでorange.ep.sci.hokudai.ac.jp はwww.ep.sci.hokudai.ac.jp の別名です.




[1.3] 通信経路のチェック

自分の PC がきちんと設定してあっても, 通信相手の PC の電源が入っていない場合や, 自分と相手の間のどこかで通信が途切れている場合等は, 当然のことながら通信することができません. 自分と通信相手の間で通信が可能かどうかを調べるには ping コマンド, traceroute コマンド を使います. ただし, 北大の学外へはこれらのコマンドを使用しても経路の情報を得ることはできません. これは北大のネットワークを管理している HINES がセキュリティ上の観点から認めていないためです.

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

$ ping www.ep.sci.hokudai.ac.jp
例:
PING www.ep.sci.hokudai.ac.jp (133.50.160.51): 56 data bytes

64 bytes from 133.50.160.51: icmp_seq=0 ttl=61 time=0.5 ms
64 bytes from 133.50.160.51: icmp_seq=1 ttl=61 time=0.5 ms
64 bytes from 133.50.160.51: icmp_seq=2 ttl=61 time=0.5 ms
64 bytes from 133.50.160.51: icmp_seq=3 ttl=61 time=1.7 ms
64 bytes from 133.50.160.51: icmp_seq=4 ttl=61 time=0.6 ms
64 bytes from 133.50.160.51: icmp_seq=5 ttl=61 time=0.6 ms
64 bytes from 133.50.160.51: icmp_seq=6 ttl=61 time=0.4 ms

traceroute コマンドは相手に通信が届くまでにどのルータを経由したかが 表示されます. 相手に通信が届かない場合, どこかでネットワークが切れている 可能性があります. traceroute はそれを検知するためのツールです. 以下は www.hokudai.ac.jp 宛てに通信が届いた場合の結果です. (終了するには Ctrl + C を押してください).

$ traceroute www.hokudai.ac.jp
例:
traceroute to www.hokudai.ac.jp (52.185.152.108), 30 hops max, 60 byte packets
 1  ringo.ep.sci.hokudai.ac.jp (133.87.45.1)  0.410 ms  0.786 ms  0.969 ms
 2  133.50.160.1 (133.50.160.1)  0.861 ms  0.933 ms  0.924 ms
 3  * * *
 4  daikeir1.sys.hokudai.ac.jp (133.87.254.1)  0.445 ms  0.438 ms  0.480 ms
 5  * * *
 6  * * *
 7  * * *
 8  * * *
以下続く

ここで, "ringo.ep.sci.hokudai.ac.jp" は 我々の地球惑星科学分野の上位のネットワークのゲートウェイです.それ以降のIP アドレスはHINES の管理する 機器のIP アドレスになります.





[付録(例年は以下を実践してもらっていました)] ネットワーク・トラブルシューティング実践

例年はTA, VTAがネットワークトラブルを情報実験機に仕込み, それを受講生に解決してもらっていました.
ありがちなトラブルから嫌らしいトラブルまで様々なトラブルを仕込んでいました. 以下に一例を上げます.

設定ファイルを間違えて上手く動作しなくなってしまった場合(ネットワークに限らず), 設定ファイルの中身を一文ずつ確認する他に, 正しく動く設定ファイルやバックアップから上書きする方法もある.

以下は例年実行していた内容になるが, 今年は行いません. が, 読むようにしてください.
ここまでの内容を理解したら, 実際にトラブルシューティングを行ってもらいます. その下準備として /etc/network/interfaces と /etc/resolv.conf のバックアップを行ってください.

$ cp /etc/network/interfaces ~/interfaces.bak
$ cp /etc/resolv.conf ~/resolv.conf.bak

まず, 実際にネットワークパラメータを変更して, ネットワークに接続できるか確認してみましょう.ネットワークパラメータの編集にはroot の権限が必要なので担当のVTA にお願いしましょう.
/etc/network/interfaces の編集

# ifdown enpXsY
# vi /etc/network/interfaces 
編集後
# ifup enpXsY
ping を打ってweb サーバと接続できるか確認
# ping www.ep.sci.hokudai.ac.jp


<-- "X, Y" は[1.1.2] - [1.2.1] で確認したインターフェイスの番号.
	資料中だと,"X=6, Y=0"




ネットワークパラメータを変更した場合にはうまく接続できなくなります.確認後は元のパラメータに直して置きましょう.

それでは,VTA がネットワークに繋がらない状態にします(カンニング厳禁!). 以下に情報実験機の各ネットワークパラメータの正しい値を記しますので, これらをチェックして再びネットワークに接続してください. 管理者権限は今回のこの実習に限り VTA から借りて作業を行います.

項目
IP アドレス 192.168.16.1<情報実験機番号>
(例: joho 04 -> 192.168.16.104)
ゲートウェイアドレス 192.168.16.1
イーサネットに対する
インターフェース
enpXsY (X,Yに数字が入る)
DNS サーバ
  • 133.87.45.70   (ドメイン名 yellow.ep.sci.hokudai.ac.jp)
  • 133.87.45.66   (ドメイン名 blue.ep.sci.hokudai.ac.jp)
  • 133.87.1.11   (ドメイン名 nameserv.sys.hokudai.ac.jp)

実技資料はここまでになります.本日の予定のページに課題を載せている課題を行ってください.

お時間の余った方は付録へどうぞ.


付録1:Windows7 でのネットワークトラブル対処法
付録2:Windows8 でのネットワークトラブル対処法
付録3:Windows10 でのネットワークトラブル対処法

最終更新日: 2019/05/10 (吉田 辰哉) Copyright © 2019 inex