🏠 ホーム › 第1部 ネットワークの基礎 › 07. 双方向到達性(最重要)
07. 双方向到達性(最重要)
このページは何?
NetPractice で最もハマる落とし穴、「行き道は繋がっても、帰り道がないと通信は成立しない」 という 双方向到達性 (bidirectional reachability) を理解するページです。
このページで学ぶこと
- 通信は 行き道 と 帰り道 の両方が必要
- Level 6 以降で必ず出てくる「Internet の戻り route」の意味
- 「ping は一方通行ではない」という感覚
📞 イメージで言うと: 電話は双方向
例え話
電話をかけたとき、あなたの声が相手に届く 行き の回線だけでは会話できない。 相手の声があなたに届く 帰り の回線も必要。
ネットワーク通信も同じ。A → B のパケットが届くだけでなく、B → A の返信 が届かないと通信は成立しない。
💡 ここでつまずく人へ — 「ping が返って来ない」って何が起きてる?
ping は 「行きのパケットを送って、戻りのパケットが返って来るまでの時間」 を測ります。 だから 行きが届いても帰りが消えると「unreachable」と表示 されます。
NetPractice で「行きの絵だけ完成させて満足する」とほぼ確実にここで詰まるので、 必ず「相手側から自分への route」も用意できているか を確認してください。
flowchart LR
A[📞 A<br>話している] <==行き==> B[📞 B<br>聞いている]
B <==帰り==> A
style A fill:#E3F2FD
style B fill:#FFF9C4
💥 典型的な失敗パターン
ケース 1: A → Internet の行きはあるが帰りがない
flowchart LR
A[Host A<br>192.168.1.10/24] --> R[🏛️ Router]
R --> I[🌍 Internet]
I -.->|帰り道が知らない<br>192.168.1.0/24| R
style A fill:#E3F2FD
style R fill:#F8BBD0
style I fill:#FFCDD2
症状: A から「ping 8.8.8.8」はパケットが出て行くが、応答が 戻って来ない。
原因: Internet 側に「192.168.1.0/24 宛てはここに戻す」というルートがない。 ping のレスポンスが迷子になる。
NetPractice での解決
Internet インターフェイス(I1 とか Ir1)の route 欄に
A のサブネット(例: 192.168.1.0/24) を書き、gateway にルータの IP を書く。
| Internet 側 | 値 |
|---|---|
| route | 192.168.1.0/24 |
| gate | 163.172.250.12 (R のインターフェイス) |
意味: 「192.168.1.0/24 宛てのパケットは R に投げ返してね」
🎯 ルーティングは行き帰りそれぞれ別々に設定する
重要な事実
ルーティングは一方向ずつ
- A → B の通信経路は A 側と途中のルータ に設定する必要がある
- B → A の通信経路は B 側と途中のルータ に設定する必要がある
- この 2 つは独立 で、片方だけ設定しても通信できない
2 台のホスト + 1 ルータの例
flowchart LR
subgraph LAN1 [192.168.1.0/24]
A[A<br>.10]
end
subgraph LAN2 [10.0.0.0/24]
B[B<br>.10]
end
R[🏛️ R<br>左口: 192.168.1.1<br>右口: 10.0.0.1]
LAN1 --- R
R --- LAN2
style A fill:#E3F2FD
style B fill:#FFF9C4
style R fill:#F8BBD0
行きの設定(A → B)
| 設定場所 | 内容 |
|---|---|
| A 側 | gateway = 192.168.1.1(R の左口) |
| R の自動ルート | 192.168.1.0/24 は左口で直接送る |
| R の自動ルート | 10.0.0.0/24 は右口で直接送る(これで A→B が届く) |
帰りの設定(B → A)
| 設定場所 | 内容 |
|---|---|
| B 側 | gateway = 10.0.0.1(R の右口)← 忘れると通信失敗! |
| R の自動ルート(既にある) | 192.168.1.0/24 は左口で直接送る(B→A のパケットをここで A に渡す) |
両方設定して初めて A ↔ B が繋がる。
🔥 Level 6 を例に見る
Level 6 の教訓は「行きは gateway だけで OK、でも帰りは Internet 側の route を広げないと届かない」:
8.8.8.8gateway 経由
で出ていく
I route が55.232.27.0/31.227 はこの /31 の外側
パケットが
届かない
修正: I route を 55.232.27.128/25 に書き換えて A の IP を含む範囲を指定 → 帰りが成立。
詳しくは Level 6 攻略ページ で解説します。
🧭 双方向確認のチェックリスト
通信が繋がらないときの確認手順
以下を 両方向 順番に確認:
行き (A → B): 1. A のルーティングテーブルに B の宛先が含まれているか(default で OK) 2. 中間ルータのテーブルに B のサブネットへの route があるか 3. B が居るセグメントに正しく届くか
帰り (B → A): 4. B のルーティングテーブルに A の宛先が含まれているか(default で OK) 5. 中間ルータのテーブルに A のサブネットへの route があるか 6. A が居るセグメントに正しく届くか
🏭 なぜこんなに帰り道を意識する必要がある?
現実の Internet では
現実の Internet は、世界中のルータが BGP というプロトコルで 自動的に route 情報を交換 している。 だから私たちは普通「行きだけ設定すれば帰りは自動」と思い込みがち。
NetPractice では
NetPractice は Internet 側も手動設定 する。 つまり 「現実では隠れている帰り道の設定」を自分で書かされる 課題。
これこそが NetPractice の出題意図
42 は「ネットワークは双方向である」という 実感 を持たせたい。 だから帰り道を明示させる問題を出す。第3部で詳しく考察します。
⚠️ よくあるミス
default だけで全部行けると思う
ホスト間なら default で OK だが、Internet → ホスト の帰り道 は Internet 側に具体的な route を書く必要がある場合が多い。
片側のゲートウェイを直す → もう片側を直し忘れ
2 ホストが対称な構造でも、それぞれ独立に ルーティング設定が必要。
ルート集約しすぎて帰れなくなる
逆に、広すぎる範囲の route を書くと 他の LAN も巻き込む ため、 特定ホストに届かなくなることもある。
🎯 まとめ
- 通信は 行き と 帰り の両方の経路が必要
- ルーティング設定は 方向ごと独立 に考える
- NetPractice では Internet 側の route も自分で設定する → 現実では隠れている仕組みが見える
- Level 6 以降で必ず「帰り道」に気をつける
🏁 第1部を読み終わったら
お疲れ様です。これで全 10 レベルを解くための 基礎がすべて揃いました。
次は第2部で、実際のレベルを 1 つずつ解いていきます。
▶️ 次に読むページ
Level 1 — 直結リンク — 2 台を繋ぐだけの最もやさしい問題から