ネットワーク障害時の処方箋
ネットワーク間で通信が確立されているかの確認を行う場合、何よりまず ping を利用して疎通確認を行います。
また途中経路の確認を行う場合、traceroute(tracert)を使って現在の経路を確認します。
さらに、サービスポートが開いているかを確認する場合どのようにすればよいか?
①TCPサービスの確認
Windowsの場合
Windows端末で接続対象のサービスポートが開いているかを確認する場合、telnetコマンドで実施できます。
しかしWindows10ではデフォルトではtelnetコマンドを使用することができません。
以下の手順でtelnetコマンドを使えるようにする必要があります。
1) スタート⇒Windowsシステムツール⇒コントロールパネル を展開する。
2) プログラムと機能⇒Windowsの機能の有効化または無効化 を展開する。
3) TelnetクライアントのチェックボタンをONにしてOKを実行する。
上記の手順でコマントプロンプトでTelnetコマンドが使えるようになります。
(Windowsサーバでも上記の同じ手順が必要です)サービスポートを確認するコマンドは下記になります。
例)Telnet 対象IPアドレス サービスポート
telnet 192.168.0.1 587
実行後、応答する画面(真っ暗でこちらのコマンドを待っているような状態)になればサービスポートが開いている状態です。接続中のまま 「ホストへ接続できませんでした。 ポート番号 xxxx: 接続に失敗しました」と表示された場合はサービスポートが閉じている状態です。
Linuxの場合
Telnetコマンドを利用する場合はyumでパッケージをインストールする必要があります。
1)dnf install telnet
コマンドや内容についてはWindowsと同じ内容になります。
②UDPサービスの確認
UDPのサービスポートが開いているかを確認する場合、Telnetを使用することができません。
ではどのように確認するのか?
UDPのサービスポートを確認する場合はtracerouteを使用します。
Linuxの場合
例)traceroute -U -p 3389 192.168.0.1
traceroute -U -p ポート番号 IPアドレスor ホスト名
サービスポートが閉じていればトレース結果は全て*で表示されます。
サービスポートが開いていればトレース結果が正常に反映されます。
Windowsの場合
Windowsはtracerouteの代わりにtracertコマンドが使用できますが使用するサービスポートがicmpを使用しているため、UDPのサービスポート確認には使用できません。
Windowsの場合はPortQryというコマンドがMicroSoftより提供されています。
通常のWindowsの機能としてはサービス登録されていないため別途ダウンロードしてインストールが必要です。
Official Microsoft Download Center
https://www.microsoft.com/en-us/download/details.aspx?id=17148
インストール後のコマンドは下記のようになります。
例)PortQry.exe -n IPアドレス -e ポート番号 -p UDP
UDP port 53 (domain service): LISTENING or FILTERED
Sending DNS query to UDP port 53…
UDP port 53 is LISTENING
LISTENINGと表示されていれば応答があった証拠なのでサービスポートは開いている状態です。
ネットワークトラブルの場合、疎通確認で障害が発生していることが大まかな原因ですが途中の経路でサービスポートが閉じている場合は多々見られます。
おわりに
特に設定変更や新たなネットワーク機器導入などの場合はこのような事が起きることが多いです。
疎通できるけど通信できないよ?ってときは一旦サービスポートを確認をしてみる事をお勧め致します。
Windows は、Microsoft Corporation の米国およびその他の国における登録商標ですLinuxは、Linus Torvaldsの米国およびその他の国における商標または登録商標です。