ルーティング

初心者にも分かるIPパケットのルーティングの仕組み,種類について

ルーティングとは

ルーティングとは、PC 等が送信した IP パケットを、ルータ等のネットワーク機器が目的地 (宛先 IP アドレス) まで届ける作業のことです。

例えば PC が Yahoo の Web サイトを見るためには、PC から Yahoo の Web サーバまで、以下のようなネットワーク機器を経由していきます。

  • 自分の家のブロードバンドルータ
  • プロバイダ (ぷらら等) のネットワーク設備 (複数のネットワーク機器から成る)
  • Yahoo のネットワーク設備 (同上)

上記のネットワーク機器一つ一つで、ルーティング作業が行われます。

具体的には、各ネットワーク機器は『どの IP アドレスをどのネットワーク機器に転送すれば良いか』が書かれているルーティングテーブルを持っており、IP パケットが来たら IP パケットの中にある『宛先 IP アドレス』とルーティングテーブルを見て、転送先を決定します。

ルーティングの必要性

ルーティングはレイヤー 3 の通信方法ですが、レイヤー 2 の通信方法だけだと何がいけないのでしょうか?

簡単に言うと、レイヤー 2 だけで大規模ネットワークを構成すると、色々と効率が悪くなるからです。

家庭内等の小規模ネットワークであれば、L2 スイッチだけで L2 ネットワークを構築すれば事足りますが、大規模ネットワークを L2 スイッチだけで組むと、そのネットワークの全範囲が同一ブロードキャストドメインとなり、各端末の ARP テーブルのエントリ数が大量になり、また、L2 スイッチの MAC アドレステーブルのエントリ数も大量になります。

その結果、通信の効率がとても悪くなります

そこで、レイヤー 2 のネットワークを相互に結び、通信したい相手への経路を決定するような仕組みが必要になります。

それを担うのがレイヤー 3 の役割であるルーティングです。

ルーティングのイメージ

上図で、ルータ「192.168.0.0/24」と「172.16.0.0/16」に直結しているので (つまり、インタフェース上に、そのセグメントに所属する IP を持っているので) そのアドレス帯宛のパケットが飛んで来れば、ARP による解決を行い、目的の IP へパケットを転送できます

しかし、「10.0.0.0/8」に関しては情報がありません

そこでルータへ、以下の Static ルートを設定します。

「10.0.0.0/8 宛のパケットを L3 スイッチへ転送する」

この設定がルーティングです。

また、このとき、次の転送先である L3 スイッチを『ネクストホップ』と表現します。

レイヤー 2は、私たちの周りは現在、たいてい Ethernet ですが、PPP や PPPoE、フレームリレーや ATM、HDLC など様々なレイヤー 2 をルーティングで相互接続できます。

ルーティングの種類

ルーティングには主に 3 種類あります。

1. スタティックルート

これは各 NW 機器一つ一つに、『自分が知らない IP アドレス』を宛先毎に全て設定していく方式です。

大規模 NW だと手間はかかりますが、一度構築してしまえば一番安定して動作しますので、小中規模のネットワークでは 1 番多い方式です。

2. ダイナミックルーティング

これは各 NW 機器一つ一つに、『自分に設定されている IP アドレス』を設定し、隣のルータにそのルート情報を伝搬していく方式です。

スタティックルートと違い、設定は楽ですし、経路の自動切り替えによる冗長化が可能というメリットはありますが、設計は入念に行う必要があるのと、不具合によって予期せぬネットワーク障害を起こす可能性があるのがデメリットです。

RIP や OSPF、BGP 等のルーティングプロトコルがこれにあたります。

3. ポリシーベースルーティング

これはルーティングを宛先 IP だけでなく、送信元 IP や TCP/UDP ポート等で決定することができる方式です。

もう少し詳細については以下をご参照下さい。

【図解】ポリシーベースルーティング(Linux の iproute2) の仕組みと設定例~
PBR(Policy-Based Routing) ルータがルーティングする際...

 

コメント

タイトルとURLをコピーしました