
この質問は「トピック外」および「非専門家」としてフラグが付けられていることは承知していますが、ゲートウェイまたは IDS を作成する場合、これは非常に関連性がある可能性があります。また、Google では使用可能なものが見つかりません...
一般的なスイッチには、MAC テーブル (または CAM テーブル) と呼ばれるものがあります (この記事によると:https://en.wikipedia.org/wiki/CAM_Table)
スイッチが MAC アドレスへのルートを正確に認識していて、それをすべてのポートでアドバタイズしている場合 (論理的に思えます)...
- Linuxボックスを前提として、クエリを実行することは可能ですか?毎指定されたインターフェース上のネットワーク内の MAC アドレスですか?
答え1
私は通常インストールしますアルパレルトこの目的のためにシステム上にインストールします。これはデーモンで、libcap を使用してトラフィックを監視します。インターフェイスごとに MAC アドレスのデータベースを保持します。また、異常なタイプのイベントを監視して通知を送信することもできます。最後の使用状況を追跡し、再起動後もデータベースを保持します (ブリッジ インターフェイスを設定するだけの場合と比較して)。
答え2
公平に言えば、誰もが「arp -a」と言うのですが、この答えには満足していません。知られているMAC アドレス (および対応する IP)。
リストへ全てポートにアドレスを割り当てるには、現在のネットワーク設定を変更する必要があります。ここでは bridge-utils パッケージを使用しますが、他のブリッジ実装 (例: OpenvSwitch) でもこれを行うことができます。次の説明は Debian ベースのシステムで機能します。
- まず、bridge-utils パッケージをインストールする必要があります。
- ifdownで選択したポートをダウンに設定する
- MACアドレスをリストしたいポートにブリッジを作成します
ポートがeth0で、IPアドレスが動的であると仮定します。/etc/network/interfacesには次の内容が記述されているはずです。
allow-hotplug eth0
iface eth0 inet manual
auto br0
iface br0 inet dhcp
bridge-ports eth0
bridge_fd 0
bridge_stp off
これらの変更を適用するには、eth0 で ifup を実行してから br0 で ifup を実行するか、単に再起動します。
- これで、brctlを使用してポートを照会できるようになりました
完全な MAC テーブルがリストされます。
root@debian:~# brctl showmacs br0
出力は次のようになります。
port no mac addr is local? ageing timer
1 ab:cd:ef:01:02:03 no 1.72
1 ab:cd:ef:01:02:04 no 25.52
1 ab:cd:ef:01:02:05 no 2.64
1 ab:cd:ef:01:02:06 no 10.67
1 ab:cd:ef:01:02:07 yes 0.00