lshw HWPath priority - como determinar

2

Eu tenho um projeto aqui no trabalho em que estou tentando mapear definitivamente os endereços MAC Ethernet para portas físicas (a placa 1 da porta 1 é eth0 (mac xx: xx: xx: xx: xx: xx) e uma operador técnico pode olhar para esse descritor de porta e saber exatamente onde um cabo está conectado em uma caixa) para dispositivos de rede em servidores (fornecedores e modelos de servidores arbitrários) usando Linux, atualmente CentOS 6.6 sem ser necessário quebrar a caixa física. Eu não sou um guru de hardware, então qualquer ajuda seria muito apreciada.

A resposta para essa questão provavelmente está em como o Linux enumera o hardware, mas eu não encontrei nada definitivo perguntando aos Googles nem consegui encontrar nada definitivo nas páginas man e afins. Finalmente, não acredito em minhas habilidades em ler C para obter a resposta de que preciso no tempo que preciso.

Usando 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

que é interessante, mas eu prefiro ver o caminho hw, então eu corro:

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

Agora isso é interessante para mim, mas não tenho certeza se estou vendo o contexto de que preciso. Então, executar o seguinte me fornece um contexto melhor:

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

OK. Eu gosto disso. Agora vejo o seguinte:

/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

... onde a primeira placa está na porta 2 da ponte Xeon E5 e a segunda placa está na porta 1c.4 da ponte C610/X99 (se eu estiver usando a nomenclatura correta da nomenclatura). Por favor, me perdoe se eu não for. Não tenho uma maneira fácil de validar as localizações de onde o hardware está conectado e atualmente não tenho conhecimento dos detalhes de como essas máquinas são construídas sem ler a documentação.

Então, alguém pode afirmar ou assumir que a forma como o Linux está enumerando o hardware na caixa tem alguma prioridade que podemos usar para determinar as portas físicas para um número arbitrário de marcas arbitrárias de placas de rede em caixas arbitrárias? Estou assumindo que estou latindo na árvore certa, mas algo não está passando no teste do cheiro para mim sobre isso.

    
por Jim 15.12.2015 / 00:19

0 respostas