ホームページ制作/SEO対策なら株式会社サイバーブレーンへ

 03-5961-5681 平日10:00~19:00

 2016-11-06

WEBページ閲覧時の通信トラブル

エラーの原因は?

HTTPに限らず、SMTP, FTP, その他通信ができず、トラブルが発生した際に、「ネットワークエラー」、「通信エラー」、「切断されました」、「リセットされました」、「サーバーが込み合っています。しばらくお時間を置いてお試しください」等、色々なケースがあると思います。

エラー原因はクライアント側の問題なのか、サーバー側の問題なのかが全く分かりません。

HTTPでのブラウジングに限って言えば、WEBページが表示されて「サーバーが込み合っています。しばらくお時間を置いてお試しください」の場合は、サーバー側の問題になり、サーバ側の処理でこのエラーを出力しているので、通信としては正常という事になる。

「切断されました」や「リセットされました」の場合は、サーバー側のタイムアウト処理だったり、セキュリティ設定で切断というケースもよくあります。
「リセット」に関しては、2000年頃、HTTPに限らずSMTPやFTPでもよくありましたが、最近はあまり遭遇することがなくなりました。
https://www.rfc-editor.org/info/rfc3360

HTTPクライアント側(利用者)の判断

1. IPアドレスが取得できないケース
”サーバーの DNS アドレスが見つかりません”
”Web アドレスが正しいことを確認してください”
ブラウザによってメッセージは色々ですが、共通しているのは、「アドレスがわからない」という事になります。

この場合は、nslookupというDNSクライアントのコマンドプログラムを利用して確認していきます。
コマンドの利用方法は記載しませんが、原因究明のためのポイントはいくつかありますので記載します。
・閲覧しようとしている以外のアドレスは取得可能か?つまり端末に設定されているDNSサーバーに問題はないのか?
端末設定のDNSサーバーアドレスを手動で設定している人は少ないと思います。通常ですとルータのIPアドレスが自動でDNSサーバのアドレスとして設定されているケースがほとんどだと思います。
ここでどんなIPアドレスも取得できないとなると、ルータを再起動して解決できるケースが多いです。

・問い合わせDNSサーバーをドメインを管理しているDNSサーバーに問い合わせする。
管理しているDNSサーバーなので、DNSキャッシュを除けば、最終的にはここがIPアドレスを解決して正しい答えを返す DNSサーバーになります。
従ってここで間違いがある場合は、どのDNSサーバも(偶然に過去の正しい設定をキャッシュしていない限り)間違った情報を返すことになります。

*** 以下の内容は、DNSサーバーとの通信は問題ないことが前提です。***
ネームサーバとして登録されている複数のDNSサーバに対して一台ずつ調べていきます。
------------------------------------------------------------------------------------
例)

IPアドレスを知りたいサーバーが、www.unknown.un だったとします。(サンプルなので存在しないホスト名です)
a. まずは、unknown.un を管理しているDNSサーバーを調べます。

\> nslookup -q=NS unknown.un.
とコマンドを実行すると、このネームサーバーのアドレスが、仮に
192.168.1.1 と
192.168.1.2
の2つ返却されたとします。
次に
\> nslookup -q=A www.unknown.un 192.168.1.1
とコマンドを実行して、192.168.1.1からIPアドレスが取得できるかを確認します。
さらに、2つ目のDNSサーバにも問い合わせます。
\> nslookup -q=A www.unknown.un 192.168.1.2

どちらのDNSに問い合わせてもIPアドレスが取得できるのか?
或いは、両方とも取得できないのか?
或いは、片方だけ取得できないのか?
経験上、ここで一部のDNSサーバーからIPアドレスが取得できないケースが多いです。

ここでは要するに、ドメインを管理しているDNSサーバが複数あり、その何れかに問題がある場合を探します。

まれには、両方から取得できないケースもあると思いますが、その場合は完全にDNSの設定ミスか、或いは、以前あったホスト名を削除して別の名前にしたか、或いは完全に廃止したかの何れかになります。
------------------------------------------------------------------------------------

2.クライアント側のネットワークトラフィックが上がっている場合
このケースだと表示されたり、タイムアウトで表示できなかったりが多発します。
自分自身の経験としては、インターネットの契約がマンションタイプで共有していることもあり、年に数十回は遭遇します。
接続できないと、項番1.で示したようにnslookupで正引きをした際に、ここでタイムアウトが発生してIPアドレスが取得できなかったりします。


3.経路上のルータがダウンしている場合
他の経路が存在しない場合は、サーバーと通信ができない事になります。
ブラウザだと、「接続がタイムアウト」、「サーバーから応答がありません。」等の エラーになると思います。
2000年頃は定期的にあちらこちらでありましたが、最近はこのトラブルになることは 無いように思えます。
当時は、ICMPパケットを利用したtracerouteで、該当箇所を探してICMPパケットが落ちるIPアドレスを所有している組織を探し当てて、英単語を組み合わせて(英語は苦手なので)ICMPパケットを通さない設定でもなければ、落ちているから速く治してね!なんて余計なことを問い合わせフォームから送信したりしていました。

4.サーバーがダウンしている場合
ブラウザでは、項番3.と同じエラーメッセージになると思います。

5.サーバーは動作しているが、WEBサーバが起動していない場合
ブラウザでは、「サーバへの接続を確立できませんでした」となると思います。
IPパケットはサーバーに届き、TCPのコネクションが確立しないという事になります。


最近は、こうしたトラブルもほとんど無くなってきて(個人宅での通信トラブルはいまだルータ再起動が定期的にある)はいるのでかなり快適になりました。
少なくともトラブルの際はすぐに通信相手を疑うのではなく、まずは自身の環境から疑っていくという事になり、通信相手側に問題がある場合は、徐々に堀を固めていくみたいな感じでした。
また、トラブルがあると必然的にパケットキャプチャや、TCP/IPの仕組みを理解しないと対処できないので、自然に身について行きましたが、トラブルが減るとIP(インターネットプロトコル)の事は意識しなくなるので、通信を意識する場面ではIPヘッダをイメージするように心がけています。

~この記事の著者~

ネットワークトラブルについて

 03-5961-5681 平日10:00~19:00

メールフォーム

あなたが
サイトに
求める要素
あなたがサイトに求める0要素