Como saber se duas interfaces ethernet estão na mesma lan?

4

Eu tenho que proteger interfaces em servidores Linux, definindo interfaces de ligação. As informações de cabeamento não são precisas.

Existe uma maneira simples de saber se duas interfaces estão conectadas à mesma LAN?

Algumas interfaces não têm IP, se possível prefiro não definir IPs fictícios.

Eu finalmente fiz isso usando arping , ele já estava instalado nos servidores:

ifconfig eth2 up 
ifconfig ethO up 
tcpdump -i eth2 -c 3 arp net 10.10.10.10

e em outro terminal:

arping -D -I eth0 10.10.10.10

tcpdump deve exibir linhas como essa:

16:15:43.032103 arp who-has 10.10.10.10 (Broadcast) tell 0.0.0.0
16:15:44.032277 arp who-has 10.10.10.10 (Broadcast) tell 0.0.0.0
16:15:45.032441 arp who-has 10.10.10.10 (Broadcast) tell 0.0.0.0

* -D é opcional, mas fornece um bom endereço de origem 0.0.0.0.

    
por Emmanuel 04.07.2014 / 14:40

1 resposta

6

Algumas ideias, assumindo interfaces, são eth0 e eth1:

  • Sniff nas duas interfaces ao mesmo tempo para o tráfego não unicast. Você deve ver todos os pacotes duas vezes

    ( tcpdump -nni eth0 -c 10 broadcast or multicast & tcpdump -nni eth1 -c 10 broadcast or multicast & ) | sort
    
  • Teste com um protocolo sem IP.

    Por exemplo, com essa ferramenta para gerar solicitações DHCP: link

    ( sleep 1; ./dhd eth1 > /dev/null ) & tcpdump -nni eth0 udp and port 68
    

    Você deve ver algo assim:

    14:46:16.449738 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:50:56:99:76:cb, length 300
    14:46:16.650330 IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:50:56:99:76:cb, length 300
    
por 04.07.2014 / 14:48