Grande perda de pacotes no openwrt

3

Eu tenho um problema estranho no roteador mikrotik rb951-2hnd. Eu construí imagem há alguns anos usando revisão 39392 e patch firmwared e tudo funcionou bem. Apenas alguns meses atrás, decidi atualizar o firmware. Então eu fiz isso e descobri que a rede física está completamente quebrada . Tenho mais de 90% de perda de pacotes através de portas ethernet, embora o wifi funcione perfeitamente . Eu pensei que eu estraguei tudo enquanto construí. Então eu promulguei duas imagens diferentes de download.openwrt e mais algumas que eu construí por mim mesmo, mas os sintomas são sempre os mesmos. Eu queria tentar funcionou para mim svn revisão, mas infelizmente este patch não está disponível, então não posso imagem Firmare de volta. O engraçado é que tudo, incluindo portas físicas, funciona enquanto o netbooting via vmlinux-initramfs (bootp) a mesma revisão de compilação. Como o vmlinux funciona bem, eu suspeito que o flash está danificado, então me certifiquei de que os arquivos do rootfs.tar.gz e do firwared são os mesmos. No próximo passo, comparei os demônios carregados no vmlinux-initramfs e no sistema de firmwared, o firmado possui um extra listado abaixo:

nf_log_common.ko
nf_log_ipv4.ko
nf_log_ipv6.ko
nf_nat_masquerade_ipv4.ko
nf_reject_ipv4
nf_reject_ipv4.ko
nf_reject_ipv6
nf_reject_ipv6.ko
nls_base.ko

Evitar que eles sejam carregados não ajuda. Além disso, recebo sem erros do dmesg ou logread . Aqui está minha configuração: topo
iptables -L -n
/ etc / config / network - 1 wan. 2-5 lan (wifi no modo cliente sta)

Cenário

para dhcp:

Depois de conectar o laptop (cliente dhcp) à porta lan por 15 segundos (conecte depois), vejo os seguintes:

  • Envio de laptop: solicitação de 3 dhcp e 9 icmpv6
  • Laptop recebe: 0 pacotes
  • o roteador envia: Nenhum? (ifconfig exibe 4 pacotes, mas o tcpdump não os pega)
  • o roteador recebe: 2 pacotes icmp de Lista enviada por notebook (listada abaixo)

Também verifiquei o tcpdump no roteador e ele não mostra pacotes perdidos. Parece que o problema está em algum lugar no nível do driver. Mas espere, os trabalhos e drivers do vmlinux (módulos do kernel) são os mesmos.

root@OpenWrt:/# tcpdump -vv -i eth0.3
tcpdump: WARNING: eth0.3: no IPv4 address assigned
tcpdump: listening on eth0.3, link-type EN10MB (Ethernet), capture size 65535 bytes
[ 1042.060000] Atheros AR8216/AR8236/AR8316 ag71xx-mdio.0:00: Port 2 is up
09:35:24.172637 IP6 (hlim 1, next-header Options (0) payload length: 36) :: > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, m]
09:35:25.872843 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 16) fe80::b2e3:928a:66b2:ff43 > ff02::2: [icmp6 sum ok] ICMP6, router6
          source link-address option (1), length 8 (1): 5c:f9:dd:48:9e:89
            0x0000:  5cf9 dd48 9e89
5c:f9:dd:48:9e:89 /fe80::b2e3:928a:66b2:ff43 - laptop,  d4:ca:6d:92:a4:7e / fe80::d6ca:6dff:fe92:a47e: - router
Cenário

para ip estático:

openwrt (static 192.168.2.1)
root@OpenWrt:/# ping 192.168.2.2
PING 192.168.2.2 (192.168.2.2): 56 data bytes
64 bytes from 192.168.2.2: seq=4 ttl=64 time=0.505 ms
64 bytes from 192.168.2.2: seq=21 ttl=64 time=0.489 ms
64 bytes from 192.168.2.2: seq=34 ttl=64 time=0.528 ms
64 bytes from 192.168.2.2: seq=39 ttl=64 time=0.512 ms
64 bytes from 192.168.2.2: seq=45 ttl=64 time=0.527 ms
64 bytes from 192.168.2.2: seq=48 ttl=64 time=0.549 ms
64 bytes from 192.168.2.2: seq=51 ttl=64 time=0.813 ms
^C
--- 192.168.2.2 ping statistics ---
56 packets transmitted, 7 packets received, 87% packet loss
round-trip min/avg/max = 0.489/0.560/0.813 ms
laptop (static 192.168.2.2)
14:50:08:andrew:/home/andrew:0
: ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
From 192.168.2.2 icmp_seq=13 Destination Host Unreachable
From 192.168.2.2 icmp_seq=14 Destination Host Unreachable
From 192.168.2.2 icmp_seq=15 Destination Host Unreachable
^C
--- 192.168.2.1 ping statistics ---
100 packets transmitted, 0 received, +3 errors, 100% packet loss, time 99022ms
pipe 3
14:51:53:andrew:/home/andrew:1
: ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
^C
--- 192.168.2.1 ping statistics ---
29 packets transmitted, 0 received, 100% packet loss, time 28080ms

Então, aqui está a minha pergunta:

Que passos devo dar para aprofundar e descobrir qual é o problema? Eu quero encontrar pelo menos o erro. Devo transformar um nível de depuração em algum lugar? O que pode causar uma perda tão grande de pacotes?

EDITAR
 Vmlinux Netbooting produz o mesmo  Netbooting kerneldebug - funciona perfeitamente, infelizmente seu tamanho é 11mb, o mtd1 é para pequeno para segurá-lo.

    
por deathangel908 07.07.2015 / 16:05

1 resposta

0

Ok, finalmente encontrei o motivo. O Initramfs não foi a chave do sucesso. Acontece que o roteador funciona se ele foi inicializado com o botão de reinicialização pressionado. Mas parece que o driver não pode durar muito tempo. O roteador reinicia com o kernel panic após algumas horas de uso, dependendo da taxa de carregamento.

    
por 24.10.2015 / 13:57