入力されたパケットはFIB(SRAMやCAMに格納されている)を参照して
出先IFと出先ポートを決定するようですが(間違っていたら直してください)、
RIBがよく分かりません。
RIBとFIBの違いでググったら
http://www.j-tokkyo.com/2007/H04L/JP2007-096912.shtml
が出てきましたが、知りたいのは格納方法ではなく中身の違いです。
よろしくお願いします。
解り易く言うとこんな感じでしょうか。
【RIB】
RIBはBGPを通じて得られるルーティング情報などを扱い、
パケットが到達するまでの経路を処理し、ループなどが起こらないようにする。
RIBテーブルは通常DRAMに保持。
【FIB】
パケットをどこに転送すればよいかを扱うテーブル。
上記のRIBから作成される、高速で転送する為にツリー型のデータ構造。
FIBはDRAMよりも高速なSRAMかCAMに保持。
Ciscoを触っていて、RIBという表現をあまり耳にしない事もあり、
単純なIPルーティングテーブル(経路情報テーブル)で問題無いと考えています。
>>単純なIPルーティングテーブル(経路情報テーブル)
>とはIPプレフィックスと宛先情報のテーブルのことですか?
その認識で問題ありません。
BGPについては下記のサイトで掴んでみて下さい。
http://www.atmarkit.co.jp/fnetwork/rensai/iprt02/iprt01.html
>http://wiki.livedoor.jp/rai_no/d/BGP4
BGP4のテーブルは用途に合わせて、格納されている情報が違います。
簡単に言うと
名称 | 格納されている情報 |
---|---|
Adj-RIBs-In | 他のBGPスピーカから取得したルート |
Loc-RIB | 自身で使うローカルポリシーのルート |
Adj-RIBs-Out | 他のBGPスピーカへ伝達するルート |
となります。
Ciscoのサイトを見るとRIBは「ルーティング情報ベース」とそのまま記載されていますね。
前レスの通り、FIBはこのルーティング情報ベースをツリー型で効率化したものです。
Cisco製品の場合、FIBとARP情報をまとめたものを「CEFテーブル」と呼んでおり、
このテーブルを対向機器とやり取りするようです。
この資料の図3を見てください。
http://www.cisco.com/web/JP/product/hs/switches/cat6500/prodlit/...
Cisco Catalyst 6500 のルーティング情報の扱い方に関するブロック図が掲載されています。
forwarding infrmatin base
一般的なMPLSではIEEE802.3(ethernet)フレーム上のmac address,tag情報を手がかりに転送先を決めます。
パケットの転送に取りこぼしは許されないため、転送先情報はハードウェアから直接参照されるようになっています。
router information base,ルーティング情報ペース
一般的にはIPにおける経路情報のことを差していると考えてかまいません。
経路制御プロトコルにはいろいろあり、それらの情報を全部ハードウェアで直接参照するのは大変なため、いったんRIBにまとめておきハードウェアに解釈しやすい形に変換してFIBに書き出しておく、と考えておくといいでしょう。
BGPは経路制御プロトコルのひとつです。インターネットサービスプロバイダ間で経路情報をやりとりするために使われています。
一般的な経路制御プロトコルを扱うプロセスのほか、図3にある「IS-ISプロセス」と呼ばれるCisco のIntermediate System-to-Intermediate Systemにて使われているプロトコルをあつかうプロセスがのっています。
理解できなくて再質問させて頂きます。
>単純なIPルーティングテーブル(経路情報テーブル)
とはIPプレフィックスと宛先情報のテーブルのことですか?
その後自分で調べたのですが、
http://wiki.livedoor.jp/rai_no/d/BGP4
の「テーブル/DB」に
BGPスピーカが経路を学習する際通るテーブル 以下の三つで構成(以下略)
と記述があります。BGPに詳しくないのでもし分かったら教えて下さい。
ちなみにCisco RIBとググると色々出てきますが、残念ながら分かりませんでした。