2

I have three raspberry pis connected together on a subnet via a hub. I've given them all static IPs and I'm using one main Pi to ping the other two Pis.

Here is my setup: pic of setup

Once the main Pi starts pinging another Pi, each ping returns back totally fine. But when I initially start the ping it can take around 5 seconds to receive its first response back. This leads to 30%+ in packet loss or so and makes it so that when I run scripts they often fail at transmitting messages due to timeouts trying to connect.

Here is a photo of the packet loss when pinging one pi then the other:

enter image description here

I'm very new to networking so please let me know what information I can provide to better diagnose the issue.

I've tried replacing the raspberry pis, the ethernet cables, and the hub but no luck as of yet. I'm wondering if there is some limitation on the Pis Im unaware of or if this might be a faulty hardware issue with my hub supplier.

EDIT: I ran IP neighbor show with the following results

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

The reason it shows two different networks is that I'm connected to the internet over wifi on the 192.168.2 network. And I'm connected via ethernet to the other 2 pis over 192.168.3. Both Pis IPs can be seen there as .3.37 and .3.32 respectively.

EDIT2: I noticed from playing around with IP neighbor show that if I ping a pi then run IP neighbor show it says REACHABLE next to that pi. But then if I ping the other Pi then the first Pi I pinged will display STALE and the new one will be REACHABLE this happens each time I ping the other Pi.

  • Why are you using a hub and not an Ethernet switch? – grawity Sep 7 '18 at 19:39
  • Because hubs are cheaper :P. I bought a switch today to try it and had the exact same issue – Matt Sep 7 '18 at 19:42
  • 1
    According to the symptoms you experience, you actually have a switch instead of a hub, as a switch keeps a mapping of mac address to port, but an hub broadcasts all traffic. You wouldn't get mac address conflict packet loss if it was a hub. – Ferrybig Sep 12 '18 at 6:53
  • @Ferrybig you're the man. Thanks for checking both my posts haha cheers – Matt Sep 12 '18 at 7:27
  • 1
    I didn't even realise I checked both you posts... It's just that you say that, I just say an question with an interesting title in the related section – Ferrybig Sep 12 '18 at 7:28
2

The problem stems from the fact that both of your Raspberry Pi's have the same MAC address. We can see this from the output of ip neighbor show where both 3.32 and 3.37 have the MAC address 00:e0:4c:53:44:58. Not only will you experience what you've already been experiencing with the pings, but any communication between your main Pi and both other Pi's simultaneously will also be problematic.

This shouldn't be the case since MAC addresses are supposed to be globally unique, but alas, here we are. To fix this, you'll need to find a way to change the MAC address by hand. This post from the Pi forums seems to suggest a way to do this:

Essentially, create a file "/etc/systemd/network/00-default.link" with contents:

[Match]
MACAddress=current MAC address

[Link]
MACAddress=new MAC address

Then sudo ifdown and ifup the interface and it should have its new MAC address, and the change will persist through reboots.

MAC address numbers are 12 hexadecimal characters (0-9, a-f). They're usually separated every two characters by colons or dashes, but those are not actually part of the address. For example:

01:23:45:ab:cd:ef

Yes, just use some random characters. We just need something unique.

  • Dude, I'm trying that now but that completely makes sense. Thank you so so so much. I've been trying to fix this for 36 hours. I absolutely cannot thank you enough – Matt Sep 7 '18 at 19:41
  • I do need it to survive reboots but I remember reading somewhere that /etc/nework/interfaces is outdated and to make all changes through /etc/dhcpcd.conf now, I assume that should still hold true with regard to MAC address changes. Also what is the format to MAC address numbers, I see that some have letters in them - do I just pick letters/numbers at random in the format xx:xx:xx:xx:xx:xx? – Matt Sep 7 '18 at 20:02
  • 1
    I've updated the method for changing the MAC address and expanded a bit on MAC address formatting. – Stanley Yu Sep 7 '18 at 20:24
  • this method randomly stopped working for me today - I've made a new post about it here – Matt Oct 12 '18 at 20:50
1

When you start the initial ping, issue the following command:

ip neighbor show

This will show the ARP cache and give a hint if ARP resulution has taken place or not.

Just edit your question and put the output there and add also the IPs of the target RasPIs.

  • I ran the command and updated my post – Matt Sep 7 '18 at 16:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.