経路制御(ルーティング)その2

  1. ルータの機能

    ルータの機能には、主に以下のものがあります。

    機能備考
    別ネットワークへのパケットの中継を行う。 宛先IPのネットワーク部分により、中継の可否を決定します。 自分自身が宛先IPが示すネットワークに直接接続されていない場合は、 そのネットワークへの経路を持つと思われる「次の」 ルータにパケットを転送します。
    無駄なトラフィックを抑える

    MACレベルのブロードキャスト・パケットを通さない事により、 トラフィックを抑える事ができます。なお、ユニキャスト・ パケット(宛先が1つであるパケット)を適切な範囲にだけ送る 事によりトラフィックを抑える事ができる、 ブリッジという装置もあります。

    無限の中継を防ぐ。 IPヘッダの中にはTTL(Time to Live --- パケット生存時間) というフィールドがあり、パケットがルータを通る際には このフィールドの値が1つ減らされます。 減らした結果が0になると、パケットがループしている (同じルータを何度も通っている)とみなし、 そのパケットを破棄します。その際、送信元に対してパケットが 破棄された旨の通知パケットを返します。
    パケットの分割と再構成を行う。 パケットを中継する際に、入ってきた側と出て行く側の ネットワークのMSS(MTU) が異なる場合、両方のネットワークに適したパケットの分割送信、 および受信パケットの再構築を行います。

    (*1)…ブロードキャスト・パケットは以下の面でデメリットがあるので、 基本的には極力流さないというポリシーを持っておいたほうが良いと思います。

  2. まとめ

    (再掲)

    ルータは、ネットワーク1側から来たパケットの宛先IPを見て、 そのネットワーク・アドレスがネットワーク2のネットワーク・アドレスと 同じであれば、そのパケットをネットワーク2の方に送出します。 以下に、具体的な流れを示します。ちょっと長いですが、 じっくり追いかけてみてください。

    ルータによるパケットの中継
    フェーズノードCルータノードD
    IPヘッダの生成 1.送信したい電文の先頭にIPヘッダを付加する。
    2.宛先IP(ノードD)と送信元IP(ノードC) をそれぞれセットする。
    イーサネット・ヘッダの生成 3.ここで、宛先(ノードD)のMACがわからない。
    宛先MACの解決 4.宛先IP(ノードD)、送信元IP(ノードC) とサブネット・マスクにより、自ネットワーク(C’)および宛先の ネットワーク・アドレス(D’)を抽出。
    5.宛先ネットワーク(D’)が自ネットワーク(C’) と異なるので、誰かに中継を依頼したい。
    6.ルーティング・テーブルを検索し、宛先ネットワーク へのルータ(のIPアドレス)を決定する。
    7.そのルータへ送ろうとするが、ルータのMACがわからない。
    8.ARP要求を送出。
    9.ARP応答を返す。
    イーサネット・ヘッダの生成 10.ARP応答を受け取って、 宛先MACにルータのMACアドレスを設定。
    パケットの送出 11.パケットを送出し、ルータに対して ノードDへの中継を依頼する。
    パケットの中継 12.MAC層は、宛先MACが 自分向けであるので、パケットを受信する。
    13.先頭のイーサネット・ヘッダを 取り除き、上位(IP層)にIPヘッダ以下を渡す。
    14.IP層は、宛先IPが 自分向けでないので、中継するべきと判断する。
    15.宛先IP(ノードD)、 送信元IP(ルータ自身)と サブネット・マスクにより、自ネットワーク(D’)および 宛先のネットワーク・アドレス(D’)を抽出。
    16.宛先ネットワーク(D’) が自ネットワーク(D’)と等しいので、ノードDには 直接送信できることがわかる。
    イーサネット・ヘッダの生成 17.ここで、宛先(ノードD) のMACがわからない。
    宛先MACの解決 18.ARP要求を送出。
    19.ARP応答を返す。
    イーサネット・ヘッダの生成 20.ARP応答を受け取って、 宛先MACにノードDのMACアドレスを設定。
    パケットの中継 21.ノードDに対して直接パケット を送出する。
    パケットの受信 22.MAC層は、 宛先MACが自分向けであるので、パケットを受信する。
    23.先頭のイーサネット ・ヘッダを取り除き、上位(IP層)にIPヘッダ以下を渡す。
    24.IP層は、宛先IPが 自分向けであるので、最終目的地が自分自身であると判断する。
    25.IPヘッダを取り除き、 実データ部をさらに上位に渡す(受信完了)。

Prev Next Up