転送情報ベース( FIB )は、転送テーブルまたはMAC (アドレス)テーブルとも呼ばれ、ネットワークブリッジング、ルーティング、および同様の機能で最も一般的に使用され、入力インターフェイスがパケットを転送する適切な出力ネットワークインターフェイスコントローラを見つけます。これは、MAC アドレスをポートにマッピングする動的なテーブルです。これは、ネットワークスイッチとイーサネットハブを区別する基本的なメカニズムです。コンテンツアドレス可能メモリ(CAM) は通常、FIB を効率的に実装するために使用されるため、 CAM テーブルと呼ばれることもあります。[ 1 ]
データリンク層において、FIBは主にMACアドレスに基づくイーサネットブリッジングを容易にするために使用されます。FIBを使用するその他のデータリンク層技術には、フレームリレー、非同期転送モード(ATM)、マルチプロトコルラベルスイッチング(MPLS)などがあります。
イーサネットスイッチの役割は、イーサネットフレームをあるポートから別のポートに転送することです。FIBの存在は、スイッチとハブを区別する属性の1つです。機能するFIBがない場合、ネットワークスイッチが受信したすべてのフレームは、イーサネットハブと同様に、他のすべてのポートにエコーバックされます。ポート間でパケットをブリッジする場合、スイッチは、宛先ネットワークデバイスが存在するポートでのみフレームを送信する必要があります(ユニキャスト)。ただし、フレームがスイッチ上のすべてのノード(ブロードキャスト)、複数のノード(マルチキャスト)、またはスイッチが宛先デバイスがどこにあるか分からない場合(ユニキャストフラッド)は除きます。
スイッチは、特定の送信元アドレスを最初に受信したポートを学習し、そのポートを当該アドレスに関連付けます。その後、ブリッジがFIBに宛先アドレスを含むフレームを受信すると、FIBエントリに格納されているポートからそのフレームを送信します。
FIBは、イーサネットスイッチがステーションのMACアドレスを、ステーションが接続されているスイッチポートにマッピングするために使用するメモリ構造です。これにより、スイッチは接続されたステーション間の高速通信を可能にします。
転送テーブルの具体的な仕組みは実装によって異なりますが、フレームリレーの一般的なモデルでは、スイッチはインターフェースごとに静的に定義された転送テーブルを持ちます。特定のデータリンク接続識別子(DLCI)を持つフレームが1つのインターフェースで受信されると、そのインターフェースに関連付けられたテーブルから送信インターフェースと、フレームのアドレスフィールドに挿入する新しいDLCIが取得されます。
ATM スイッチには、フレームリレーで使用されるものとよく似たリンクレベルの転送テーブルがあります。ただし、DLCI の代わりに、インターフェースには、仮想パス識別子(VPI) と仮想回線識別子(VCI) によって送信インターフェースを指定する転送テーブルがあります。これらのテーブルは静的に設定することも、プライベートネットワーク間インターフェース(PNNI) プロトコルによって配布することもできます。PNNI が使用されている場合、ネットワークのエッジにある ATM スイッチは、 NSAP アドレスなどの標準的な ATM エンドツーエンド識別子のいずれかをネクストホップの VPI/VCI にマッピングします。
MPLSは、転送レベルにおいてATMと多くの類似点があります。MPLSクラウドのエッジにあるラベルエッジルータは、IPアドレスなどのエンドツーエンド識別子とリンクローカルラベルをマッピングします。各MPLSホップには転送テーブルがあり、ラベルスイッチルータに対して、どの送信インターフェースでMPLSパケットを受信するか、そしてそのインターフェースからパケットを送信する際にどのラベルを使用するかを指示します。
IPアドレスなどのネットワーク層アドレスは、さまざまな種類のメディアで使用され、いずれの場合も同様に処理できます。
FIB は宛先アドレスの高速ルックアップに最適化されており、ルーティング情報ベース(RIB) を直接使用する場合と比較して転送のパフォーマンスを向上させることができます。RIB はルーティング プロトコルやその他の制御プレーン方式による効率的な更新に最適化されており、ルータが学習したルートの全セットが含まれています。以前の実装では、実際の転送で最も頻繁に使用されるルートのサブセットのみをキャッシュしていましたが、意味のある最も頻繁に使用されるサブセットが存在する企業では、これは十分に機能していました。しかし、インターネット全体にアクセスするために使用されるルータでは、小さな FIB にキャッシュされたルートの更新で深刻なパフォーマンス低下が発生したため、さまざまな実装で FIB と RIB を 1 対 1 で対応させるようになりました。[ 2 ]
FIBは、インターネットのベストプラクティス(BCP)であるイングレスフィルタリングにおいても役割を果たすことができます。イングレスフィルタリングの最も単純な形式は、アクセス制御リストを使用して不適切な送信元アドレスを持つパケットを破棄することですが、アクセスリストの使用は、多数の隣接ネットワークを持つルータでは困難になり、従来のアクセスリストは高性能ルータの転送パスでは使用されません。
IETF文書BCP 38(イングレスフィルタリングに関する文書) [ 3 ]では、送信元アドレスフィルタリングの実装方法は規定されていませんが、一部のルータベンダーは、ルータのテーブルで逆パス転送ルックアップを利用してこのチェックを実行するメカニズムを実装しています。これは多くの場合、パケットの送信元アドレスのFIBルックアップとして実装されます。インターフェイスに送信元アドレスへのルートがない場合、パケットは偽装された送信元アドレスを使用したサービス拒否攻撃の一部であるとみなされ、ルータはパケットを破棄します。
ルーターがマルチホームの場合、イングレスフィルタリングはより複雑になります。パケットが1つのインターフェースに到着しても、その特定のインターフェースには送信元アドレスへのルートがないという、十分に妥当な運用シナリオが存在します。インターネットのエッジに近いルーターの場合、パケットフィルタはルーティング情報ルックアップを使用する方法よりもシンプルで効果的なソリューションを提供できますが、このアプローチは、頻繁に再構成されるルーターを管理する際には困難になる可能性があります。マルチホームルーターのイングレスフィルタリングは、ルーター上のいずれかのインターフェースから送信元アドレスへのルートがあればパケットを受け入れます。このタイプのフィルタリングでは、ルーターは、直接接続されているすべてのルーターのルーターインターフェースアドレスを追跡する、高速ルックアップ用に構成された隣接テーブルも保持する場合があります。[ 4 ]
差別化サービスは、パケットの転送優先度と輻輳時に破棄されるパケットの優先順位を示すフィールドに基づいて、送信インターフェイスを選択する追加の方法を提供します。差別化サービスをサポートするルータは、宛先アドレスの出力インターフェイスを検索するだけでなく、差別化サービスの要件に最も適合するインターフェイスにパケットを送信する必要があります。つまり、FIBは宛先アドレスに一致するだけでなく、差別化サービスコードポイント(DSCP)にも一致する必要があります。[ 5 ]
ルーターの実装によっては、宛先アドレスやその他のFIB基準に一致した場合に、転送前に実行すべき別のアクション(アカウンティングや暗号化など)を指定したり、パケットが破棄される可能性のあるアクセス制御リストを適用したりする場合があります。
CAMテーブルは、中間者攻撃の標的となる可能性があります。イーサネットスイッチに接続されたデバイスを制御している攻撃者は、 MACフラッディングを使用してスイッチのCAMテーブルを攻撃できます。テーブルがいっぱいになると、他のトラフィックはブロードキャスト、不明なユニキャスト、マルチキャストトラフィックとして扱われ、すべてのポートに転送されるため、攻撃者がアクセスできるようになります。