ブリッジ(MACアドレスの学習)
目次
データリンク層で動作するって?
ブリッジはコリジョンドメインを分割することができますよ~というお話でした。それをどうやってやっているのか?実は、OSI参照モデルのデータリンク層で動作していることに関わっているということでしたね。
OSI参照モデルのデータリンク層で動作する。これが意味することは、「データリンク層レベルのヘッダを解釈することができる」ということです。OSI参照モデルでデータ送信のプロセスのときに、各階層のプロトルがヘッダをつけていっていましたね。イーサネットのネットワークでは、データリンク層のヘッダとして、イーサネットのヘッダがつくわけです。以前にも紹介しましたが、イーサネットのフォーマットは次の通りです。
「あて先MACアドレス」「送信元MACアドレス」「タイプ」までの14バイトがイーサネットヘッダです。
MACアドレステーブル
ブリッジはこのイーサネットヘッダを解釈して、自分のどのポートの先にどのコンピュータが接続されているのかということを学習していきます。まず、下のようなネットワークを考えます。コンピュータA、BのセグメントとコンピュータC、Dのセグメントをブリッジによって接続しています。また、A、B、C、Dは各コンピュータのMACアドレスを表しているものとします。
ブリッジはMACアドレステーブルを持っています(フィルタリングデータベースとも呼ばれます)。このMACアドレステーブルはブリッジの電源を入れた時点では、何も入っていません。
ここでコンピュータAからBになにかデータを送ったときを考えます。そうすると、あて先MACアドレスに”B”、送信元MACアドレスに”A”と指定されているフレームが送信されますね。このフレームはコンピュータBにもブリッジにも届きます。ブリッジはまだMACアドレステーブルに何もない段階では、そのままフレームを他のセグメントに転送します。そして、その際に送信元MACアドレスをみて、「コンピュータAはポート1につながっているんだなぁ」ということを覚えます。
次に、コンピュータDからコンピュータCに対してなにかデータを送ったとします。あて先MACアドレスに”C”、送信元MACアドレスに”D”というフレームがコンピュータC、ブリッジに届きます。まだブリッジのMACアドレステーブルが完全ではなく、あて先の登録がありません。このときは、フレームをそのまま他のポートに送信します。そして、先ほどと同じく送信元MACアドレスをみて「コンピュータDはポート2につながっているなぁ」と学習していきます。
最終的にMACアドレステーブルが次のようになるわけですね。
このMACアドレステーブルを使って、ブリッジはフレームを転送しなくてはいけないかどうかということを判断していきます。