ITメモ
ITの基礎・共通知識
【ITの基礎】TCP/IP
「TCP/IP」の基礎知識
「TCP/IP」とは
ネットワークコマンドの使い方
ネットワークの経路を調査する方法





【TCP/IP】ネットワークの経路を調査する方法

【TCP/IP】
ネットワークの経路を調査する方法




PCを使って、
ネットワークにアクセスした先に、
どのような経路でたどり着いたかを調べる方法があります。


ネットワークコマンドの
「traceroute」コマンドか、
Windowsでは「tracert」コマンドを使用して、
指定した「URL」「ドメイン」「IPアドレス」までの
ネットワーク経路を調べることができます。


コマンドの結果である「経路」は、
リストで出力されます。
ホストからホストまでのネットワーク経路がリスト表示され、
経路上にどのようなルーターが位置し、経由しているかがわかります。



詳しくは、下記をご参照ください。



ネットワークの経路を調べるネットワークコマンドとは


ネットワークの経路を調べる前に、
通信先とのネットワークが繋がっているかの疎通確認をする必要があります。
ネットワークコマンドの中では、
一番よく使われている「ping」コマンドを使用して、
ネットワーク回線が繋がっているかを確認し、
回線が繋がっていれば、
経路を調べることになります。



ネットワークの経路を調べるネットワークコマンドは、

OSアドレスタイプネットワークコマンド
Windows IPv4/v6兼用tracert
Mac IPv4用traceroute
Mac IPv6用traceroute6
Linux (Ubuntu) IPv4およびv6用traceroute

などがあります。
OSによって、使用できるコマンドが若干異なりますが、
基本的には、「traceroute」コマンドが一般的なようです。



主な用途は、
「ping」を使用した際に、
送信先ホストからの応答がなかった場合などに、
ネットワーク経路を確認するときなどに良く利用されています。

経路上のどこで、
通信が途絶えているかなどの確認をすることができます。
ルーターの設定が正しいかの確認が可能です。


各ルーターからの返答時間も表示されます。
経路上の問題点や、性能評価に使えるコマンドとなっています。


Back

通信先との疎通確認をする方法


通信先との疎通確認をする方法は、
「ping」コマンドを使用して、簡単に行うことができます。
通信先との回線が繋がっていれば、
経路の調査も可能となります。


「ping」コマンドの書式

: ping [-t] [-a] [-n 要求数] [-l サイズ] [-f] [-i TTL] [-v TOS] [-r ホップ数] [-s ホップ数] [[-j ホスト一覧] | [-k ホスト一覧]] [-w タイムアウト] [-R] [-S ソースアドレス] [-c コンパートメント] [-p] [-4] [-6] ターゲット名



ping [IPアドレスまたはドメイン名]

ping IPアドレス
ping ドメイン名

ping ***.***.***.***
ping sample.com

ping ***.***.***.*** -n 5
ping ***.***.***.*** -t
ping ***.***.***.*** -l 1000
ping ***.***.***.*** ping ***.***.***.*** ping ***.***.***.*** ping ***.***.***.*** ping ***.***.***.***

「ping」コマンドの「ヘルプ」を表示する方法 ping /?




「ping」コマンドは、

・ブラウザにページが表示されない
・メールが見れない
・パソコンがファイルサーバーにつながらない(アクセスできない)
・パソコンがインターネットにつながらない

などの症状が出たときに、
実行するコマンドで、
上級者から初心者まで、
知っていたら便利なネットワーク系コマンドの一つです。



「ping」コマンドのオプション
オプション説明
-t 中断されるまで、指定されたホストに疎通確認をする。
統計を表示して続行するには、「Ctrl+Break」
停止するには、「Ctrl+C」
-aアドレスのホスト名調べる。
-n 要求数指定した数の分だけ疎通確認を送信する。
-l サイズサイズ 送信バッファーのサイズです。
-fパケット内の Don’t Fragment フラグを設定します (IPv4 のみ)。
-i TTL「Time To Live」。「TTL」はパケットの有効期限。
-v TOSType Of Service
-r ホップ数指定したホップ数までのルートを記録する (IPv4 のみ)。
-s ホップ数指定したホップ数までのタイムスタンプを表示する(IPv4のみ)
-j ホスト一覧一覧で指定されたルートをできるだけ使用する(IPv4のみ)
-k ホスト一覧一覧で指定されたルートを厳密に使用する(IPv4のみ)
-w タイムアウト時間応答を待つタイムアウトの時間を指定する。単位は、「ミリ秒」。
-R ルーティングヘッダーを使用して逆ルートもテストする(IPv6 のみ)。
-S ソースアドレス疎通確認するソースアドレスを指定する。
-c コンパートメントコンパートメント識別子を指定する。
-p Hyper-Vネットワーク仮想化プロバイダーアドレスを確認する
-4「IPv4」を強制的に使用する。
-6「IPv6」を強制的に使用する。


Back

「WindowsOS」でネットワークの経路を調べる方法


「WindowsOS」では、
ネットワーク経路を調べるコマンドとして、
「tracert」コマンドが使われています。


「IPv4/v6兼用」なので、
「WindowsOS」全体で使えるネットワークコマンドとなっています。


「tracert」コマンドの書式
tracert [-d] [-h 最大ホップ数] [-j ゲートウェイ・リスト] [-w タイムアウト時間] [-R] [-S ソースアドレス] [-4] [-6] 対象ホスト(ホスト名またはIPアドレス)
tracert ドメイン名
tracert Google.com

tracert IPアドレス
tracert ***.***.***.***


「tracert」コマンドのオプション
オプション説明
-d「IPアドレス」から「ホスト名」への名前解決を行わない
-h使用する「最大TTL(Time To Live)」。指定した数字の数のルーターまでしか経由しない。
-j経由すべきゲートウェイ(ルーター)のアドレスを指定できるオプション。最大9個まで指定可能。ただし指定されていないゲートウェイも経由できる(loose source routed)。「IPv4」のみ
-wタイムアウト時間を指定する可能。単位は「ミリ秒」
-R往復のパスをトレースする設定。「IPv6」のみ対応
-S自身のIPではない、別のホストを「送信元ホスト」として指定可能なオプション。もちろん結果は自身へと返ってこない。「IPv6」のみ
-4「IPv4」の使用を強制するオプション
-6「IPv6」の使用を強制するオプション





Back

「MacOS」でネットワークの経路を調べる方法


「MacOS」でネットワークの経路を調べるには、
「IPv4」では、「traceroute」コマンドを使用し 「IPv6」では、「traceroute6」コマンドを使用して確認します。



IPv4用

traceroute [-adDeFInrSvx] [-A ASサーバ] [-f 初期TTL値] [-g ゲートウェイ・リスト] [-i インタフェース] [-M 初期TTL値] [-m 最大TTL値] [-P プロトコル] [-p ポート番号] [-q 試行回数] [-s 送信元アドレス] [-t TOS] [-w 待機時間] [-z pausemsecs] 対象ホスト(ホスト名またはIPアドレス) [パケットサイズ]


「traceroute」コマンドのオプション
オプション説明
-a「BGP」の「AS番号」を表示する
-d「モード」で動作する
-D「パケット内容」を表示する
-eファイアウォール回避モード。送信先ポート番号を固定されて実行される。通常は、送信ポート番号が、試行ごとにインクリメント。ファイアウォールが回避しやすい。
-F「IPパケット」の分割を禁止する
-I「UDP」の代わりに「ICMP Echo Request」を使用する。「-P」オプションでも同様のことが可能。
-n出力を「IPアドレス」のみに抑制する(DNS逆引きを実行しない)
-rルーティングテーブルを無視し、指定した転送先ホストに直接パケットを送信する。
-S「ホップ」するごとに「返答率」を表示する
-v詳細モード
-x「ICMP」の「CheckSum」の評価をする
-A「BGP」の「AS番号」を表示し、指定された「ASサーバ」を使用する
-f使用する「TTL」初期値を指定する
-g経由すべき「ゲートウェイ(ルーター)」アドレスを最大8個まで指定可能。
-i指定された「インタフェース(バインドされたIPアドレス)」を使用して実行する
-M使用する「TTL」初期値を指定する
-m使用する「TTL」最大値を指定する。指定したホップ数までの「ゲートウェイ」を表示する
-P使用する「IPプロトコル」を指定。「UDP」「TCP」「GRE」「ICMP」が指定可能
-p使用する「UDP/TCP」パケットのポート番号を指定。(UDP/TCPのみ)
-q1つのゲートウェイに対する試行回数が指定可能。デフォルトは「3」
-s指定された「IPアドレス」からの実行とする(Source Addressを指定)
-tパケットの「TOS(Type Of Service)」を指定された値にする
-wタイムアウト時間を指定。単位は「秒」




IPv6用

traceroute6 [-dIlnNrUv] [-f 初期ホップ数] [-g ゲートウェイ・リスト] [-m 最大ホップ数] [-p ポート番号] [-q 試行回数] [-s 送信元アドレス] [-w 待機時間] 対象ホスト(ホスト名またはIPアドレス) [パケットサイズ]


「traceroute6」コマンドのオプション
オプション説明
-d「デバッグモード」で実行する
-I「UDP」の代わりに「ICMP Echo Request」を使用する
-l「ホスト名」「IPアドレス」の両方を表示
-n出力を「IPアドレス」のみに固定(DNS逆引きはしない)
-N「上位レイヤー」の「ヘッダ」を含まなせない
-rルーティングテーブルを無視し、指定した転送先に、直接パケットを送信する。同一の物理ネットワーク上に目的ホストがない場合はエラー
-U「UDP」パケットを用いる(デフォルト)
-v詳細モード
-f使用する初期ホップ数を指定する。
-g経由する「ゲートウェイ(ルーター)」のアドレス指定する(最大8個まで)
-m「最大ホップ数」を指定可能。最大は「255」、デフォルトは「30」
-p使用する「UDP/TCPパケット」の「ポート番号」を指定可能(UDP/TCPパケットを使用する場合)
-q1つのホップに対して、「試行回数」を指定する
-s指定された「IPアドレス」から実行したことにできる。(Source Addressを指定する)
-w「タイムアウト」の時間を指定する。単位は「秒」


Back

「LinuxOS」でネットワークの経路を調べる方法


「LinuxOS」で、
ネットワークの経路を調べるには、
「traceroute」コマンドを使用します。


「traceroute」コマンドの書式(IPv4・IPv6用)
traceroute [-46dFITnreAUDV] [-f 初期TTL値] [-g ゲートウェイ・リスト] [-i インタフェース] [-m 最大TTL値] [-N 並列数] [-p ポート番号] [-P プロトコル番号] [-t TOS] [-l フローラベル] [-w タイムアウト時間] [-q 試行回数] [-s 送信元アドレス] [-z 間隔時間] [--sport=送信元ポート番号] [ --fwmark=num] [-UL] [-M プロトコル] [-O mod_options] [--mtu] [--back] 対象ホスト(ホスト名またはIPアドレス) [パケットサイズ]


「traceroute」コマンドの書式(IPv6用)
traceroute6 [-dnrvV] [-m 最大TTL値] [-p ポート番号] [-q 試行回数] [-s 送信元アドレス] [-t TOS] [-w タイムアウト時間] 対象ホスト(ホスト名またはIPアドレス) [パケットサイズ]


「traceroute」コマンドのオプション
オプション説明
-4「IPv4」を使用する
-6「IPv6」を使用する
-d「デバッグモード」で動作する
-F「IPパケット」の分割を禁止する
-I「ICMP Echo Request」を使用する
-T「TCP SYN」パケットを使用する。デフォルトのポート番号は「80」
-n出力を「IPアドレス」のみに指定する(DNS逆引きを行わない)
-r指定したホストに転送する指定。同一の物理ネットワーク上に目的ホストがない場合はエラー
-e「ICMP」の拡張を表示させる
-A「BGP」の「AS番号」を表示させる
-U「UDPパケット」使用する。デフォルトのポート番号は「53」
-D「DCCP(Datagram Congestion Control Protocol/RFC 4340)」を使用する。デフォルトポート番号は「33434」
-Vバージョン情報を表示させる
-f使用する「TTL初期値」を指定する
-g経由すべき「ゲートウェイ(ルーター)」のアドレスを指定する。(最大8個まで)指定されていないゲートウェイも経由可能
-i指定された「インタフェース」を使用して実行する(ネットワークカード名・BindされたIPアドレスでも可)
-m使用する「TTL最大値」を指定。指定した最大値までホップが可能。そこまでのゲートウェイが表示される
-N並列して「パケット」を送信する数の指定。デフォルトは16。大きな値を指定することは推奨されない
-p使用する「UDP/TCP」パケットのポート番号を指定する
-P「RAWパケット」を使用する「プロトコル番号」を指定する。デフォルト値は「253」
-tパケットの「TOS(Type Of Service)」を指定する。「IPv6」の場合は、「トラフィックコントロール値」を指定。
-I「IPv6」の「フローラベル」を指定
-w「タイムアウト」の時間を指定する。単位は「秒」、デフォルトは「5秒」
-q「ゲートウェイ」への「試行回数」を指定する。デフォルトは「3回」
-s指定「IPアドレス」から実行する
-z「送信パケットの間隔時間」を「秒」単位で指定する。デフォルトは「0秒」
--sport「送信元ポート番号」を指定する
--fwmark「パケットへファイアウォールマーク(SO_MARK)」を設定する
-UL「UDPLITE(RFC 3828)」パケットを使用する
-M使用「プロトコル」を指定する。デフォルトは、「UDP」。「icmp」「tcp」も指定可能。「-U」「-I」「-T」オプションと同じ
-O使用「プロトコル」の拡張オプションを指定する
--mtu「MTU」を指定する。「-F」オプションと使用すると、各経路での「MTU」を調査可能。
--back帰りの「ホップ数」を表示する


Back