基本情報のルータとは?ルーティングの考え方をやさしく解説
ルータとスイッチ、どっちが何をするんだっけ。
ネットワークの問題で、機器の名前が出た瞬間に手が止まっていませんか?
ルータは、基本情報技術者試験のネットワーク分野でいちばん登場回数の多い機器です。それなのに、何をしている機器なのかを一言で説明できる人は意外と少ないものです。
用語の暗記だけで乗り切ろうとすると、選択肢の言い回しが少し変わっただけで迷ってしまいます。逆に、ルータが毎回やっている判断を一つ理解すれば、関連する問題はまとめて解けるようになります。
私はエンジニアとして10年以上、Webシステムの開発や運用に携わってきました。サーバがつながらないと連絡を受けたとき、最初に確認するのは、たいていルーティングの設定です。
宛先への道が一本抜けているだけで、アプリケーションはまったく正しいのに通信が届かない。そんな場面を何度も見てきました。
この記事では、ルータの役割、ルーティングテーブルの読み方、試験での問われ方を順番に見ていきます。最後に、ルータの判断を擬似言語で書いて追ってみます。
基本情報のルータとは?一言でいうと道案内係¶
まず、ルータが何をする機器なのかを押さえましょう。結論から言うと、ルータは異なるネットワーク同士をつなぎ、パケットの行き先を決める機器です。
たとえるなら、郵便局の仕分け係です。届いた手紙の宛先を見て、次にどの局へ回すかを決めて送り出します。
ルータも同じで、受け取ったパケットの宛先IPアドレスを見ます。そして、次に渡すべき相手を自分の持っている表から選んで転送します。
ここで大事なのは、ルータは最終目的地まで道のりを全部知っているわけではない、という点です。知っているのは次に渡す相手だけで、それをバケツリレーのようにつないで遠くまで届けています。
ルータはどの層で動く機器なのか¶
ネットワークの機器は、OSI基本参照モデルのどの層で動くかで区別されます。ルータは第3層のネットワーク層で動く機器です。
ネットワーク層は、IPアドレスを使って宛先までの経路を決める層です。だからルータはIPアドレスを見て判断する、と覚えておくと混ざりません。
似た機器と並べると違いがはっきりします。試験でもこの比較の形で問われることが多いので、表で整理しておきましょう。
| 機器 | 動く層 | 何を見て判断するか | ひとことで言うと |
|---|---|---|---|
| リピータハブ | 第1層(物理層) | 何も見ない | 信号を増幅してそのまま流す |
| スイッチ(L2スイッチ) | 第2層(データリンク層) | MACアドレス | 同じネットワーク内で相手を選ぶ |
| ルータ | 第3層(ネットワーク層) | IPアドレス | 別のネットワークへの道を選ぶ |
| L3スイッチ | 第3層(ネットワーク層) | IPアドレス | ルータの働きを持つスイッチ |
| ゲートウェイ | 第4層以上 | プロトコル全体 | 異なる決まりごと同士を変換する |
表の右から2列目を見てください。何を見て判断するか、がそのまま機器の違いになっています。
スイッチは同じネットワークの中で、MACアドレスを頼りに相手を探します。ルータはネットワークの外へ出るときに、IPアドレスを頼りに道を選びます。
ルータがブロードキャストを止める理由¶
もう一つ、ルータの性質としてよく問われるのがブロードキャストの扱いです。ブロードキャストとは、同じネットワークの全員に一斉に送る通信のことです。
ルータは、このブロードキャストを基本的に別のネットワークへ転送しません。そのため、ルータで区切られた範囲がブロードキャストの届く範囲になります。
もしルータが一斉送信をどこまでも流したら、世界中の機器に同じ通信が届いてしまいます。そう考えると、止めるのは自然な動きだと納得できるのではないでしょうか。
ルーティングテーブルの読み方¶
ルータが行き先を選ぶときに使う表を、ルーティングテーブルと呼びます。ここが読めるかどうかで、ネットワーク問題の手応えが大きく変わります。
中身はシンプルで、宛先のネットワークと、そこへ行くために次に渡す相手の組み合わせが並んでいるだけです。次に渡す相手のことを、ネクストホップと呼びます。
イメージをつかむために、小さな例を表にしてみました。実際のテーブルにはもっと項目がありますが、試験で読むべき部分はこの2列が中心です。
| 宛先ネットワーク | ネクストホップ | 意味 |
|---|---|---|
| 192.168.1.0/24 | ルータB | 192.168.1.で始まる宛先はBへ |
| 192.168.0.0/16 | ルータC | 192.168.で始まる宛先はCへ |
| 10.0.0.0/8 | ルータD | 10.で始まる宛先はDへ |
| 0.0.0.0/0 | ルータA | どれにも当てはまらなければAへ |
表の /24 や /16 は、アドレスの先頭から何ビットがネットワークを表すかを示しています。数字が大きいほど、範囲が狭く具体的な宛先になります。
複数の行に当てはまるときは長く一致した方を選ぶ¶
ここで一つ疑問が浮かびます。宛先が192.168.1.20なら、1行目にも2行目にも当てはまりますよね。
このときルータは、より長く一致した行を優先します。これをロンゲストマッチと呼びます。
192.168.1.20は、/24の行とも/16の行とも一致しています。より細かく指定された/24の行が選ばれるので、転送先はルータBになります。
郵便でたとえると、東京都宛ての箱と、東京都新宿区宛ての箱があったら、新宿区の箱に入れるのと同じです。具体的な指定ほど優先される、と覚えておけば迷いません。
デフォルトルートとデフォルトゲートウェイ¶
表の最後の行、0.0.0.0/0 はどんな宛先にも一致する特別な行です。これをデフォルトルートと呼び、ほかのどの行にも当てはまらないときの行き先になります。
一致の長さはゼロなので、ほかに一致する行があれば必ずそちらが勝ちます。つまり、最後の受け皿として働く行です。
パソコン側にも同じ考え方があります。自分のネットワークの外へ出る通信をまず渡す相手を、デフォルトゲートウェイと呼びます。
家庭であれば、たいていブロードバンドルータがこの役を担っています。パソコンは宛先が外だと分かると、細かいことは考えずにデフォルトゲートウェイへ渡しているわけです。
実務でも、デフォルトゲートウェイの設定漏れは定番のトラブルです。私も、同じネットワーク内とは通信できるのに外へ出られない、という相談を受けて、原因がこの1行だったことが何度もあります。
試験でルータはどう問われるのか¶
ルータの基本が分かったところで、試験での出され方を見ていきます。出題の形は、大きく分けて次の3種類です。
形ごとに、何を答えれば正解に近づくかが違います。自分がどこで迷いやすいかを確かめながら読んでみてください。
| 出題の形 | 問われること | 押さえるポイント |
|---|---|---|
| 機器の比較 | どの層で動き、何を見て判断するか | ルータはネットワーク層・IPアドレス |
| 経路の選択 | テーブルからどこへ転送されるか | ロンゲストマッチとデフォルトルート |
| 周辺の機能 | NATやルーティングプロトコル | 何のための仕組みかを一言で言える |
科目Aでは、機器の比較や用語の意味を問う形が中心になります。一方、セキュリティやネットワーク構成を読む問題では、ルータの位置と役割を前提に話が進むことがあります。
静的ルーティングと動的ルーティング¶
周辺の知識でよく出るのが、ルーティングテーブルの作り方です。作り方には、人が手で書く方法と、ルータ同士が情報を交換して自動で作る方法があります。
手で書く方を静的ルーティング、自動で作る方を動的ルーティングと呼びます。それぞれの特徴を比べておきましょう。
| 方式 | テーブルの作り方 | 向いている場面 |
|---|---|---|
| 静的ルーティング | 管理者が経路を手で設定する | 小さく変化の少ないネットワーク |
| 動的ルーティング | ルータ同士が経路情報を交換する | 大きく構成が変わりやすいネットワーク |
動的ルーティングで使われる決まりごとの代表が、RIPとOSPFです。RIPは経由するルータの数を目安に経路を選び、OSPFは回線の速さなどから決めたコストを目安に選びます。
名前だけ覚えるより、何を物差しにして道を選ぶかで区別するのがおすすめです。物差しが違う、と分かっていれば選択肢の説明文で見分けられます。
NATとNAPTはルータの仕事の一つ¶
もう一つ、ルータとセットで出てくるのがNATです。NATは、社内で使うプライベートIPアドレスと、インターネットで使うグローバルIPアドレスを変換する仕組みです。
さらにポート番号まで使って、1つのグローバルアドレスを複数の端末で共有する仕組みをNAPTと呼びます。家庭のルータが、家族全員の端末をまとめてインターネットにつないでいるのはこの仕組みのおかげです。
NATは外から中の構成が見えにくくなるので、セキュリティの話題とつながることもあります。ルータは道案内だけでなく、出入口の番人のような役割も持っていると考えておきましょう。
ネットワーク分野そのものに苦手意識がある場合は、つまずく場所と解き方を整理したこちらの記事が参考になります。
【関連記事】基本情報のネットワークが難しい人へ|つまずく場所と問題の解き方
ルータの判断を擬似言語で追ってみよう¶
ここからは、ルータが行き先を選ぶ手順を擬似言語で書いてみます。ネットワークの話とプログラムの話は別物に見えますが、ルータの中で起きているのも手順の実行です。
本物のルータはアドレスをビット単位で比べます。ここでは読みやすさを優先して、宛先の文字列が各行の先頭部分で始まるかどうかで一致を判定する、簡略化した形にしました。
○文字列型: selectRoute(文字列型: dest)
文字列型の配列: prefixes ← {"192.168.1.", "192.168.", "10.", ""}
文字列型の配列: nextHops ← {"ルータB", "ルータC", "ルータD", "ルータA"}
整数型: bestLen ← -1
文字列型: best ← "破棄"
整数型: i
for (i を 1 から prefixesの要素数 まで 1 ずつ増やす)
if (dest が prefixes[i] で始まる and prefixes[i]の文字数 > bestLen)
bestLen ← prefixes[i]の文字数
best ← nextHops[i]
endif
endfor
return best
配列prefixesの最後にある空の文字列が、デフォルトルートの役です。空の文字列はどんな宛先の先頭にも一致し、長さはゼロなので、ほかに一致する行があれば必ず負けます。
変数の値をトレース表で追う¶
宛先が192.168.1.20のときに、変数がどう変わるかを追ってみましょう。各行の文字数は、1行目が10、2行目が8、3行目が3、4行目が0です。
ループを1周するごとに、一致したかどうかと、bestLenとbestの値を書き出すと次のようになります。
| i | prefixes[i] | 先頭が一致するか | 文字数 > bestLen か | bestLen | best |
|---|---|---|---|---|---|
| 開始時 | ― | ― | ― | -1 | 破棄 |
| 1 | 192.168.1. | する | 10 > -1 で真 | 10 | ルータB |
| 2 | 192.168. | する | 8 > 10 で偽 | 10 | ルータB |
| 3 | 10. | しない | ― | 10 | ルータB |
| 4 | (空) | する | 0 > 10 で偽 | 10 | ルータB |
2行目にも一致していますが、すでにもっと長い一致が見つかっているので上書きされません。結果はルータBで、先ほどのロンゲストマッチの説明とぴったり重なります。
では、宛先が172.16.0.5ならどうでしょうか。一致するのは4行目の空の文字列だけなので、bestLenは0、bestはルータAになり、デフォルトルートが選ばれます。
トレース表の書き方に自信がない人は、手順を一から解説したこちらの記事を先に読んでおくと楽になります。
【関連記事】擬似言語のトレース表の書き方|科目Bで変数の値を追う手順を解説
間違いやすい選択肢の見分け方¶
このコードを題材にした問題が出たら、狙われやすいのは比較の部分です。条件が文字数 > bestLen なのか、文字数 ≧ bestLen なのかで、同じ長さの行が並んだときの結果が変わります。
もう一つの落とし穴は、最初に一致した行で処理を終えてしまう選択肢です。上から順に見て一致したらすぐ返す書き方だと、テーブルの並び順しだいで答えが変わってしまいます。
今回の例でいえば、仮に2行目と1行目の順番が入れ替わっていたら、最初に一致した行はルータCになります。ロンゲストマッチは並び順ではなく一致の長さで決まる、という点を押さえておけば、こうした選択肢は外せます。
実務で経路の設定を確認するときも、私は並び順ではなく、どの行がいちばん長く一致するかを必ず確かめています。人間の目は上から読みがちなので、そこで思い込みが生まれやすいのです。
文字列を1文字ずつ扱う処理に慣れていない場合は、こちらの記事で基本の読み方を確認しておくと安心です。
【関連記事】擬似言語の文字列処理がわからない人へ|1文字ずつ取り出す読み方と回文判定を解説
ルータの知識をセキュリティにつなげる¶
ルータの話は、ネットワーク分野だけで閉じるものではありません。セキュリティの問題でも、ネットワーク構成の図が出てきて、その中にルータやファイアウォールが描かれていることがあります。
そうした図を読むとき、ルータがネットワークの境目に立っていると分かっていれば、どこで通信を止められるかが見えてきます。境目を知ることは、守る場所を知ることでもあります。
ネットワーク分野の知識が実務でどう生きるかは、IPアドレスやDNSとのつながりを含めてこちらで解説しています。
【関連記事】基本情報のネットワーク分野は実務でどう役立つ?IPアドレス・DNS・ルーティングのつながり
科目Bのセキュリティ問題の対策全体は、次の記事にまとめてあります。ルータの知識をどこで使うのかが、より具体的に見えてくるはずです。
【関連記事】基本情報 科目Bの情報セキュリティ対策|擬似言語との勉強時間の配分を解説
まとめ¶
ルータは、異なるネットワークをつなぎ、宛先IPアドレスを見て次の渡し先を決める道案内係でした。ネットワーク層で動く機器なので、MACアドレスで判断するスイッチとは見ているものが違います。
行き先はルーティングテーブルで決まり、複数の行に一致したときはより長く一致した行が選ばれます。どれにも当てはまらないときは、デフォルトルートが受け皿になります。
試験では、機器の比較、経路の選択、NATなどの周辺機能という形で問われます。どれも、ルータが何を見て何を決めているかが分かっていれば落ち着いて解けます。
擬似言語で書いてみると、ルータの判断も配列とループと比較の組み合わせにすぎないことが分かりました。ネットワークとプログラムは、意外と近いところでつながっています。
用語として覚えるより、判断の手順として理解する方が忘れにくくなります。今日の表を一度自分の手で書き直してみるだけでも、次に問題を見たときの見え方が変わるはずです。
通信の流れや守る仕組みを実際に動かしながら確かめたい人は、Giji Academyのセキュリティ講座を使ってみてください。パケットがどこを通っていくのかが目に見えると、ルータの役割がぐっと身近になります。