Почему я получаю потерю пакетов при пинге малинового пис в подсети?

529
Matt

У меня есть три малиновых писа, соединенных вместе в подсети через концентратор. Я дал им все статические IP-адреса, и я использую один основной Pi для проверки связи с двумя другими Pis.

Вот моя установка: pic of setup

Как только основной Пи начинает пинговать другой Пи, каждый пинг возвращается полностью нормально. Но когда я сначала запускаю эхо-запрос, получение первого ответа может занять около 5 секунд. Это приводит к потере + 30% или около того и делает так, что когда я запускаю сценарии, они часто терпят неудачу при передаче сообщений из-за тайм-аутов, пытающихся подключиться.

Вот фотография потери пакета при пинге одного пи затем другого:

enter image description here

Я очень плохо знаком с сетью, поэтому, пожалуйста, дайте мне знать, какую информацию я могу предоставить, чтобы лучше диагностировать проблему.

Я пытался заменить Raspberry Pis, Ethernet-кабели и концентратор, но пока не повезло. Мне интересно, есть ли какое-то ограничение на Pis, о котором я не знаю, или это может быть неисправная аппаратная проблема с моим поставщиком концентратора.

РЕДАКТИРОВАТЬ: я бежал IP neighbor showсо следующими результатами

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 

Причина, по которой он показывает две разные сети, заключается в том, что я подключен к Интернету через Wi-Fi в 192.168.2сети. И я подключен через Ethernet к другим 2 Пис 192.168.3. Оба Pis IP можно увидеть там как .3.37и .3.32соответственно.

РЕДАКТИРОВАТЬ 2: Я заметил, поиграв с IP neighbor showэтим, если я пинг пи, а затем запустить IP neighbor showэто говорит REACHABLEрядом с этим пи. Но затем, если я пингую другой Пи, то будет отображаться первый Пинг, который я пинговал, STALEи новый будет REACHABLEпроисходить каждый раз, когда я пингую другой Пи.

2
Почему вы используете концентратор, а не коммутатор Ethernet? grawity 6 лет назад 0
Потому что хабы дешевле: P. Я купил переключатель сегодня, чтобы попробовать его, и у меня была та же проблема Matt 6 лет назад 0
В зависимости от симптомов, которые вы испытываете, у вас фактически есть коммутатор вместо концентратора, так как коммутатор хранит отображение mac-адреса на порт, а концентратор передает весь трафик. Вы не получили бы потерю пакета конфликта адресов MAC, если бы это был концентратор. Ferrybig 6 лет назад 1
@ Ferrybig, ты мужчина. Спасибо за проверку обоих моих постов хаха ура Matt 6 лет назад 0
Я даже не догадывался, что проверил оба ваших сообщения ... Просто вы так говорите, я просто говорю вопрос с интересным заголовком в соответствующем разделе. Ferrybig 6 лет назад 1
Оба твоих комментария научили меня чему-то, чего я не знал, так что спасибо, мужик Matt 6 лет назад 0

2 ответа на вопрос

2
Stanley Yu

Проблема связана с тем, что оба ваших Raspberry Pi имеют одинаковый MAC-адрес. Мы можем видеть это из вывода, ip neighbor showгде оба 3.32и 3.37имеют MAC-адрес 00:e0:4c:53:44:58. Мало того, что вы испытаете то, что вы уже испытывали с эхо-запросами, но любое общение между вашим основным Пи и обоими другими Пи одновременно также будет проблематичным.

Этого не должно быть, поскольку MAC-адреса должны быть глобально уникальными, но, увы, мы здесь. Чтобы это исправить, вам нужно найти способ изменить MAC-адрес вручную. Этот пост с форумов Pi, кажется, предлагает способ сделать это:

По сути, создайте файл "/etc/systemd/network/00-default.link" с содержимым:

[Match] MACAddress=current MAC address  [Link] MACAddress=new MAC address 

Затем выполните sudo ifdown и ifup для интерфейса, и у него должен быть новый MAC-адрес, и это изменение сохранится после перезагрузки.

Номера MAC-адресов состоят из 12 шестнадцатеричных символов (0-9, af). Они обычно разделяются каждые два символа двоеточиями или тире, но на самом деле они не являются частью адреса. Например:

01:23:45:ab:cd:ef 

Да, просто используйте несколько случайных символов. Нам просто нужно что-то уникальное.

Чувак, я сейчас пытаюсь, но в этом есть смысл. Большое вам спасибо. Я пытался исправить это в течение 36 часов. Я абсолютно не могу отблагодарить вас достаточно Matt 6 лет назад 0
Мне это нужно, чтобы пережить перезагрузки, но я помню, как где-то читал, что `/ etc / nework / interfaces` устарел и что теперь все изменения вносятся в` / etc / dhcpcd.conf`, я предполагаю, что все равно должно сохраняться в отношении MAC адрес меняется. Кроме того, каков формат чисел MAC-адресов, я вижу, что у некоторых есть буквы в них - я просто выбираю буквы / цифры случайным образом в формате xx: xx: xx: xx: xx: xx? Matt 6 лет назад 0
Я обновил метод изменения MAC-адреса и немного расширил форматирование MAC-адреса. Stanley Yu 6 лет назад 1
этот метод случайно перестал работать для меня сегодня - я сделал новый пост об этом [здесь] (https://superuser.com/questions/1366349/why-isnt-my-forced-mac-address-change-working- Raspberry Pi) Matt 6 лет назад 0
1
Winnie Tigger

Когда вы начнете начальный пинг, введите следующую команду:

ip neighbor show

Это покажет ARP-кеш и даст подсказку, если ARP возобновлено или нет.

Просто отредактируйте свой вопрос и поместите туда вывод, а также добавьте IP-адреса целевых RasPI.

Я запустил команду и обновил свой пост Matt 6 лет назад 0