問題: データベースアプリケーションは「スロー」です。 ネットワークチームは、サーバーチームを責めています。 サーバチームはネットワークを非難します。 一方、ユーザーは不満で、時間は円のデバッグで浪費されます。
ソリューション: 証拠、仮定ではなく、根本原因を識別するために、証拠を使用するトラブルシューティングに対する体系的、科学的アプローチ。
ハプハザードのトラブルシューティングのコスト: 無駄な時間, 誤った修正は、実際の問題をマスクします, チーム間で指を指す, 劣化したユーザーエクスペリエンス.
ネットワークのトラブルシューティングは、基本的に科学的方法の演習です。
この記事では、一般的な下落を防ぐネットワークトラブルシューティングのための構造フレームワークを提供します。
技術的な診断に潜入する前に、これらの5つの重要な質問に答えて、調査範囲を絞り込みます。
設定の変更? 新しいハードウェア? ソフトウェアの更新? トポロジーの修正?
1つのユーザー? 1棟? みんな? 特定のアプリケーションのみ?
いつもお役に立ちますか? 特定の時間だけ? ランダムな発生?
問題が発生しますか?
接続の両端を確認してください
OSIモデルはトラブルシューティングのための構造化されたフレームワークを提供します。 レイヤー1(物理)上方、またはレイヤー7(アプリケーション)下方から、症状に応じて動作します。
使用する場合: 完全な接続損失、リンク ライト無し、または物理的な層の徴候
show interfaces, ethtool eth0show mac address-table, show spanning-treeping, traceroute, show ip routetelnet host port, netstat -an, パケットキャプチャnslookup, dig, curl -v使用する場合: 基本的な接続が存在するアプリケーション固有の問題
レイヤー7(SharePointサービスが稼働していますか?) DNS は IP を正しいかを解決し、必要な場合にのみダウンします。
このクイック診断ツリーを使用して、どのレイヤーが失敗しているかを識別します。
TCP/IP スタックが機能しない OSサービスをチェックし、ネットワークドライバを再インストールします。
NIC は、間違った運転者、ケーブル プラグを外しました。 チェック: ip link show デバイスマネージャー
チェック: 物理的なケーブル、スイッチ ポートの状態、VLANの割り当て、ARPのテーブル
チェック: ルーティングテーブル、ファイアウォールルール、ACL 使用条件 traceroute パケットが停止する場所を見つける
チェック:DNSサーバーの設定、DNSサーバーの可用性、ファイアウォールブロックポート53
チェック:ファイアウォールルール、セキュリティグループ、ポートを聴くサービス
アプリケーション自体、認証、またはアプリケーション設定の問題
根本原因に関する仮説がある場合、これらの分離技術を使用して確認または拒否します。
ソース、中間点、宛先でトラフィックをキャプチャして、パケットがドロップまたは変更された場所を特定します。
# Capture on client
tcpdump -i eth0 -w client.pcap host server.example.com
# Capture on server
tcpdump -i eth0 -w server.pcap host client.example.com
# Compare:
# - Do packets leave client? (check client.pcap)
# - Do packets arrive at server? (check server.pcap)
# - If yes/no: problem is in the path between
# - If yes/yes but server doesn't respond: server-side issue
外部変数を単一デバイス内の接続をテストすることで排除します。
# Test TCP stack without network
ping 127.0.0.1
# Test application listening locally
telnet localhost 80
# Test loopback on network interface (if supported)
# Some NICs support physical loopback for Layer 1 testing
作業システムに対する構成と動作を比較します。
# Compare interface settings
diff <(ssh working-switch "show run int gi1/0/1") \
<(ssh broken-switch "show run int gi1/0/1")
# Compare routing tables
diff <(ssh router1 "show ip route") \
<(ssh router2 "show ip route")
適切な文書は、それを実現せずに複数の時間を試すと、円のデバッグを防ぐことができます。
Issue ID: TICKET-12345
Date/Time: 2026-02-02 14:30 UTC
Reported By: Jane Smith (jane.smith@company.com)
Affected Users: ~50 users in Building A, 3rd floor
Symptom: Cannot access file server \\fileserver01
Initial Observations:
- Issue started around 14:00 UTC
- Only affects Building A, 3rd floor
- Other buildings can access fileserver01
- Ping to fileserver01 (10.1.50.10) times out from affected users
- Ping to default gateway (10.1.30.1) succeeds
Tests Performed:
1. [14:35] Checked switch port status: gi1/0/15 is UP/UP
2. [14:38] Checked VLAN assignment: Port is in VLAN 30 (correct)
3. [14:42] Checked interface errors: 1,234 CRC errors on gi1/0/15
4. [14:45] Replaced patch cable - still seeing CRC errors
5. [14:50] Moved uplink to different port (gi1/0/16) - errors persist
6. [14:55] Checked fiber cleanliness - dirty connector found
Root Cause:
Dirty fiber connector on uplink between Building A floor switch
and distribution switch causing CRC errors and packet loss
Resolution:
Cleaned fiber connector with proper cleaning kit. CRC errors
dropped to zero. File server access restored.
Verification:
Users confirmed file server accessible. Monitored for 15 minutes
with no errors.
Time to Resolution: 25 minutes
データベースのアプリケーション応答時間は、<100ms〜5秒に分解されます。 「ネットワークレイテンシ」を非難
データベースサーバ OS バッファは、帯域幅 × 遅延製品に対しても小型化しました。 TCPウィンドウは、送信者を強制的に待機します。
# Increased TCP receive buffers on Linux database server
sysctl -w net.ipv4.tcp_rmem="4096 87380 16777216"
sysctl -w net.core.rmem_max=16777216
想定しない: 「遅い」は「ネットワークレイテンシー」という意味ではありません。 結論にジャンプする前に、常に証拠(レイテンシー、行動のためのパケットキャプチャ)を集めます。
サーバー接続は、特に負荷下で、ランダムにドロップします。 時には、完全に反応しなくなることがあります。
自動交渉は失敗しました。 サーバーは双方向通信を交渉し、スイッチは半二重に戻って落ちました。 両側が同時に送信しようとすると、衝突は負荷下でのみ発生します。
! Cisco switch - force full duplex
interface GigabitEthernet1/0/10
speed 1000
duplex full
両端をチェック: インターフェイスの状態は交渉された設定を示します。 不一致とは、自動交渉が失敗することを意味します。 常にサーバーのためのハード コードの速度/複式アパート。
一部のウェブサイト(Google、Yahoo)を閲覧できますが、他のウェブサイト(銀行ウェブサイト、会社ポータル)では閲覧できません。 小さな HTTP リクエストが機能し、大きなページがタイムアウトしました。
ping -M do -s 1472 成功, ping -M do -s 1473 失敗VPN トンネルは MTU を 1400 に減らしましたが、ファイアウォールは ICMP 「フラグメンテーション ニーズ」 メッセージをブロックしました。 パスMTUディスカバリー(PMTUD)は、MTUの黒い穴を作るために動作できませんでした。 小さいパケットは、DFビットセットの大きなパケットがサイレントに落ちていました。
! Implemented TCP MSS clamping on router
interface Tunnel0
ip tcp adjust-mss 1360
! Alternative: Allow ICMP Type 3 Code 4 through firewall
access-list 101 permit icmp any any packet-too-big
サイズの問題: 小さなリクエストがうまくいくが、大きな転送が失敗すると、MTU/fragmentationの問題が疑われる。 DF ビットで ping を使用してパス MTU をテストします。
音声通話は、音声、断続的なドロップアウトが刻まれていました。 営業時間(午前9時~午後5時)にのみ発生します。
QoSの方針は存在しましたが、帯域幅の配分は後方にありました:最高効果は60%を得ました、声は5%を得ました。 データトラフィックが増加した営業時間中は、キューオーバーフローにより音声パケットが低下しました。
! Corrected QoS policy
policy-map WAN-QOS
class VOICE
priority percent 33
class VIDEO
bandwidth percent 25
class CRITICAL-DATA
bandwidth percent 20
class class-default
bandwidth percent 22
時間ベースの問題 = 容量: 忙しい時間帯に問題が起きた場合、故障ではなく、容量/QoSの問題です。 キューの統計情報をチェックするだけでなく、総帯域幅。
| シンプトム | レイヤー | コマンドを実行する | 探すべきこと |
|---|---|---|---|
| リンクライトなし | 層 1 | show interfaces |
状態: 、キャリア無し、ケーブルのunplugged |
| パケットロス | 層 1/2 | show interfaces |
CRCのエラー、ラン、巨人、衝突、遅延衝突 |
| ゲートウェイをpingできません | レイヤー2 | arp -a |
ARPエントリーなし、MACは学習しない、STPブロック |
| リモートサブネットに到達できません | 層 3 | traceroute |
ルートを欠く、次のホップ、ルーティングループが間違っている |
| 接続拒否 | 層 4 | telnet host port |
聴くことのないサービス, ファイアウォールブロック, TCP RST |
| スローパフォーマンス | 層 4+ (44) | ping (RTT) |
高レイテンシ、帯域幅制限、TCPの送金、ゼロウィンドウ |
| hostname を解決できません | 層 7 | nslookup |
DNSサーバーが到達不能で、DNSの設定が間違っている、NXDOMAIN |
| 断続的な低下 | Layer 1/2 | ping -f (flood) |
複式アパートの不一致、ケーブル、STPの再構成失敗 |
| 他の人ではなく、時々働く | 複数の | Extended ping |
負荷分散問題、ECMPのasymmetry、州のテーブルのoverflow |
ベンダー TAC またはシニア エンジニアにエスカレーションするときを知っている。 ときにエスカレート:
トラブルシューティングは学習機会です。 個人的な知識ベースを構築する:
# Example structure
~/troubleshooting-journal/
├── 2026-01-15-duplex-mismatch.md
├── 2026-01-22-mtu-black-hole.md
├── 2026-02-02-tcp-window-exhaustion.md
└── README.md # Index of all issues
# Each file contains:
# - Symptom
# - Diagnostic steps
# - Root cause
# - Resolution
# - Lessons learned
# - Related tickets/documentation
トラブルシューティング中に素早く参照するためのシナリオで頻繁に使用されるコマンドを整理します。
問題を理解しずに構成を変更すると、多くの場合、物事が悪化したり、実際の問題をマスクしたりします。
多くの場合、「ネットワークの問題」は、アプリケーション、サーバー、またはクライアント側の問題です。 非難を受け入れる前に証拠を収集します。
既に行ったテストを繰り返す時間を無駄にするか、試した同僚に説明できないか。
断続的な問題は、多くの場合、障害の早期警告兆候です。 重要になる前にそれらを調査します。
デバイスを再起動すると、サービスを復元する可能性がありますが、再起動が必要なWHYが見つからない場合、問題は再発します。
ネットワークのトラブルシューティングは、科学と芸術の両方です。 科学は、診断ツールを正しく使用し、プロトコルを理解する、系統的な方法論に従います。 体験からパターンを認識し、エスカレーションをするときに知る、症状に基づいて最初に実行するテストがわかっています。
この記事で概説した系統的アプローチに従うことで、正しい質問をすることで、OSIモデルを操作し、手順を文書化し、各問題から学習することで、トラブルシューティングでより効率的になり、無駄な時間と誤った修正につながる一般的な落とし穴を回避します。
覚えている: 目標は、サービスを復元するだけでなく、WHYが失敗したことを理解するため、再び起こっているのを防ぐことができます。
最終更新日: 2026年2月2日 | 投稿者: Baud9600 テクニカルチーム