「ネットワーク・カード ― 非イーサネットでつかえるもの,つかえないもの」 にも書いたように,最近,Linux と Ethernet の NIC などをつかって Ethernet でない (IP でもない -- 非 IP) プロトコルで通信する実験をしている. きょうは,Ethernet のハブやスイッチがつかえるかどうかをためしてみた.
予想としてはスイッチはまったくつかえないが,ハブならある程度つかえるのではないかということだった. いわゆるダムハブなら Ethernet のフィールドをみていないので,つかえるはずだ. しかし,現在のハブは 「スイッチング・ハブ」 であって,おなじリンク速度たとえば 100 Mbps でつかっても,スイッチにちかい動作をする. なので,つかえるとはいいきれない.
実験してみた結果は,どちらもほとんどつかえないという結論だった. Ethernet だと最初の 6 バイトに受信者 MAC アドレス,つぎの 6 バイトに送信者 MAC アドレスがはいる. ここにおなじビットパターンをいれてみる. つまり,自分自身に送信するパターンである. 非 Ethernet パケットについては,これはまったく問題ないパターンである. にもかかわらず,スイッチもハブもこのパケットをほとんどとおさない.
スイッチのばあいは,最初からまったくとおさなかった. これは,スイッチはパケットを 1 個受信したところでアドレスを学習するから,当然のことだろう. パケットを受信したポートに受信者のアドレスがあるのだから,ほかのポートには転送しない.
スイッチング・ハブのばあいは,ものによって多少ふるまいがちがっていたが,他のポートへはおおくても 1 個しかパケットをとおさなかった. ハブに 3 個の PC をつないだが,そのうち 1 個からパケットをおくると,のこりの 2 個のうちの 1 個または 2 個にパケットを転送するが,あとは転送をとめてしまった. ためしたハブは Buffalo LSW10/100-8N, Corega FSW-16A, Logitec LAN-SW03LWH の 3 個である.
ただし,このようにパケットを Ethernet プロトコルによって解釈したときに送信者と受信者のアドレスが一致したり,学習結果がまちがって転送につかわれる可能性は実際にはひくい. 通常は学習ができず,スイッチもスイッチング・ハブもダムハブとして機能する. したがって,通常はパケットがただしくとどくことがおおい.
とはいえ,いつ不正な転送がおこるかはわからない. というわけで,市販のスイッチはもちろん,スイッチング・ハブも非 Ethernet パケットを転送するのにはまったくつかえないことがわかった. こんな実験をすることになるのなら,10Base のダムハブを買っておけばよかった. いまやそんなものは,ふつうの場所では売っていない.