lshw HWPath优先级——如何确定

lshw HWPath优先级——如何确定

我在工作中有一个项目,我试图将以太网 MAC 地址明确映射到物理端口(IE 卡 1 端口 0 是 eth0 (mac xx:xx:xx:xx:xx:xx),非技术操作员可以对于使用 Linux(目前为 CentOS 6.6)的服务器(任意服务器供应商和型号)中的网络设备,查看该端口描述符并准确了解电缆插入盒子的位置,而无需破解物理盒子。

这个问题的答案可能在于 Linux 如何枚举硬件,但我既没有在 Google 上找到任何明确的信息,也没有在手册页等中找到任何明确的信息。最后,我不相信我阅读 C 语言的能力能够在我需要的时候得到我需要的答案。

使用lshw

root@E2APF77 (~)# lshw -c network -businfo
Bus info          Device  Class          Description
====================================================
pci@0000:06:00.0  eth0    network        Ethernet Controller 10-Gigabit X540-AT2
pci@0000:06:00.1  eth1    network        Ethernet Controller 10-Gigabit X540-AT2
pci@0000:16:00.0  eth2    network        NetXtreme BCM5719 Gigabit Ethernet PCIe
pci@0000:16:00.1  eth3    network        NetXtreme BCM5719 Gigabit Ethernet PCIe
pci@0000:16:00.2  eth4    network        NetXtreme BCM5719 Gigabit Ethernet PCIe
pci@0000:16:00.3  eth5    network        NetXtreme BCM5719 Gigabit Ethernet PCIe
                  usb0    network        Ethernet interface

这很有趣,但我更喜欢查看硬件路径,所以我运行:

root@E2APF77 (~)# lshw -c network -short -businfo
H/W path             Device  Class          Description
=======================================================
/0/100/2/0           eth0    network        Ethernet Controller 10-Gigabit X540-AT2
/0/100/2/0.1         eth1    network        Ethernet Controller 10-Gigabit X540-AT2
/0/100/1c.4/0        eth2    network        NetXtreme BCM5719 Gigabit Ethernet PCIe
/0/100/1c.4/0.1      eth3    network        NetXtreme BCM5719 Gigabit Ethernet PCIe
/0/100/1c.4/0.2      eth4    network        NetXtreme BCM5719 Gigabit Ethernet PCIe
/0/100/1c.4/0.3      eth5    network        NetXtreme BCM5719 Gigabit Ethernet PCIe
/1                   usb0    network        Ethernet interface

现在这对我来说很有趣,但我不确定我是否看到了我需要的上下文。因此,运行以下命令可以为我提供更好的上下文:

root@E2APF77 (~)# lshw -short -businfo -c bridge
H/W path             Device  Class          Description
=======================================================
/0/100                       bridge         Xeon E5 v3/Core i7 DMI2
/0/100/1                     bridge         Xeon E5 v3/Core i7 PCI Express Root Port 1
/0/100/2                     bridge         Xeon E5 v3/Core i7 PCI Express Root Port 2
/0/100/3                     bridge         Xeon E5 v3/Core i7 PCI Express Root Port 3
/0/100/1c                    bridge         C610/X99 series chipset PCI Express Root Port #1
/0/100/1c.3                  bridge         C610/X99 series chipset PCI Express Root Port #4
/0/100/1c.3/0                bridge         Renesas Technology Corp.
/0/100/1c.3/0/0              bridge         Renesas Technology Corp.
/0/100/1c.3/0/0/0            bridge         Renesas Technology Corp.
/0/100/1c.3/0/1              bridge         Renesas Technology Corp.
/0/100/1c.4                  bridge         C610/X99 series chipset PCI Express Root Port #5
/0/100/1f                    bridge         C610/X99 series chipset LPC Controller

好的。我喜欢这个。现在我看到以下内容:

/0/100/2                     bridge         Xeon E5 v3/Core i7 PCI Express Root Port 2
/0/100/2/0           eth0    network        Ethernet Controller 10-Gigabit X540-AT2
/0/100/2/0.1         eth1    network        Ethernet Controller 10-Gigabit X540-AT2


/0/100/1c.4                  bridge         C610/X99 series chipset PCI Express Root Port #5
/0/100/1c.4/0        eth2    network        NetXtreme BCM5719 Gigabit Ethernet PCIe
/0/100/1c.4/0.1      eth3    network        NetXtreme BCM5719 Gigabit Ethernet PCIe
/0/100/1c.4/0.2      eth4    network        NetXtreme BCM5719 Gigabit Ethernet PCIe
/0/100/1c.4/0.3      eth5    network        NetXtreme BCM5719 Gigabit Ethernet PCIe

...其中第一张卡位于Xeon E5网桥的端口 2 上,第二张卡位于网桥1c.4的端口上C610/X99(如果我使用了正确的命名法。如果我没有使用正确的命名,请原谅我)。我没有简单的方法来验证硬件插入的位置,并且目前我在不阅读文档的情况下不了解这些机器的构建细节。

那么,我们是否可以断言或假设 Linux 枚举盒子中硬件的方式具有某种优先级,我们可以使用它来确定任意盒子中任意数量、任意品牌网卡的物理端口?我假设我正在吠叫正确的树,但有些东西没有通过我的嗅觉测试。

相关内容