我有一个计算机与2个桥接的NICS,我需要一种方法来区分连接到eth1连接到eth1机器的机器。
我希望能使用类似“arp -a”命令的东西。 但是,当NICS桥接时,arp表总是空的。 我相信这是正确的,因为第2.1.1节。 地址parsing协议的概述[ http://linux-ip.net/html/ether-arp.html]提到,“ 由于交换机,集线器和网桥等networking硬件在以太网帧上运行,因此他们不知道更高这些帧携带的层数据“ 。
有谁知道其他工具,我可以使用哪些将维护一个特定的网卡上的ARP表,即使在网桥已桥接?
您不会以这种方式获取IP地址,但是您可以看到桥接了哪些MAC:
# brctl showmacs br0 port no mac addr is local? ageing timer 1 00:16:3e:aa:bb:cc no 3.02 1 00:16:3e:ab:bb:cc no 30.37 1 00:16:3e:ac:bb:cc no 90.66 2 fe:ff:ff:ff:ff:ff yes 0.00
注意port列,这告诉你哪个接口( port )数据包进入了网桥。 如果不清楚哪一个,运行brctl show 。
如果您也需要IP地址,则必须为网桥分配一个networking地址并启动ping扫描:
ip addr add XXXX/yy dev br0 nmap -T5 -sP XXXZ/yy arp -a ip addr del XXXX/yy dev br0
虽然上面的答案是正确的,并且会起作用,但是我想要一些比平扫更安静的东西。
对于标准的arp命令不起作用,我仍然有些困惑。 我确定有可能是我错过了一些configuration。
然而,我现在的解决scheme是将arpwatch [ http://en.wikipedia.org/wiki/Arpwatch%5D与“brctl showmacs”结合使用。
Arpwatch生成不同的输出文件,将IP地址映射到MAC地址。 “brctl showmacs”为物理端口映射提供了MAC地址。 有了这两个工具,我拥有了我所需要的一切。
另外,arpalert具有非常相似的function,工作起来更简单一些。
感谢大家的评论。