Como encontrar o endereço MAC do switch ao qual estou conectado?

17

Em um servidor linux, estou tentando encontrar os endereços MAC que meu servidor conhece. Especificamente, o endereço MAC da porta do switch à qual estou conectado.

Isso é possível?

Atualização: As respostas abaixo me ajudaram. Meu switch é um switch gerenciado, no entanto, como os endereços IP nas máquinas host foram configurados como estáticos, o switch não selecionou os endereços MAC por algum motivo. Alterei os hosts para DCHP, o que permitiu que meu comutador capturasse corretamente os endereços MAC nas portas conectadas após o envio de solicitações DHCP. Isso me permitiu usar a tabela de endereços MAC dos comutadores para descobrir quais hosts estavam conectados a quais portas e eu os coloquei de volta em IPs estáticos.

Damainman
fonte
7
Por que uma porta de switch teria um endereço MAC? Não é um ponto de extremidade de comunicação - não é a fonte nem o destino de qualquer tráfego Ethernet.
David Schwartz
1
Alguns comutadores gerenciados possuem um endereço MAC por porta ou por VLAN. O comando da Cisco na resposta do spuder mostrará isso.
Paul Engrenagem
1
Damianman, é muito improvável que DHCP vs. IPs estáticos sejam a causa do seu switch não ver os MACs clientes. De fato, se o seu switch não está vendo os MACs na camada 2, ele não está funcionando, porque é isso que um switch faz. Fazer o ping do IP de gerenciamento do seu switch de um PC cliente (desde que estejam na mesma VLAN) deve ser tudo o que é necessário para que o switch veja o MAC do PC na tabela ARP.
Paul Engrenagem
1
@PaulGear Obrigado pela contribuição extra. Minha máquina host tinha 3 interfaces com cada uma em uma sub-rede diferente do IP gerenciado pelos meus comutadores. Não sei ao certo por que meu switch não estava escolhendo endereços MAC até que eu os configurasse para DHCP. Se eu descobrir a resposta exata, editarei o acima.
Damainman

Respostas:

15

Se você tiver sorte, estará executando um switch inteligente e ele realmente terá um endereço MAC.

Nesse caso, você provavelmente pode usar o LLDP. Instale lldpdno Linux e execute:

michael:~$ lldpctl 
-------------------------------------------------------------------------------
LLDP neighbors:
-------------------------------------------------------------------------------
Interface:    eth0, via: LLDP, RID: 1, Time: 5 days, 22:33:31
  Chassis:     
    ChassisID:    mac 28:a6:8e:03:57:9b
    SysName:      core-pri
    SysDescr:     Netgear Gigabit Smart Switch
    MgmtIP:       10.0.0.38
    Capability:   Bridge, on
  Port:        
    PortID:       local g22
    PortDescr:    Not received
-------------------------------------------------------------------------------
MikeyB
fonte
2
E, novamente, se você tiver sorte o interruptor vai realmente ser correndo LLDP.
bahamat
1
Felizmente, o lldpdpacote também suporta CDP e alguns outros. W00t!
MikeyB
8

Os comutadores não têm endereços MAC em geral; eles trabalham em um nível abaixo deles (embora eles saibam quais são os endereços MAC dos dispositivos conectados a eles).

Ignacio Vazquez-Abrams
fonte
4
Todos os comutadores gerenciados possuem endereços MAC, às vezes um por VLAN ou um por porta; pode ser uma boa idéia esclarecer que você quer dizer switches não gerenciados.
Paul Engrenagem
7

Depende de qual tipo de switch você está conectado.

Um comutador burro (normalmente chamado de comutador não gerenciado, que é efetivamente uma ponte de rede) não terá um endereço MAC
Um comutador gerenciado (às vezes chamado de comutador inteligente) terá um endereço MAC

Se o switch for gerenciado e você souber o endereço IP, execute o seguinte comando no seu terminal. Então é só combinar o IP com o endereço MAC.

arp -a

Se você estiver lidando com um switch gerenciado com uma porta do console, conecte-se com um cabo do console e insira este comando (assumindo que seja um switch Cisco):

show mac address-table

http://www.techexams.net/forums/ccna-ccent/45578-mac-address-switch.html https://learningnetwork.cisco.com/thread/9625

spuder
fonte
4
Alguns problemas: os comutadores mudos são raramente chamados de pontes de rede (mesmo que sejam o que eles fazem); Eu sugeriria apenas chamá-los de switches não gerenciados. O comando arp só funcionará se 1. o seu IP de gerenciamento estiver na mesma VLAN, e 2. o PC entrar em contato com ele recentemente.
Paul Engrenagem
Bom ponto, modifiquei minha resposta para tornar mais clara a distinção entre gerenciado / não gerenciado. E você está correto sobre o comando arp.
Spuder