我有两个openbsd服务器,每个服务器有6张网卡。
>lspci | grep -i ether
01:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
01:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
02:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
04:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
04:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)其中,第一个网卡上的一个网卡和第二个网卡上的两个网卡被拔出,其余的网卡除了一个是通过开关连接的。server1上的最后一个网卡通过交叉电缆直接连接到第二服务器。
如何识别哪个接口是直接连接到另一个服务器,而不是通过交换机?我试着在tcpdump中添加和分析tcpdump,希望连接到交换机的那些能显示交换机的mac-id,但是所有的东西都显示了机器的nic mac-id。
发布于 2015-07-28 11:32:17
简短的回答:你不能。
交换机不修改以太网帧,因此直接从服务器发送的交换机和通过交换机传输的交换机没有区别。
发布于 2015-07-28 16:32:04
你要找的热门词是MDI。
在Linux系统上,您可以使用ethtool检索此类信息(并不是每个NIC都支持它):
# ethtool eth0
Settings for eth0:
Speed: 100Mb/s
Duplex: Full
...
MDI-X: off我不确定,ethtool对于OpenBSD是什么,或者它在那里是否可用。抱歉,如果不是。但从理论上讲,您可以从接口状态检索此类信息,但不能从通信量中检索。
发布于 2015-07-28 18:10:39
你有几个选择:
选项1.记录直接连接的服务器的NIC (“其他”服务器,如您所称)的IP和MAC地址。从您的原始服务器平那个IP地址,并使用arp命令检查“其他”服务器的MAC地址出现在哪个接口上。
选项2.通过交换机产生通信量,例如通过交换机端口连接的网络上的多台服务器。运行arp,如果有一个以上的MAC地址到一个端口,那么这个接口连接到一个交换机端口(多个MAC地址是一个外泄)。
选项3.检查服务器的路由表。您应该能够看到哪个路由是直接连接的服务器,以及它的去向。
netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.10.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
10.10.2.0 10.8.0.2 255.255.255.0 UG 0 0 0 eth1
60.60.60.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
10.254.254.0 0.0.0.0 255.255.0.0 U 0 0 0 eth3
0.0.0.0 60.60.60.1 0.0.0.0 UG 0 0 0 eth0所有这些都取决于一些细节,例如,这些接口中的任何一个是否使用团队/绑定,或者某种级别的聚合,服务器是否有桥接接口等等。
以太网交换机通常使用所谓的透明桥接--强调透明,这意味着它们通常对终端主机有些不可见(例如STP/CDP)。因此,不要期望在主机的ARP表中看到交换机MAC地址!
我希望你能发现这些有用的东西:
https://networkengineering.stackexchange.com/questions/20252
复制相似问题