Executando ping em computadores na rede local: host de destino inacessível

15

Eu tenho dois computadores ubuntu em uma rede local e nenhum deles pode executar ping um no outro. Sempre que tento, recebo a mensagem de erro "host de destino inacessível". Ambos os computadores podem acessar a Internet com qualquer problema.

Eu tenho um roteador ActionTech v1000h da Telus. Entrei em contato com um de seus representantes de clientes e eles disseram que não deveria haver motivo para que dois dispositivos não pudessem executar ping na rede.

Estou totalmente perdida, algum de vocês tem alguma idéia?

Computador 1:

ifconfig -a

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:10084 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10084 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:797420 (797.4 KB)  TX bytes:797420 (797.4 KB)

wlan0     Link encap:Ethernet  HWaddr c4:85:08:77:d3:f5  
          inet addr:192.168.1.77  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::c685:8ff:fe77:d3f5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:373068 errors:0 dropped:0 overruns:0 frame:0
          TX packets:380158 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:103445020 (103.4 MB)  TX bytes:112630337 (112.6 MB)

rota -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 wlan0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

Computador 2:

ifconfig -a

etho0     Link encap:Ethernet HWaddr 00:24:8c:ae:f6:91
          UP BROADCAST MULTICAST MTU:1500 Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:2
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:110 errors:0 dropped:0 overruns:0 frame:0
          TX packets:110 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:8414 (8.4 KB)  TX bytes:8414 (8.4 KB)

wlan0     Link encap:Ethernet  HWaddr 00:22:43:9b:7b:64  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::222:43ff:fe9b:7b64/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:252 errors:0 dropped:0 overruns:0 frame:0
          TX packets:435 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:123143 (123.1 KB)  TX bytes:65828 (65.8 KB)

rota -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.254   0.0.0.0         UG    0      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

Edit: Exemplo do erro quando o computador 1 tenta executar ping no computador 2:

ping 192.168.1.2

PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
From 192.168.1.77 icmp_seq=1 Destination Host Unreachable
From 192.168.1.77 icmp_seq=2 Destination Host Unreachable
From 192.168.1.77 icmp_seq=3 Destination Host Unreachable
From 192.168.1.77 icmp_seq=4 Destination Host Unreachable
From 192.168.1.77 icmp_seq=5 Destination Host Unreachable
From 192.168.1.77 icmp_seq=6 Destination Host Unreachable
^C
--- 192.168.1.2 ping statistics ---
7 packets transmitted, 0 received, +6 errors, 100% packet loss, time 6031ms
pipe 3

Edição 2: arp -a dos dois computadores

Computador 1:

? (192.168.1.254) at 20:76:00:f5:3b:70 [ether] on wlan0

Computador 2:

? (192.168.1.254) at 20:76:00:f5:3b:70 [ether] on wlan0
? (192.168.1.77) at <incomplete> on wlan0

Edição 3: nmap -sn 192.168.1.0/24 no computador 2

Starting Nmap 6.40 ( http://nmap.org ) at 2014-05-07 21:14 PDT
Nmap scan report for 192.168.1.2
Host is up (0.00024s latency).
Nmap done: 256 IP addresses (1 host up) scanned in 3.30 seconds

Edição 4: O tcpdump registra os dois computadores enquanto o primeiro executa ping 192.168.1.254 e depois um ao outro:

Computador 1:

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
22:45:01.661300 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:02.659393 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:03.659394 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:04.676872 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:05.675391 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:06.675396 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:07.692825 ARP, Request who-has 192.168.1.2 tell 192.168.1.77, length 28
22:45:48.379058 ARP, Request who-has 192.168.1.77 tell 192.168.1.254, length 28
22:45:48.379108 ARP, Reply 192.168.1.77 is-at c4:85:08:77:d3:f5, length 28
22:45:54.419388 ARP, Request who-has 192.168.1.254 tell 192.168.1.77, length 28
22:45:54.420875 ARP, Reply 192.168.1.254 is-at 20:76:00:f5:3b:70, length 28

Computador 2:

reading from file pc2.pcap, link-type EN10MB (Ethernet)
22:44:43.538367 ARP, Request who-has 192.168.1.254 tell 192.168.1.2, length 28
22:44:43.676705 ARP, Reply 192.168.1.254 is-at 20:76:00:f5:3b:70 (oui Unknown), length 28
22:45:02.107935 ARP, Request who-has 192.168.1.254 tell 192.168.1.2, length 28
22:45:02.107951 ARP, Reply 192.168.1.254 is-at 20:76:00:f5:3b:70 (oui Unknown), length 28
22:45:06.780619 ARP, Request who-has 192.168.1.77 tell 192.168.1.2, length 28
22:45:07.778419 ARP, Request who-has 192.168.1.77 tell 192.168.1.2, length 28
22:45:08.778419 ARP, Request who-has 192.168.1.77 tell 192.168.1.2, length 28
22:45:09.796214 ARP, Request who-has 192.168.1.77 tell 192.168.1.2, length 28

Edit 5: Configure ips estáticos para os dois computadores etho0 e conecte-os com um cabo de internet. Os dois computadores podem definitivamente fazer ping um ao outro através do cabo Ethernet! ifconfig -aeth0 resultados:

Computador 1:

eth0      Link encap:Ethernet  HWaddr 68:68:68:00:62:a4  
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::6a68:68ff:fe00:62a4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4060 (4.0 KB)  TX bytes:7629 (7.6 KB)

Computador 2:

eth0      Link encap:Ethernet  HWaddr 00:24:8c:ae:f6:91  
          inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::224:8cff:feae:f691/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:250 errors:0 dropped:0 overruns:0 frame:0
          TX packets:130 errors:0 dropped:0 overruns:0 carrier:3
          collisions:0 txqueuelen:1000 
          RX bytes:26501 (26.5 KB)  TX bytes:20897 (20.8 KB)
edgargiraffe
fonte
11
Como você está pingando eles? IP? Nome de anfitrião?
terdon
Quem está dizendo a você "host de destino inacessível" - seu adaptador local ou algo mais? Por favor, forneça copiar / colar os comandos ping e sua saída.
sмurf
Estou pingando-os usando seus endereços IP. Adicionei uma edição à postagem original detalhando o comando que estou usando e a mensagem de erro.
Edgargiraffe
Você talvez esteja bloqueando o ping nas configurações do seu roteador?
terdon
Acredito que não, procurei nas configurações do roteador por algumas horas. Também conversei com um representante de telus e ele não me deu nenhuma indicação de que esse poderia ser o problema.
Edgargiraffe

Respostas:

4

execute o ping do gateway de ambos os computadores ping 192.168.1.254 e tente executar o comando ping para comp1 para compt2 e comp2 para comp1 e, em seguida, publique os resultados de arp -aambas as caixas

Editar

Interessante, algo está bloqueando o tráfego

execute sudo tcpdump -ni wlan0 arpem uma janela nos dois computadores e tente executar o ping entre si e o gateway de outra janela nos dois novamente e publique os resultados

Edit2

Até agora, isso mostra que o comp1 está fazendo o que deveria enviar a solicitação arp (solicitando o endereço etherner do comp2s), mas não recebendo uma resposta do arp (ouvindo algo de volta). Precisa ver o tcpdump do PC2 para ver a imagem completa. Execute o comando screen ou faça isso no PC1 sudo tcpdump -w pc1.pcap -ni wlan0 arp &e no PC2 sudo tcpdump -w pc2.pcap -ni wlan0 arp & e jogue-o em segundo plano e retorne a solicitação de pings. Após pings falhar, traga os trabalhos de volta ao primeiro plano com fg %1pare ctrl+ce leia os arquivos gravados comsudo tcpdump -r pc1/2.pcap

Edit3 Os PCs estão fazendo o que deveriam, lançando ARPs, mas não estão passando por quais pontos do roteador. Talvez uma configuração de firewall desativada, duvide que ele suporte VLANs? Meio que gostaria que você deixasse que demorasse um pouco mais às 22: 45: 48.379058, seu roteador enviou sua própria solicitação de ARP quando procurava pelo PC1 que 22:45:48.379058 ARP, Request who-has 192.168.1.77 tell 192.168.1.254, length 28ambos os PCs deveriam ter visto, podemos ver que o PC1 o viu e respondeu com seu IP, mas não posso diga se o PC2 conseguiu, desde que você o parou, pare às 22: 45: 09.796214 . Supondo que seus relógios sejam sincronizados com o NTP.

Edit4

Veja que ainda não está resolvido. Não viu que você possui adaptadores eth nos dois computadores. Você pode conectar o roteador no eth em vez da wlan e ver se consegue executar o ping? Ou adquirir outro roteador? Ou faça um hotspot no telefone conectar os dois PCs e tentar executar ping? Além disso, surpreso ao ver que você foi capaz de conectar dois PCs e fazer ping um no outro, usou um cabo cruzado?

meccooll
fonte
Ambos os computadores podem executar o ping 192.168.1.254 sem problemas e nenhum computador pode executar o ping com êxito no outro, recebendo a mensagem de erro que eu postei acima. Adicionei uma segunda edição à postagem original com os resultados de `arp -a ~ nos dois computadores.
Edgargiraffe
O computador 2 possui apenas uma janela, então não sei como fazê-lo usar o tcdump e o ping 1 do computador ao mesmo tempo. Adicionei os resultados da execução do tcdump no computador 1 na quarta edição da postagem original.
Edgargiraffe
O screencomando, com Ctrl-A e c para criar uma nova janela, pode ser útil. Ctrl-A e <Space> avançam uma janela, Ctrl-A e <Backspace> retornam uma, para que você possa alternar entre elas.
Azendale
Eu refiz a quarta edição. Os dois computadores estavam executando o tcpdump e os dois estavam tentando executar o ping 192.168.1.254 e depois um ao outro. Obrigado por me orientar nisso!
Edgargiraffe
1

Tente conectar-se diretamente aos dois computadores com um cabo Ethernet, configurando um endereço IP fixo (ex A: 192.168.1.10, B: 192.168.1.20) e tente executar o ping novamente.

Você saberá rapidamente se o problema vem do seu roteador ou dos seus computadores.

Sulliwane
fonte
Defino o computador 1 eth0 como um IP fixo de 192.168.1.10. Eu só tenho um terminal com o computador 2, então não pude usar o mesmo método do computador 1; como consertar o ip em um terminal? De qualquer forma, consertei o ip eth0 do computador 1, conectei os dois com um cabo ethernet e usei o computador 2 para executar ping no computador 1. Sem sorte.
Edgargiraffe
Veja aqui para mudar o endereço IP do computador B usando linha de comando: askubuntu.com/questions/342705/how-to-set-a-static-ip-address
Sulliwane
Bem, eu diria que é ping localhostou o ping 127.0.0.1que informa se a interface de rede está ativa. Isso significa que os dois computadores podem lidar com solicitações, se não me engano.
AzkerM
Obrigado por toda sua ajuda! Depois de fazer o que você sugeriu, os computadores podem efetuar ping um ao outro através do cabo Ethernet. Adicionei informações adicionais na quinta edição do meu post original. Isso significa que o problema está definitivamente no roteador?
Edgargiraffe
1

Minha primeira resposta quando vejo algo estranho como esse é instalar o wireshark.

Em seguida, faça com que você tenha permissão para usá-lo como não raiz:

sudo dpkg-reconfigure wireshark-common

Escolha a opção "yes".

usermod -a -G wireshark your-user-name

Efetue logout e efetue login novamente para selecionar a nova associação ao grupo e agora você pode executar pacotes de captura como um usuário não raiz.

Em seguida, execute o wireshark na máquina, selecionando a interface conectada à rede. Tente minimizar o tráfego que não seja o seu teste para facilitar a interpretação dos resultados.

Se você executar o wireshark em uma máquina e tentar executar ping em outra, deverá ver algo na máquina executando o wireshark que diz algo como "Quem tem <ip que você está tentando executar ping>". Se você conseguir isso, o computador que está tentando executar o ping está recebendo sua solicitação pelo computador wireshark. Felizmente, você também deve ver no wireshark algo como "<endereço IP que você está tentando executar ping> está em <endereço mac>". Se o fizer, o computador wireshark está respondendo. Se for esse o caso, tente executar o wireshark no ping do computador e veja se você pode ver a resposta "<endereço IP que você está tentando executar ping> está em <endereço MAC>" no computador que executa o ping.

Peço desculpas se este é um nível muito baixo e passa por cima de sua cabeça. Este método se aprofunda nos detalhes. Mas poder ver o que realmente está acontecendo na rede tende a tornar os problemas muito mais óbvios.

Azendale
fonte
Instalei o wireshark no computador 2 conforme suas instruções. Infelizmente, o computador 2 não pode abrir a tela do wireshark, então eu também instalei o tshark, está tudo bem? Eu usei o comando tshark -i wlan0e não vê quaisquer resultados, enquanto computador 1 está tentando computador de ping 2.
edgargiraffe
tshark deve estar bem, acabei de dizer wireshark porque acho que a GUI tornaria mais fácil :) O que eu tentaria considerando os resultados está fazendo o inverso e ver se você pode ver alguma coisa no computador 1 usando tubarão (wire / t) e ping do computador2. Se isso também não mostrar nada de ARP ou ICMP, eu verificaria se você encontra alguma coisa nas páginas sem fio do roteador sobre "Isolamento do cliente" ou algo nesse sentido. Se você o encontrar, você o quer.
Azendale
Instalei o wireshark no computador 1. O computador 1 é o meu laptop pessoal e possui muito tráfego, portanto não publicarei todos os resultados aqui. Eu posso vê-lo transmitido, Who has 192.168.1.2? Tell 192.168.1.77mas nunca recebe uma resposta. O roteador que estou usando não tem isolamento cliente habilitado como por seu FAQ: actiontec.com/products/faqs.php?pid=191#q25
edgargiraffe
1

Eu tive os mesmos sintomas com a minha LAN (apenas máquinas ubuntu). Isso aconteceu desde que adquirimos um novo roteador. É um daqueles de banda dupla. Não consegui entender o problema, até que eu pensasse que uma "banda" é totalmente separada da outra. Deveria ser fácil testar, desconectei uma máquina do wifi e reconectei (no mesmo SSID), e o que você sabe, tive sorte (é uma chance de 50-50?) E apareceu na LAN da outra agora eu posso efetuar ping e fazer login nela! O "nmap" acima me deu a pista. Obrigado pela ideia.

user333038
fonte
11
Por favor, não adicione 'obrigado' como respostas. Invista algum tempo no site e você obterá privilégios suficientes para aprovar as respostas que desejar, que é a maneira de agradecer ao Ask Ubuntu.
Parto 30/09
0

Passe pela configuração do seu roteador e verifique se os firewalls da rede local não estão ativados. Alguns roteadores, por padrão, isolam os dispositivos conectados um do outro.

Você também pode usar nmap:

$ nmap -sn 192.168.1.0/24

Veja se isso traz alguma coisa.

ps95
fonte
Examinei as páginas de configuração do meu roteador e não acredito que haja firewalls de rede local configurados. Eu também conversei com um representante do cliente e ele não mencionou nenhum. Eu adicionei uma terceira edição para o post original com os resultados nmapno computador 2.
edgargiraffe
0

Alguma coisa está bagunçada com sua tabela de roteamento, mas não vejo nada de errado com ela. "Host inacessível" significa que o kernel não pode decidir qual adaptador usar para enviar o pacote, então ele desiste e descarta o pacote.

A métrica para a sua rede local é 9. Isso deve ser 0 ou 1. No entanto, há rumores de que o kernel do Linux ignore a métrica.

Eu tentaria adicionar uma rota ao host específico. Tente isso no computador 1:

route add -host 192.168.1.2 metric 0 dev wlan0

Tente também remover a rota para 169.254.0.0 e veja se isso ajudará. É improvável, mas você nunca sabe.

EDITAR

Você não tem VPN em execução, não é? Sabe-se que a Cisco VPN interfere nas conexões de rede local.

surf
fonte
Eu removi a rota para 169.254.0.0 do computador 1. Também adicionei uma rota para 192.168.1.2 no computador 1. A nova rota correspondente na route -ntabela é:192.168.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 wlan0
edgargiraffe
Não, eu não acredito que tenho uma VPN em execução.
Edgargiraffe
0

Todos os seus pacotes do Computador 1 e do Computador 2 são roteados para wlan0 em cada host local, mas nenhuma interface sem fio está associada a uma rede sem fio.

Você atribuiu os endereços IP manualmente? Eles devem ser fornecidos, via DHCP, pelo roteador, como parte da configuração de associação / autenticação.

Faça sudo iwlist wlan0 scanem cada computador para ver as redes sem fio disponíveis para cada computador. Um deles deve ser o seu roteador. O roteador está configurado com um ESSID (nome de rede sem fio) diferente do padrão?

De que tipo de criptografia o roteador está configurado para / é capaz? As opções são Nenhuma (muito, muito ruim), WEP (muito ruim), WPA (ruim) e WPA2 (melhor disponível no momento). Todos os três sistemas devem concordar com uma criptografia comum.

Quando tudo estiver resolvido, o Computador 1 poderá conectar-se sem fio ao roteador e obter um endereço IP (além de outras informações de rede, como o gateway padrão, MTU). Ser capaz de pingo roteador.

Repita para o Computador 2 .

Então, e somente então, você pode realmente ping, se o roteador permitir roteamento de endereço local.

waltinator
fonte
Pelo que sei, o roteador usa WPA / WPA2segurança com um WPA or WPA2 - Personaltipo WPA. O ESSID está configurado para ser diferente do padrão. Ambos os computadores podem encontrar os roteadores com o sudo iwlist wlan0 scancomando Ambos os computadores podem executar ping no roteador. O computador 1 possui um IP dinâmico e o computador 2 possui um IP fixo. Nenhum computador pode executar ping no outro.
Edgargiraffe
Eu uso NetworkManagerpara gerenciar minhas conexões wifi e senhas, e iwconfigshows: $ iwconfig wlan0 wlan0 IEEE 802.11bg ESSID:"Fairfield" Mode:Managed Frequency:2.422 GHz Access Point: 14:D6:4D:2D:5F:AE Bit Rate=54 Mb/s Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:off Link Quality=70/70 Signal level=-40 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx Invalid frag:0 Tx excessive retries:0 Invalid misc:37 Missed beacon:0
waltinator
0

O problema parece estar na sua rede. Não nas próprias máquinas Linux. Eu diria que é o seu roteador / ponto de acesso sem fio que está enganando você.

  • Como você pode acessar a Internet pelos dois hosts, eles podem obter os gateways MAC através de uma solicitação ARP.
  • Eles não recebem pedidos ou respostas ARP uns dos outros.
  • Eles (comprovados no computador1) recebem a solicitação ARP dos roteadores.

Isso indica que o seu roteador / AP engole os pedidos do ARP e, sem o ARP funcionando, eles não conhecem o MAC do outro e, portanto, não podem conversar sobre Ethernet.

Tente fazer com que o DHCP do roteador atribua os endereços em vez de atribuí-los estaticamente.

Ou adicione-os estaticamente ao cache do ARP para ver se isso ajuda.

No computador1:

arp -s 192.168.1.2 00:22:43:9b:7b:64

No computador2:

arp -a 192.168.1.77 c4:85:08:77:d3:f5  
MattBianco
fonte
0

Verifique se o ponto de acesso do seu roteador wlan possui uma opção de isolamento (ative o isolamento do ponto de acesso).

Mohamed A. Hafez
fonte