1.はじめに
Telnetポートテスト、便利ですよね。
ネットワーク構築時のテストや運用時のトラブルシュートなどに大活躍します。
ところがつい先日、ネットワーク構築でTelnetポートテストの結果を信じて大変痛い目に遭いました。
ネットワークエンジニアを数年やってきて初めての大変だったため、共有させて頂きます。
この記事は前後編に分けて書く予定です。
前編(本記事)ではTelnetポートテストの使い方をさらっと解説します。
後編ではTelnetポートテストの落とし穴について解説します。
2.Telnetポートテストとは何か
Telnetクライアントを利用して、クライアントからサーバへのTCP接続性を確認するテストです。
このテストによってTCPの接続性(=3ウェイ・ハンドシェイクが行えること)が確認できます。
システム開発の現場にではインフラチームと開発チームが別のチームになっていて、お互いの作業範囲が完全に分かれていることがあります。私の所属する会社ではネットワークおよびサーバに関わる業務はインフラチーム、アプリケーションに関わる業務は開発チームが担当しています。他の会社も恐らく同じ体制になっているのではないかなと思います。
この時のインフラチームの仕事は、「デプロイされたアプリケーションがノード間を要件通りに通信できること」となります。OSI7階層モデルで言うところの第1層~第4層が責任範囲ですね。この4層までの準備が完了していることを手軽に確認できるのが、Telnetクライアントテストです。
3.qiita.comとのTCP接続性を確認する
あなたがインフラチームのエンジニアで、http://qiita.com/ というWebサーバを構築し、関連するネットワークの設定を完了したとします。早速インターネットに接続できるPC準備してテストをやっていきましょう。
Telnetクライアントを立ち上げて、以下を実行します。
c:\>telnet qiita.com 80
………
……
…
真っ黒な画面が出ただけですか? 成功です。これでクライアントがqiita.comとTCP80番ポートで通信できることが確認できました。
次にポート番号を変えて実施してみましょう。
c:\>telnet qiita.com 8080
接続中: qiita.com...ホストへ接続できませんでした。 ポート番号 8080: 接続に失敗しました
c:\>
今度は「接続に失敗しました」と出ました。これは、対象のサーバqiita.comとTCP8080番ポートでは通信できなかったことを現しています。
4.Telnetポートテストの何が凄いのか
Telnetポートテストの素晴らしさはほぼ1点、クライアント側の事前準備が極めて簡単ということに尽きます。Telnetクライアントは多くの端末やサーバのOSにおいて標準で準備されています。
特に、クライアントアプリケーションを開発する案件でとても役に立ちます。開発予定のクライアントアプリケーションがまだクライアント側に導入されていない状態であっても、サーバ側の準備さえできていればテストの実施が可能です。テストに成功すればインフラチームの仕事は完了したと、胸を張って言えるでしょう。
5.Telnetポートテストは素晴らしい、一生着いて行くよ!
そう思っていました。あの恐ろしい事件が起きるまでは……。
というところで後編に続きます。