Por que estou recebendo a perda de pacotes ao executar ping de framboesa na sub-rede?

2

Tenho três raspberry pis conectados em uma sub-rede por meio de um hub. Eu dei-lhes todos os IPs estáticos e estou usando um pi principal para pingar os outros dois Pis.

Aqui está minha configuração:

UmavezqueoPiprincipalcomeceapingaroutroPi,cadapingretornatotalmentedevolta.Masquandoinicioopinginicialmente,podelevarcercade5segundospararecebersuaprimeirarespostadevolta.Issolevaa30%oumaisnaperdadepacotesefazcomque,quandoexecutoscripts,elesfalhemfrequentementenatransmissãodemensagensdevidoatemposdeesperatentandoseconectar.

Aquiestáumafotodaperdadepacotesaoefetuaropingdeumpiedepoisdooutro:

Sou muito novo em redes, então, por favor, deixe-me saber quais informações posso fornecer para diagnosticar melhor o problema.

Eu tentei substituir o raspberry pis, os cabos ethernet e o hub, mas ainda não tive sorte. Eu estou querendo saber se há alguma limitação no Pis Im inconsciente ou se isso pode ser um problema de hardware com defeito com o meu fornecedor de hub.

EDIT: Eu corri IP neighbor show com os seguintes resultados

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

A razão pela qual mostra duas redes diferentes é que estou conectado à Internet via Wi-Fi na rede 192.168.2 . E estou conectado via ethernet aos outros 2 pis sobre 192.168.3 . Ambos os Pis IPs podem ser vistos como .3.37 e .3.32 , respectivamente.

EDIT2: Eu notei brincando com IP neighbor show que, se eu pingar um pi, execute IP neighbor show , ele diz REACHABLE ao lado daquele pi. Mas então, se eu pingar o outro Pi, então o primeiro Pi que eu pinguei exibirá STALE e o novo será REACHABLE , isso acontecerá cada vez que eu pingar o outro Pi.

    
por Matt 07.09.2018 / 07:53

2 respostas

2

O problema decorre do fato de que ambos os seus Raspberry Pi têm o mesmo endereço MAC. Podemos ver isso na saída de ip neighbor show , em que 3.32 e 3.37 têm o endereço MAC 00:e0:4c:53:44:58 . Você não apenas experimentará o que você já experimentou com os pings, mas qualquer comunicação entre o Pi principal e os outros dois Pi simultaneamente será problemática.

Este não deve ser o caso, uma vez que os endereços MAC devem ser globalmente únicos, mas, infelizmente, aqui estamos nós. Para corrigir isso, você precisará encontrar uma maneira de alterar o endereço MAC manualmente. Esta postagem dos fóruns do Pi parece sugerir uma maneira de fazer isso:

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.

Os números de endereço MAC são 12 caracteres hexadecimais (0-9, a-f). Eles geralmente são separados a cada dois caracteres por dois pontos ou traços, mas eles não fazem parte do endereço. Por exemplo:

01:23:45:ab:cd:ef

Sim, use apenas alguns caracteres aleatórios. Nós só precisamos de algo único.

    
por 07.09.2018 / 21:38
1

Quando você inicia o ping inicial, emita o seguinte comando:

ip neighbor show

Isso mostrará o cache do ARP e dará uma dica se a resolução do ARP ocorreu ou não.

Basta editar sua pergunta e colocar a saída lá e adicionar também os IPs das RasPIs de destino.

    
por 07.09.2018 / 08:35