私の質問:私がどのVLANにいるかを検出する方法はありますか? tcpdumpはこれを表示できますか?または、GENERALスイッチで強制的に発声できますか?
GENERALスイッチの意味がわかりませんが、ほとんどのスイッチでは、「アクセス」ポートに接続しているときにどの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)'
従来、クライアントコンピューターからは、どのVLANにいるかはわかりません。IPアドレスとサブネットマスクを見て、IPがどのサブネットにあるかを判別できますが、VLANは判別できません。ただし、 wireshark wiki には、ネットワークからVLANタグをキャプチャすることに関する興味深い情報があります。
VLANでキャプチャする場合、パケットにVLANタグが表示されるとは限りません。
たとえば、少なくとも一部のオペレーティングシステムでは、キャプチャできるネットワークインターフェースデバイスが複数ある場合があります-物理ネットワークアダプターに対応する「生のインターフェース」と、トラフィックが発生した「VLANインターフェース」 VLANタグが削除されました。 OSのネットワークスタックはVLANインターフェイスに接続され、そのインターフェイスは、ネットワークスタックからは、MTUが通常よりも小さいイーサネットインターフェイスであるように見えます(VLANの余地を残すため) _タグ)。これらのOSでは、「VLAN化されていない」パケットではなく、生のイーサネットパケットを表示するために、可能であれば、VLANの仮想インターフェイスではなく、物理ネットワークデバイスに対応するインターフェイスでキャプチャする必要があります。
以下は、さまざまなオペレーティングシステムでのVLANタグのキャプチャに関する詳細です。 OSまたはネットワークアダプタードライバーがVLANタグのキャプチャを許可しない場合は、VLANにポートミラーリング(またはシスコが呼び出す「ポートスパニング」)をセットアップします。ラップトップなどの独立したシステムをミラーポートに切り替えて接続し、そのポートに接続されているインターフェイスをVLANのメンバーとして構成しないでください。VLANタグが必ず表示されます、独立したシステムが実行しているOSや、使用しているネットワークアダプターのタイプに関係なく。
Linux
VLANタギングを有効にするには、vlan rpm(例:vlan-1.8-23)と8021qカーネルモジュールの2つが必要です。インストールしたら、vconfigコマンドを使用して、既存の物理デバイス上にVLANインターフェイスを作成できます。詳細については、vconfig(8)のマニュアルページを参照してください。
VLANインターフェースがセットアップされ、トラフィックが流れたら、Wiresharkを実行して、選択したVLANインターフェースでキャプチャできます(例:eth0.100 for VLAN 100)または基盤となる物理インターフェイス(eth0など)。前者を選択した場合、そのVLAN宛てのフレームのみが表示されます。後者を選択した場合は、すべてのフレームが表示されるか、タグなしフレーム(存在する場合)のみが表示されます。 NIC、NICファームウェア、ドライバー、および月と惑星の配置に依存します。 (さまざまなアダプター、ファームウェアバージョン、およびドライバーの動作を列挙した表が役立つ場合があります。-GuyHarris)
VLANが構成されているホストシステムでキャプチャしている場合、物理デバイスでキャプチャした場合でも、キャプチャされたフレームにVLANタグが表示されない可能性があります。ドライバーは、pcapライブラリーがタグを認識する前にタグを除去しています。以下のWindowsセクションで言及されているIntelのテクニカルノートを参照してください。 (LinuxドライバーはVLANタグの取得を、おそらくドライバー構成オプションまたはその他のオプションを使用して、Intel Windowsドライバーと同じ方法でサポートしますか?-Guy Harris)(e100ドライバーは2.4.26で正常に動作します- Jaap Keuter)
ウィンドウズ
Windowsには、VLANのサポート機能が組み込まれていません。このようなサポートを追加する特別なドライバーが存在しない限り、キャプチャできる物理インターフェイスとVLANは別々ではありません。
そのため、WiresharkにVLANタグが表示されるかどうかは、使用しているネットワークアダプターと、そのアダプターとそのドライバーがVLANタグをどのように処理するかによって異なります。
ほとんどの「シンプルな」ネットワークアダプター(たとえば、広く使用されているRealtek RTL 8139)とそれらのドライバーは、VLANタグを上位レイヤーに渡してこれらを処理します。その場合、WiresharkはVLANタグを参照し、それらを処理して表示できます。
より洗練されたアダプタは、アダプタおよび/またはドライバのVLANタグを処理します。これには、一部のIntelアダプタと、私の知る限り、Broadcomギガビットチップセット(NetXtreme/57XXベースのチップ)が含まれます。さらに、「実際の」ドライバーからの干渉を防ぐために、特殊なドライバーを持つカードもこのパスをたどる可能性があります。
lldpdパッケージがおそらく最良のソリューションです。
lldpctl
lldpdの欠点は、ハードコーディングされたMACアドレスを使用してARP要求を送信することです。同じスイッチ上の複数のマシンにインストールすると、「Macスプーフィング」シナリオのように見えます。このようなパケットの処理には独自のオーバーヘッドがあり、スイッチのCPUが急増し始めます。
_ifconfig -a
_を実行すると、VLANのタップであるデバイスが表示されると思います。私の理解から、VLAN IDはインターフェースの名前のサフィックス部分です。
たとえば、システムにイーサネットデバイス_eth0
_が含まれている場合、VLANこのインターフェースを介して関連付けられたIDには、それに続くVLANのIDに対応するサフィックスが付きます。たとえば、_eth0.192
_。次のタイトルの参考資料を参照してください: 9.2.6。802.1qのセットアップVLAN Tagging 追加情報と例については.
tcpdump
を使用し、パケットに802.1q VLANタグが含まれていると想定すると、次のことができます。
_$ tcpdump -s0 -nnpi eth0 vlan 100
_
ここで、100はVLAN IDです。
注:参照セクションの2番目のリンクには、802.1を使用したホームネットワークセットアップのtcpdump
を使用したセットアップと問い合わせを示す完全な例があります。 Q.
VLansはネットワークハードウェア(ルーターまたはレベル3スイッチ)で定義でき、クライアントからは見えません。スイッチまたはルーターを調べる必要があります。