IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

Windows/Linuxの実践トラブルシューティング

CTC 教育サービス

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート 

第13回 ネットワークのトラブルシューティング その1 (加賀結衣) 2017年7月

こんにちは。加賀結衣(かが ゆい)と申します。

このコラムでは、株式会社リックテレコムの「Windows/Linuxのトラブル追跡実践ノウハウ」をもとに、私が実際にPCに触りながら学んだことをまとめていきます。

コラム内のページ表記は、この書籍のページを示します(Pはページです)。
日々発生するコンピュータのトラブルに対し、どのようなツールを使い、どのような情報を収集すればよいか知りたいと思われている初心者の方に、このコラムが少しでもお役に立てば嬉しいです。

今回から、第5章 「ネットワークのトラブルシューティング」を学んでゆきます。

---------------------------------------------------------------------

第5章 ネットワークのトラブルシューティング
5.1 ネットワーク設定の確認
 5.1.1 ARPキャッシュを確認する(p.257)
 5.1.2 疎通確認をする(p.259)
 5.1.3 デフォルトルートを調べる(p.262)
 5.1.4 通信経路を確認する(p.264)
 5.1.5 ポートの状態を確認する(p.265)

5.2 ネットワーク設定の確認
 5.2.1 名前解決の問題について(p.269)
 5.2.2 ターゲットホストに接続してみる(p.272)
 5.2.3 ターゲットホストのポートの状態を確認する(p.275)
 5.2.4 ファイアウォールの状態を確認する(p.280)

----------------------------------------------------------------------

 

5.1 ネットワーク設定の確認

 5.1.1 ARPキャッシュを確認する(p.257)

ARP(アープ)とはAddress Resolution Protocolの略で、ネットワーク上のMACアドレスの情報を、IPアドレスから得るためのプロトコルです。

例えば、ネットワーク上のプリンタを古いものから新しいものに交換した際に、PCからの接続がうまくいかなくなることがありますが、そのような場合にこのarpを利用することでトラブルシューティングができます。

ARPでは「ARPリクエスト」と「ARPリプライ」を利用してMACアドレスの情報を取得します。
まず、宛先MACアドレスが不明である場合には、ARPリクエストを同じセグメント内の全マシンにブロードキャストで送信します。

このリクエストを受け取ったマシンのうち、対象のIPアドレスを持っていないマシンはリクエスト元のマシンにのみ、MACアドレス情報をARPリプライとして返します。

これによりARPリクエストをした送信元マシンはMACアドレスを入手して、ネットワーク上での通信ができるようになります。

なお、取得したMACアドレスの情報は、IPアドレスに紐づけられARPテーブルに保存されますが、ARPテーブルではこれを一定期間、ARPキャッシュとして保持します。

キャッシュがクリアされる時間はOSバージョンなどにより異なります。
ネットワーク上のプリンタを新しいものに変えた場合に、PCからの接続がうまくいかなくなるのは、このARPキャッシュの情報に古い情報が残っているためです。

arp -a コマンドでARPのキャッシュを確認することができ、arp -d IPアドレスと指定すると、特定のIPアドレスのARPキャッシュを削除することができます。

arpコマンドは、WindowsでもLinuxでも利用できます。

(参考情報)
arp ~ARPテーブルの表示/設定を行う
http://www.atmarkit.co.jp/ait/articles/0111/29/news003.html

 

 5.1.2 疎通確認をする(p.259)

ping(ピンもしくはピング)とは、潜水艦などで利用されるソナーの発する音波であるpingから名づけられた名称で、ネットワークの疎通を確認したいマシンにIPパケットを発行し、それが正しく到達して返答があるかを確認するコマンドです。

「ping IPアドレス」と、接続先のIPアドレスを入力することで、対象のIPアドレスと疎通が取れているかが確認できます。

以下は、Windowsでの実行例です。

fig01

 

ping は、ICMPプロトコル(Internet Control Message Protocol)を使用しています。
ICMPプロトコルはTCP/IPが動作するために必要な、補助的な役割を果たすためのプロトコルでICMPメッセージと呼ばれるメッセージを送受信して相手先への問い合わせ等を行います。
利用可能なICMPメッセージとしては、通信可能なら応答するよう要求する「エコー要求」(echo request)や、それに対する返答である「エコー応答」(echo reply)などがあります。

Windowsの場合、デフォルトでは32バイトのICPMパケットが送信され、4回送信を実施して、自動的に停止します。
Windowでは送信パケットサイズは、-l オプションを使って変更することができます。

以下は、Windowsでの実行例です。

fig02

 

なお、Linuxでは1秒ごとにパケットを送信しますが、Windowsのように自動的に停止しないため、オプションを指定するか、あるいはCtrl+Cで終了させないとパケットを送信しつづけるためあらかじめご留意ください。

(参考情報)
ping ~ネットワークの疎通を確認する
http://www.atmarkit.co.jp/ait/articles/0108/30/news002.html

 

 5.1.3 デフォルトルートを調べる(p.262)

ルーターやコンピュータが有する、各ネットワークの宛先の経路の一覧であるルーティング テーブルを表示させたい場合には、route(ルート)コマンドを利用します。

WindowsではPRINTオプションをつけてroute PRINTと入力します。
Linuxではオプションなしでrouteを実行すると、現在のルーティング テーブルを表示させることができます。

以下は、Windowsでの実行例です。

fig03

 

routeコマンドでは route add オプションで経路を追加したり、delオプションで経路削除したりすることもできます。

(参考情報)
route ~ルーティングテーブルの表示/設定を行う
http://www.atmarkit.co.jp/ait/articles/0111/01/news002.html

【 route 】 ルーティング・テーブルを表示・設定する
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230874/

 

 5.1.4 通信経路を確認する(p.264)

あるホストから接続先ホストまでのネットワークの途中経路を確認したいときには、tracertコマンドもしくはtraceroute(トレースルート)コマンドを使用します。

Windowsの場合、tracert 接続先ホスト名もしくはIPアドレスと入力しますと、以下のようにネットワーク経路を表示させることができます。

以下は、Windowsでの実行例です。

fig04

 

tracert に-dオプション(Linuxの場合は traceroute -nオプション)を指定すると接続先ホスト名への名前解決を制御することができます。

tracertもしくはtracerouteコマンドは、pingコマンドでエラーが発生した場合に、どの経路で問題が発生しているのかを確認する際などの使用できます。

(参考情報)
traceroute(tracert) ~ネットワークの経路を調査する
http://www.atmarkit.co.jp/ait/articles/0108/30/news003.html

 

 5.1.5 ポートの状態を確認する(p.265)

あるコンピューターのネットワーク通信の状態を確認するのにつかわれるのがnetstat(ネットスタット)コマンドです。
netstatコマンドではどのコンピュータとどのポートを使って通信しているのかや、接続中なのか、あるいは接続を待っている状態なのかなどを確認することができます。

netstat -nオプションでアドレスからの名前解決を抑制して、IPアドレスやポート番号を数値で表示することができます。
また、netstat -aコマンドで、全てのアクティブなTCP接続と待ち受け中のTCP/UDPポートを表示することができるため、netstat -anと組み合わせて利用すると便利です。

このコマンドで、待ち受け状態のポートは(LISTENING)と表示されます。

fig05

 

なお、CentOS 7 や RHEL 7以降は、ネットワークに関連した一部のコマンドが非推奨となり、netstatコマンドの代替として「ss」コマンドが用意されています。

(参考情報)
netstatコマンドを使いこなす (1/2)
http://www.atmarkit.co.jp/ait/articles/0207/20/news003.html

netstatコマンドとは?
http://www.atmarkit.co.jp/ait/articles/1412/10/news003.html

Linuxコマンド集
【 netstat 】 ネットワーク関連の統計情報を表示する
http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230845/

 

今日のまとめ

★arpコマンドを利用すると、ネットワーク上のMACアドレスの情報を、IPアドレスから得ることができます。
また、pingコマンドでは、ネットワークの疎通を確認したいマシンにIPパケットを発行して、返答があるかを確認することができます。

★あるホストから接続先ホストまでのネットワークの途中経路を確認したいときには、tracertコマンドもしくはtracerouteコマンドを使用します。

なお、サーバ(OS)・ネットワーク分野における原因究明の仕方や切り分けなどを行う方法を基礎から学びたい方には、CTC教育サービスのオリジナルコースである
「システムトラブルシュート(ファーストステップ)」
「システムトラブルシュート(ネクストステップ)」がお勧めです。
詳細は、以下のリンクをご参照くださいませ。

http://www.school.ctc-g.co.jp/course/SSE01.html
http://www.school.ctc-g.co.jp/course/SSE02.html

最後まで読んでくださってどうもありがとうございました。次回もどうぞお楽しみに。

 


 

 [IT研修]注目キーワード   OpenStack  OpenFlow/SDN  情報セキュリティ  Python  システムトラブルシュート