Extensores de alcance WiFi e solicitações ARP com falha

Extensores de alcance WiFi e solicitações ARP com falha

Estou trabalhando em uma rede, conforme descrito abaixo - um BT HomeHub 5 e um extensor WiFi Netgear EX6150. Existem outros pontos na rede, embora eu os tenha deixado de fora por questões de brevidade, e todas as linhas tracejadas rosa são WiFi.

diagrama de rede

O problema que estou vendo é que o PC 1não pode(não vou) se comunicar com o PC 2, mas meu telefonevai. É claro que meu telefone tem a capacidade de pular e conectar-se diretamente ao extensor, e atualmente não posso descartar que isso tenha um papel aqui.

A mesma situação ocorre com o PC 1 tentando se comunicar com outros hosts no extensor WiFi.

Todos os hosts têm acesso à internet.


Eu descobri que o extensor irá "munge"Endereços MAC, mas não consigo descobrirpor que. Por exemplo, o endereço MAC do PC 2 é 88:b1:11:f4:e0:66, mas a interface do roteador (e os hosts conectados ao roteador) verão a comunicação como 02:0f:b5:f4:e0:66. Há uma seção terrivelmente escrita nomanualsobrepágina 33, e não parece haver uma maneira de desligá-lo. Não vejo nenhuma razão técnica para isso e atualmente aposto que isso será uma parte fundamental do problema.


É hora de detalhes técnicos.

  • PC 1 é 192.168.1.74/ 1c:3e:84:c8:0c:08(conforme relatado pelo sistema operacional)
  • PC 2 é 192.168.1.16/ 88:b1:11:f4:e0:66(conforme relatado pelo sistema operacional)

Meu telefone fará uma varredura alegre na rede (usandoDedo), descubra o host e faça ping nele... como mencionado antes, o PC 1 não fará isso.

Tentei adicionar manualmente as informações de endereço do PC 2 à tabela ARP do PC 1:

C:\WINDOWS\system32>netsh interface ip add neighbors 14 192.168.1.16 02-0f-b5-f4-e0-66


C:\WINDOWS\system32>arp -a

Interface: 192.168.1.74 --- 0xe
  Internet Address      Physical Address      Type
  ...
  192.168.1.16          02-0f-b5-f4-e0-66     static
  ...

C:\WINDOWS\system32>ping 192.168.1.16

Pinging 192.168.1.16 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.1.16:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

C:\WINDOWS\system32>

Então isso claramente não éapenasum problema de ARP.

Olhando isso da perspectiva do PC 2, fiz um tcpdumpdurante um ping:

$ tcpdump -enr dump.cap
11:37:45.730405 1c:3e:84:c8:0c:08 > 88:b1:11:f4:e0:66, ethertype IPv4 (0x0800), length 74: 192.168.1.74 > 192.168.1.16: ICMP echo request, id 1, seq 1317, length 40
11:37:45.730468 88:b1:11:f4:e0:66 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.74 tell 192.168.1.16, length 28
11:37:45.764667 1c:3e:84:c8:0c:08 > 88:b1:11:f4:e0:66, ethertype ARP (0x0806), length 42: Reply 192.168.1.74 is-at 1c:3e:84:c8:0c:08, length 28
11:37:45.764678 88:b1:11:f4:e0:66 > 1c:3e:84:c8:0c:08, ethertype IPv4 (0x0800), length 74: 192.168.1.16 > 192.168.1.74: ICMP echo reply, id 1, seq 1317, length 40

Não há who-hasantes da solicitação de eco ICMP, como já explicamos isso manualmente... mas o PC 2 responde claramente com uma resposta de eco 1c:3e:84:c8:0c:08após uma consulta ARP bem-sucedida - coisa boa - mas o PC 1 afirma nunca recebê-la.

Além disso, após o ping, o PC 2 possui o endereço do PC 1 em sua tabela ARP (eu o removi antes):

$ arp -n
Address                  HWtype  HWaddress           Flags Mask            Iface
...
192.168.1.74             ether   1c:3e:84:c8:0c:08   C                     wlp3s0
...

Repetir um ping com o Wireshark no PC 1 e tcpdumpno PC 2 revela o seguinte (veja abaixo os dumps):

  • O tráfego do PC 1 → PC 2 parece estar bom
    • Não há comunicação MAC da fonte
  • O tráfego do PC 2 → PC 1 só é recebido se for um broadcast (ex: a solicitação ARP)
    • éMunging MAC da fonte

PC 1

$ tcpdump -enr pc1_dump4.cap
reading from file pc1_dump4.cap, link-type EN10MB (Ethernet)
12:17:59.525610 1c:3e:84:c8:0c:08 > 02:0f:b5:f4:e0:66, ethertype IPv4 (0x0800), length 74: 192.168.1.74 > 192.168.1.16: ICMP echo request, id 1, seq 1330, length 40
12:17:59.641049 02:0f:b5:f4:e0:66 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.74 tell 192.168.1.16, length 28
12:17:59.641080 1c:3e:84:c8:0c:08 > 02:0f:b5:f4:e0:66, ethertype ARP (0x0806), length 42: Reply 192.168.1.74 is-at 1c:3e:84:c8:0c:08, length 28
12:18:04.345340 1c:3e:84:c8:0c:08 > 02:0f:b5:f4:e0:66, ethertype IPv4 (0x0800), length 74: 192.168.1.74 > 192.168.1.16: ICMP echo request, id 1, seq 1331, length 40
12:18:09.346886 1c:3e:84:c8:0c:08 > 02:0f:b5:f4:e0:66, ethertype IPv4 (0x0800), length 74: 192.168.1.74 > 192.168.1.16: ICMP echo request, id 1, seq 1332, length 40
12:18:14.347539 1c:3e:84:c8:0c:08 > 02:0f:b5:f4:e0:66, ethertype IPv4 (0x0800), length 74: 192.168.1.74 > 192.168.1.16: ICMP echo request, id 1, seq 1333, length 40

Computador 2

$ tcpdump -enr pc2_dump4.cap
reading from file dump4.cap, link-type EN10MB (Ethernet)
12:18:02.206931 1c:3e:84:c8:0c:08 > 88:b1:11:f4:e0:66, ethertype IPv4 (0x0800), length 74: 192.168.1.74 > 192.168.1.16: ICMP echo request, id 1, seq 1330, length 40
12:18:02.206995 88:b1:11:f4:e0:66 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.1.74 tell 192.168.1.16, length 28
12:18:02.289242 1c:3e:84:c8:0c:08 > 88:b1:11:f4:e0:66, ethertype ARP (0x0806), length 42: Reply 192.168.1.74 is-at 1c:3e:84:c8:0c:08, length 28
12:18:02.289254 88:b1:11:f4:e0:66 > 1c:3e:84:c8:0c:08, ethertype IPv4 (0x0800), length 74: 192.168.1.16 > 192.168.1.74: ICMP echo reply, id 1, seq 1330, length 40
12:18:07.122444 1c:3e:84:c8:0c:08 > 88:b1:11:f4:e0:66, ethertype IPv4 (0x0800), length 74: 192.168.1.74 > 192.168.1.16: ICMP echo request, id 1, seq 1331, length 40
12:18:07.122484 88:b1:11:f4:e0:66 > 1c:3e:84:c8:0c:08, ethertype IPv4 (0x0800), length 74: 192.168.1.16 > 192.168.1.74: ICMP echo reply, id 1, seq 1331, length 40
12:18:12.037691 1c:3e:84:c8:0c:08 > 88:b1:11:f4:e0:66, ethertype IPv4 (0x0800), length 74: 192.168.1.74 > 192.168.1.16: ICMP echo request, id 1, seq 1332, length 40
12:18:12.037729 88:b1:11:f4:e0:66 > 1c:3e:84:c8:0c:08, ethertype IPv4 (0x0800), length 74: 192.168.1.16 > 192.168.1.74: ICMP echo reply, id 1, seq 1332, length 40
12:18:17.170982 1c:3e:84:c8:0c:08 > 88:b1:11:f4:e0:66, ethertype IPv4 (0x0800), length 74: 192.168.1.74 > 192.168.1.16: ICMP echo request, id 1, seq 1333, length 40
12:18:17.171025 88:b1:11:f4:e0:66 > 1c:3e:84:c8:0c:08, ethertype IPv4 (0x0800), length 74: 192.168.1.16 > 192.168.1.74: ICMP echo reply, id 1, seq 1333, length 40

Se eu inverter a direção (o PC 2 envia solicitações de eco para o PC 1), o PC 1 nunca verá a solicitação.

Desativar o firewall do Windows não ajuda.

Como último recurso, conectar o PC 1 ao roteador por Ethernet resolve o problema... porém esta não é atualmente uma solução aceitável.

Alguém pode ajudar?

informação relacionada