Tutoriel Linux

Vizinho IP no Linux: encontrando um vizinho de rede sem usar ARP

Débutant5 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Uma máquina na rede responde de forma intermitente, um gateway permanece associado ao endereço MAC errado ou uma entrada é exibida. FRACASSADOAntes de reiniciar a interface, verifique a tabela de vizinhança mantida pelo kernel.

A ordem neve ip substitui vantajosamente os controles antigos. E arp-nAbrange vizinhos IPv4 aprendidos com ARP e vizinhos IPv6 descobertos com NDP. Mais importante ainda, permite ler o estado deles, excluir uma única entrada e verificar sua reconstrução sem limpar todo o cache.

Tux inspeciona os vizinhos de uma rede local com links ativos, antigos e inacessíveis.
O comando `ip neigh` exibe os vizinhos IPv4 e IPv6 conhecidos do kernel e o status de resolução de cada um.

Não escolha eth0 Por hábito. Exiba as interfaces e, em seguida, pergunte ao kernel qual rota ele usaria para alcançar o endereço solicitado:

link breve de IP
endereço IP breve
ip route get 192.168.1.50

A liberação de rota ip obter indica em particular a interface após desenvolvedor e o endereço local depois fonteSe o destino envolver um gateway, o vizinho de nível 2 será esse gateway, e não necessariamente o endereço final. O guia sobre Roteamento IP no Linux explica essa diferença.

Verifique também o estado do link antes de culpar o cache:

link ip mostrar dispositivo enp1s0
ip addr show dev enp1s0

Uma interface ABAIXO Ou, sem uma portadora, não encontrará nenhum vizinho. O artigo sobre Endereço IP e estados da rede ACIMA, Abaixar_para_cima e um endereço verdadeiramente utilizável.

Liste os vizinhos IPv4 e IPv6 com o comando `ip neigh`.

Primeiro, exiba a tabela completa e, em seguida, limite a exibição à interface relevante:

Show de IP Neigh
ip neigh show dev enp1s0

Para separar os dois tipos de endereços:

IP -4 Vizinho mostrar dispositivo enp1s0
IP -6 Vizinho mostrar dispositivo enp1s0

Uma linha IPv4 pode ter a seguinte aparência:

O endereço depois lladdr é o endereço MAC conhecido por este vizinho. O estado final descreve se a resolução foi bem-sucedida ou falhou. Para direcionar um único endereço sem examinar a tabela inteira:

ip neigh show para 192.168.1.50 dev enp1s0
ip neigh get 192.168.1.50 dev enp1s0

A tabela não é um inventário completo da rede. Ela contém principalmente os dispositivos com os quais o kernel se comunicou recentemente ou que está tentando alcançar. Portanto, uma máquina silenciosa pode estar ausente sem estar desligada.

Entendendo os termos ACESSÍVEL, ANTIGO, INCOMPLETO e FALHOU.

Os Estados impedem a eliminação de um registro de trabalho:

  • ALCANCEVEL O vizinho foi confirmado recentemente;
  • ENVELHECIDO A entrada é conhecida, mas sua acessibilidade não foi confirmada recentemente. Isso não é um erro;
  • ATRASO Ou SONDA
  • A resolução está em andamento e nenhum endereço MAC utilizável foi recebido até o momento;
  • FRACASSADO As tentativas de resolver o problema falharam;
  • PERMANENTE A entrada foi adicionada estaticamente e não deve expirar como uma entrada dinâmica.

Você pode filtrar por um estado específico:

ip neigh show dev enp1s0 nud reachable
ip neigh show dev enp1s0 nud stale
ip neigh show dev enp1s0 nud falhou

Uma entrada ENVELHECIDO pode se tornar novamente ALCANCEVEL Assim que o tráfego confirmar o vizinho. Por outro lado, uma linha FRACASSADO A repetição do código de erro indica provavelmente uma interface defeituosa, um host ausente, uma VLAN incorreta, um problema de Wi-Fi, um endereço duplicado ou uma falha na conexão física.

Gere tráfego simples para o endereço e, em seguida, releia imediatamente a entrada:

ping -c 3 192.168.1.50
ip neigh show para 192.168.1.50 dev enp1s0

Para acompanhar as alterações durante o teste:

watch -n 1 'ip neigh show dev enp1s0'

Se a entrada permanecer INCOMPLETO ou vá para FRACASSADOObserve as trocas de ARP e NDP na interface correta:

sudo tcpdump -ni enp1s0 'arp ou icmp6'

Uma solicitação ARP não respondida indica que o problema está antes do endereço IP: o dispositivo está offline, a porta do switch está incorreta, a VLAN está errada, o cabo, o Wi-Fi está com defeito ou o endereço não existe. Se nenhuma solicitação for enviada, redirecione e reconecte a interface. Consulte o guia sobre… tcpdump no Linux Mostra como limitar a captura sem gravar todo o tráfego.

Na Ethernet, você também pode controlar a velocidade, o modo duplex e a portadora com ettoolExcluir uma entrada vizinha não corrigirá um link que esteja apresentando problemas de negociação ou que esteja sendo desconectado.

Se o endereço MAC for claramente antigo ou incorreto, exclua apenas a entrada correspondente. Em um servidor remoto, mantenha uma segunda sessão SSH e um console de backup, especialmente se você estiver interagindo com o servidor vizinho que atua como gateway.

sudo ip neigh del 192.168.1.50 dev enp1s0
ping -c 3 192.168.1.50
ip neigh show para 192.168.1.50 dev enp1s0

Para um endereço IPv6 local de enlace, a interface é essencial:

sudo ip -6 vizinho del fe80::5054:ff:fe12:3456 dev enp1s0

IP -6 Vizinho mostrar dispositivo enp1s0

O kernel deve recriar a entrada na próxima troca de informações. Compare o endereço MAC e o estado. Se o endereço retornado estiver incorreto, procure por um endereço IP duplicado, uma configuração estática, uma máquina virtual clonada ou um dispositivo respondendo em vez do vizinho esperado. Repita o processo. vizinho ip del Não corrigirá essa causa.

Limpe o cache somente quando o perímetro estiver sob controle.

Comece exibindo o que você vai remover. Para limpar apenas as entradas que já falharam em uma interface:

ip neigh show dev enp1s0 nud falhou
sudo ip neigh flush dev enp1s0 nud falhou

sudo ip neigh flush dev enp1s0

Isso força a redescoberta de vários vizinhos e pode causar uma interrupção temporária das conexões ativas. Não execute esse procedimento automaticamente na interface que hospeda sua sessão SSH. A remoção direcionada é mais fácil de controlar e fornece melhores diagnósticos.

página de manual ip-neighbour(8) operações de documentos mostrar, pegar, del E bem como todos os estados NUD. Mantenha esta ordem: rota, interface, tabela, estado, tráfego de teste, exclusão direcionada. O despejo completo vem por último.

sudo apt update && sudo apt upgrade