0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「PCからWebが見えない」をpingとcurlの出力だけで切り分ける早見表(PC→ルーター→Web)

0
Posted at

はじめに

PC から、ルーターの向こうにある Web サーバーのページが見えない。こういうとき、出力されたメッセージの 形 を見るだけで、止まっている場所をかなり絞り込めます。

この記事では、次の構成を例に、よく出るメッセージと「どこを確かめればいいか」をまとめます。

筆者は無料学習サイト「プロ道(prodou.net)」の運営者です。この記事の表は、インフララボ1段目と同じ構成を本物の Debian 13 で組み、わざと1か所ずつ設定を抜いて確かめた結果をもとにしています。

構成

[PC] ── [SW1] ── [R1] ── [SW2] ── [Web]
機械 口 IP / 長さ ゲートウェイ
PC (Linux) eth0 192.0.2.10/25 192.0.2.1
R1 (Cisco) gi0/0(PC側) 192.0.2.1/25 —
R1 (Cisco) gi0/1(Web側) 192.0.2.129/25 —
Web (Linux・nginx) eth0 192.0.2.130/25 192.0.2.129

/25 で 192.0.2.0〜127 と 192.0.2.128〜255 の2つの網に分かれます。PC と Web は別の網なので、間にルーターが必要で、両方にゲートウェイを設定します。

出力の形で止まった場所を読む

PC から ping -c 3 192.0.2.130 と curl http://192.0.2.130/ を打ったときの出力です。

PC に出た出力 止まっている場所 確かめること
ping: connect: Network is unreachable PC の中(経路が1本もない) PC で ip addr(IPがあるか)と ip route(defaultがあるか)
From 192.0.2.10 ... Destination Host Unreachable(From が自分) PC のすぐ外(ゲートウェイが返事をしない) R1 の口が開いているか、IP が合っているか(show ip interface brief)
From 192.0.2.1 ... Destination Net Unreachable(From がルーター) R1(Web 側の網への道を知らない) R1 の Web 側の口(gi0/1)が開いているか
100% packet loss(何の出力もない) 行きは届いて、返事が戻らないことが多い Web のゲートウェイ(ip route)、Web に IP が付いているか
curl: (7) Failed to connect ... port 80(ping は通る) Web まで届いたが、80番で待っている人がいない Web で systemctl status nginx

ポイントは From のアドレス です。自分から返ってきたのか、ルーターから返ってきたのかで、止まった場所が1つずれます。

返事が戻らないとき、本物の curl は約2分待ってから curl: (28) Failed to connect … after 129710 ms を出します。curl --connect-timeout 5 を付けると5秒であきらめるので、切り分けのときは付けておくと速いです。

本物で確かめて分かったつまずき

長さを付け忘れると /32 になる

ip addr add 192.0.2.10 dev eth0          # エラーにならない(/32 が付く)
ip route add default via 192.0.2.1
# Error: Nexthop has invalid gateway.

/32 だと自分の網に 192.0.2.1 が含まれないので、ゲートウェイの登録を断られます。エラーが出るのは 2行目 なので、原因に気づきにくいところです。

口を落とすとデフォルトゲートウェイが消える

ip link set eth0 down → up で、その口を通る経路は全部消え、上げ直しても戻りません。ip route add をやり直します。

スイッチの口が閉じていると NO-CARRIER

ip addr の状態が LOWERLAYERDOWN、ip route の行に linkdown が付きます。ケーブルが抜けたときと同じ見え方です。

nginx は restart より reload

設定を書き間違えると、systemctl restart では止まったままになります。reload なら動いたまま断られるだけです。変える前に nginx -t で確かめる癖をつけましょう。

まとめ

  • 出力の 形 と From のアドレス で、止まった場所はかなり絞れる
  • 何も返ってこないときは「行き」より「戻り」を疑う
  • ip addr add の長さの付け忘れは、次のコマンドでエラーになる

ブラウザで同じ構成を練習する

この構成は、プロ道のインフララボでブラウザだけで組めます。R1・Web・PC を1台ずつ設定して、最後に PC のブラウザで自分のページが開けたら完成です。登録・インストールは不要です。

※ラボは JavaScript で動く学習用のもので、実際の通信はしません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?