Ciscoスイッチングパス
目次
概要
スイッチングの仕組みについて記載する。
本記事で学べる事
- コントロールプレーンとデータプレーンについて
- 各種スイッチングの違い
スイッチングとは
パケットを着信インターフェースから発信インターフェースへ転送する機能をスイッチングと言います。
スイッチング方式はプロセススイッチング ⇒ ファストスイッチング ⇒ CEF(Cisco Express Forwading)の順で技術開発が進んでいき改善されてきました。
スイッチング方式 | 転送処理 | 説明 |
---|---|---|
プロセススイッチング | 低速 | パケット単位でCPU処理する方式 |
ファストスイッチング | 中速 | パケットのフロー単位でCPU処理して転送する方式 |
CEF | 高速 | 全てのパケットをハードウェア方式で転送する方式 |
※CEFはciscoではデフォルトで有効かされている。
コントロールプレーンとデータプレーン
スイッチングの詳細を学ぶ上で欠かせない知識としてコントロールプレーン(ソフトウェア処理)とデータプレーン(ハードウェア処理)について学んでいきます。
コントロールプレーン
ルーティングテーブル(RIB)やMACアドレステーブル、ARPテーブルの作成やルーティングプロトコルの通信制御をCPUやメモリを使用して処理を行う役割を担います。データプレーン
CPUやメモリを使用せず、ASICと呼ばれる専用の集積回路を使用し、L2、L3レイヤーでテーブル(キャッシュやFIB)から経路を検索し、宛先にデータを転送したり、ACLやQoSの処理を行う役割を担います。
※FIBについては後述のCEFで紹介します。
プロセススイッチングとファストスイッチング
プロセススイッチング
プロセススイッチングは、パケットを受信する度にルーティングテーブルやARPテーブルの検索(コントロールプレーンでの処理)を行い、パケットを転送します。都度、CPU処理を行うため、転送が遅く、CPUへの負荷が大きくなります。このプロセススイッチングはソフトウェアスイッチングとも呼ばれます。ファストスイッチング
ファストスイッチングは、最初の通信はプロセススイッチングと同様の動作を行いますが、パケット転送に必要な情報をキャッシュ(一時的に保存)します。
そのため、2回目以降の通信はキャッシュから検索(データプレーンでの処理)をすることにより、プロセススイッチングよりも速い転送を可能とします。
CEFとは
CEFとはcisco独自の技術です。
ファストスイッチングでは、1回目はプロセススイッチングを行い、結果をキャッシュすることで2回目以降の通信を高速転送することを可能にしていましたが、1回目の通信を大量に受信した場合、CPUへの負荷が大きく、転送速度が著しく低下してしまいます。
CEFでは、このプロセススイッチングを行わない仕組みを確立し、データプレーンだけでパケット転送を行うことで、高速転送を実現します。
CEFの仕組み
CEFでは、ルーティングテーブルからあらかじめ、FIB(Forwarding Information Base)というテーブルとARPテーブルから隣接テーブル(Adjacency Table)というテーブルを作成をデータプレーン上にしておきます。また、この2つのテーブルを紐づけておくことにより、FIBで宛先を検索すれば、L2ヘッダに必要な情報が判明するようになっており、検索が1回で完結するようにできています。
FIB
FIBとは、ルーティングテーブルを効率よく検索できる形に編集されたテーブルです。ルーティングテーブルやARPテーブルに変更が入った際は、自動的にこのテーブルも変更されます。
このテーブルには下記の情報が記載されています。
・prefix・・・宛先ネットワーク
・Nexthop・・・ネクストホップ
・interface・・・出力インターフェース隣接テーブル
このテーブルにはパケット転送の際にパケットに付与するL2レイヤヘッダの情報がそのまま格納されています。
あらかじめ、書き換える内容が用意されているため、パケット転送の際は、このテーブルの情報に置き換えるだけで済みます。
まとめ
スイッチングはCPU処理をさせるのか、ハードウェア処理をさせるかで転送速度が大きく変わります。
また、CEFについては、Ciscoの技術でよく出てくるワードでもあるため、その仕組みを理解する必要があります。