別の VLAN 上のマシンからのユニキャスト パケットが表示されるのはなぜですか?

別の VLAN 上のマシンからのユニキャスト パケットが表示されるのはなぜですか?

私は (まだ) レベル 3 スイッチ (Netgear GS516TP) で VLAN を適切に構成しようとしています。

基本シナリオ: 3 つの VLAN (VLAN 10、11、12) があり、それぞれ 3 つのポートと 3 台のマシンがあります。

  • 10.0.10.5、ポート g10 に接続され、VLAN 10 に属します。
  • 10.0.11.5、ポート g11 に接続され、VLAN 11 に属します。
  • 10.0.12.5、ポート g12 に接続され、VLAN 12 に属します。

ここに画像の説明を入力してください

VLAN 10 にはタグなしポート g10、g11、g12 があります。

ここに画像の説明を入力してください

VLAN 11 にはタグなしポート g10 と g11 があります。同様に、VLAN 12 にはタグなしポート g10 と g12 があります。

ここに画像の説明を入力してください

目標は、VLAN 11 および VLAN 12 に属するマシンが VLAN 10 内のマシンと通信できるようにすることです。ただし、VLAN 11 のマシンは VLAN 12 内のマシンについて何も認識してはなりません (逆の場合も同様です)。

3 台のマシンすべてがネットマスク 255.255.0.0 を使用していますが、ルーティング構成は次のように設定されています。

ここに画像の説明を入力してください

さて、問題です。TCP または UDP パケットを 10.0.10.5 から 10.0.11.5 に送信すると (たとえば、 を実行してnc -n 10.0.11.5 100)、VLAN 12 に属するマシンで実行されている Wireshark でこのパケットを確認できます。ただし、逆の場合は機能しません。つまり、10.0.11.5 から送信されたパケットは VLAN 12 では確認できません。

VLAN 11 のマシンをターゲットとするパケットが VLAN 12 に属するポートに到達しないようにするには、どうすればよいでしょうか?

答え1

デフォルトでは、各ポートはパケットの処理方法を決定するために L2 情報のみを使用します (L2 == MAC == ブリッジ)。この決定は L3 を尊重せず、つまり VLAN の IP 範囲を認識しません。

VLAN のルーティングを有効にし、着信ユニキャスト パケットの MAC DA [宛先アドレス] が内部ブリッジ ルータ インターフェイスのものである場合、パケットはルーティングされます。

VLAN に割り当てた IP アドレス (最後のスクリーンショットに表示) は、それ自体ではパケットを「キャッチ」しません。実際にパケットをその「内部ブリッジ ルータ インターフェイス」に送信するようにサーバーを設定する必要があります。通常、これはサーバーにルート テーブル エントリを追加することによって行われます。

(on 10.0.10.5):
10.0.11.0/24 dev eth0 via 10.0.10.1

その「内部ブリッジ ルータ インターフェイス」宛てのパケットのみが別の VLAN に移動します。

私の例では、手順は次のとおりです。

  1. 10.0.10.5ではping 10.0.11.5
  2. サーバーは「10.0.10.1を持っているのは誰か」と尋ねます
  3. スイッチは「MAC 10:da:12:34 には 10.0.10.1 があります」と言います
  4. サーバーはパケットを送信します SOURCE 10.0.10.5 DEST 10.0.11.5 MAC_DEST 10:da:12:34
  5. スイッチはそのようなMAC_DESTを見て、そのパケットに割り当てられたVLANを変更することを決定する。
  6. スイッチはMAC_DESTを10.0.11.5のものに変更します。

(これは、イーサネット上のパケット転送の仕組みと同じであり、Netgear に固有のものではありません。)

おそらく、ポートを複数の VLAN に配置する必要はありません (実際には確認していません)。

また、設定ルーティング -> IP -> ルーティングモード=はい

Netgear サポート:VLANルーティングとは

答え2

そのようにすることはできません。特別な VLAN 機能 (ポート分離など) が必要になるか、ルーターを使用して実行する必要があります。

ここで何が起きるかというと、パケット (つまり、イーサネット フレーム) がポートに入ると、そのポートの PVID から VLAN ID を取得します。次に、同じ VLAN にある他のポートから送信されます。(ただし、スイッチは、特定の VLAN の宛先 MAC のポートが保存されている場合、当然、特定のポートにのみパケットを転送します。すべてのポートが異なる VLAN にあるため、フレームの送信元の VLAN に宛先が見つからないため、転送されない可能性があります。)

つまり、ポート 10 経由でスイッチに送信されたすべてのデータはポート 11 と 12 に表示されますが、ポート 11 または 12 経由で送信されたデータはポート 10 にのみ送信されます。


ポート分離 / 保護されたポート / 類似の機能では、一部の特別なポートを除き、単一の VLAN 内でのフレームの転送がブロックされます。この種の機能を使用すると、すべてのポートを 1 つの VLAN に配置し、ポート 10 を特別なポートとしてマークして、ポート 11 と 12 との間でトラフィックを送受信できるようになります。ただし、この機能により、ポート 11 と 12 は互いに分離されます。


もう 1 つのオプションは、VLAN 11 と VLAN 12 の両方をタグ付き VLAN としてポート 10 のマシンに持ち込むことです。次に、そのマシンで、VLAN に個別の IP インターフェイスを作成し、両方と通信できるようにします。マシンにルーティングが設定されていないと、11 と 12 は相互に通信できません。もちろん、マシンは VLAN に対応している必要があります。

もちろん、Netgear 自体が VLAN 間のルーターとして機能できる場合は、それも機能します。各マシンに VLAN を設定し、ルーティングを調整し、11 と 12 の間にフィルタリング (ファイアウォール) を追加するだけです。

関連情報