イーサネットスイッチがパケットのMACアドレスを変更しない特別な理由はありますか?
MACアドレスなどを使用したエンドホストの識別用ですか?
イーサネットスイッチがパケットのMACアドレスを変更しない特別な理由はありますか?
MACアドレスなどを使用したエンドホストの識別用ですか?
回答:
スイッチがMACアドレスを変更すると、ネットワークが完全に切断されます。
MACアドレスは、ローカルネットワーク上のホストによって使用される一意の識別子です。
スイッチが宛先MACを変更する場合、フレームは適切なホストに配信されません。たとえば、フレームがフラッディングされた場合、宛先ホストは宛先がホスト宛ではなくなるため、フレームをドロップします。
スイッチが送信元MACアドレスを変更する場合、宛先ホストはこのMACアドレスを応答に使用します(不良データのあるARPエントリの更新を含む)。これは、すべてのリターントラフィックについてだけ、すでに説明したのと同じ状況になります。
これにより、802.1XやMACアドレスを使用してデバイスを識別/分類するその他のメカニズムなどの問題がさらに発生する可能性があります。
これを行うためのメカニズムを開発できますか?きっとできると思います。しかし、現時点でそうする理由はなく、これはネットワーキングを複雑にし、不必要な処理を追加するだけです。利用可能なMACアドレスプールを使い果たすにはほど遠いので、MATなどの必要はありません(MACアドレス変換の概念がどこにでもあるかどうかわからないので、用語を作成しただけでしょうか?)。
データグラムのアドレスの書き換えはレイヤー3で発生します。たとえば、NATを実行しているゲートウェイ(ルーターまたはファイアウォール)が内部ネットワーク上のホストのIPアドレスを書き換えて、すべてがゲートウェイ自体の1つ(またはいくつか)の外部IPアドレスから表示される場合です。
上記のコメントで述べたように、レイヤー2レベル(MACアドレスを使用してホストとスイッチがデータグラムの移動(フレーム)を区別する)で同様のことが起こらない理由は、実際には必要ないということです。
NATのレイヤー3の場合、NATは多くの問題を解決します。
したがって、NATの例をそのまま使用する場合、NATのレイヤー2の対応物は実際には必要ありません。
これにより、スイッチがMACアドレスを書き換えない理由が明らかになることを願っています。頭の上から思いついた唯一のレイヤー3ケースはNATでしたが、IPの書き換えが保証されている他のレイヤー3ケースの例を他のケースで確実に提供できます(そしてこれらのテクノロジーがレイヤー2レベルで実際に意味をなさない理由) 。
MACアドレスを書き換えると、かなり複雑になります(スイッチはarpなどの上位レベルのプロトコルを認識しなければならないため、アドレス解決を書き換えることができます)、トラブルシューティングが困難になり、STPなどのプロトコルが機能しなくなり、通常はPITAになります。また、通常は必要ありません。
それは不可能だと言っているわけではありません。ebtables(iptablesのレイヤー2対応)には、MACアドレス変換のオプションがいくつかあります。これは、VLANごとのMACテーブルを使用しないスイッチがあり、レイヤ2フィルタリングを実行したい場合に役立ちます。