Perché sto ricevendo la perdita di pacchetti quando eseguo il ping di Raspberry PIS sulla sottorete?


2

Ho tre pis di lampone collegati insieme su una sottorete tramite un hub. Ho dato loro tutti gli IP statici e sto usando un Pi principale per eseguire il ping degli altri due Pis.

Ecco la mia configurazione: foto di installazione

Una volta che il Pi principale inizia a eseguire il ping di un altro Pi, ogni ping ritorna totalmente bene. Ma quando inizio il ping inizialmente possono essere necessari circa 5 secondi per ricevere la sua prima risposta. Ciò porta a una perdita di pacchetti pari o superiore al 30% e fa sì che quando eseguo script spesso non riescono a trasmettere messaggi a causa di timeout che provano a connettersi.

Ecco una foto della perdita di pacchetti durante il ping di un pi poi dell'altro:

inserisci qui la descrizione dell'immagine

Sono molto nuovo nel networking, quindi per favore fatemi sapere quali informazioni posso fornire per diagnosticare meglio il problema.

Ho provato a sostituire il pis di lampone, i cavi Ethernet e l'hub, ma non ho ancora avuto fortuna. Mi chiedo se ci sia qualche limitazione su Pis Im ignaro di o se questo potrebbe essere un problema hardware difettoso con il mio fornitore di hub.

EDIT: ho corso IP neighbor showcon i seguenti risultati

pi@raspberrypi:~ $ ip neighbor show
192.168.2.1 dev wlan0 lladdr 40:c7:29:4e:4d:f8 STALE
192.168.3.32 dev enxb827eb9c0ecf lladdr 00:e0:4c:53:44:58 STALE
192.168.2.131 dev wlan0 lladdr 02:0f:b5:87:93:39 REACHABLE
192.168.3.37 dev enxb827eb9c0ecf lladdr 00:e0:4c:53:44:58 STALE

La ragione per cui mostra due diverse reti è che sono connesso a Internet tramite Wi-Fi sulla 192.168.2rete. E sono collegato via Ethernet agli altri 2 pis 192.168.3. Entrambi gli IP Pis possono essere visti lì come .3.37e .3.32rispettivamente.

EDIT2: Ho notato giocando con IP neighbor showquello se faccio un ping un pi poi corro IP neighbor showdice REACHABLEaccanto a quel pi. Ma se eseguo il ping dell'altro Pi, verrà visualizzato il primo Pi che ho STALEeseguito REACHABLEil ping e quello nuovo avverrà ogni volta che eseguo il ping dell'altro Pi.


Perché stai usando un hub e non uno switch Ethernet?
Grawity

Perché gli hub sono più economici: P. Ho comprato un interruttore oggi per provarlo e ho avuto lo stesso identico problema
Matt

1
In base ai sintomi che si verificano, si ha effettivamente uno switch anziché un hub, poiché uno switch mantiene una mappatura dell'indirizzo mac sulla porta, ma un hub trasmette tutto il traffico. Non si otterrebbe la perdita di pacchetti di conflitti di indirizzi mac se fosse un hub.
Ferrybig,

@Ferrybig sei l'uomo. Grazie per aver controllato entrambi i miei post ahah salute
Matt

1
Non mi ero nemmeno reso conto di aver controllato entrambi i post ... È solo che lo dici, dico solo una domanda con un titolo interessante nella sezione correlata
Ferrybig,

Risposte:


2

Il problema deriva dal fatto che entrambi i tuoi Raspberry Pi hanno lo stesso indirizzo MAC. Possiamo vedere questo dall'output di ip neighbor showdove entrambi 3.32e 3.37avere l'indirizzo MAC 00:e0:4c:53:44:58. Non solo vivrai ciò che hai già sperimentato con i ping, ma anche qualsiasi comunicazione tra il tuo Pi principale e entrambi gli altri Pi sarà problematica.

Questo non dovrebbe essere il caso poiché gli indirizzi MAC dovrebbero essere univoci a livello globale, ma purtroppo eccoci qui. Per risolvere questo problema, dovrai trovare un modo per modificare manualmente l'indirizzo MAC. Questo post dai forum Pi sembra suggerire un modo per farlo:

In sostanza, crea un file "/etc/systemd/network/00-default.link" con i contenuti:

[Match]
MACAddress=current MAC address

[Link]
MACAddress=new MAC address

Quindi sudo ifdown e ifup l'interfaccia e dovrebbe avere il suo nuovo indirizzo MAC, e la modifica persisterà attraverso i riavvii.

I numeri degli indirizzi MAC sono 12 caratteri esadecimali (0-9, af). Di solito sono separati ogni due caratteri da due punti o trattini, ma quelli in realtà non fanno parte dell'indirizzo. Per esempio:

01:23:45:ab:cd:ef

Sì, usa solo alcuni personaggi casuali. Abbiamo solo bisogno di qualcosa di unico.


Amico, ci sto provando adesso, ma ha perfettamente senso. Molte, molte grazie. Ho cercato di risolvere questo problema per 36 ore. Non posso assolutamente ringraziarti abbastanza
Matt

Ne ho bisogno per sopravvivere ai riavvii, ma ricordo di aver letto da qualche parte che /etc/nework/interfacesè obsoleto e di apportare tutte le modifiche fino ad /etc/dhcpcd.confora, presumo che dovrebbe rimanere vero per quanto riguarda le modifiche dell'indirizzo MAC. Inoltre, qual è il formato dei numeri di indirizzo MAC, vedo che alcuni hanno lettere in essi - devo solo scegliere lettere / numeri a caso nel formato xx: xx: xx: xx: xx: xx?
Matt

1
Ho aggiornato il metodo per modificare l'indirizzo MAC e ampliato un po 'la formattazione dell'indirizzo MAC.
Stanley Yu,

questo metodo ha smesso di funzionare casualmente per me oggi - ho scritto un nuovo post al riguardo qui
Matt

1

Quando si avvia il ping iniziale, immettere il comando seguente:

ip neighbor show

Questo mostrerà la cache ARP e darà un suggerimento se la risoluzione ARP ha avuto luogo o meno.

Basta modificare la domanda e inserire l'output lì e aggiungere anche gli IP dei RasPI di destinazione.


Ho eseguito il comando e aggiornato il mio post
Matt
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.