
VLAN タグ付けについて質問があります。私はVLANに初めて触れたので、単に何かを誤解しているのかもしれません。
/etc/network/interfaces
デフォルトでは、次のようにLinuxボックスを設定しました。
allow-hotplug eth0
iface eth0 inet static
address 192.168.70.31
netmask 255.255.255.0
allow-hotplug eth0.0001
iface eth0.0001 inet static
address 192.168.1.31
netmask 255.255.255.0
ルーティングテーブルを調整しましたが、(ip r
コマンド出力)は次のようになります。
192.168.1.0/24 dev eth0.0001 proto kernel scope link src 192.168.1.31
192.168.70.0/24 dev eth0 proto kernel scope link src 192.168.70.31
VLAN ID 1(テストでは192.168.1.30)でタグ付けされた他のホストをpingしている間にWiresharkを使用してパケットを監視すると、ホストが冗長パケットを送信することがわかります。そしてVLAN IDとは異なるID(同じ192.168.1.31インターフェイスで!)を修正してください。いいえVLANタグ。以下のスクリーンショットに示すように、他のホストは正しいVLANタグを持っているかどうか2つのパケットで応答します。
問題は、ホストがなぜ冗長パケットを送信するのかです。 192.168.1.xネットワーク上の他のホストにpingを実行すると、単に問題が発生してはいけません。一つ正しいVLANタグを持つパケット(1
私の場合)?
答え1
ただ一つ物理インターフェイス:eth0
物理インターフェイス(ここではeth0.0001
)に接続されているすべての仮想インターフェイスは、トラフィックが物理インターフェイスを介して送信されるまで仮想ビューにカプセル化されたトラフィックを表示します。
ネットワークスタックは、これらのトラフィックがコンピュータを離れて最終インターフェイスに到達するまで、各インターフェイスを通過します。各ステップを個別にキャプチャできるため、同じペイロードを複数回キャプチャできますが、カプセル化プロパティは異なります。
したがって、Wiresharkを使用すると、何が起こっているのかを非常に単純化したビューで確認できます。
VLAN インターフェイスは VLAN フレームのペイロードを表示するため、VLAN は表示されません。
この仮想インターフェイスは、IP LAN 192.168.1.0/24 ルーティングに参加する仮想インターフェイスです。 IPパケットは外部に送信され、それ自体が(通常の)イーサネットフレーム内にカプセル化される。 (以前はARPトラフィックも発生しましたが、キャプチャされませんでした。)フレームはWiresharkによってキャプチャされ、VLANインターフェイスを処理するネットワーク部分に送信されます。
インターフェース
eth0
表示カプセル化ロードするので、VLAN ID 1 が表示されます。古いイーサネットフレーム
eth0.0001
が到着すると、追加のVLANタグ(フレームに4バイトを追加)でカプセル化され、eth0
NICドライバが実際のNICハードウェアに提供される前にWiresharkによって再キャプチャされますが、同じではありません。
Wireshark(tcpdump
これは非常に単純な場合でも機能します)は、最初の層で停止するのではなく、アドレスとIPプロトコル(ICMP)を使用したIPv4デコードを示しています。
答え2
わかりました。 ABさんのコメントありがとうございます。おかげで正しい道に入った...
キャプチャ中みんなWiresharkのインターフェイスなので、rawデバイス(eth0)と仮想デバイス(eth0.0001)のパケットがキャプチャに表示されます。
したがって、デフォルトでパケットを192.168.1.xに送信すると、仮想インターフェイスeth0.0001(VLANタグなし)でルーティングされます。仮想インターフェイスはVLANタグを追加し、それを「元の」インターフェイス(私の場合)実際に有線で送信する場合...から一つ)。
修正する:@ABは数分後に自分の答えを投稿しましたが、これは私よりもトピックをよりよく説明しています...