Packet loss on local eth link

My Omnia router losses some packets from time to time on direct ethernet links. It’s hard to diagnose, but very annoying because it makes to choke video playing or ssh sessions. Fun part: looks like there is almost no packet loss on wifi. Also looks like the losses happens in series, which makes them worse.
Guys, do you have any idea how to debug and fix that?

ping log:
64 bytes from 192.168.1.2: icmp_seq=218 ttl=64 time=1.11 ms
64 bytes from 192.168.1.2: icmp_seq=219 ttl=64 time=2.44 ms
no answer yet for icmp_seq=220
no answer yet for icmp_seq=221
no answer yet for icmp_seq=222
no answer yet for icmp_seq=223
64 bytes from 192.168.1.2: icmp_seq=224 ttl=64 time=1.54 ms
64 bytes from 192.168.1.2: icmp_seq=225 ttl=64 time=2.13 ms
64 bytes from 192.168.1.2: icmp_seq=226 ttl=64 time=1.33 ms
— 192.168.1.2 ping statistics —
272 packets transmitted, 268 received, 1% packet loss, time 271537ms
rtt min/avg/max/mdev = 0.835/2.027/5.130/0.842 ms

P.S. I tried different port, cables and different PC connected, but still see some losses.

packet/protocol inspection with tools like wireshark

Question … a local network? Ping times are quite long! By me is ping always <1ms (via switch).
Change cable ? Explore the route of cables and interference ?

Pinging 192.168.2.118 with 32 bytes of data:
Reply from 192.168.2.118: bytes=32 time<1ms TTL=64
Reply from 192.168.2.118: bytes=32 time<1ms TTL=64
Reply from 192.168.2.118: bytes=32 time<1ms TTL=64
Reply from 192.168.2.118: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.2.118:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

.

Pinging 192.168.2.104 with 32 bytes of data:
Reply from 192.168.2.104: bytes=32 time<1ms TTL=128
Reply from 192.168.2.104: bytes=32 time<1ms TTL=128
Reply from 192.168.2.104: bytes=32 time<1ms TTL=128
Reply from 192.168.2.104: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.2.104:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

Sorry, took wrong log, it was from ping via wifi.
Here is from one from ethernet:

64 bytes from 192.168.1.2: icmp_seq=372 ttl=64 time=0.323 ms
64 bytes from 192.168.1.2: icmp_seq=373 ttl=64 time=0.296 ms
^C
— 192.168.1.2 ping statistics —
373 packets transmitted, 365 received, 2.14477% packet loss, time 806ms
rtt min/avg/max/mdev = 0.143/0.255/0.383/0.048 ms

I tried, but found nothing. I did ping from my laptop, via wifi (otherwise I can’t capture transit traffic on omnia), via omnia to a PC.
Here is the log:

Source:
64 bytes from 192.168.1.2: icmp_seq=314 ttl=64 time=3.06 ms
no answer yet for icmp_seq=315
64 bytes from 192.168.1.2: icmp_seq=316 ttl=64 time=2.85 ms
64 bytes from 192.168.1.2: icmp_seq=317 ttl=64 time=2.97 ms
64 bytes from 192.168.1.2: icmp_seq=318 ttl=64 time=2.54 ms
^C
— 192.168.1.2 ping statistics —
318 packets transmitted, 316 received, 0% packet loss, time 317564ms
rtt min/avg/max/mdev = 0.821/2.700/75.581/4.465 ms

Source:
64 bytes from 192.168.1.2: icmp_seq=314 ttl=64 time=3.06 ms
no answer yet for icmp_seq=315
64 bytes from 192.168.1.2: icmp_seq=316 ttl=64 time=2.85 ms
64 bytes from 192.168.1.2: icmp_seq=317 ttl=64 time=2.97 ms
64 bytes from 192.168.1.2: icmp_seq=318 ttl=64 time=2.54 ms
^C
— 192.168.1.2 ping statistics —
318 packets transmitted, 316 received, 0% packet loss, time 317564ms
rtt min/avg/max/mdev = 0.821/2.700/75.581/4.465 ms

Router (omnia turris):
15:23:15.445507 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 312, length 64
15:23:15.445808 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 312, length 64
15:23:16.447507 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 313, length 64
15:23:16.447864 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 313, length 64
15:23:17.449571 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 314, length 64
15:23:17.449899 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 314, length 64
15:23:18.450562 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 315, length 64
15:23:19.461441 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 316, length 64
15:23:19.461748 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 316, length 64

Destination:
15:23:15.462800 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 312, length 64
15:23:15.462931 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 312, length 64
15:23:16.464841 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 313, length 64
15:23:16.464980 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 313, length 64
15:23:17.466897 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 314, length 64
15:23:17.467012 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 314, length 64
15:23:19.478749 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 316, length 64
15:23:19.478860 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 316, length 64

Router (omnia turris):
15:23:15.445507 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 312, length 64
15:23:15.445808 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 312, length 64
15:23:16.447507 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 313, length 64
15:23:16.447864 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 313, length 64
15:23:17.449571 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 314, length 64
15:23:17.449899 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 314, length 64
15:23:18.450562 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 315, length 64
15:23:19.461441 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 316, length 64
15:23:19.461748 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 316, length 64

Destination:
15:23:15.462800 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 312, length 64
15:23:15.462931 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 312, length 64
15:23:16.464841 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 313, length 64
15:23:16.464980 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 313, length 64
15:23:17.466897 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 314, length 64
15:23:17.467012 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 314, length 64
15:23:19.478749 xx:xx:xx:xx:xx:x1 > xx:xx:xx:xx:xx:x2, ethertype IPv4 (0x0800), length 98: 192.168.1.118 > 192.168.1.2: ICMP echo request, id 31171, seq 316, length 64
15:23:19.478860 xx:xx:xx:xx:xx:x2 > xx:xx:xx:xx:xx:x1, ethertype IPv4 (0x0800), length 98: 192.168.1.2 > 192.168.1.118: ICMP echo reply, id 31171, seq 316, length 64

I don’t print packages content here because there are nothing interesting.

Via wifi ? :slight_smile: P.S. I tried different port, cables and different PC connected, but still see some losses.
What frequnce 2,4 or 5 Mhz?
What channel ?
What power mW ?
What device is the negotiation counterparty for the router ?
How many wifi source from the neighbors ?
How the router is located ?
How many walls - what distance ?
Some microwave owen around ?

What QoS? Wifi WMM is on ?

All the losses not on wifi part but on ethernet connection. Check the dump above, you’ll see that lost package with seq 315 arrived to the router but response never reach it.

Also looks like there is no losses on wifi and wan (SFP module to optic fiber):
— 8.8.8.8 ping statistics —
2514 packets transmitted, 2514 received, 0% packet loss, time 2517083ms
rtt min/avg/max/mdev = 1.620/2.320/26.720/0.954 ms

So it sounds to me like there is some problem with ethernet ports.

I am a little IT dummy boy … I have no solution just a recap

  1. The problem is … the connection from the WiFi station - to the ethernet station.
  2. Packet loss is from the router - to the station connected by ethernet cable.
  3. Then just test the ping on the route: router - ethernet station ?
  4. Changing eth port (LAN 0-4) or changing eth. cable does not solve the situation .

image

I tested from router itself: looks like no losses, so I think there is something weird going on during switching. Wifi <-> WAN works fine.

Also I don’t completely understand the schema you put here. Is eth0 + eth2 used just for bonding? I thought that LAN4 is attached to eth2 and others are sharing eth0. At least tcpdump can see traffic between LAN4 and LAN2 but can not between LAN1 and LAN2.
All the VLAN tagging is by default.

My layover feeling is that the problem is: cable or its some interference … and - or lan client problem.
Used methode : attempt - mistake :slight_smile:

image

The switch is programmable and this is just default setup but can be configured any other way, the switch functionality can also be turned off entirely.

Are there any documentation how to program it?

1.Youre problem is solved ?
2. What you can to program ? Youre intent ?

https://doc.turris.cz/doc/en/howto/start

https://doc.turris.cz/doc/en/howto/vlan_settings_omnia

  1. Nope, still can see some number of losses.
  2. I’ll try to disable additional ports and map, let say, lan0 to eth0 and lan4 to eth2 and check if there still losses.

Thanks for the docs!

I’m not sure if this is the right way.