経路制御(ルーティング)その2経路制御(ルーティング)その2ルータの機能ルータの機能には、主に以下のものがあります。別ネットワークへのパケットの中継を行う。宛先IPのネットワーク部分により、中継の可否を決定します。自分自身が宛先IPが示すネットワークに直接接続されていない場合は、そのネットワークへの経路を持つと思われる「次の」ルータにパケットを転送します。無駄なトラフィックを抑えるMACレベルのブロードキャスト・パケットを通さない事により、トラフィックを抑える事ができます。ユニキャスト・パケット(宛先が1つであるパケット)を適切な範囲にだけ送る事によりトラフィックを抑える事ができる、ブリッジという装置もあります。パケット生存時間)というフィールドがあり、パケットがルータを通る際にはこのフィールドの値が1つ減らされます。減らした結果が0になると、パケットがループしている(同じルータを何度も通っている)とみなし、そのパケットを破棄します。その際、送信元に対してパケットが破棄された旨の通知パケットを返します。パケットの分割と再構成を行う。パケットを中継する際に、入ってきた側と出て行く側のネットワークのMSS(MTU)が異なる場合、両方のネットワークに適したパケットの分割送信、および受信パケットの再構築を行います。基本的には極力流さないというポリシーを持っておいたほうが良いと思います。一応すべてのノードが受け取ってIP層まで渡されるので、すべてのノードの負荷を増加させる。送信元に対して多くの応答パケットが返される可能性があるので、LANの負荷を増加させる。ブリッジはブロードキャスト・パケットを通す。このため、ネットワーク・トラフィックの低減のためのブリッジの効果が薄れてしまう。まとめ(再掲)ルータは、ネットワーク1側から来たパケットの宛先IPを見て、そのネットワーク・アドレスがネットワーク2のネットワーク・アドレスと同じであれば、そのパケットをネットワーク2の方に送出します。以下に、具体的な流れを示します。長いですが、じっくり追いかけてみてください。ルータによるパケットの中継フェーズノードCルータノードDIPヘッダの生成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応答を返す。宛先MACにルータのMACアドレスを設定。パケットの送出11.パケットを送出し、ルータに対してノードDへの中継を依頼する。パケットの中継12.MAC層は、宛先MACが自分向けであるので、パケットを受信する。13.先頭のイーサネット・ヘッダを取り除き、上位(IP層)にIPヘッダ以下を渡す。14.IP層は、宛先IPが自分向けでないので、中継するべきと判断する。送信元IP(ルータ自身)とサブネット・マスクにより、自ネットワーク(D’)および宛先のネットワーク・アドレス(D’)を抽出。16.宛先ネットワーク(D’)が自ネットワーク(D’)と等しいので、ノードDには直接送信できることがわかる。イーサネット・ヘッダの生成17.ここで、宛先(ノードD)のMACがわからない。宛先MACの解決18.ARP要求を送出。19.ARP応答を返す。宛先MACにノードDのMACアドレスを設定。パケットの中継21.ノードDに対して直接パケットを送出する。宛先MACが自分向けであるので、パケットを受信する。23.先頭のイーサネット・ヘッダを取り除き、上位(IP層)にIPヘッダ以下を渡す。24.IP層は、宛先IPが自分向けであるので、最終目的地が自分自身であると判断する。実データ部をさらに上位に渡す(受信完了)。