Raspberry Pi non può eseguire il ping del router o degli indirizzi Internet sul bridge wifi


10

Di recente ho installato un router WNR2000v3 che esegue DD-WRT come una sorta di ripetitore bridge utilizzando la versione "Atheros" di questo tutorial (chiameremo questo "router 2"), che sta ripetendo un router Medialink Wireless-N (noi " Chiamerò questo 'router 1'). Funziona perfettamente con il mio telefono Android e computer Windows sia tramite Wi-Fi sia quando connesso direttamente tramite Ethernet, ma quando collego il mio Raspberry Pi, sia quando eseguo Raspbian (wheezy) o Raspbmc, non riesco a ottenere alcuna connessione al di fuori della rete locale.

Il raspberry pi può eseguire il ping (ed eseguire il ping da) qualsiasi altro dispositivo sulla sottorete locale, incluso 'router 2', a cui è direttamente collegato ed è in grado di ottenere DHCP dal router 1, ma quando provo e ping router 1, ottengo "Host di destinazione irraggiungibile" e se provo a eseguire il ping di qualcosa su Internet come google.com, superuser.com, ottengo allo stesso modo "Host di destinazione irraggiungibile".

Ecco un altro computer in rete:

ping 192.168.0.100
PING 192.168.0.100 (192.168.0.100) 56(84) bytes of data.
64 bytes from 192.168.0.100: icmp_req=1 ttl=127 time=38.7 ms
64 bytes from 192.168.0.100: icmp_req=2 ttl=127 time=1.67 ms
64 bytes from 192.168.0.100: icmp_req=3 ttl=127 time=1.73 ms
64 bytes from 192.168.0.100: icmp_req=4 ttl=127 time=3.56 ms
--- 192.168.0.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 1.672/11.418/38.705/15.772 ms

Ecco il router 1:

ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
From 192.168.0.107 icmp_seq=1 Destination Host Unreachable
From 192.168.0.107 icmp_seq=2 Destination Host Unreachable
From 192.168.0.107 icmp_seq=3 Destination Host Unreachable
From 192.168.0.107 icmp_seq=4 Destination Host Unreachable
From 192.168.0.107 icmp_seq=5 Destination Host Unreachable
From 192.168.0.107 icmp_seq=6 Destination Host Unreachable
--- 192.168.0.1 ping statistics ---
8 packets transmitted, 0 received, +6 errors, 100% packet loss, time 7007ms
pipe 3

192.168.0.107 è l'indirizzo del Raspberry Pi:

ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:db:c9
          inet addr:192.168.0.107  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3753 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1262 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:595127 (581.1 KiB)  TX bytes:112407 (109.7 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:285 errors:0 dropped:0 overruns:0 frame:0
          TX packets:285 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:27703 (27.0 KiB)  TX bytes:27703 (27.0 KiB)

Ecco la tabella di routing:

sudo route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

Ed ecco la richiesta DHCP:

sudo dhclient -v eth0
Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/xx:xx:xx:xx:db:c9
Sending on   LPF/eth0/xx:xx:xx:xx:db:c9
Sending on   Socket/fallback
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
RTNETLINK answers: File exists
bound to 192.168.0.107 -- renewal in 274691 seconds.

Tutto il resto funziona bene, ma ho provato questo rapsberry pi con due immagini diverse (Raspbmc e raspbian) e due diversi pis di lampone e nessuna configurazione funziona. L'immagine raspbian è stata testata come funzionante quando è collegata direttamente al router 1. Questo problema sembra molto simile a questa domanda senza risposta di due anni fa, tranne per il fatto che in quel caso sembra che stesse usando il wifi per il dispositivo che non è riuscito a connettersi, e stava effettivamente ricevendo una connettività intermittente. Anche la risposta al ping è stata dal router, non dal dispositivo. Cosa potrebbe causare questo problema?

Modifica: dovrei anche notare che i due diversi pis di lampone avevano indirizzi IP diversi, uno dei quali era associato a IP-MAC, e non c'erano collisioni IP che ho visto nella tabella DHCP, ma lo stesso problema su ciascuno.

Aggiornamento : ho individuato una cosa potenzialmente interessante, ovvero che quando la clonazione dell'indirizzo MAC è disattivata, il ripetitore bridge smette di funzionare - l'unica cosa che può eseguire il ping del raspberry pi è il router 2 e non c'è connettività (o accesso al router 1) da qualsiasi cosa collegata solo al router 2 - incluso il computer Windows. Tuttavia, l'indirizzo mac che viene clonato è lo stesso indirizzo mac effettivamente utilizzato dalle interfacce del router 2 (in base alla pagina "stato"). Ho acceso e riacceso sia il router 1 che il router 2 due volte e non fa alcuna differenza. Non capisco perché la clonazione dell'indirizzo MAC sia rilevante qui. Con la clonazione dell'indirizzo MAC disattivata, quando accedo al router stesso, il router può eseguire il ping di Raspberry pi, ma non del router 1.

Un'altra piccola cosa è che quando la clonazione dell'indirizzo MAC è attiva e posso effettivamente eseguire il ping di altri computer sulla rete, l'arping restituisce lo stesso indirizzo mac per ogni dispositivo che risponde ai ping.

Aggiornamento 2: dal controllo dei valori syslog, ho scoperto che c'era questo messaggio di errore relativo all'indirizzo MAC:

Jan  1 00:00:08 Router 2 kern.err kernel: [    6.770000] ath: eeprom contains invalid mac address: ff:ff:ff:ff:ff:ff
Jan  1 00:00:08 Router 2 kern.err kernel: [    6.780000] ath: random mac address will be used: fa:55:da:33:19:a9

Apparentemente questo è un problema noto che le persone stanno risolvendo usando la clonazione dell'indirizzo MAC. Non sono esattamente sicuro del perché gli indirizzi MAC casuali rappresentino un problema e quali altre conseguenze abbia la clonazione degli indirizzi MAC.


Se si dispone di un client wireless per il router 2, è possibile eseguire il ping da / dal lampone al client wireless?
MariusMatutiae,

Sì. Puoi eseguire il ping del lampone da un client wireless sul router 1 o sul router 2.
Paul,

Sul router 1, hai abilitato DHCP o dnsmasq?
MariusMatutiae,

DHCP sì, non so di dnsmasq. Non è disponibile alcuna impostazione nell'interfaccia utente Web sul router 1.
Paul,

Ecco perché fa schifo NAT. Invece dovresti davvero usare WDS. (Sembra che ogni dispositivo abbia lo stesso indirizzo MAC perché NAT viene utilizzato per convincere l'access point che sta parlando con il suo client.)
David Schwartz,

Risposte:


1

+1 per la descrizione dettagliata del problema.

Come ho suggerito sul filo è stato aperto nel PI lampone , si potrebbe verificare se il vostro router principale è elencato nella tabella ARP del RPI: arp -no se avete l'iproute2 installato: ip neigh.

Se necessario, è possibile aggiungere il router nella cache arp con questo comando: arp -s <ROUTER_IP> <ROUTER_MAC>e vedere se il problema persiste

Puoi anche verificare se il tuo RPi invia la richiesta ARP come previsto sniffando tutti i pacchetti ARP. Sul tuo RPi, esegui:tcpdump arp

È inoltre possibile eseguire lo stesso comando sul ripetitore DD-WRT e su qualsiasi altro host collegato sul router 1. Poiché le richieste ARP vengono trasmesse, è necessario visualizzarle nella LAN.


1

Ho avuto lo stesso problema durante l'installazione del nuovo ripetitore Wifi. La soluzione compromessa è impostata sull'IP statico per Raspberry Pi.


0

È difficile da diagnosticare, perché ovviamente il tuo sistema sembra configurato correttamente. Quindi, piuttosto che passare attraverso un lungo elenco di opzioni di controllo, ti darò alcune idee da testare.

Una cosa che vorrei provare è cambiare il gateway predefinito sul router 2, piuttosto che sul router 1.

Un'altra cosa è forzare il ping per associare l'interfaccia eth0:

 ping -I 192.168.0.107 192.168.0.1
 ping -I eth0          192.168.0.1

Questi due comandi sono leggermente diversi, entrambi dovrebbero essere provati. Si spera che forniranno uscite diverse, il che sarebbe un'indicazione di un errore.

Quindi controllo / etc / network / interfaces: contiene un paio di righe come

  auto eth0
  iface eth0 inet dhcp

Quindi proverei a riavviare l'interfaccia:

  ifdown eth0
  ifup eth0

e poi di nuovo dhclient.

Quando tutto è detto e fatto, si dovrebbe tenere presente che non è necessario che sia un problema software. Se vai a questa pagina Web potresti leggere la seguente esperienza:

Avevo ordinato un altro lampone pi e ho appena ripreso l'immagine della scheda SD, avviata in quella e Internet funzionava bene. Ho tirato fuori la scheda SD e l'ho inserita nel vecchio Raspberry Pi e ho collegato gli stessi cavi esatti e il cavo Ethernet ma ancora non ha funzionato ...

Inoltre, è necessario tenere presente che esiste la possibilità di un problema con il cavo. I cavi non funzionano / non funzionano oggetti. Un problema in RX o TX può causare la caduta di molti frame, la qualità del segnale marginale e così via. In questo caso, protocolli come TCP si comportano meglio di ICMP o UDP perché ritrasmettono pacchetti che non sono stati ricevuti dalla destinazione, dando l'impressione sbagliata di una connessione che funzioni correttamente. Questa impressione sbagliata dura fino a quando non si misura la velocità di connessione, ovviamente.


Non vi è alcuna differenza tra la risposta ai due comandi ping. Lo stesso che ho incollato sopra. Il file / etc / network / interfaces è vuoto nel caso raspbmc, nel caso raspbian ha "auto lo" "iface lo inet loopback" "iface eth0 inet dhcp". Il riavvio dell'interfaccia non fa nulla in entrambi i casi. Sicuramente non è un problema con il Raspberry Pi, perché ho due diversi PIS Raspberry, nessuno dei quali funziona quando è collegato al router 2 ma entrambi funzionano quando è collegato direttamente al router 1.
Paul

-1

Problema simile che ho avuto qualche tempo fa. La mia soluzione stava modificando il /etc/resolv.conffile aggiungendo nameserver 8.8.4.4e riavviando le interfacce usando /etc/init.d/networking restart. Per me funziona.


OP menziona Destination Host Unreachablecome errore, il che sembra suggerire che DNS funzioni bene. Un errore DNS avrebbe prodotto qualcosa di simile cannot resolveo Unknown host.
jornane,
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.