これまでの旅で、ルータの中のルーティングテーブルがどう動いているかを概念で読み解いてきた。1行書き足す方法、行同士がどう選ばれるか、最後の手段がどこに座るか。手元に残ったのは、テーブルという参照表のイメージと、その中で起きていることの素朴な理解だ。けれど、テーブルそのものを画面で見たことは、まだない。
今日はその画面に向き合う。CORE-RT-01 にログインして、show ip route と打ち込み、Enter を押す。すると画面には、先頭にアルファベット1文字、その後にスラッシュ付きのIPアドレス、矢印のような記号、IPアドレスや interface 名が、整列するでも乱れるでもなく、何行かずつ並ぶ。
この画面の塊は、何を語っているのだろう。何かのフォーマットなのは見ればわかる。けれど、組み合わさったときに何を意味しているかは、まだ自分の口で言えない。
考えてみよう: ルーティングテーブルを画面で見たら、どんな形になっているか想像してみてほしい。これまで概念で扱ってきた『行』『3要素』『最後の手段』が、画面の上ではどんな姿で並ぶのか。何の手がかりが画面に書かれているはずか。5秒だけ自分の言葉で組み立ててから、本論に入ってほしい。何かのフォーマットがあるはずだが、何を意味しているかは分からない、という戸惑いが本話の入口になる。
結論を先に言う。
show ip route の各行が語っているのは3つだけ。どこで覚えた経路か(行頭の印)/ どの宛先か(プレフィックス)/ どこへ渡すか(渡し先)。この3つの軸が読めれば、ルーティングテーブルの現在地が読める。


画面の塊に出会う — show ip route の出力
CORE-RT-01 にログインして、show ip route と打ち込み、Enter を押す。画面に出力が並ぶ。代表的なところを4行ほど抜き出すと、こんな景色になる。
CORE-RT-01# show ip route
Codes: C - connected, L - local, S - static, ...(省略)
Gateway of last resort is 10.1.1.254 to network 0.0.0.0
S* 0.0.0.0/0 [1/0] via 10.1.1.254
S 10.1.30.0/24 [1/0] via 10.1.1.2
C 10.1.50.0/24 is directly connected, GigabitEthernet0/0
L 10.1.50.1/32 is directly connected, GigabitEthernet0/0
最初は、記号と数字の塊にしか見えない。先頭にアルファベット1文字、その後にスラッシュ付きのIPアドレス、[1/0] のような何かの数字、via または is directly connected, のあとに別のIPアドレスや interface 名。何かのフォーマットなのは見ればわかる。けれど、画面全体を見渡したときに「これは何を語っているのか」を、まだ自分の口で言えない。
ここで、立ち止まって部品を見渡してみたい。
画面の上部の Codes: から始まる帯は、行頭1文字が何を意味するかの凡例だ。C は connected、L は local、S は static、と書いてある。本文(出力の本体)の各行は、この行頭1文字から始まり、続いてスラッシュ付きのIPアドレス(プレフィックス)、[1/0] のような数字(本話では触れない)、via <IPアドレス> または is directly connected, <interface 名> という渡し先、という順で並んでいる。
部品の見当はついた。けれど、ここから「各行が何を語っているか」までは、まだ一歩ある。各行は、どんな軸で読めば、自分の言葉で説明できる形になるのか。
この問いの答えが、本話の中核になる。
ポイント: show ip route の出力は、各行に行頭1文字 → プレフィックス → 渡し先という共通の構造がある。記号と数字の塊に見えても、共通の構造で並んでいる。あとはこの構造を3つの軸に分解する目を手元に置けば、各行が何を語っているかが読める。
1行を3つの軸に分解する — 行頭の印 / プレフィックス / 渡し先
画面に並ぶ各行は、3つの軸に分解できる。1行を例に取って、軸を1つずつ見ていきたい。
例として、こんな1行を取り出す。
S 10.1.30.0/24 [1/0] via 10.1.1.2
ここでは [1/0] は本話の射程外として薄く扱う。残りを3つの軸に分解する。
軸1: 行頭の印(どこで覚えた経路か)
先頭の S が、行頭の印にあたる。これは、その経路がどうテーブルに入ったかを表す。出力の上部の Codes: 凡例によると、S は手で書き足した経路の印だ。これまでの旅で読み解いた ip route の1行は、テーブルに入ると行頭が S で始まる印付きで現れる。
他にも、行頭1文字には代表的なものがいくつかある。
C— 直接接続している行(自分のセグメントに繋がっているインターフェースから自動で入る)L— 自分自身のIPの局所エントリ(プレフィックス長 /32 でホスト1つ分、ルータ自身が宛先のIPを覚えるために自動で入る)S— 手で書き足した行(ip routeで書いたもの)
この他に、動的に学習する仕組みから入った行の印(O R B 等)もあるが、本話では存在の予告までに留める。動的な仕組みはシリーズの先で出会うことになる。
軸2: プレフィックス(どの宛先か)
次の 10.1.30.0/24 が、プレフィックスにあたる。前のシリーズ(IPアドレス)で身につけた表記そのままで、ネットワーク部分が宛先帯を絞る範囲を表す。/24 は「上位24ビットが 10.1.30 と一致するか」を問う長さ、ということを以前確認した。
プレフィックス長によって、行は具体的にも広範にもなる。これまでの旅で、長いプレフィックスはテーブルの中で強い側、短いプレフィックスは弱い側に位置することを腹落ちさせた。出力では、プレフィックス長は /N の数字で見える形で書かれている。
軸3: 渡し先(どこへ渡すか)
最後の via 10.1.1.2 が、渡し先にあたる。「次に渡す相手のIP」(next-hop)を表す。宛先IPがこの行に当てはまった場合、ルータは 10.1.1.2 へパケットを渡すことになる。
渡し先の書き方は、行によって少し違う。
via <IPアドレス>の形 — 次に渡す相手のIPを書く(手で書き足した行で多い)is directly connected, <interface 名>の形 — 出力インターフェースを書く(直接接続している行で多い)- 両方が並ぶ形 — どちらも書かれている場合もある
どの形でも、3つ目の軸が伝えているのは「どこへパケットを渡すか」という1つのことだ。next-hop が書いてあれば次の相手のIP、出力インターフェースが書いてあればそのインターフェースから出す、と読めばいい。
ここまでで、3つの軸が並んだ。
- 軸1: 行頭の印 → どこで覚えた経路か
- 軸2: プレフィックス → どの宛先か
- 軸3: 渡し先 → どこへ渡すか
この3つの軸を1セットにして、各行に当てはめていけば、画面の塊は読みやすい表に変わる。
ポイント: show ip route の各行は、行頭の印(どこで覚えたか)/ プレフィックス(どの宛先か)/ 渡し先(どこへ渡すか)の3つの軸に分解できる。代表的な行頭の印は
C(直接接続している行)/L(自分自身のIPの局所エントリ)/S(手で書き足した行)の3つ。動的に学習した行の印は存在の予告のみで、シリーズの先で出会う。
ルーティングテーブルの現在地が見える — 4行を3軸で読み分ける
3つの軸が手元に揃ったら、最初に見た4行に戻ってみたい。同じテーブルに並ぶ景色を、3軸で読み分けていく。
S* 0.0.0.0/0 [1/0] via 10.1.1.254
S 10.1.30.0/24 [1/0] via 10.1.1.2
C 10.1.50.0/24 is directly connected, GigabitEthernet0/0
L 10.1.50.1/32 is directly connected, GigabitEthernet0/0
1行目: S* 0.0.0.0/0 ... via 10.1.1.254
- 行頭の印は
S系(*記号は最後の手段の目印として一緒に並ぶ。出力の上部のGateway of last resort is 10.1.1.254の表記もこれと対応している) - プレフィックスは
0.0.0.0/0(これまでの旅で腹落ちさせた最後の手段の行) - 渡し先は
via 10.1.1.254(上流のルータのIP)
この行は、これまでの旅で腹落ちさせた最後の手段が、いま画面の上で目に見える形で並んでいる、という景色になる。「他のどの行にもマッチしないとき最後にここへ」が、0.0.0.0/0 → 10.1.1.254 として現にテーブルに座っている。
2行目: S 10.1.30.0/24 ... via 10.1.1.2
- 行頭の印は
S(手で書き足した行) - プレフィックスは
10.1.30.0/24(営業フロアのセグメント) - 渡し先は
via 10.1.1.2(SALES-RT-01 のIP、対向のルータ)
この行は、これまでの旅で読み解いた ip route 10.1.30.0 255.255.255.0 10.1.1.2 の1行がテーブルに入った姿だ。書き足した3要素 — プレフィックス / マスク / next-hop — が、行頭に S の印が付いた状態で画面に並んでいる。書いた行はそのままテーブルに残る、という性質がここで目に見える形で確認できる。
3行目: C 10.1.50.0/24 is directly connected, GigabitEthernet0/0
- 行頭の印は
C(直接接続している行) - プレフィックスは
10.1.50.0/24(自分のセグメント、つまり CORE-RT-01 が居る OPS フロア) - 渡し先は
is directly connected, GigabitEthernet0/0(出力インターフェース)
この行は、CORE-RT-01 のインターフェース(GigabitEthernet0/0)に自分のセグメントが繋がっている、という事実がテーブルに自動で入った姿だ。手で書いたわけではない。インターフェースに 10.1.50.1/24 を設定した瞬間、テーブルには C の印で1行が現れる。これが直接接続している行の素朴な性質。
4行目: L 10.1.50.1/32 is directly connected, GigabitEthernet0/0
- 行頭の印は
L(自分自身のIPの局所エントリ) - プレフィックスは
10.1.50.1/32(プレフィックス長 /32 = ホスト1つ分) - 渡し先は
is directly connected, GigabitEthernet0/0
この行も、手で書いたわけではない。CORE-RT-01 自身のIPアドレス 10.1.50.1 が、ホスト1つだけを指す /32 のエントリとしてテーブルに自動で入っている。これは、ルータ自身が宛先のIPとして受け取れるよう、画面の中で自分自身を覚えておくための行だ。直接接続している行(3行目)と対になって自動で並ぶ仕組みが、Cisco IOS の出力の素朴な顔として見える。
4行を3軸で読み分けていくと、画面の塊が、1つずつ意味を持つ景色に変わってくる。
- 自分のセグメントは、直接接続している行として
Cの印で並ぶ - 自分自身のIPは、ホスト1つ分の局所エントリとして
Lの印で並ぶ - 手で書き足した経路は、
Sの印で並ぶ - 最後の手段は、
S*の印 +0.0.0.0/0で並ぶ
これらが、同じテーブルの中に重なり合わずに並んでいる。プレフィックスの長さも、行頭の印も、渡し先の形も、それぞれ別だ。けれど、3つの軸という共通の骨格で読めば、各行が何を語っているかが読み取れる。
ここまで来ると、コマンドを叩いた瞬間に画面が「読めない塊」から「読み取れるテーブル」に変わる感覚が手元に残る。設定を変える(コマンドを叩く / 削除する)前に、まず show ip route でテーブルの現在地を読む。これが運用の第一歩になる。
ポイント: 同じルーティングテーブルに並ぶ4行を、3つの軸(行頭の印 / プレフィックス / 渡し先)で読み分けていくと、各行が何を語っているかが読み取れる。直接接続している行・自分自身のIPの局所エントリ・手で書き足した行・最後の手段の行 が、それぞれ別の役割で並んでいる。設定を変える前にまずテーブルの現在地を読む、という運用の第一歩が手元に残る。
記号の塊が、3つの軸でルーティングテーブルとして読める
これまでの旅で、ルーティングテーブルの中身を概念で読み解いてきた。1行書き足す方法、行同士がどう選ばれるか、最後の手段がどこに座るか。今日は、テーブルを初めて自分の目で読む方法に進んだ。
show ip route の出力は、最初は記号と数字の塊にしか見えない。けれど、各行は3つの軸に分解できる。
- 軸1: 行頭の印 → どこで覚えた経路か(
C直接接続している行 /L自分自身のIPの局所エントリ /S手で書き足した行 / 動的に学習した行の印は予告のみ) - 軸2: プレフィックス → どの宛先か(これまでの旅で身につけた /N 表記そのまま)
- 軸3: 渡し先 → どこへ渡すか(next-hop または出力インターフェース)
この3つの軸が手元に置ければ、画面の塊は読み取れる景色に変わる。同じテーブルに並ぶ4行(直接接続している行 / 自分自身のIPの局所エントリ / 手で書き足した行 / 最後の手段の行)を3軸で読み分けていくと、各行が何を語っているかが読み取れる。
振り返ると、ここまでで、ルータの中のルーティングテーブルを「中身が分かる」だけでなく「画面で読める」ところまで来た。書く側、テーブルの選択ルールと最後の手段の位置づけ、そして読む側(本話の3軸読み)。スタティックルートというテーマに対して、書く・並べる・読む、という3つの動詞が手元に揃ったことになる。
明日からの自分の手元に残るのは、次の1〜2文だ。
「show ip route の各行が語っているのは3つだけ。行頭の印 / プレフィックス / 渡し先。この3つの軸が読めれば、ルーティングテーブルの現在地が読める。設定を変える前にまずテーブルの現在地を読む、というのが運用の第一歩」
ここまで来ると、コマンドプロンプトの前に座って show ip route を叩いたときに、画面が「読めない塊」から「読み取れるテーブル」に変わる感覚が手元にある。各列の細部 — [1/0] のような数字や、行頭の印の網羅、行がテーブルに入る順序の奥にある運用ルール — はシリーズの先で必要になったタイミングで個別に出会うことにして、本話は3つの軸という骨格を持ち帰る形で閉じる。
シリーズの旅は、最終話に向かう。書く・並べる・読む、と3つの動詞が手元に揃ったいま、残された問いはひとつ — このスタティックという道具を、いつ使えばいいのか。次の話で、スタティックの適性判断と、動的に学習する仕組みが必要になる場面の動機 を見にいく。