Eu tenho acesso a dois computadores (A e B) em uma rede. Ambos têm um endereço IP estático com uma máscara de sub-rede 255.255.255.128 ( verifiquei se um servidor DHCP não estava sendo usado). Quero configurar vários endereços IP na mesma máquina e, portanto, quero saber o que todos os endereços IP já estão sendo usados na sub-rede.
Em uma pergunta anterior , tentei o nmap -sP -PR 172.16.128.*
comando, mas sou cético quanto ao resultado, pois o mesmo comando fornece resultados diferentes nos meus dois computadores (A e B). Em A, os shows de resultado, uma lista de endereços IP 8 que são (supostamente) já está sendo usado, incluindo o de A e B .
Nmap done: 256 IP addresses (8 hosts up) scanned in 1.23 seconds
Mas em B, o resultado é diferente, ou seja,
Nmap done: 256 IP addresses (0 hosts up) scanned in 0.00 seconds
O resultado em B nem mostra o seu próprio endereço IP, bem como o endereço IP de A!
O que exatamente estou fazendo de errado aqui? Existe alguma maneira infalível no Red Hat Linux (RHEL) de descobrir todos os endereços IP em uso na sub-rede da qual meu computador faz parte?
RHEL: 6.5
Nmap version: 5.51
fonte
nmap -sP -PR '172.16.128.*'
Respostas:
Qualquer dispositivo bem comportado em uma LAN Ethernet é livre para ignorar quase todo o tráfego, portanto, PINGs, varreduras de portas e similares não são confiáveis. Os dispositivos não são, no entanto, livres para ignorar solicitações de ARP . Como você especifica que está digitalizando uma rede local, acho que o método menos frágil de fazer o que você deseja é tentar conectar-se a um endereço remoto e procurar no meu cache ARP.
Aqui está um dispositivo simples, sem filtro (ou seja, um que não está configurado para ignorar algumas classes de tráfego IP):
Aqui está um dispositivo de filtragem (um configurado com uma única linha
iptables
para ignorar todo o tráfego):Aqui está um dispositivo que está acabando; observe a falta de um endereço MAC:
Esse método não é infalível - ele perde os dispositivos que estão desligados, por um lado -, mas é o método menos terrível que eu já tentei.
Edit : Eric Duminil, sim, ele só funciona em uma rede local; veja o parágrafo um.
Vishal, os métodos são funcionalmente idênticos. Observe o texto citado na resposta de Leo sobre
nmap
:Seu método envolve menos digitação. O meu pode ser feito sem privilégios e pode lhe dar uma melhor compreensão do que realmente está acontecendo. Mas a mesma coisa é feita no fio nos dois casos.
fonte
arp
.sudo -u root
(geralmente abreviado parasudo
), mas também simplesmente estar logado como root ou ter feito/bin/su
, daí o termo abrangente.Como um dispositivo não pode ignorar solicitações de ARP, eu gosto de usar uma ferramenta chamada
arp-scan
. Está disponível na maioria dos repositórios.Quando você executa o comando com o
--localnet
switch, ele fornece uma visão geral de toda a sua rede interna.Dá-me uma lista de todos os endereços IP e MAC da minha rede. Também é possível especificar um intervalo de rede para digitalizar.
Se você tiver várias interfaces de rede configuradas, poderá especificar a que deseja usar com o switch
-I
.Mais informações sobre possíveis opções podem ser encontradas em https://linux.die.net/man/1/arp-scan ou executando
man arp-scan
.fonte
Não sei qual versão do nmap você está executando no seu Red Hat 6.5, mas para lançamentos recentes, da maneira correta (e mais rápida), acho que seria:
nmap -sn -n 172.16.128.0/25
Isso listará todos os hosts da sua rede (portanto, você pode usar qualquer outro IP dessa sub-rede, pois deve estar disponível).
Edite e observe: A sub-rede mencionada é 255.255.255.128, mas você mostra a saída como varredura de 254 hosts. A menos que esteja faltando alguma coisa, essa deve ser uma máscara / 25 e 126 hosts disponíveis. Se você deseja escanear um / 24, altere o comando acima para consultar todos os 254 hosts.
No livro nmap,
-sP
é descontinuado e substituído por-sn
:O
-n
objetivo é evitar a resolução de DNS dos clientes (agiliza a verificação):Você pode usar outras combinações para aprofundar a verificação ou os serviços, mas isso deve ser suficiente para o que você está procurando, a menos que os hosts estejam se mascarando ou descartando tudo.
Fonte: https://nmap.org/book/man-host-discovery.html
fonte
nmap -sn -n 172.16.128.1/24
(em vez disso, como afirmei na resposta acima, isso verificará um 255.255. Máscara 255.0)Parte 1 - fping
Essa ferramenta faz o ping de tudo na faixa de rede especificada e mostra aqueles que respondem via ICMP.
Parte 2 - arp
Desde que o fping falou com tudo na LAN, isso fez com que uma entrada fosse adicionada à tabela ARP do sistema. Leia-o em alguns minutos, porque a tabela arp libera entradas antigas.
Observe também que a tabela ARP tem um tamanho máximo e o kernel despeja entradas antigas e de baixo uso.
Coloque tudo junto com
depois navegue em arp.txt como desejar.
fonte
IPv6
Não assuma que o IPv4 é sua única opção. Muitos sistemas operacionais modernos lidam perfeitamente com o IPv6, mesmo que seu ISP não forneça conectividade V6.
Pode até haver dispositivos acessíveis apenas pelo IPv6 ou até outros protocolos.
Há vários endereços multicast úteis documentados em https://en.wikipedia.org/wiki/Multicast_address#IPv6 Mas o mais interessante para você é ff02 :: 1
fonte
Uma resposta ruim é executar ping no endereço de transmissão com
Existem ~ 50 endereços IP nessa rede com uma máscara de rede / 16 e apenas sete responderam. Portanto, essa não é uma boa solução.
fonte
Além da resposta do MadHatter, existe uma ferramenta que faz a pesquisa arp sem tentar enviar primeiro um pacote de rede: arping .
Parece haver duas implementações:
Para o seu propósito, eu apenas pegaria o pacote da sua distribuição Linux, pois as diferenças provavelmente estão apenas nos detalhes.
fonte
Quando os dinossauros vagavam pela terra, proto-nerds usavam arpwatch
página de manual do arpwatch
fonte
Entre no seu (s) switch (s) e emita
show mac-address
ou comandos semelhantes (dependendo da marca e modelo). Isso fornecerá todos os endereços MAC dos dispositivos ativos (exceto a própria opção). Se algum desses MACs não ocorrer entre os MACs encontrados com qualquer um dos métodos ping ou outros nas outras respostas, convém investigar melhor qual dispositivo é esse. Talvez isso não importe porque ele nem fala IP ou pertence a uma VLAN diferente, mas pelo menos você pode obter uma visão geral se suas outras sondas são precisas.fonte