openwrt에서 심각한 패킷 손실

openwrt에서 심각한 패킷 손실

mikrotik rb951-2hnd 라우터에서 이상한 문제가 발생했습니다. 나는 몇 년 전에 다음을 사용하여 이미지를 만들었습니다.개정판 39392 및 패치펌웨어를 적용하면 모든 것이 잘 작동합니다. 불과 몇 달 전에 저는 펌웨어를 업데이트하기로 결정했습니다. 그래서 그렇게 해서 찾았어요완전한 물리적 네트워크 중단. 나는 가지고있다패킷 손실률 90% 이상그러나 이더넷 포트를 통해Wi-Fi가 완벽하게 작동합니다. 공사하다가 망한 줄 알았어요. 그래서 download.openwrt에서 2개의 서로 다른 이미지를 다운로드했고, 제가 직접 만든 이미지도 몇 개 더 다운로드했지만 증상은 항상 동일합니다. 내 버전의 svn에서 작동하도록 하고 싶었지만 불행하게도 패치를 사용할 수 없어 이미지를 복원할 수 없습니다. 재미있게vmlinux-initramfs(bootp)를 통해 네트워크 부팅 시 물리적 포트를 포함한 모든 것이 작동합니다.동일한 빌드 개정. vmlinux가 잘 작동하고 있어서 플래시가 손상된 것을 의심하여 ​​rootfs.tar.gz에 있는 파일과 펌웨어 파일이 동일한지 확인했습니다. 다음 단계에서는 다음과 같은 추가 기능이 나열된 vmlinux-initramfs와 펌웨어 시스템에 로드된 악마를 비교했습니다.

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

로딩을 차단하는 것은 도움이 되지 않습니다. 게다가 나는 얻는다dmesg 또는 logread에 오류가 없습니다.. 내 구성은 다음과 같습니다.
맨 위
iptables-Ln
/etc/config/네트워크- 10000. 2-5 LAN(STA 클라이언트 모드의 WiFi)

DHCP 시나리오:

내 노트북(DHCP 클라이언트)을 LAN 포트에 15초 동안 연결한 후 연결을 뽑으면 다음이 표시됩니다.

  • 노트북 전송: 3개의 dhcp 요청 및 9개의 icmpv6
  • 노트북 수신: 0 패킷
  • 라우터 전송: 없음? (ifconfig는 4개의 패킷을 표시하지만 tcpdump는 이를 캡처하지 않습니다.)
  • 라우터는 랩톱 전송 목록에서 2개의 icmp 패킷을 수신합니다(아래 나열).

또한 라우터에서 tcpdump를 확인했는데 누락된 패킷이 표시되지 않았습니다. 문제는 운전자 수준 어딘가에 있는 것 같습니다. 하지만 잠깐, vmlinux는 드라이버(커널 모듈)와 동일하게 작동합니다.

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

고정 IP 시나리오:

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

내 질문은 다음과 같습니다.

문제를 더 깊이 이해하려면 어떤 조치를 취해야 합니까? 적어도 오류를 찾고 싶습니다. 디버그 수준을 어딘가에 설정해야 합니까? 이렇게 큰 패킷 손실이 발생하는 이유는 무엇입니까?

편집하다
Netbooting vmlinux는 동일한
Netbooting을 생성합니다.커널 디버깅- 완벽하게 작동합니다. 불행히도 크기는 11MB이고 mtd1은 너무 작아서 저장할 수 없습니다.

답변1

그런데 드디어 이유를 찾았습니다. Initramfs는 성공의 열쇠가 아닙니다. 재설정 버튼을 눌러 전원을 켜면 라우터가 제대로 작동하는 것으로 나타났습니다. 하지만 플래시 드라이버는 오래 가지 못하는 것 같습니다. 몇 시간 사용 후 로드 속도에 따라 커널 패닉이 발생하면서 라우터가 재부팅됩니다.

관련 정보