ARP を一通り見終わると、同一セグメント宛なら IP から MAC を引き当てて届けられる、というところまでは手応えが残っているはずだ。show arp の出力も Wireshark のキャプチャも、以前より少しだけ読めるようになっている。
自席の PC から、別フロアのサーバに ping を打ったら、応答が返ってきた。ARP は同一セグメント内の MAC しか引けない。なのに、なぜ別フロア(別セグメント)宛の通信が届くのだろうか。間に立っているはずのルータは、何を見て、どこへパケットを渡しているのか。同じ宛先IPを渡しても、別のセグメントへ向かう経路を、誰が、どうやって決めているのか。
ルータの中には『宛先ごとの参照表(ルーティングテーブル)』がある。来たパケットの宛先IPでその表を引き、該当行の出口に渡しているだけ。経路選択の正体は、宛先IPで表を引いて出口を選ぶという素朴な動作だ。


ARP で届く世界の境目 — 同じセグメントなら MAC、別セグメントなら…?
自席の OPS-PC01 (10.1.50.10) から、同じセグメントの隣席 OPS-PC02 (10.1.50.20) へ ping を打つと、応答が返る。仕組みは ARP で見た通り — IP から MAC を引いて、フレームを直接送る。一往復で完結する。同じセグメントの中なら、ルータは経由しない。
次に、別フロアの 10.1.30.10 (営業フロアのサーバ)へ ping を打つ。これも応答が返る。しかし 10.1.30.0/24 と 10.1.50.0/24 は別のセグメントであり、ARP は同じセグメント内の MAC しか引けない。
送信元PC自身は途中までしかやっていない。OPS-PC01 が「宛先IP は別セグメント」と判断した時点で、ARP で引きにいくのは相手の MAC ではなく「同じセグメント上のルータ(デフォルトゲートウェイ = CORE-RT-01 = 10.1.50.1)の MAC」になる。そのルータ宛にフレームを送って、PCの仕事はそこで終わる。
CORE-RT-01 がフレームを受け取ってから先は、ARP の延長では説明できない領域に入る。同じ建物の同じセグメントなら ARP で完結する世界だった。別セグメント宛になった瞬間、デフォルトゲートウェイ(ルータ)が間に立ち、その先の判断を担う。
ルーティングテーブル — ルータが引いている宛先ごとの参照表
ルータの中には『宛先ごとの参照表』がある。これをルーティングテーブルと呼ぶ。各行は『この宛先帯はこの出口へ』の対応で、行が並んだ表として保たれている。辞書をめくる感覚に近い、宛先ごとの辞書のような表だ。
ルータがフレームを受け取ったときの動作は、素朴な手順で説明できる。フレームから IP パケットを取り出し、その宛先IPを取り出して、自分のルーティングテーブルを引く。該当する行に書かれた次の出口(隣のルータの IP、または自分のどのインターフェースから出すか)を見つけて、そこに渡す。それだけだ。


引くのは1パケットごとに行う。来たパケットの宛先IPが 10.1.30.10 なら、テーブルの中の『10.1.30.0/24 宛は SALES-RT-01 (10.1.1.2) へ』という行を見つけて、その出口に渡す。来たパケットの宛先IPが別の宛先帯なら、テーブルの別の行を引く。同じパケットでも、別のパケットでも、毎回この動作を繰り返している。
表には何行くらい入っているのか、誰がその行を書いたのか、表がそもそもないとどうなるのか。これらの問いは、シリーズの後続話で順に答えていく。本話で必要なのは、ルータの内側にこの参照表があるという事実と、宛先IPで引いて出口に渡すという素朴な動作、その2つだけだ。
ルータが動いている限り、来たパケットの宛先IPでルーティングテーブルは引かれ続ける。ルータは魔法でパケットを届けているのではなく、内側の参照表を毎パケット引き続ける素朴な機械だった。
ルーティングテーブルは読める、書ける — コマンドで見て加える
ルータの内側のルーティングテーブルは、抽象的な概念だけで終わらない。実際に目で読めるし、人の手で1行書き足すこともできる。
読むためのコマンドは Cisco IOS なら show ip route という。本話では使わないが、頭の片隅に置いておいてほしい。出力の中身がどう並んでいて、各列が何を語っているか — そこは本シリーズの後の話で、自分の目で読み解く。
書き足すための仕組みも用意されている。管理者がルーティングテーブルに1行を手で書く方法を「スタティックルート」と呼び、書き加えるためのコマンドは Cisco IOS なら ip route という。これも本話では構文には踏み込まないが、シリーズの第2話で『1行書き足す』その行為の正体を見にいく。
ルーティングテーブルは行が並んだ参照表だ。行は、書ける。行は、読める。ルータは、引ける。この3つの関係を順に分解していくのが、今回のスタティックルートの旅だ。経路選択というと身構えてしまいがちだが、入り口は素朴な参照表引き — そこから始めれば、あとに続く動作も同じ骨格に乗ってくる。
ルータは宛先ごとの参照表を毎パケット引いている
同一セグメント宛は ARP で完結し、別セグメント宛になった瞬間にルータがデフォルトゲートウェイとして間に立って、内側のルーティングテーブルを引いて出口を選ぶ。この役割分担で「パケットが届く」という現象が成り立っている。経路選択の正体は、宛先IPで表を引いて出口を選ぶ素朴な動作だった。
ルータは魔法でパケットを届けているわけではない。内側のルーティングテーブルを毎パケット引いて、該当する行に書かれた出口に渡しているだけ。
ここまで来ると、別セグメント宛の通信を見るときの目線が少しだけ変わる。届いた / 届かないの先に、間に立っているルータがどんなルーティングテーブルを持っているか、という問いが立ち上がるはずだ。次の話では、そのテーブルに1行書き足す行為の正体 — 初めての ip route を見にいく。