私はどのVLANに属していますか?

私はどのVLANに属していますか?

私の質問:私がどのVLANにいるかを調べる方法はありますか? tcpdumpはこれを表示できますか?それとも、通常のスイッチが私に話すように強制できますか?

答え1

通常のスイッチが何を意味するのかわかりませんが、ほとんどのスイッチでは、「アクセス」ポートに接続するときにどのVLANに存在するかを確認する方法はありません。

つまり、CDP(Cisco)およびLLDP(Juniper)プロトコルを使用して、次のことができます。できる現在どのVLANに属しているかをご覧ください。アクセスポートでCDP / LLDPを有効にすると、セキュリティ上のリスク(情報漏洩)が発生する可能性があるため、ネットワークで有効にできない可能性があります。 tcpdumpを使用してCDP / LLDPパケットを分解してVLAN番号を見つけることができます。

Cisco CDP の場合:

sudo tcpdump -nn -v -i eth0 -s 1500 -c 1 'ether[20:2] == 0x2000' 

ジュニパーLLDPの場合:

sudo tcpdump -nn -v -i eth0 -s 1500 -c 1 '(ether[12:2]=0x88cc or ether[20:2]=0x2000)'

答え2

従来、クライアントコンピュータでは、自分がどのVLANにあるのかはわかりませんでした。 IPアドレスとサブネットマスクを表示して、IPがどのサブネットにあるかを確認できますが、VLANは確認できません。しかし、ワイヤーシャーク WikiVLAN タグのキャプチャに関するいくつかの興味深い情報があります。

VLANからキャプチャするとき、パケットにVLANタグが必ずしも表示されるわけではありません。

たとえば、少なくとも一部のオペレーティングシステムでは、キャプチャできる複数のネットワークインターフェイスデバイス(物理ネットワークアダプタに対応する「rawインターフェイス」とトラフィックが発生する「VLANインターフェイス」)があります。 VLANタグが削除されました。オペレーティングシステムのネットワークスタックはVLANインターフェイスに接続され、インターフェイスは通常のMTUより小さいイーサネットインターフェイスとしてネットワークスタックに表示され、VLANタグ用のスペースを解放します。これらのオペレーティングシステムで「de-VLANized」パケットではなくネイティブイーサネットパケットを表示するには、VLANの仮想インターフェイスではなく物理ネットワークデバイスに対応するインターフェイス(可能な場合)からキャプチャする必要があります。

さまざまなオペレーティングシステムでVLANタグをキャプチャする方法の詳細は、次のとおりです。オペレーティングシステムまたはネットワークアダプタドライバがVLANタグキャプチャを許可しない場合は、VLANスイッチでポートミラーリング(またはシスコが呼び出す「ポートスパニング」)を設定し、ラップトップなどのスタンドアロンシステムをミラーリングポートに接続し、このポートへのインターフェイスは VLAN メンバーとして構成されているため、接続しないでください。スタンドアロンシステムが実行されているオペレーティングシステムまたは使用しているネットワークアダプタの種類に関係なく、VLANタグは確実に表示されます。

Linux

VLANタグ付けを有効にするには、vlan rpm(例:vlan-1.8-23)と8021qカーネルモジュールの2つが必要です。インストール後、vconfigコマンドを使用して既存の物理デバイスにVLANインターフェイスを作成できます。詳細については、vconfig(8) のマニュアルページを参照してください。

VLAN インターフェイスが確立され、トラフィック フローが開始されたら、Wireshark を実行し、必要な VLAN インターフェイス (たとえば、VLAN 100 の場合は eth0.100) またはプライマリ物理インターフェイス (たとえば eth0) でキャプチャできます。電子を選択するとそのVLANに向かうフレームのみが表示され、電子を選択するとそのVLANに向かうフレームのみが表示されます。後者を選択すると、すべてのフレームが表示されるか、タグ付けされていないフレーム(存在する場合)のみが表示されます。これは、NIC、NICファームウェア、ドライバ、月と惑星の並べ替えによって異なります。 (さまざまなアダプタ、ファームウェアバージョン、およびドライバの動作を一覧表示するテーブルが役に立ちます。 -Guy Harris)

VLANが設定されたホストシステムでキャプチャされている場合、物理デバイスでキャプチャしてもキャプチャされたフレームにVLANタグが表示されないことがあります。ドライバは、pcapライブラリがタグを表示する前にタグを削除します。以下のWindowsセクションに記載されているIntelテクニカルノートを参照してください。 (Linuxドライバはドライバ設定オプションまたはIntel Windowsドライバと同様の機能を使用してVLANタグのインポートをサポートしていますか? - Guy Harris)(e100ドライバは2.4.26で動作します - Jaap Keuter)

Windows

WindowsにはVLANの基本的なサポートはありません。これらのサポートを追加する専用ドライバがない場合は、キャプチャできる別の物理インターフェイスとVLANインターフェイスはありません。

したがって、WiresharkにVLANタグが表示されるかどうかは、保持しているネットワークアダプタとそのドライバがVLANタグを処理する方法によって異なります。

ほとんどの「シンプルな」ネットワークアダプタ(たとえば、広く使用されているRealtek RTL 8139)とそのドライバは、VLANタグを上位層に渡すだけでこれらの問題を処理します。この場合、WiresharkはVLANタグを確認し、それを処理して表示できます。

より洗練されたアダプターは、アダプターおよび/またはドライバーでVLANタグ付けを処理します。これには、いくつかのIntelアダプタと私が知っている限り、Broadcomギガビットチップセット(NetXtreme / 57XXベースのチップ)が含まれます。さらに、特別なドライバーを持つカードも、「実際の」ドライバーの干渉を防ぐためにこのパスに従うことができます。

答え3

おそらく、lddpdパッケージは最良の解決策でしょう。

lldpctl

lldpdの欠点は、ハードコーディングされたMACアドレスを使用してARP要求を送信することです。同じスイッチの複数のコンピュータにインストールすると、「mac スプーフィング」シナリオが発生します。これらのパケットの処理には独自のオーバーヘッドがあり、スイッチのCPUが膨らみ始めます。

答え4

ifconfig -aこれを実行すると、デバイスは[VLAN]タブで表示されると思います。私が理解したのは、VLAN IDはインターフェイス名のサフィックス部分です。

たとえば、システムにイーサネットデバイスが含まれている場合、eth0このインターフェイスを介して接続されているすべてのVLAN IDには、その背後にVLAN IDを付けた対応するサフィックスが続きますeth0.192。次のタイトルの参考資料を参照してください。9.2.6。 802.1q VLAN タグの設定より多くの情報と例をご覧ください。

tcpdumpパケットに802.1q VLANタグが含まれていると仮定して使用すると、次のことができます。

$ tcpdump -s0 -nnpi eth0 vlan 100

ここで、100 は VLAN ID です。

メモ:tcpdumpリソースセクションの2番目のリンクには、802.1Qを使用してホームネットワーク設定の設定と調査を示す完全な例があります。

引用する

関連情報