同じMACアドレスを持つ機器をスイッチに接続してみた

つい最近、とんでもない経験をしました。

某社のブロードバンドルータ(以降 BB ルータ)2 台を使って、
ネットワーク検証を実施したいたのですが、
どうにもうまいこと通信が出来ない。

色々と切り分けを行った結果、なんと BB ルータ 2 台の MAC アドレスが
まったく同じであることが発覚。。。

MAC アドレスは世界で一意の値であることは、半ば当然のことだと
思い込んでいただけに、さすがにこれは驚きました。

当然、メーカにクレームを出すのですが、せっかくなので
同じ MAC アドレスの機器をスイッチに接続してみると
どうなるのかを確認してみました。

 

そもそもスイッチのしくみについて

実際に実験を始める前に、スイッチの動作についておさらいしておこう。

スイッチは、L2(レイヤ 2)スイッチとも呼ばれていて、
受信したフレームの先頭にあるイーサネット・ヘッダにある
宛先 MAC アドレスをチェックして、その MAC アドレスが
接続されているポートにだけフレームを転送します。

ハブのように、フレームを受信したポート以外の全ポートに
フレームを転送するなんてことはしないため、
ネットワーク上に余計なフレームが流れないのが特徴。

PC を 3 台接続した環境で、MAC アドレス学習のやり取りを
見てみましょう。
まず、まったく通信をしていない状態だと、スイッチは
すべての MAC アドレスを学習していませんので、
MAC アドレステーブルも空っぽです。

 

MACアドレステーブル

 

PC-A から PC-B へ通信を行うと、スイッチは
宛先 MAC アドレスが PC-B のフレームを受信します。
スイッチは宛先 MAC アドレスと自身の MAC アドレステーブルを
比較し、その MAC アドレスがどのポートにあるのかをチェックします。

しかし、MAC アドレステーブルは空っぽですので、
受信したフレームは受信したポート以外の全ポートへ転送します。

スイッチはこの時に、送信元 MAC アドレスとフレームを
受信したポート番号の組み合わせを MAC アドレステーブルに登録します。

 

MACアドレス

 

先ほどのフレームを受信した PC-B が PC-A
へフレームを返信したとします。
そのフレームを受信したスイッチは、宛先 MAC アドレスを参照し、
自身の MAC アドレステーブルをチェックします。
MAC アドレステーブルには、PC-A のテーブルがあるため、
該当のポートにのみフレームを転送します。

そして、送信元である PC-B の MAC アドレスと、
受信したポート番号の組み合わせを MAC アドレステーブルへと登録します。

 

MACアドレステーブル

 

スイッチはこのようにして、MAC アドレスの学習を繰り返して、
効率良く通信を行っています。

さて、スイッチの動作を理解したところで、
早速同じ MAC アドレスを持つ 2 台の機器をスイッチに接続して検証してみましょう。

構成は以下のように接続してみました。

 

スイッチ

 

次回はこの構成で実際に検証してみます。

関連記事