Computer ping sulla rete locale: host di destinazione non raggiungibile


15

Ho due computer Ubuntu su una rete locale e nessuno dei due è in grado di eseguire il ping. Ogni volta che provo ricevo il messaggio di errore "host irraggiungibile di destinazione". Entrambi i computer sono in grado di accedere a Internet con qualsiasi problema.

Ho un router ActionTech v1000h di Telus. Sono stato in contatto con uno dei loro rappresentanti dei clienti e hanno detto che non dovrebbero esserci motivi per cui due dispositivi non possano scambiarsi il ping sulla rete.

Sono totalmente perplesso, qualcuno di voi ha qualche idea?

Computer 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)

rotta -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  

Computer 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)

rotta -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  

Modifica: Esempio dell'errore quando il computer 1 tenta di eseguire il ping del computer 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

Modifica 2: arp -a di entrambi i computer

Computer 1:

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

Computer 2:

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

Modifica 3: nmap -sn 192.168.1.0/24 sul computer 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

Modifica 4: I registri tcpdump di entrambi i computer mentre il primo ping 192.168.1.254 e poi l'altro:

Computer 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

Computer 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

Modifica 5: imposta ips statici per entrambi i computer etho0 e li collega con un cavo internet. Entrambi i computer possono sicuramente fare un rumore metallico attraverso il cavo Ethernet! ifconfig -arisultati eth0:

Computer 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)

Computer 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)

1
Come li ping? IP? Nome host?
terdon,

Chi ti sta dicendo "host di destinazione irraggiungibile": l'adattatore locale o qualcos'altro? Fornisci copia / incolla dei comandi ping e il loro output.
sabato

Li sto pingando usando i loro indirizzi IP. Ho aggiunto una modifica al post originale che descrive in dettaglio il comando che sto usando e il messaggio di errore.
edgargiraffe

Stai forse bloccando il ping nelle impostazioni del tuo router?
terdon,

Non credo, ho controllato le impostazioni del router per un paio d'ore. Ho anche parlato con un rappresentante del telus e lui non mi ha dato alcuna indicazione che questo potrebbe essere il problema.
edgargiraffe,

Risposte:


4

ping ping da entrambi i computer, ping 192.168.1.254 quindi provare a eseguire il ping da comp1 a compt2 e comp2 a comp1, quindi pubblicare i risultati di arp -aENTRAMBE le caselle

modificare

Interessante, qualcosa sta bloccando il traffico

eseguire sudo tcpdump -ni wlan0 arpin una finestra su entrambi i computer e quindi provare il ping tra di loro e la porta d'ingresso da un'altra finestra su entrambi i risultati di nuovo e post

Edit2

Finora ciò dimostra che comp1 sta facendo ciò che si suppone invii una richiesta arp (chiedendo l'indirizzo etherner di comp2s) ma non ricevendo una risposta arp (sentendo qualcosa indietro). Devi vedere il tcpdump da PC2 per vedere il quadro completo. O esegui il comando schermo o esegui questa operazione su PC1 sudo tcpdump -w pc1.pcap -ni wlan0 arp &e su PC2 sudo tcpdump -w pc2.pcap -ni wlan0 arp & e dovresti lanciarlo in background e restituirti la richiesta di ping. Se i ping falliscono, riportare i lavori in primo piano con fg %1stop ctrl+ce leggere i file scritti consudo tcpdump -r pc1/2.pcap

I PC di Edit3 stanno facendo ciò che suppongono, mettendo fuori gioco gli ARP ma non riescono a capire quali punti del router. Forse disabilita l'impostazione del firewall, dubiti che supporti le VLAN? Ti auguro di lasciarlo funzionare un po 'più a lungo a 22: 45: 48.379058 il tuo router ha inviato la sua richiesta ARP quando cercava PC1 22:45:48.379058 ARP, Request who-has 192.168.1.77 tell 192.168.1.254, length 28entrambi i PC avrebbero dovuto vederlo, possiamo vedere che PC1 l'ha visto e ha risposto con il suo IP ma non posso dì se PC2 l'ha preso da quando l'hai fermato si ferma a breve a 22: 45: 09.796214 . Supponendo che i tuoi orologi siano sincronizzati con NTP.

Edit4

Vedi che non è ancora stato risolto. Non ho visto che hai adattatori etici su entrambi i PC. Puoi collegarti al router su eth invece che su wlan e vedere se riesci a eseguire il ping? O ottenere un altro router? O creare un hotspot sul telefono collegare entrambi i PC e provare a eseguire il ping? Inoltre, sorpreso di vedere che sei stato in grado di collegare due PC insieme e fare il ping l'un l'altro hai usato un cavo crossover?


Entrambi i computer possono eseguire il ping 192.168.1.254 senza problemi e nessuno dei due computer può eseguire correttamente il ping dell'altro, ottenendo il messaggio di errore che ho pubblicato sopra. Ho aggiunto una seconda modifica al post originale con i risultati di `arp -a ~ su entrambi i computer.
edgargiraffe

Il computer 2 ha solo una finestra, quindi non so come farlo usare tcdump e ping il computer 1 allo stesso tempo. Ho aggiunto i risultati dell'esecuzione di tcdump sul computer 1 nella quarta modifica del post originale.
edgargiraffe,

Il screencomando, con Ctrl-A e poi c per creare una nuova finestra potrebbe essere utile. Ctrl-A quindi <Spazio> va avanti di una finestra, Ctrl-A quindi <Spazio> torna indietro di uno, in modo da poter passare da uno all'altro.
Azendale,

Ho rifatto la quarta modifica. Entrambi i computer eseguivano tcpdump ed entrambi i computer cercavano di eseguire il ping 192.168.1.254 e quindi l'un l'altro. Grazie per avermi seguito!
edgargiraffe,

1

Prova a collegare direttamente i tuoi due computer tra loro con un cavo Ethernet, impostando entrambi su un indirizzo IP fisso (es. A: 192.168.1.10, B: 192.168.1.20) e prova a eseguire nuovamente il ping.

Quindi saprai molto rapidamente se il problema proviene dal tuo router o dai tuoi computer.


Ho impostato il computer 1 eth0 su un IP fisso di 192.168.1.10. Ho solo un terminale con il computer 2, quindi non ho potuto usare lo stesso metodo del computer 1; come si ripara l'ip in un terminale? In ogni caso, ho corretto l'IP eth0 del computer 1, li ho collegati entrambi con un cavo ethernet e ho usato il computer 2 per eseguire il ping del computer 1. Nessuna fortuna.
edgargiraffe,

Vedere qui per modificare l'indirizzo IP del computer B utilizzando la riga di comando: askubuntu.com/questions/342705/how-to-set-a-static-ip-address
Sulliwane

Bene, direi che lo è ping localhosto ping 127.0.0.1che ti dice se l'interfaccia di rete è attiva. Ciò significa che entrambi i PC sono in grado di gestire la richiesta se non sbaglio.
AzkerM,

Grazie per tutto il vostro aiuto! Dopo aver fatto ciò che hai suggerito, i computer possono eseguire il ping reciprocamente tramite il cavo Ethernet. Ho aggiunto ulteriori informazioni nella quinta modifica del mio post originale. Questo significa che il problema è sicuramente con il router?
edgargiraffe,

1

La mia prima risposta quando vedo qualcosa di strano come questo è installare WireShark.

Quindi fallo in modo da avere il permesso di usarlo come non root:

sudo dpkg-reconfigure wireshark-common

Scegli l'opzione "sì".

usermod -a -G wireshark your-user-name

Disconnettersi e riconnettersi per ritirare la nuova appartenenza al gruppo e ora è possibile eseguire i pacchetti di acquisizione come utente non root.

Quindi eseguire WireShark sulla macchina, selezionando l'interfaccia connessa alla rete. Cerca di ridurre al minimo il traffico diverso dai tuoi test per facilitare l'interpretazione dei risultati.

Se si esegue WireShark su una macchina e si tenta di eseguire il ping da un'altra, si dovrebbe vedere qualcosa sulla macchina che esegue WireShark che dice qualcosa sulla falsariga di "Chi ha <ip si sta tentando di eseguire il ping>". Se lo ottieni, il computer che sta tentando di eseguire il ping sta ricevendo la richiesta dal computer WireShark. Si spera che dovresti vedere anche in WireShark qualcosa sulla falsariga di "<indirizzo IP che stai tentando di eseguire il ping> è su <indirizzo mac>". In tal caso, il computer WireShark risponde. In tal caso, prova a eseguire il comando wirehark sul ping del computer e verifica se sul computer del ping viene visualizzata la risposta "<indirizzo IP che stai tentando di eseguire il ping> su <indirizzo mac>".

Mi scuso se questo livello è troppo basso e ti supera. Questo metodo approfondisce i dettagli. Ma essere in grado di vedere cosa sta realmente accadendo sulla rete tende a rendere i problemi molto più ovvi.


Ho installato WireShark sul computer 2 secondo le tue istruzioni. Sfortunatamente, il computer 2 non può aprire il display di WireShark, quindi ho anche installato Tshark, va bene? Ho usato il comando tshark -i wlan0e non vedo alcun risultato mentre il computer 1 sta cercando di eseguire il ping del computer 2.
edgargiraffe

Tshark dovrebbe andare bene, ho appena detto WireShark perché pensavo che la GUI avrebbe reso più semplice :) Quello che proverei considerando i risultati è fare il contrario e vedere se sul computer 1 è possibile vedere qualcosa usando (wire / t) Shark e ping dal computer2. Se anche questo non mostra nulla ARP o ICMP, vedrei se nelle pagine wireless del router si trova qualcosa su "Isolamento client" o qualcosa del genere. Se lo trovi, lo vuoi fuori.
Azendale,

Ho installato WireShark sul computer 1. Il computer 1 è il mio laptop personale e ha molto traffico, quindi non pubblicherò i risultati completi qui. Posso vederlo trasmesso Who has 192.168.1.2? Tell 192.168.1.77ma non riceve mai una risposta. Il router che sto usando non ha l'isolamento del client abilitato secondo la loro faq: actiontec.com/products/faqs.php?pid=191#q25
edgargiraffe

1

Ho avuto gli stessi sintomi con la mia LAN (solo macchine Ubuntu). È successo da quando abbiamo ottenuto un nuovo router. È uno di quelli dual band. Non riuscivo a dare un senso al problema, fino a quando pensavo che una "band" fosse totalmente disgiunta dall'altra. Dovrebbe essere facile da testare, ho disconnesso una macchina dal wifi e l'ho ricollegata (allo stesso SSID), e cosa sai, sono stato fortunato (è una possibilità del 50-50?) E è apparso sulla lan dell'altra macchina e ora posso eseguire il ping e il login! La "nmap" sopra mi ha dato la chiave. Grazie per l'idea


1
Si prega di non aggiungere "grazie" come risposte. Investi un po 'di tempo sul sito e otterrai i privilegi sufficienti per migliorare le risposte che ti piacciono, che è il modo di chiedere a Ubuntu per ringraziarti.
Parto,

0

Passare attraverso la configurazione del router e vedere se i firewall di rete locale non sono attivi. Alcuni router, per impostazione predefinita, isolano i dispositivi collegati l'uno dall'altro.

Puoi anche usare nmap:

$ nmap -sn 192.168.1.0/24

Vedi se questo viene fuori con qualcosa.


Ho consultato le pagine di configurazione del mio router e non credo che siano stati installati firewall di rete locale. Ho anche parlato con un rappresentante del cliente e non ne ha menzionato nessuno. Ho aggiunto una terza modifica al post originale con i risultati di nmapsul computer 2.
edgargiraffe

0

Qualcosa è incasinato nella tua tabella di routing ma non riesco a vedere nulla di sbagliato. "Host non raggiungibile" significa che il kernel non può decidere quale adattatore utilizzare per inviare il pacchetto in modo che rinunci e rilasci il pacchetto.

La metrica per la tua rete locale è 9. Dovrebbe essere 0 o 1. Tuttavia si dice che il kernel Linux ignori la metrica.

Vorrei provare ad aggiungere un percorso all'host specifico. Prova questo su Computer 1:

route add -host 192.168.1.2 metric 0 dev wlan0

Prova anche a rimuovere il percorso verso 169.254.0.0 e vedi se questo ti aiuterà. È improbabile ma non lo sai mai.

MODIFICARE

Non hai VPN in esecuzione, vero? Cisco VPN è noto per interferire con le connessioni di rete locali.


Ho rimosso la route 169.254.0.0 dal computer 1. Ho anche aggiunto una route 192.168.1.2 al computer 1. La nuova route corrispondente nella route -ntabella è:192.168.1.2 0.0.0.0 255.255.255.255 UH 0 0 0 wlan0
edgargiraffe

No, non credo di avere una VPN in esecuzione.
edgargiraffe,

0

Tutti i pacchetti dal Computer 1 e Computer 2 vengono instradati a wlan0 su ciascun localhost, ma nessuna interfaccia wireless è associata a una rete wireless.

Hai assegnato gli indirizzi IP manualmente? Dovrebbero essere forniti, tramite DHCP, dal router, nell'ambito della configurazione dell'associazione / autenticazione.

Fare sudo iwlist wlan0 scansu ciascun computer per vedere le reti wireless disponibili per ciascun computer. Uno di questi dovrebbe essere il tuo router. Il router è configurato con un ESSID (nome della rete wireless) diverso da quello predefinito?

Per quale tipo di crittografia è configurato / abilitato il router? Le scelte sono Nessuna (pessima), WEP (pessima), WPA (pessima) e WPA2 (la migliore attualmente disponibile). Tutti e 3 i sistemi devono concordare una crittografia comune.

Una volta risolto tutto, Computer 1 dovrebbe essere in grado di connettersi in modalità wireless al router, ottenere un indirizzo IP da esso (insieme ad altre informazioni di rete come il gateway predefinito, MTU). Essere in grado di pingrouter.

Ripeti per Computer 2 .

Quindi, e solo allora, puoi veramente ping, se il router consente il routing degli indirizzi locali.


Da quello che posso dire, il router utilizza la WPA / WPA2sicurezza con un WPA or WPA2 - Personaltipo WPA. ESSID è configurato per essere diverso da quello predefinito. Entrambi i computer possono trovare i router con il sudo iwlist wlan0 scancomando. Entrambi i computer possono eseguire il ping del router. Il computer 1 ha un IP dinamico e il computer 2 ha un IP fisso. Nessuno dei due computer può eseguire il ping dell'altro.
edgargiraffe

Uso NetworkManagerper gestire le mie connessioni e password wifi e iwconfigmostra: $ 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

Il problema sembra essere nella tua rete. Non nelle macchine Linux stesse. Direi che è il tuo router / punto di accesso wireless a giocare brutti scherzi.

  • Poiché è possibile raggiungere Internet da entrambi gli host, possono ottenere i gateway MAC predefiniti tramite una richiesta ARP.
  • Non ricevono reciprocamente richieste o risposte ARP.
  • Hanno (provato su computer1) ottenere la richiesta ARP del router.

Ciò indica che il tuo router / AP ingoia le richieste ARP e, senza il funzionamento di ARP, non conoscono il MAC dell'altro, e quindi non possono comunicare tra loro.

Prova a fare in modo che il router DHCP assegni gli indirizzi invece di assegnarli staticamente da solo.

Oppure aggiungili staticamente alla tua cache ARP per vedere se questo aiuta.

Sul computer 1:

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

Su Computer2:

arp -a 192.168.1.77 c4:85:08:77:d3:f5  

0

Controlla se l'AP del router wlan ha un'opzione di isolamento (abilita isolamento AP) disabilitalo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.