ネットワーク層の概要#
ネットワークの相互接続を実現する
主に以下の問題を解決します:
- トランスポート層にサービスを提供する(信頼性のあるまたは信頼性のない);
- ネットワークアドレッシングの問題(ネットワーク番号とルーターインターフェース)
- ルーティング選択の問題;
パケット転送とルーティング選択#
ネットワーク層の主な任務は、パケットを送信元ホストから複数のネットワークとリンクを経由して宛先ホストに転送することです。この任務はパケット転送とルーティング選択の 2 つの重要な機能に分けることができます。
上の図のように、ルーターは A から B への効率的な転送方法を処理する必要があります。
ルーティングテーブルはネットワークトポロジの変化に対する計算の最適化が必要です。
転送テーブルはルーティングテーブルから導出され、転送テーブルの構造は検索の最適化を必要とします。
ネットワーク層が上に提供する 2 つのサービス#
接続指向の仮想回路サービス#
== 図を見て、核心は、直達、道を開くこと、まるで物理的な線を引いているかのようです ==
- 核心思想は「信頼性のある通信はネットワーク自身が保証すべき」です。
- まずネットワーク層接続を確立する必要があります —— 仮想回路(Virtual Circuit, VC)を使用して、通信の両者に必要なすべてのネットワークリソースを保証します。
- 通信の両者は確立された仮想回路に沿ってパケットを送信します。(論理接続であり、パケットはこの論理接続に沿ってストレージ転送方式で送信されますが、実際の物理接続ではありません)
- パケットのヘッダーは接続確立段階で完全な宛先ホストアドレスを使用し、その後は各パケットのヘッダーに仮想回路番号のみを持たせる必要があります。
- 通信が終了した後、以前に確立された仮想回路を解放する必要があります。(2 つの方法があり、解放しない仮想回路もあります)
- 仮想回路 + 信頼性のある転送のネットワークプロトコルを使用すると、送信されたパケットが最終的に正しく(== エラーなしで順序通りに到達し、失われず、重複しない ==)受信者に到達します。
- 多くの広域パケット交換ネットワークは接続指向の仮想回路サービスを使用しています。例えば、かつての X.25 や徐々に時代遅れになっているフレームリレー(Frame Relay, FR)、非同期転送モード(Asynchronous Transfer Mode, ATM)などです。
しかし、インターネットは仮想回路サービスを採用せず、接続のないデータグラムサービスを採用しています。
接続のないデータグラムサービス#
核心思想は「信頼性のある通信はユーザーホストが保証すべき」(自分勝手に動き、問題は受信者に処理させる)です。
- ネットワーク層接続を確立する必要はありません。(パケットは誤り、喪失、重複、順序の乱れがある可能性があります。)
- 各パケットは異なる経路を通ることができます。したがって、各パケットのヘッダーには宛先ホストの完全なアドレスを持たせる必要があります。
インターネットプロトコル(IP)#
インターネットプロトコル(Internet Protocol, IP)はTCP/IP アーキテクチャのインターネット層におけるコアプロトコルです。
TCP と IP の通信の往復。
TCP はアプリケーション層のいくつかのプロトコルに信頼性を提供し、UDP は... に不信頼性を提供します。
IP プロトコルと併用される4 つのプロトコル:
ICMP:インターネット制御メッセージプロトコル
IGMP:インターネットグループ管理プロトコル
RARP:逆アドレス解決プロトコル
ARP:アドレス解決プロトコル
つまり、インターネット層の下には
ICMP IGMP
↓
IP
↓
ARP
の構造があります。
異種ネットワークの相互接続#
インターネット層は一団のネットワークを一つの統一されたネットワークとして扱います。
IPv4#
IPv4 とは#
インターネット(Internet)上の各ホスト(またはルーター)の各インターフェースに割り当てられる、全世界で唯一の32 ビットの識別子です。
IPv6 は 128 ビットです。
Pv 4 アドレスのアドレッシング方法:クラスフルアドレッシング、サブネット分割、クラスレスアドレッシング。
IPV 4 アドレスの表現方法(ドット十進法表現)#
ドット十進法表現:8 ビットごとに 1 グループ、各グループは。で区切ります。
2 進数を 10 進数に変換して組み合わせます。
クラスフルアドレッシング方法#
A クラスアドレス#
ローカルソフトウェアループバックテストアドレスであり、ホスト内のプロセス間の通信に使用されます。
- ホストがループバックテストの宛先アドレス(例えば 127.0.0.1)を持つ IP データグラムを送信すると、ホストのプロトコルソフトウェアはデータグラム内のデータを処理し、データグラムをネットワークに送信することはありません。ループバックアドレスの宛先アドレスを持つ IP データグラムは、ネットワーク上に決して現れません。なぜなら、ネットワーク番号 127 のアドレスはネットワークアドレスではないからです。
- ホスト番号が全て 0 の場合 —— ネットワークアドレス:このネットワーク内のすべてのホストのアドレスです。
- ホスト番号が全て 1 の場合 —— ブロードキャストアドレス:このネットワーク内にブロードキャストを送信するためのアドレスです。
127 で始まるアドレスは固定されており、ローカルで使用されるアドレスであり、127 の後の 2 進数の組み合わせはローカルで割り当てることができるアドレスです。
126 は最大のネットワークに接続できる 8 ビットプレフィックスです。
異なるプレフィックスは異なる "各"A クラスアドレスを組み合わせており、各 A クラスアドレス内の具体的なアドレス数は後の 24 ビットによって決まります。
B クラスアドレス#
C クラスアドレス#
アドレス間の比較#
ABCDE の 5 クラスの IPv4 アドレスの割り当て範囲
18m51s
ルーター間のポイントツーポイントリンクもネットワークとして考えることができます。このネットワークには 65534 台のホストと 1 つのルーターインターフェースがあり、割り当て可能な IPv4 アドレスの数は 65535 個必要です。これは B クラスネットワークを超え、割り当て可能な IPv4 アドレスの数はこのネットワークに A クラスネットワーク番号を 1 つ割り当てることができることを意味します。つまり、1 から 126 の間で 1 つを選択します。
このネットワークには 254 台のホストと 1 つのルーターインターフェースがあり、割り当て可能な IPv4 アドレスの数は 255 個必要です。これは C クラスネットワークの割り当て可能な IPv4 アドレスの数を超え、このネットワークに B クラスネットワーク番号を 1 つ割り当てることができることを意味します。つまり、128.0 から 191.255 の間で 1 つを選択します。このネットワークには 42 台のホストと 1 つのルーターインターフェースがあり、割り当て可能な IPv4 アドレスの数は 43 個必要です。このネットワークに C クラスネットワーク番号を 1 つ割り当てることができ、つまり 192.0.0 から 223.25 の間で 1 つを選択します。255。このネットワークにはホストがありませんが、2 つのルーターインターフェースが含まれており、割り当て可能な IPv4 アドレスの数は 2 つ必要です。このネットワークに C クラスネットワーク番号を 1 つ割り当てることができ、つまり 192.0.0 から 23.25 の間で 1 つを選択しますが、以前に割り当てられた C クラスネットワーク番号と同じであってはなりません。255。
各ネットワークにネットワーク番号が割り当てられた後、各ネットワーク内の各ホストとルーターの各インターフェースに、対応するネットワーク番号の下で IPv4 アドレスを割り当てることができます。同じネットワーク内の異なるホストとルーターの各インターフェースの IPv4 アドレスのホスト番号はすべて異なる必要があり、全て 0 または全て 1 であってはなりません。ホスト番号が全て 0 のアドレスはネットワークアドレスであり、ホスト番号が全て 1 のアドレスはブロードキャストアドレスであり、これらの 2 つのアドレスはホストまたはルーターインターフェースに割り当てることはできません。この例からわかるように、IPv4 のクラスフルアドレッシング方法の最大の欠点は、IPv4 アドレスの大量の浪費を引き起こすことです。例えば、ルーター R1 のインターフェース 2 が接続されているネットワークが必要とする割り当て可能な IPv4 アドレスの数は 255 個です。C クラスネットワークが含む割り当て可能な IPv4 アドレスの数は 254 個であり、このネットワークの割り当て可能な IBV4 アドレスの数の要求を満たすことができないため、このネットワークに B クラスネットワーク番号を割り当てる必要があります。しかし、B クラスネットワークが含む割り当て可能な IPv4 アドレスの数は 65534 個であり、このネットワークは 255 個のアドレスしか必要としないため、== 大量のアドレスの浪費 == が発生します。
IPv4 アドレスのサブネット化アドレッシング方法 - 第 2 段階 - 3 層構造#
あるチームが自分たちのすべてのホストに B クラスアドレスを申請したが、ホストの数が B クラスの上限に達していない場合、浪費が発生します。
IPv4 アドレスのホスト番号部分からいくつかのビットを借用してサブネット番号として異なるサブネットを区別することで、元のネットワーク内の残りの大量の IPv4 アドレスを利用でき、新しいネットワークアドレスを申請する必要がなくなります。
IPv4 アドレスのサブネット化アドレッシング方法
- サブネットマスクは、クラスフル IPv4 アドレスのホスト番号部分がサブネット番号として借用されたビット数を示すことができます。
- IPv4 アドレスと同様に、サブネットマスクも 32 ビットで構成されています。
- 左から連続するビット 1 が IPv4 アドレスのネットワーク番号とサブネット番号に対応し、
- その後の連続するビット 0 が IPv4 アドレスのホスト番号に対応します。
- サブネット化された IPv4 アドレスと対応するサブネットマスクをビットごとの論理 AND 演算を行うことで、その IPv4 アドレスが属するサブネットのネットワークアドレスを得ることができます。
- デフォルトのサブネットマスクについて:サブネット分割を満たすことができ、サブネット分割を行わないこともできます。
例題:
クラスレスアドレッシング -CIDR#
存在する問題:数が非常に多い C クラスネットワークは、各ネットワークが含むアドレスの数が小さすぎて、十分に使用されていません。
アドレスマスク
クラスレスアドレッシング方法で使用されるアドレスマスクは、サブネットマスクと似ており、32 ビットで構成されています。
- 左から連続するビット 1 が IPv4 アドレスのネットワークプレフィックスに対応し、
- その後の連続するビット 0 が IPv4 アドレスのホスト番号に対応します。
- IPv4 アドレス自身からはネットワークプレフィックスとホスト番号の長さを知ることができず、アドレスマスクと併用する必要があります。
- クラスレスアドレッシング方法を使用することで、顧客のニーズに応じた適切なサイズの CIDR アドレスブロックを割り当てることができ、IPv4 のアドレス空間をより効率的に割り当てることができます。
スラッシュ表記:
例題:
ルーティングの集約#
- ネットワークプレフィックスが長いほど、アドレスブロックが小さく、ルーティングが具体的になります。
- ルーターがテーブルを調べてパケットを転送する際に、複数のルートエントリが一致する場合は、最も長いネットワークプレフィックスのルートエントリを選択します。これを最長ルートマッチと呼びます。なぜなら、このようなルートはより具体的だからです。
CIDR アドレスブロックを分割し、目的アドレスの概念、つまりプレフィックスを取得した後、ホスト部分をすべて 0 にします。
ここで明確にする概念は、問題で言及されている 192.168.9.128/26 はサブネットであり、つまりそのクラスの中で、集約されたネットワークがあれば、26 以下のビットを取得する必要があります。25 ビットのプレフィックスを取得することもできます。
アプリケーションプランニング#
原則を守る
- まず分類する
- 分類とは、図を見て、ホスト番号から何ビット借りて 2 の累乗がカバーすることです。
- 次に数を分ける
- ホスト番号の残りのビットが、各々に具体的に割り当てるために使用できるビットです。
固定長サブネットマスク#
同じサブネットマスクを使用してサブネットを分割します。
サブネットは順次増加し、ホスト番号が各間のカバレッジサイズを制御します。ここでのホスト番号は 5 ビットであり、したがってネットワークアドレス間の間隔は 2 の 5 乗、つまり 32 です。
以下のように、各サブネットに 32 個を割り当てますが、実際に必要な数はそれほど多くないため、不要な浪費が発生します。
ネットワーク 5 は 4 つのアドレスしか必要ありませんが、32 個が割り当てられています。
可変長サブネットマスク#
- 異なるサブネットマスクを使用してサブネットを分割します。
- 各サブネットに割り当てられる IP アドレスの数は異なる場合があり、IP アドレスの浪費をできるだけ減らします。
サブブロック選択の原則:
- 各サブブロックの開始位置は自由に選択できず、ホスト番号部分がブロックサイズの整数倍のアドレスを開始位置として選択する必要があります。
- 大きなサブブロックの選択をお勧めします。
例題:
二分木の分割方法#
【固定長サブネット分割】
【可変長サブネット分割】
可変長サブネット分割の方法は複数存在する可能性がありますが、任意に 5 つのサブブロックを選択することはできません。
【例題】
IPv4 アドレスと MAC アドレス#
IPv4 アドレスと MAC アドレスのカプセル化位置
データパケット送信中の IPv4 アドレスと MAC アドレスの変化状況
データパケットの送信中、データパケットの送信元 IP アドレスと宛先 IP アドレスは変わらず(出発地と最終目的地、下図の送信元 MAC1 と宛先 MAC2)。
データパケットの送信中、データパケットの送信元 MAC アドレスと宛先 MAC アドレスはリンクごと(またはネットワークごと)に変わります。
例題:
IPv4 アドレスと MAC アドレスの関係
インターネットはIP アドレスと MAC アドレスの 2 種類のアドレスを使用してアドレッシング作業を共同で完了します。
ルーターは IP データグラムを受け取った後、そのヘッダー内の宛先 IP アドレスのネットワーク番号部分に基づいて、自身のルーティングテーブルを参照して転送します。
アドレス解決プロトコル ARP は IP アドレスを MAC アドレスに対応させます。
アドレス解決プロトコル ARP#
各ホストは自分の ARP キャッシュテーブルを維持し、IP アドレスに基づいて人を招くとき、まず自分のキャッシュテーブルを見て、目的地の IP アドレスに対応する ARP キャッシュ情報が自分のキャッシュテーブルにあるかどうかを確認します。
もしなければ、ブロードキャストフレーム(全 f)を同じネットワーク内のすべてのデバイスに送信し、以下の情報を含みます:
私は xxx、私の目的は xxx、私の MAC アドレスは xxx です。
各ホストが IP アドレスを確認し、発信元ホストの目的地と一致しない場合はそれを破棄します。一致する場合は、ユニキャストの応答メッセージを送信します。
私は xxx、私の目的地は xxx、私の MAC アドレスは xxx です。
この応答メッセージが発信者に戻ると、発信者は自分の ARP キャッシュにこの IP アドレスと MAC アドレスの対応関係を確立します。
動的静的タイプ#
-- 動的:ARP 記録はホストが ARP を自動的に取得したもので、ライフサイクルはデフォルトで 2 分です。ライフサイクルが終了すると、その記録は自動的に削除されます。
-- 静的:この記録はユーザーまたはネットワーク管理者によって手動で設定され、異なるオペレーティングシステムでライフサイクルが異なります。例えば、システム再起動後に存在しないか、システム再起動後も有効です。
定期的なキャッシュテーブルの対応関係#
- スイッチの転送テーブル内の MAC アドレスとスイッチインターフェース番号の対応関係は定期的に削除する必要があります。なぜなら、この対応関係は永久に変わるものではないからです。
- 同様に、ARP 内の IP アドレスと MAC アドレスの対応関係も永久に変わるものではありません。例えば、ユーザーが新しいネットワークカードに交換した場合。
IP データグラムの送信と転送プロセス#
- ホストが IP データグラムを送信します。
- ルーターが IP データグラムを転送します。
ルーターは自分のインターフェースが存在するサブネットとサブネット検証および自身のインターフェースの対応関係を維持します。
出発点から送信された目的アドレスを受け取った後、ルーターは自身が維持するインターフェースに対応するサブネットのアドレスマスクと目的アドレスを論理 AND 演算し、結果が自身のインターフェースに対応するサブネットと一致する場合、そのインターフェースから転送します。
デフォルトゲートウェイ:図のように、ホスト A がネットワーク内で通信できることを知るためには、必ずこのネットワーク内のルーターを指定し、そのルーターに転送を手伝ってもらう必要があります。指定されたルーターはデフォルトゲートウェイと呼ばれます。
ルーターは IP データグラムを受け取った後、どのように転送するのでしょうか。
❶ 受け取った IP データグラムが正しいかどうかを確認します。
生存時間が終了しているか;ヘッダーに誤りがあるか。
もし正しくなければ、その IP データグラムを破棄し、その IP データグラムを送信した送信元ホストにエラーレポートを送信します。
❷ IP データグラムのヘッダー内の宛先 IP アドレスに基づいてルーティングテーブルを検索します。
一致するルートエントリが見つかれば、そのルートエントリの指示に従って転送します。そうでなければ、その IP データグラムを破棄し、その IP データグラムを送信した送信元ホストに ICMP エラーレポートを送信します。
ルーターは目的アドレスとルートエントリ内のアドレスマスクを AND 演算し、目的ネットワークアドレスを得て、その目的ネットワークが一致するかどうかを確認します。
ルーターによるブロードキャストデータグラムの処理#
ルーターはブロードキャストドメインを隔離し、同じサブネット内の他のデバイスはすべて受信できますが、ルーターはブロードキャストを転送しません。
例題:
12m35s
IP データグラムのヘッダー形式#
- IPv4 データグラムのヘッダー形式とその内容は、本プロトコルのさまざまな機能を実現するための基盤です。
- TCP/IP では、さまざまなデータ形式は常に 32 ビット、つまり 4 バイト単位で記述されます。
固定部分と可変部分に分かれます。
固定部分:各 IPv4 データグラムに含まれる部分(形式として理解します)
可変部分:特定の IPv4 データグラムのヘッダーが、20 バイトの固定部分(これは基本です)に加えて、IPv4 データグラムの機能を増加させるためのいくつかのオプションフィールドを含む場合があります(プラグインとして理解します)。
バージョン:#
4 ビット、IP プロトコルのバージョンを示します。通信の両者は同じバージョンを使用する必要があります。
ヘッダー長:#
IP データグラムのヘッダーの長さを示します。フィールドの値は 4 バイト単位で取ります。
- ヘッダー長の最小値は 0101、つまり 10 進数の 5 であり、4 バイト単位で掛けると ==IPv4 データグラムのヘッダーは 20 バイトの固定部分を占める ==(可変部分なし)。
- ヘッダー長の最大値は 1111、つまり 10 進数の 15 であり、4 バイト単位で掛けると、IPv4 データグラムのヘッダーは 20 バイトの固定部分と最大 40 バイトの可変部分を含むことを示します。
オプションフィールド:#
長さは 1 から 40 バイトまでさまざまで、エラー検出、測定、安全性などをサポートします。
IP データグラムの機能を増加させるために使用されますが、ルーターが IP データグラムを処理するオーバーヘッドも増加します。実際にはほとんど使用されません。(データグラムの全転送経路において、すべてのルーターがオプションフィールドをチェックする必要があり、ルーターのデータグラム処理速度が低下します)
04m14s
パディングフィールド:#
ヘッダーの長さが 4 バイトの整数倍であることを保証するために、全て 0 でパディングします。
ヘッダーの長さ(20 バイトの固定部分 + 可変部分)が 4 バイトの整数倍でない場合、必要な数の全 0 バイトをパディングして、IPv4 データグラムのヘッダーの長さが 4 バイトの整数倍になるようにします。
サービスの区別:#
- 8 ビットを占有し、より良いサービスを得るために使用されます。このフィールドは一般的に使用されません。
総長:#
- 16 ビットを占有し、IP データグラムの総長(ヘッダー + データペイロード)を示します。最大 65535 です。
- 識別子 + フラグ + フラグオフセットは、IPv4 データグラムのフラグメンテーションに共同で作用します。
識別子:#
16 ビットを占有し、同じデータグラムの各フラグメントデータグラムは同じ識別子を持つべきです。IP ソフトウェアはカウンターを維持し、データグラムを生成するたびにカウンターを + 1 し、この値を識別子フィールドに割り当てます。
フラグ:#
3 ビットを占有します。
- 最低位:MF ビット、1 は後にフラグメントがあることを示し、0 は最後のフラグメントであることを示します。
- 中間位:DF ビット、1 はフラグメンテーションを許可しないことを示し、0 は許可されることを示します。
- 最高位:予約ビット、必ず 0 でなければなりません。
フラグメントオフセット:#
13 ビットを占有し、フラグメントデータグラムのデータペイロード部分が元のデータグラムの位置からどれだけオフセットされているかを示します(8 バイト単位)。
生存時間:#
8 ビットを占有し、秒単位で最大生存期間は 255 です。ルーターが IP データグラムを転送する際、IP データグラムのヘッダー内のこのフィールドの値を、IP データグラムがこのルーターで消費した時間だけ減少させます。0 でない場合は転送し、そうでなければ破棄します。
生存時間 TTL フィールドの役割は、誤ったルーティングの IPv4 データグラムがインターネット内で無限に回り続けるのを防ぐことです。
プロトコル#
8 ビットの長さで、IPv4 データグラムのデータ部分がどのプロトコルデータユニット PDU であるかを示します。
ICMP プロトコル:フィールドは 1 に設定されます。
IGMP プロトコル:フィールドは 2 に設定されます。
TCP プロトコル:フィールドは 6 に設定されます。
UDP プロトコル:フィールドは 17 に設定されます。
IPv6 プロトコル:フィールドは 41 に設定されます。
OSPF プロトコル:フィールドは 89 に設定されます。
ヘッダーのチェックサム#
16 ビットを占有し、ヘッダーが転送中にエラーが発生したかどうかを検査します。
IPv4 データグラムは、各ルーターを通過するたびに、ヘッダー内の特定のフィールドの値(例えば生存時間 TTL、フラグ、フラグメントオフセットなど)が変わる可能性があるため、ルーターはヘッダーのチェックサムを再計算する必要があります。
送信側の計算方法:16 ビット単位で各単語を加算し(最初にヘッダーのチェックサムフィールドを全て 0 に設定)、得られた結果を反転させてヘッダーのチェックサムフィールドに埋め込みます。
受信側:16 ビット単位で各単語を加算し、得られた結果を反転させます。
インターネット層はその上層に信頼性のある伝送サービスを提供せず、ヘッダーのチェックサムを計算することは時間のかかる操作であるため、IPv6 ではルーターはヘッダーのチェックサムを計算せず、IP データグラムをより迅速に転送します。
送信元 IP アドレス#
32 ビットを占有し、送信側の IP アドレスです。
宛先 IP アドレス#
32 ビットを占有し、受信側の IP アドレスです。
フラグメンテーションの概念#
例題:
ヘッダーのチェックサム計算の重点は、2 進数の反転和の演算にあります。
静的ルーティングの設定#
03m23s
ユーザーまたはネットワーク運用者がルーターの関連コマンドを使用してルーターのルーティングテーブルを手動で設定します。
利点:手動設定方式は簡単で、オーバーヘッドが少ない。
欠点:ネットワークの状態(トラフィック、トポロジなど)の変化に即座に適応できません。
使用環境:一般的に小規模ネットワークでのみ使用されます。
デフォルトルーティングの概念#
状況は、今 R1 が送信する目的のデバイスが非常に多く、上記のように数台のデバイスしかないのではなく、インターネット、または非常に多くのデバイスがある場合、この時、すべてのインターネット内のデバイスの IP アドレスのマッピング関係を手動でルーティングテーブルに書き込むのは現実的ではありません。
解決策:デフォルトエントリを追加し、インターネットの多数のネットワークへの膨大なルーティングエントリを置き換えます。
特定ホストルーティング#
08m44s
特定のサブネット領域のルーターのポートを次のホップとして手動で追加し、特定のネットワークのアドレスを目的ネットワークとして手動で追加します。
ルーティング選択の分類#
ある自律システム内で、使用される具体的な内部ゲートウェイプロトコルと外部ゲートウェイプロトコルは関係ありません。
- 自律システム間(ここでは AS1 と AS2 と呼ばれる)をドメイン間ルーティング選択と呼びます。自律システム内部、例えば AS1 自身の内部はドメイン内ルーティング選択と呼びます。
- ドメイン間ルーティング:外部ゲートウェイプロトコルEGP(External Gateway Protocol)というカテゴリのルーティング選択プロトコルを選択します。例えば BGP4。
- ドメイン内ルーティング:内部ゲートウェイプロトコルIGP(Interior Gateway Protocol)というカテゴリのルーティング選択プロトコルを選択します。例えば RIP。
- 外部ゲートウェイプロトコル EGP と内部ゲートウェイプロトコル IGP は、ルーティング選択プロトコルの分類名であり、具体的なルーティング選択プロトコルではありません。
- 外部ゲートウェイプロトコルと内部ゲートウェイプロトコルの名称には「ゲートウェイ」という用語が使用されています。これは、インターネットの初期の RFC 文書では「ルーター」ではなく「ゲートウェイ」という用語が使用されていたためです。
- 送信元ホストと宛先ホストが異なる自律システムにある場合(これらの自律システムは異なる内部ゲートウェイプロトコルを使用している可能性があります)、データグラムが自律システムの境界に到達すると、ルーティング選択情報を別の自律システムに伝達するためのプロトコルが必要です。EGP。
- まず知っておくべきこと:RIP は UDP に基づいており、OSPF は IP に基づいており、BGP は TCP に基づいています。これらは TCP/IP プロトコルスタックで定義されたルーティングプロトコルであり、目的地への最短パスを発見し維持するために使用されます。
- 次に、特定のプロトコルがどの層に属するかを判断する方法:プロトコルの実装は、プロトコルが存在する層の次の層の機能に依存します。
TCP、UDP はトランスポート層のプロトコルです。IP はネットワーク層のプロトコルです。
(1):RIP は UDP を使用しているため(RIP はトランスポート層を使用しています)、==RIP はアプリケーション層のプロトコル == です。
(2):OSPF は IP を使用しているため(RIP はネットワーク層を使用しています)、==OSPF はネットワーク層のプロトコル == です。(一部の資料ではトランスポート層と見なされます)
(例えば、大学院入試のシラバスでは、OSPF プロトコルは UDP データグラムを使用して送信せず、直接 IP データグラムを送信するため、OSPF はネットワーク層プロトコルに分類されるとされています。この点は大学院入試の受験者がシラバスを基準にする必要があります)。
(3):BGP は TCP を使用しているため(RIP はトランスポート層を使用しています)、BGP はアプリケーション層のプロトコルです。
ルーティング情報プロトコル RIP - アプリケーション層で動作し、ネットワーク層の問題を解決するプロトコル#
ルーティング情報プロトコル RIP の関連基本概念
- ルーティング情報プロトコル(Routing Information Protocol, RIP)
- RIP は自律システム AS内の各ルーターが自分自身から AS 内の各ネットワークへの距離記録(距離ベクトル Distance-Vector, D-V)を維持することを要求します。
- RIP はホップ数を使用して目的ネットワークへの距離を測定します。
- ルーターから直接接続されたネットワークへの距離は 1 と定義されます。
- ルーターから非直接接続されたネットワークへの距離は通過するルーターの数に 1 を加えたものと定義されます。
- 1 つのパスには最大 15 のルーターを含むことが許可されており、小型インターネットにのみ適用されます。
「+1」は目的ネットワークに到達した後、直接配信されるためであり、直接接続されたネットワークへの距離はすでに 1 と定義されています。
原理:#
原則 1:RIP はルーター数が最も少ないルートを選択します(遅くても少ないルートを選びます)。
原則 2:同じ目的ネットワークに到達する複数のルートが同じ距離である場合、等価負荷分散を行い、通信量を複数の等価なパスに均等に分配します(距離が等しい場合は複数の波で移動します)。
3 つの要素:#
- 誰と情報を交換するか - 隣接ルーターとのみ交換します。
- 何の情報を交換するか - ルーター自身のルーティングテーブル。
つまり、本ルーターから自律システム AS 内の各ネットワークへの最短 RIP 距離と、各ネットワークに到達するために通過すべき次のホップルーターです。
- いつ情報を交換するか - 定期的に交換します。つまり、固定の時間間隔でルーティング情報を交換します。
RIP の収束速度を速めるために、ネットワークトポロジが変化した場合、ルーターは隣接ルーターにトポロジ変化後のルーティング情報を即座に通知する必要があります。これをトリガー更新(変化があったら即座に更新し、固定の時間間隔を待つ必要はありません)と呼びます。
【基本的な作業プロセス】:
- ルーターが最初に動作を開始したとき、直接接続されたネットワークへの距離は 1であることを知っています。
- 各ルーターは隣接ルーターと定期的にルーティング情報を交換して更新します。
- 何度かの交換と更新の後、各ルーターは AS 内の各ネットワークへの最短距離と次のホップアドレスを知ることができ、これを収束と呼びます。(「収束」とは、自律システム内のすべてのノードが正しいルーティング選択情報を得るプロセスです。)
RIP の距離ベクトルルーティング選択アルゴリズムに基づいています。
各ノードは、隣接ノード間の直接リンク距離と、隣接ノードから交換された距離ベクトルに基づいて、各目的ノードへの最短距離を計算して更新し、新しい距離ベクトルをすべての隣接ノードに通知します。距離ベクトルが変わらなくなるまで。
アドレス X の隣接ルーターから送信された RIP メッセージに対して、まずこのメッセージ内のすべての項目を変更します:
「次のホップ」フィールド内のアドレスをすべて X に変更し、すべての「距離」フィールドの値に 1 を加えます(後の説明 1 を参照)。各項目には 3 つの重要なデータがあります:目的ネットワーク N、距離 d、次のホップルーター X です。
【RIP ルーティング更新ルール】:
- ルーター C が、ルーティングテーブル内の目的ネットワークへの次のホップをすべて「?」と記録している場合、C の RIP 更新メッセージ送信周期が到達したと仮定します。C は自分のルーティングテーブルの関連ルーティング情報を RIP 更新メッセージにカプセル化してルーター D に送信します。D は C のルーティングテーブルを改造し、更新理由と更新しない理由に従って更新します。
- 更新理由
- 新しいネットワークを発見した、追加します。
- 目的ネットワークに到達し、同じ次のホップ(つまり C を経由して転送される)で最新のメッセージ、更新する必要があります。
- 目的ネットワークに到達し、同じ次のホップ(つまり元のパスが C を経由しない)で新しいルートが優位である場合、更新する必要があります。
- 目的ネットワークに到達し、異なる次のホップ、RIP 距離が等しい場合、等価負荷分散、追加します。
- 更新しない理由
- 目的ネットワークに到達し、異なる次のホップ、新しいルートが劣位である場合、更新しません。
RIP には「悪いニュースが遅れて伝わる」という問題があります。
「悪いニュースが遅れて伝わる」(ルーティングループまたは RIP 距離無限カウント問題)
- これは距離ベクトルアルゴリズムの固有の問題です。(完全には解決できません)
- 以下の対策は、この問題の発生確率を減少させるか、またはこの問題がもたらす危害を軽減します:
- 最大 RIP 距離を 15 に制限します(16 は到達不可能を示します)。
- ルーティングテーブルが変化した場合はすぐにルーティング更新メッセージを送信します(つまり「トリガー更新」)し、定期的に送信するだけではありません。
- ルーターは特定のルーティング情報を受信したインターフェースを記録し、同じルーティング情報をこのインターフェースを通じて反対方向に送信しないようにします(つまり「水平分割」)。
5. RIP バージョンと関連メッセージのカプセル化
RIP は UDP プロトコルを使用して送信され(UDP ポート番号は 520)、UDP の上にあり、アプリケーション層に属します。
RIP のカプセル化形式:L2 ヘッダー + IP + UDP + RIP
6. RIP の利点と欠点
OSPF プロトコル - オープン最短パス優先プロトコル#
大規模な自律システム AS には OSPF を使用すべきです。
OSPF は RIP の問題を解決するために開発されました。オープン最短パス優先は単なる名前であり、他のルーティング選択プロトコルが最短パス優先でないことを示すものではありません。実際、各自律システム内の内部ゲートウェイプロトコル、例えば RIP も最短パスを探しています。
OSPF の基本的な特徴は
- リンク状態管理に基づいています。
- 最短パスアルゴリズム SPF を採用し、ルーティングループが発生しないことを保証します。
- OSPF はネットワーク規模を制限せず、更新効率が高く、収束速度が速いです。
- IP データグラム(プロトコル番号 89)を使用してカプセル化され、RIP は UDP カプセル化(アプリケーション層)を使用します。
- マルチポイントアクセスの OSPF では、BR と BDR を選出して隣接情報を維持します。
リンク状態#
OSPF は距離ベクトルに基づく RIP とは異なり、リンク状態に基づいています。
リンク状態とは、ルーターがどのルーターと隣接しているか、およびそれに対応するリンクのコスト(このコストは費用、距離、遅延、帯域幅を示します。ネットワーク管理者がこのパラメータを設定します)。
シスコルーターの OSPF プロトコルのコストは:$\displaystyle \frac {100Mb/s}{リンク帯域幅}$ です。計算結果が 1 未満の場合、カウントは 1 になります。1 を超える場合、小数を切り捨てて整数を保持します。
ヘルスチェックパケット#
OSPF はヘルスチェックパケットを使用して隣接ノードの情報を維持します。
ヘルスチェックパケットは IP データグラムにカプセル化され、マルチキャストアドレス 224.0.0.5 に送信されます。
224.0.0.5 は D クラスのマルチキャストアドレスです。
IP データグラムのヘッダー内のプロトコル番号フィールドの値は 89 で、IP データグラムのデータペイロードが OSPF パケットであることを示します。
IP データグラムはこのようになります。
ヘルスチェックパケットを送信することで、各ルーターは隣接テーブルを構築します。
ヘルスチェックパケットの送信周期は 10 秒です。
40 秒間隣接からのヘルスチェックパケットを受信しない場合、隣接ルーターは到達不可能と見なされます。
上の R1 を例に取ると、R4 とそのインターフェース 0 が接続され、インターフェース 1 が R2 ルーターに接続され、R4 と R2 からのヘルスチェックパケットを受信すると、判定タイマーがリセットされ、次回のヘルスチェックパケットを受信するまで続きます。
LSA リンク状態アナウンス#
OSPF 内のルーターはリンク状態アナウンス(LSA)を生成します。
LSA には以下の 2 種類のリンク状態情報が含まれます:
- 直接接続されたネットワークのリンク情報
- 隣接ルーターのリンク状態情報
LSU リンク状態更新#
LSA は LSU パケットにカプセル化され、== 信頼性のある == 洪水法 == で送信されます。
洪水法#
洪水法の要点は == ルーターがすべての隣接ルーターに ==LSU リンク状態更新パケットを送信することです。
このパケットを受け取った各ルーターは == そのパケットを自分のすべての隣接ルーターに転送します ==(ただし、上流のルーターを除く)、このようにしてドミノのように広がります。
信頼性のある洪水法は、LSU リンク状態更新パケットを受け取った後に確認を送信することを指します。重複した更新パケットは再度転送する必要はありませんが、確認は 1 回送信する必要があります。
LSDB リンク状態データベース#
各 OSPF ルーターは LSDB を維持し、LSA リンク状態アナウンスを格納します。
各ルーターが自分のリンク状態アナウンス LSA をカプセル化したリンク状態更新パケット LSU を洪水送信することにより、各ルーターのリンク状態データベース LSDB は最終的に一致します。
リンク状態データベースに基づく最短パス優先計算#
各ルーターが維持する LSDB に対して最短パス優先計算を行い、各自が他の各ルーターへの最短パスを構築し、各自のルーティングテーブルを構築します。
OSPF が維持する 5 種類のパケット#
- ヘルスチェックパケット
- LSDB
- LSR
- LSU
- LSA
OSPF の作業プロセス#
マルチポイントネットワーク内の OSPF ルーター#
洪水送信のヘルスチェックパケットとリンク状態更新パケットの数を減らすために、OSPF は以下の対策を採用します。
指定ルーター(Designated Router, DR)とバックアップ指定ルーター(Backup Designated Router, BDR)を選出します。
すべての非 DR/BDR は DR/BDR とのみ隣接関係を確立します。
非 DR/BDR は DR/BDR を通じて情報を交換します。
DR と BDR を選出した後、確立された隣接関係の数は $\displaystyle 2\times (n-1) + 1$ です。
OSPF の領域分割#
OSPF プロトコルが非常に大規模なネットワークで使用できるようにするために、OSPF は 1 つの自律システム AS をいくつかの小さな範囲、すなわち領域(area)に分割します。
各領域の規模は大きすぎないべきであり、一般的に含まれるルーターは 200 個を超えないべきです。
各領域には32 ビットの領域識別子があり、ドット分十進法で表現できます。
領域を分割する利点は、洪水法を使用してリンク状態情報を交換する範囲を各領域に制限できることです。これにより、ネットワーク全体の通信量が削減されます。
第 4 章 - ネットワーク層
バックボーン領域は他