変更要約: 初版(主題1.07・副主題1.07.1〜1.07.4に対応)
2.3基本的なネットワークの問題解決
ネットワーク障害の切り分けを学びます。疎通確認(ping・ping6)、経路調査(traceroute・tracepath)、名前解決の確認(host・dig)、ポート・接続状態の調査(ss・netstat・netcat)、インターフェイスの再設定(ifconfig・ifup/ifdown・hostname)とルーティングテーブルの修正を押さえます。
「つながらない」には必ず層があります——リンクか、IP か、経路か、名前解決か、それともポート(サービス)か。この節の道具を下の層から順に当てていくのが、実務でも試験でも通用する切り分けの型です。
2.3.1疎通と経路の調査
- ping(IPv6 は ping6)=ICMP echo で相手まで届くかを確認。ゲートウェイ→外部 IP→FQDN の順に試すと層が切り分かる。
- traceroute(traceroute6)/tracepath(tracepath6)=経由ルータを1ホップずつ表示し、どこで止まるかを特定。tracepath は特権不要で MTU も調べる。
- 名前解決の確認=host(簡潔)・dig(詳細・応答セクションまで見える)。「IP は通るのに名前がダメ」の裏取りに使う。
2.3.2ポート・接続状態とルートの修正
- ss=ソケット状態の一覧(netstat の後継)。
ss -tlnp=TCP・LISTEN・番号表示・プロセス名で「サービスが待ち受けているか」を確認する定番。従来コマンドは netstat。 - netcat(nc・ncat)=任意のポートへ接続を試す万能ツール(
nc -zv host 443=接続テスト)。ファイアウォールで落ちているのか、サービスが居ないのかの一次判定に。 - 直す側=インターフェイスの追加/削除・再起動(ifconfig・ifup/ifdown・hostname)と、誤ったデフォルトルートの手動訂正(
ip route del default→ip route add default via 正しいGW/従来は route コマンド)。
「どのルータで止まるか=traceroute/tracepath」「サービスが LISTEN しているか=ss -tlnp(旧 netstat)」「任意ポートの接続テスト=nc」「名前解決の詳細=dig」 が定番の対応です。シナリオ型では「ping は通る・ssh だけ失敗→ ポート/サービス層の問題(ss や nc で確認)」のような層の特定が問われます。
定番シナリオを型として覚えましょう。
①「Web サーバーに接続できない」:ping web01 が通る→ IP 層は健全。nc -zv web01 80 が拒否される→ サーバー側で ss -tlnp | grep :80 を確認し、LISTEN が無ければサービス未起動(systemctl で起動)、LISTEN があるのに外から届かなければファイアウォール(1.10 の領域)を疑います。
②「社外サイトだけ見えない」:ip route でデフォルトルートを確認→ 誤った GW を指していれば ip route del default → ip route add default via <正しいGW> で訂正。
③「名前だけ引けない」:dig example.com の応答を見て、SERVFAIL や timeout なら次節の /etc/resolv.conf を確認します。traceroute が途中の同じホップで止まり続けるならその先のルータか回線の障害で、自ホストの設定では直せない(=報告・エスカレーションが正解)という判断も、実務的な出題ポイントです。
| 症状 | 調べる道具 | 見るポイント |
|---|---|---|
| 相手に届かない | ping → traceroute/tracepath | どのホップで止まるか |
| 名前だけ引けない | host / dig | 応答・SERVFAIL の有無 |
| ポートに接続できない | nc -zv/ss -tlnp | LISTEN の有無・プロセス |
| 外部だけ全滅 | ip route | デフォルトルートの正誤 |
ひっかけ: 「ss はソケットではなくディスク使用量を表示する」型の役割すり替えに注意(ss はソケット統計=netstat 後継)。また「ping が通れば Web も必ず見えるはず」は誤り=ping は ICMP(IP 層)の確認であり、TCP 80/443(サービス層)が生きているかは別問題です。tracepath を「名前解決のコマンド」とする選択肢も誤りです。
2.3.3この節のまとめ
- 下から順に:ping(IP)→ traceroute/tracepath(経路)→ host/dig(名前)→ ss/nc(ポート)
- 直すのは ifup/ifdown・ip route del/add default。「LISTEN が無い=サービス側」「途中ホップで停止=経路側」と層で判断
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. リモートホストへの通信が「どの中継ルータまで届いているか」を調べたい。適切なコマンドは?
Q2. Web サーバー上で「ポート 80 で待ち受けているプロセスがあるか」を確認したい。現行標準のコマンドは?
Q3. ping 8.8.8.8 は成功するが ping example.com が失敗する。最も疑うべき問題はどれ?

