レイヤ 3 スイッチングをサポートしているシスコ デバイスは、シスコ エクスプレス フォワーディング(Cisco Express Forwarding; CEF)を利用します。 この転送方式は非常に複雑ですが、幸いなことに、どのような優良テクノロジーとも同じように、大部分は「バックグラウンド」で実行されます。 通常、シスコ デバイスで必要な CEF の設定はほとんどありません。
基本的に、CEF ではレイヤ 2 とレイヤ 3 の意思決定間によくある厳格な相互依存性を解消します。 IP パケットの転送を遅くしているのは、ネットワーク デバイス内のレイヤ 2 およびレイヤ 3 構造間で絶えず繰り返される参照の動作です。 そのため、レイヤ 2 およびレイヤ 3 のデータ構造を分離できれば、それだけ転送は高速化されます。
CEF の動作を構成する主な要素は次の 2 つです。
- 転送情報ベース(Forwarding Information Base; FIB)
- 隣接関係テーブル
FIB は概念的にルーティング テーブルによく似ています。 ルータは、ルーティング テーブルを使用して、宛先ネットワークへの最適なパスを宛先 IP アドレスのネットワーク部に基づいて決定します。 CEF を利用した場合は、それまでにルート キャッシュに格納された情報が CEF スイッチング用のいくつかのデータ構造に格納されます。 こうしたデータ構造により、効率的なパケット転送のための最適な参照が実現されます。 ネットワーク デバイスは、FIB ルックアップ テーブルを使用して宛先ベースのスイッチングに関する判断を行うので、ルート キャッシュにアクセスする必要がありません。
FIB は、ネットワーク内に変化が生じると更新され、その時点でわかっているすべてのルートを格納しています。
隣接関係テーブルは、レイヤ 2 のネクストホップ アドレスをすべての FIB エントリについて保持します。
到達可能性情報(FIB 内)と転送情報(隣接関係テーブル内)を分離することには、いくつかの利点があります。
- 隣接関係テーブルと FIB テーブルを別々に構築できます。どちらのテーブルも、パケットのプロセス交換なしに構築できます。
- パケットの転送で使用される MAC ヘッダーの書き換えはキャッシュ エントリに保存されないので、MAC ヘッダー書き換え文字列を変更してもキャッシュ エントリを無効にする必要がありません。
CEF は、レイヤ 3 スイッチングを実行するほとんどのシスコ デバイスではデフォルトで有効になっています。