ルーティングとは、IPパケットをルータ間で転送しながら宛先のホストに送信することです。
ルーティングは、デフォルトゲートウェイとルーティングテーブルによって実現されます。
また、ルーティングにおける経路選択には、スタティックルーティングとダイナミックルーティングがあります。
ダイナミックルーティングを実現するプロトコルには、RIP、OSPF、BGPなどがあります。
ここでは、基礎知識とそれぞれのルーティングプロトコルについて説明していきます。
基礎知識
デフォルトゲートウェイ
デフォルトゲートウェイとは、ホストが異なるネットワークにIPパケットを送信する際に、まず最初に送信するルータのことです。
ホストは、異なるネットワークに存在するホストと通信したい場合に、自分の力ではIPパケットを宛先まで届けることができません。
なぜかというと、通信経路がわからないからです。
そのため、IPパケットをとりあえずルータに送信することで、宛先まで届けてもらいます。
この、とりあえずIPパケットを送信する相手(ルータ)がデフォルトゲートウェイです。
以下、イメージ図になります。
日常生活で例えるなら、最寄りの郵便局です。
誰かに何かを送りたいとき、とりあえず郵便局に持って行って、配達を依頼しますよね。
役割としてはそんなイメージです。
ルーティングテーブル
ルーティングテーブルとは、ルーティングを実現するための経路情報をまとめたものです。
ルーティングテーブルはそれぞれのルータが保持しています。
イメージとしては、「宛先がXのIPパケットが届いたら、次はあのルータに転送すればいい」という情報が表にまとめられているようなものです。
ルーティングテーブルが存在することで、ルーティングが実現されます。
逆にいうと、ルーティングテーブルに情報がない場合は、そのIPパケットは宛先に到達することができません。
そのため、それぞれのルータに経路情報を集約してルーティングテーブルを完成されることが重要になります。
ルーティングテーブルの作成方法には、スタティックルーティングとダイナミックルーティングがあります。
これは後で説明します。
ルーティングテーブルにおいて重要なルールとして、ロンゲストマッチというものがあります。
ロンゲストマッチとは、ルーティングテーブルの中に重複した経路情報があった場合、ネットワーク部のプレフィックス長が最も長く一致する経路を優先する、というものです。
例として、宛先「192.168.1.11」のIPパケットがルーティングされるとします。
そのときに、ルーティングテーブルに「192.168.0.0/16への経路情報」と「192.168.1.0/24の経路情報」があった場合、「192.168.1.0/24の経路情報」が優先されます。
要するに、より詳細な情報が優先されるということです。
AS(自律システム)
AS(自律システム)とは、同一の規則で構成・管理されている1つのネットワークのことです。
(AS:Autonomous System)
大規模ネットワークの中で、全ての経路情報を1つのプロトコルで管理するのは、非現実的です。
なぜかというと、ルータ間での経路情報の交換に通信が発生するからです。
経路変更があるたびにネットワークの全てのルータにおいて経路情報を交換していたら、回線を圧迫してしまいますよね。
そのため、ASという仕組みを用いてネットワークをグループ分けして、それぞれのグループでルーティングテーブルを作成し、グループにおいて完成したルーティングテーブルをグループ間で交換することで、ネットワーク全体のルーティングテーブルを完成させる、といったイメージです。
また、ネットワークをグループ分けすることで、ネットワークのこの部分ではRIP、この部分ではOSPF、この部分ではスタティック、といったように、柔軟なルーティング設計もできます。
ルーティングプロトコル
スタティックルーティング
スタティックルーティングとは、静的な経路情報をもとに経路情報を決定するルーティングの方法です。
スティックルートを設定して、ルーティングを実現します。
スタティックルーティングでは、宛先がAならルータAに転送、宛先がBならルータBに転送、という経路情報を手動で設定します。
手動で設定するため、静的な経路情報と呼ばれます。
ダイナミックルーティング
ダイナミックルーティングとは、動的な経路情報をもとに経路情報を決定するルーティングの方法です。
ルータ間で経路情報を交換して、ルーティングを実現します。
ダイナミックルーティングでは、隣接するルータと経路情報を交換してルーティングテーブルを作成します。
隣接するルータが持っていて自分が持っていない経路情報を教えてもらう、という作業を繰り返すイメージです。
ルータが以下のように接続されているとします。
ルータA | ルータB | ルータC | ルータD |
「ルータB」は、「ルータA」と「ルータC」と直接接続されているから経路情報を持っています。
「ルータC」は、「ルータB」と「ルータD」と直接接続されているから経路情報を持っています。
なので、「ルータB」は「ルータC」に経路情報を教えてもらうことで、「ルータD」までの経路情報を知り、ルーティングテーブルに追加する、という動作になります。
これが、ダイナミックルーティングの考え方になります。
ダイナミックルーティグには、様々なルーティングプロトコルがあるので、以下で説明していきます。
RIP
RIPとは、ディスタンスベクタ型のルーティングプロトコルです。
ディスタンスベクタ型とは、IPパケットが通るルータ数が最小になるような経路を最適経路としてルーティングテーブルを作成する仕組みになります。
例えば、ホストAからホストBまで通信する際に、複数の経路が存在するとします。
経路①:ホストA → ルータA → ルータY → ルータZ → ルータB → ホストB
経路②:ホストA → ルータA → ルータX → ルータB → ホストB
この場合、経路②が選択されます。
要するに、ルーティングテーブルを作成する(経路を決める)ときに、「中継するルータの個数」を判断基準にするということです。
RIPによるルーティングテーブルは、各ルータが30秒ごとに隣接ルータに通知する仕組みになっています。
懸念点として、RIPでの経路情報の交換には時間がかかるという点が挙げられます。
OSPF
OSPFとは、リンクステート型のルーティングプロトコルです。
リンクステート型とは、IPパケットが通る経路のコストが最小になる経路を最適経路としてルーティングテーブルを作成する仕組みになります。
例えば、ホストAからホストBまで通信する際に、複数の経路が存在するとします。
経路①:コスト=3(ホストA → ルータA → ルータY → ルータZ → ルータB → ホストB)
経路②:コスト=20(ホストA → ルータA → ルータX → ルータB → ホストB)
この場合、経路①が選択されます。
コストは、手動で設定することもできますし、回線速度などから自動で設定することもできます。
そのため、経路におけるパフォーマンスを最大限活用したいときや、柔軟に経路を設定したいときに使われます。
OSPFでは、LSA(リンクステート広告)と呼ばれる経路情報を隣接ルータと交換します。
LSAには、各ルータの経路情報やコストなどの情報が含まれており、各ルータはLSAの情報をLSDBに格納して保管します。
(LSA:Link State Advertisement)
また、OSPFではDR(代表ルータ)とBDR(バックアップ代表ルータ)を設定し、LSAの交換をDRが代表して実施することで効率の向上を図っています。
(DR:Designated Router)
さらに、OSPFでは、ネットワークを複数のエリアにグループ分けをして管理することができます。
これを、エリア管理と言います。
エリア間で経路情報を交換することで、ネットワークへの負荷軽減につながります。
エリア管理の注意点としては、ネットワークの中でメインとなる「バックボーンエリア」を設定し、各エリアがバックボーンエリアに接続されている、という構成にしなければなりません。
OSPFでは、等コストの経路があると自動的に通信を分散する機能があり、これを等コスト負荷分散機能と言います。
OSPFの方が便利ですし機能が豊富ですので、現在はRIPよりもOSPFの方が主流になっている印象です。
BGP
BGPとは、パスベクタ型のルーティングプロトコルです。
BGPは、使用目的が「AS間の経路決定」なので、RIPやOSPFとは少し部類が異なります。
AS間で経路情報を交換するeBGPと、AS内で経路情報を交換するiBGPがあります。
基本的にeBGPが使用されますが、大規模ネットワークなどでASをまたぐ場合にiBGPが使用されるイメージです。
また、BGPにはルートリフレクションという仕組みが必要な場合があります。
AS間を接続するルータが複数ある場合(冗長化など)、それぞれのルータ間で経路情報の交換をするとネットワークに負荷がかかってしまいます。
そういう場合に、代表のルータ(ルートリフレクタ)を設定することができます。
これにより、AS間の通信はルートリフレクタのみが実施し、AS内ではルートリフレクタから各ルータに拡散する構成になり、ネットワークの負荷を抑えることができます。
これをルートリフレクションと言います。
BGPでは、BGPルータ間でピアと呼ばれるコネクションを設定し、TCP179番ポートでの通信で経路情報を交換します。
ピアには、iBGPピアとeBGPピアがあります。
BGPの動作としては、以下のような流れになります。
①TCPコネクション確立、OPENメッセージによるBGP基本情報の交換
②UPDATEメッセージによる経路情報の交換
③KEEPALIVEメッセージによるルータの生存確認
④NOTIFICATIONメッセージによるエラーの検知、BGPセッションの切断
⑤経路変更情報の交換
②のUPDATEメッセージで交換される経路情報には、経路ごとにパス属性という情報が含まれています。
AS PATH属性では、経路情報が経由したAS番号のリストになっており、リストの短い経路を優先経路とします。
RIPと同じ考え方ですね。
MED(MULTI EXIT DISC)属性では、経路情報が経路のコストになっており、コストが最小の経路を優先経路とします。
OSPFと同じ考え方ですね。
ルーティングの説明は以上になります。
コメント