弱者は決して許すことができない。許しは強者の態度である── ガンディー
ネットワーク

行きと帰りは別々に決まる

ルータ 2 台をまたぐ通信を、行きの①から③と帰りの④から⑥で追い、ルーティングテーブルに自動で載る行と人が手動で書く行の違いを 1 枚の図で見る

ぴぐおv1人の校閲なし(AI のみ)訂正なし
ネットワークルーティングスタティックルートconcept
目次

勉強会の最初のラボは、ルータを数台つなぎ、遠くのネットワークへの経路を 1 本ずつ手で書き足す作業でした。

書き終えると ping が通り、書き漏らすと通りません。 なぜ行きの経路を書いただけでは通らないのかは、資料には書いてありませんでした。 この記事は、ルータ 2 台をまたぐ通信の往復を 1 枚の図で追います。

この連載は、ネットワークの言葉を 3 つの層に置いて読みます。 もの(物理か論理か)、結びつき(人が設定で付ける手動か、機器が学習する自動か、製造時に決まる固定か)、通信フロー(1 本の通信がそれらを順に通る道筋)の 3 つです。

登場するもの

パケットの先頭には、送信元 IP・宛先 IP・寿命(TTL)などが書いてあります。どの経路を通るかは書いてありません。

ルータは自分のルーティングテーブルの中から宛先 IP に一致する行を探し、パケットの次の渡し先となるルータを決めます。

ルーティングテーブル

論理のものです。 ルータが持つ、宛先ネットワークと出口の一覧です。 行には、自動で載るものと、人が手で書くものがあります。

自動で載る行

ルータのポートに IP アドレスを設定すると、そのアドレスを含むネットワークの行が、ルーティングテーブルに自動で追加されます。ポートに 192.168.10.1/24 を設定すれば、192.168.10.0/24 の行が載ります。この宛先への経路は手動追加なしでわかります。

手動で書く行

それ以外の宛先は、人がルーティングテーブルに手動で追加します。これがスタティックルートです。

書いた行に指定するのは、宛先ネットワークと、そこへ向かうときに渡す相手の IP です。 この相手をルーティングテーブルではネクストホップ(次の渡し先)と呼び、PC に設定するデフォルトゲートウェイと役割は同じです。

壁打ちで自分の言葉に置き換えると、こうなりました。 「ルータ同士が繋がってるところをゲートウェイにして、他のネットワークをルーティングテーブルに登録することによって、自分が直接繋がってないネットワークに通信を届けることができる」

結びつき

  • ポートの IP ⇄ ルーティングテーブルの行は自動です。IP を設定した時点で載ります。
  • 宛先ネットワーク ⇄ 次の渡し先は手動です。人が 1 行ずつ書きます。
  • 行きの行と帰りの行は結び付きません。行きはルータ 1 の表、帰りはルータ 2 の表にあり、別々の人手で書かれます。
  • IP ⇄ MAC は自動です。各ルータが ARP で次の相手の MAC を引き、要求を受け取った側も送信元を覚えます。

通信フロー

A(192.168.10.10)からルータ 2 台をまたいで C(192.168.3.10)へ送り、C から返事が戻るまでです。

① A は宛先 192.168.3.10 が自分のネットワーク外なので、デフォルトゲートウェイ(ルータ 1)へ送ります。

② ルータ 1 はテーブルで 192.168.3.10 に一致する行を探します。手動で追加した行が一致し、次の渡し先 172.16.12.2 へ送ります。

③ ルータ 2 はテーブルを探します。自動の行 192.168.3.0/24 が一致し、自分の Gi1 から C へ直接届けます。

④ C の返事は、宛先 192.168.10.10 がネットワーク外なので、デフォルトゲートウェイ(ルータ 2)へ向かいます。

⑤ ルータ 2 はテーブルを探します。192.168.10.0/24 は自動では載らないので、一致するのは人が書いた行です。その行の次の渡し先 172.16.12.1 へ送ります。この行が無ければ捨てられ、送り主に「そこへは行けない」の通知が返ります。

⑥ ルータ 1 は自動の行 192.168.10.0/24 で A へ直接届けます。

行きと帰りは別々に決まります。 だからスタティックルートは、通したい通信の往復ぶん、両側のルータに書きます。

図 5

図の上半分が構成図と往復のフロー、下半分が各テーブルの推移と通信の中身の推移です。

スタティックルート:ルータ 2 台をまたぐ A → C の通信と、C → A の帰り道 ルータが自動で知っているのは自分のポートのネットワークだけ。その先は誰かが教えないと分からない。ここでは人が手動で追加する(スタティックルート) PC-A 192.168.10.10 GW 192.168.10.1 スイッチ MAC で転送 ルータ 1 Gi0: 192.168.10.1 Gi1: 172.16.12.1 /30 Gi0 Gi1 172.16.12.0/30 ルータ 2 Gi0: 172.16.12.2 /30 Gi1: 192.168.3.1 Gi0 Gi1 PC-C 192.168.3.10 GW 192.168.3.1 行き A → C 1 2 3 帰り C → A 4 5 6 ルータ 1 のルーティングテーブル 192.168.10.0/24 → Gi0(自動) 172.16.12.0/30 → Gi1(自動) 192.168.3.0/24 → 172.16.12.2(手動) ② がこの行を使う ルータ 2 のルーティングテーブル 172.16.12.0/30 → Gi0(自動) 192.168.3.0/24 → Gi1(自動) 192.168.10.0/24 → 172.16.12.1(手動) ⑤ がこの行を使う。無いと帰れない フロー ① A は宛先 192.168.3.10 が自分のネットワーク外なので、デフォルトゲートウェイ(ルータ 1)へ送る ② ルータ 1 はテーブルで 192.168.3.10 に一致する行を探す。手動で追加した行が一致し、次の渡し先 172.16.12.2 へ送る ③ ルータ 2 はテーブルを探す。自動の行 192.168.3.0/24 が一致し、自分の Gi1 から C へ直接届ける ④ C の返事は、宛先 192.168.10.10 がネットワーク外なので、デフォルトゲートウェイ(ルータ 2)へ ⑤ ルータ 2 はテーブルを探す。192.168.10.0/24 は自動では載らないので、一致するのは手動の行。その渡し先 172.16.12.1 へ送る  (この行が無ければ捨てられ、送り主に「そこへは行けない」の通知が返る) ⑥ ルータ 1 は自動の行 192.168.10.0/24 で A へ直接届ける 行きと帰りは別々に決まる。だからスタティックルートは、通したい通信の往復ぶん、両側のルータに書く 各テーブルの推移(○番のフローで追加された行。青字) PC-A: ARP テーブル ① 追加: 192.168.10.1 → MAC R1-Gi0 ルータ 1: ARP テーブル ① 追加: 192.168.10.10 → MAC A(要求を受けて) ② 追加: 172.16.12.2 → MAC R2-Gi0 ルータ 2: ARP テーブル ② 追加: 172.16.12.1 → MAC R1-Gi1(要求を受けて) ③ 追加: 192.168.3.10 → MAC C PC-C: ARP テーブル ③ 追加: 192.168.3.1 → MAC R2-Gi1(要求を受けて) ルーティングテーブル ルータ 1・ルータ 2 とも上の図の中の箱 通信の中身の推移(フローごとのフレーム/パケット) ① A → ルータ 1 宛先 MAC MAC R1-Gi0 送信元 MAC MAC A 宛先 IP 192.168.3.10 送信元 IP 192.168.10.10 データ ping フレーム=全部。ただしスイッチが見るのは MAC とタグの部分だけ パケット=この部分。ルータはここ(IP)を見る ② ルータ 1 → ルータ 2(MAC を付け替え) 宛先 MAC MAC R2-Gi0 送信元 MAC MAC R1-Gi1 宛先 IP 192.168.3.10 送信元 IP 192.168.10.10 データ ping ③ ルータ 2 → C(MAC を付け替え) 宛先 MAC MAC C 送信元 MAC MAC R2-Gi1 宛先 IP 192.168.3.10 送信元 IP 192.168.10.10 データ ping ④ C → ルータ 2(返事。IP が入れ替わる) 宛先 MAC MAC R2-Gi1 送信元 MAC MAC C 宛先 IP 192.168.10.10 送信元 IP 192.168.3.10 データ 返事 ⑤ ルータ 2 → ルータ 1 宛先 MAC MAC R1-Gi1 送信元 MAC MAC R2-Gi0 宛先 IP 192.168.10.10 送信元 IP 192.168.3.10 データ 返事 ⑥ ルータ 1 → A 宛先 MAC MAC A 送信元 MAC MAC R1-Gi0 宛先 IP 192.168.10.10 送信元 IP 192.168.3.10 データ 返事 宛先 IP と送信元 IP は端から端まで変わらない(TTL などルータが書き換える欄はある)。MAC の部分はルータを越えるたびに付け替わる 各機器は ARP で次の相手の MAC を引く(やり取り自体は省略)。要求を受け取った側も相手を覚えるので、帰り ④⑤⑥ では ARP を引き直さない

図 4・図 6 との接続

図 4 ではスイッチが 2 台でした。 スイッチは MAC を見て転送するので、ルーティングテーブルは出てきません。 この図ではルータが 2 台になり、ルータは IP を見るので、テーブルの行が主役になります。

帯を並べると、宛先 IP と送信元 IP は端から端まで変わらず、MAC の部分がルータを越えるたびに付け替わることが見えます。パケットの中で変わるのは、TTL のようにルータが書き換える欄だけです。

次の図 6 では、ルータが 1 台に戻り、そのかわり VLAN が 2 つになります。 図 4 のタグと、この図のルーティングテーブルが、そこで 1 台の中で出会います。

未検証・注意

  • 一致する行が複数あるときは、範囲の狭い行が勝ちます(ロンゲストマッチ)。「それ以外は全部ここへ」の行をデフォルトルート 0.0.0.0/0 と呼び、経路を 1 本ずつ書く代わりに使えます。この図では使っていません。
  • 同じ宛先の行が複数あるとき、どちらが載るかは行の信用度(AD 値)で決まります。予備の経路を眠らせておく書き方は、補 1 で扱います。
  • ⑤ で「送り主に通知が返る」と図に書いています。これは ICMP の到達不能の通知ですが、返すかどうかは機器の設定で変えられます。今回は一次資料で確認していないので未検証です。
  • 図では ARP のやり取り自体を省いています。要求を受け取った側も相手を覚えるので、帰りの ④⑤⑥ では ARP を引き直しません。

出典

関連

この記事の校閲記録

誰が・いつ・どの版の・どの段落を・何の観点で見て、何と言ったかを全件そのまま出す(追記のみ・削除しない)。

段落 38 のうち出典つき 13・出典なし 25

v1 1 件
  • AIAI (claude-fable-5) が AI 確認未解決

    直接接続されたネットワークがルーティングテーブルに自動登録されること・ネクストホップの定義・ロンゲストマッチをインフラエキスパートのルーティングのページで、スタティックルートの設定とデフォルトルート 0.0.0.0/0 を同サイトのスタティックルーティングのページで確認した。経路が無いときに送り主へ到達不能の通知が返るかどうかは一次資料で未確認。本文の定義 4 文とスタティックルートの言い換えは、本人が確定した文をそのまま使った。校正チェックリストを通し、「手順」と「フロー」の表記を機械検査した。守秘: 実名・社名・会場名・地名・金額なし

参考文献

更新履歴

  • 連載のトピックを「ネットワーク基礎」から「ネットワーク」へ改名(32 本+目次。slug と URL は不変)
  • 公開: 連載「ネットワーク基礎」の土台 11 本(入口・図 1〜7・補 1〜3)と目次

機械可読の記録