我知道这个问题被标记为“脱离主题”和“非专业”,但是在创build网关或IDS时,这可能是相当有意义的。 另外,谷歌发现没有用的…
在每个普通的交换机中都有一个叫MAC-table(或CAM-table)的东西(根据这篇文章: https : //en.wikipedia.org/wiki/CAM_Table )
如果交换机完全知道到MAC地址的路由,并在每个端口上广播它们(似乎是逻辑上的)…
为了这个目的,我通常在系统上安装arpalert 。 这是一个守护进程,使用libcap来观看stream量。 它保持每个接口的mac地址数据库。 它也可以观察一些不寻常的事件types并发送通知。 它跟踪最后一次使用情况,并将重新启动数据库(相比之下,build立一个桥接接口)。
公平的说,每个人都说“arp -a”,但是我不满意这个答案,因为它只显示已知的 MAC地址(及其对应的IP)。
要列出端口上的所有地址,您需要更改当前的networkingconfiguration。 我们将使用bridge-utils软件包,但是任何其他的桥接器实现(例如:OpenvSwitch)都可以做到这一点。 以下说明适用于基于Debian的系统:
假设端口是eth0,IP地址是dynamic的。 在/ 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,或者直接重新启动。
它将列出完整的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