こんにちは、GMOインターネットグループ株式会社 ネットワークソリューションチームの梅崎です
今回は主にサーバー管理者/アプリ開発者向けに
「ネットワークが繋がらない、通信ができない」となったときの
・ クライアント/サーバー側で可能なトラブルシュート方法
・ ネットワーク管理者へ調査依頼を出す際に我々が欲しい情報
をまとめてみました
今回はそのエラー内容特定編です
目次
注意事項
基本的には上からなぞっていけば大丈夫な形にはしていますが
Windows機などはコマンドが違うことが多く
コメントでやりたいことを記載しているので
同様の情報を取得できるものを探していただければと思います
あと、IPv6の調査はあまりやったことは無いですが
基本的にはトラブルシュート方法は変わらず
コマンドにIPv6用のオプションをつければ大丈夫だと思います
どんなエラーなのかを特定
この章では
最低限、通信の問題なのかクライアント/サーバーのアプリケーション的なエラー、設定の不備なのかを切り分けする方法を記載しています
ブラウザ等で404や403といった4xxエラーが表示される
クライアントとサーバーとの通信は問題ないです
「URLが誤っている」かサーバーで「ファイルが存在しない」、「アクセスを許可していない」等が原因のため
URLの再確認とWebサーバー側の設定の確認が必要です
ブラウザ等で500や504といった5xxエラーが表示される
クライアントとサーバーとの通信は問題ないです
サーバー側のエラーやバックエンドが落ちているなどが原因の可能性が高いです
サーバー、バックエンド側のログの確認が必要です
※サーバーとバックエンドの「通信に問題がある場合(作成中)」を参照してください
名前解決に失敗する
「URLが誤っている」か「DNSサーバーの設定が無い」「リゾルバの設定がされていない/間違えている」かなと思います
URLの再確認とDNSサーバー側の設定の確認、クライアント側のリゾルバの設定の確認が必要です
タイムアウトエラーが表示される(Webに限らず)
クライアントとサーバーとの通信に問題があるか
サーバー側が落ちている、アクセスするIPアドレスに誤りがある可能性があります
IPアドレスの再確認とサーバー側が落ちていないかを下記コマンド等で確認する必要があります
※コマンドの結果が問題ない場合は、「通信に問題がある場合(作成中)」を参照してください
# プロセスが待ち受ける、バインドするIPアドレス/port等を確認
# 「*」は全IPアドレスで待ち受けている状態です、特定のIPアドレスが表示されることがあります
# HTTP ならば TCP *:80, HTTPSならば TCP *:443などのことが多いです
sudo lsof -i -P -nn
# 出力例
# COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
# snmpd 1364 Debian-snmp 6u IPv4 43174 0t0 UDP *:161
# sshd 1387 root 3u IPv4 68716 0t0 TCP *:22 (LISTEN)
# docker-pr 67965 root 4u IPv4 50378714 0t0 TCP *:443 (LISTEN)
# docker-pr 67978 root 4u IPv4 49454775 0t0 TCP *:80 (LISTEN)
最後のLISTENの箇所のIPアドレスとポート番号が意図したものであること
そもそも意図した行が存在することを確認してください
IPアドレスやポート番号が意図と異なる場合はサーバー側の設定に不備があります
行自体が存在しない場合は大抵プロセスが落ちています
サーバーの設定等の調査をしてください
tcp/udpのポート番号がそれぞれ何用途かはWikipediaや IANAのページ などに書かれているので
詳細はそれらを参照ください
「アクセスが拒否されました」等が表示される(Webに限らず)
クライアントとサーバーを含む通信経路上でアクセス拒否する設定(ファイアウォール, ACL, iptables等)がされている可能性が高いです
また、サーバー上のプロセスが落ちている場合もこの表示になる場合があります
前項「タイムアウトエラーが表示される」と同様に下記コマンドで調査してください
※コマンドの結果が問題ない場合は、「アクセス拒否されている場合(作成中)」を参照してください
# プロセスが待ち受けるport等が問題ないかを確認
sudo lsof -i -P -nn
なんとなく重い、特定時間だけ不調になる
原因として思いつくだけでもDDoS, プログラムのバグ, クライアント/サーバーの過負荷, 通信の輻輳, 通信経路上での物理故障, etc…
本腰を入れた調査が必要なので
サーバー管理者、ネットワーク管理者を巻き込んで調査してください
調査に当たっては
下記の情報が欲しいです
必須
・具体的な事象の説明
☓「通信エラーがでている」
○「画面に□□というメッセージが表示されている」
○「△回に▲度□□というメッセージが表示される」
○「動作に■秒かかるようになった」
・クライアントのIPアドレス
「192.0.2.123/24」や「192.0.2.123 255.255.255.0」等
・サーバーのIPアドレス
・サーバーのプロトコル
TCP/UDP/ICMP等とport番号
・事象を確認した時間帯
最低限、一時間単位で正確なものがありがたいです
利用していれば必須
・クライアントのVLAN番号
・クライアント名、位置情報等
・クライアントを接続しているスイッチ名とスイッチのインターフェース番号
・サーバーのVLAN番号
・サーバー名、位置情報等
・サーバーを接続しているスイッチ名とスイッチのインターフェース番号
あれば
・画面のスクショやログのコピー ※秘匿情報以外は加工せず生情報の方がベスト
ブログの著者欄
採用情報
関連記事
KEYWORD
CATEGORY
-
技術情報(426)
-
イベント(159)
-
カルチャー(35)
-
デザイン(17)
TAG
- 5G
- Adam byGMO
- AI
- AWX
- BIT VALLEY
- blockchain
- ChatGPT
- cloudnative
- CloudStack
- CM
- CNDO
- CNDT
- CODEGYM Academy
- ConoHa
- CS
- CSS
- CTF
- DC
- Designship
- Desiner
- DevSecOpsThon
- Docker
- DTF
- GitLab
- GMO Developers Day
- GMO Developers Night
- GMO GPUクラウド
- GMO Hacking Night
- GMO kitaQ
- GMO SONIC
- GMOアドパートナーズ
- GMOアドマーケティング
- GMOイエラエ
- GMOグローバルサイン
- GMOデジキッズ
- GMOペイメントゲートウェイ
- GMOペパボ
- GMOリサーチ
- Go
- GTB
- Hardning
- Harvester
- HCI
- iOS
- IoT
- ISUCON
- JapanDrone
- Java
- JJUG
- K8s
- Kids VALLEY
- LLM
- MetaMask
- MySQL
- NFT
- NVIDIA
- OpenStack
- Perl
- PHP
- PHPcon
- PHPerKaigi
- QUIC
- Rancher
- RPA
- Ruby
- Selenium
- splunk
- SRE
- SSL
- Terraform
- TLS
- TypeScript
- UI/UX
- VLAN
- VS Code
- アドベントカレンダー
- インターンシップ
- オブジェクト指向
- オンボーディング
- お名前.com
- カルチャー
- コンテナ
- スクラム
- スペシャリスト
- ソフトウェアテスト
- チームビルディング
- ドローン
- ネットワーク
- プログラミング教育
- ブロックチェーン
- ゆめみらいワーク
- リモートワーク
- 京大ミートアップ
- 基礎
- 多拠点開発
- 大学授業
- 宮崎オフィス
- 応用
- 技育プロジェクト
- 新卒
- 暗号
- 機械学習
- 決済
PICKUP