I have a problem. I have a motherboard by Supermicro – X11SBA-LN4F. There are 4 ethernet ports. In the first port I connect to the internet. In the second port I connect to my local network.
When, I write ifconfig
or netstat -i
, I can see on my second interface (my local network) dropped packets. This count is incremented
em2 Link encap:Ethernet HWaddr 0c:c4:7a:7b:91:3e
inet addr:192.168.110.181 Bcast:192.168.110.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:17441 errors:0 dropped:1380 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1226317 (1.2 MB) TX bytes:0 (0.0 B)
After my search from google, I found this:
https://www.novell.com/support/kb/doc.php?id=7007165
Beginning with kernel 2.6.37, it has been changed the meaning of dropped packet count. Before, dropped packets was most likely due to an error. Now, the rx_dropped counter shows statistics for dropped frames because of:
Softnet backlog full -- (Measured from /proc/net/softnet_stat)
Bad / Unintended VLAN tags
Unknown / Unregistered protocols
IPv6 frames when the server is not configured for IPv6
If any frames meet those conditions, they are dropped before the protocol stack and the rx_dropped counter is incremented.
First of all, I have written this command:
tcpdump -vv -i em2
While this command is running, the count of dropped packets on my second interface is stopped. But, when I abort tcpdump
, the count of dropped packets is incremented again.
- I disabled IPv6
- I checked all VLANS. On that port I have only one Untag VLAN in local network
-
I checked the file
/proc/net/softnet_stat
. In that file I have info from only first column and that is good00000013 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00002fbc 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
000000f3 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0000268f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 -
I analyzed by "tcpdump" all traffic. I have only – ARP Request, Broadcats and Rip. And it is not bad
- I enabled promiscuous mode, but that didn't help
- I checked cables and connectors
- I install the latest driver
- I increased ring caches size, but that didn't help
-
And I checked all Unix and Linux: Zeroshell, Pfense, FreeBsd, Ubuntu Server (with native kernel & compiled by me), CentOS (with native kernel & compiled by me). All showed the same symptoms.
ethtool -i em2 driver: igb version: 5.3.4.4 firmware-version: 3.25, 0x800005d0 bus-info: 0000:06:00.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: no
All statistic on that interface:
ethtool -S em2
NIC statistics:
rx_packets: 29675
tx_packets: 0
rx_bytes: 2208735
tx_bytes: 0
rx_broadcast: 29636
tx_broadcast: 0
rx_multicast: 39
tx_multicast: 0
multicast: 39
collisions: 0
rx_crc_errors: 0
rx_no_buffer_count: 0
rx_missed_errors: 0
tx_aborted_errors: 0
tx_carrier_errors: 0
tx_window_errors: 0
tx_abort_late_coll: 0
tx_deferred_ok: 0
tx_single_coll_ok: 0
tx_multi_coll_ok: 0
tx_timeout_count: 0
rx_long_length_errors: 0
rx_short_length_errors: 0
rx_align_errors: 0
tx_tcp_seg_good: 0
tx_tcp_seg_failed: 0
rx_flow_control_xon: 0
rx_flow_control_xoff: 0
tx_flow_control_xon: 0
tx_flow_control_xoff: 0
rx_long_byte_count: 2208735
tx_dma_out_of_sync: 0
lro_aggregated: 0
lro_flushed: 0
tx_smbus: 0
rx_smbus: 0
dropped_smbus: 0
os2bmc_rx_by_bmc: 0
os2bmc_tx_by_bmc: 0
os2bmc_tx_by_host: 0
os2bmc_rx_by_host: 0
tx_hwtstamp_timeouts: 0
rx_hwtstamp_cleared: 0
rx_errors: 0
tx_errors: 0
tx_dropped: 0
rx_length_errors: 0
rx_over_errors: 0
rx_frame_errors: 0
rx_fifo_errors: 0
tx_fifo_errors: 0
tx_heartbeat_errors: 0
tx_queue_0_packets: 0
tx_queue_0_bytes: 0
tx_queue_0_restart: 0
rx_queue_0_packets: 29675
rx_queue_0_bytes: 2090035
rx_queue_0_drops: 0
rx_queue_0_csum_err: 0
rx_queue_0_alloc_failed: 0
Where is my problem? Please help me.
ifconfig em2; ethtool -S em2
em2 Link encap:Ethernet HWaddr 0c:c4:7a:7b:91:3e
inet addr:192.168.110.181 Bcast:192.168.110.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15387 errors:0 dropped:1224 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1085031 (1.0 MB) TX bytes:0 (0.0 B)
NIC statistics:
rx_packets: 15387
tx_packets: 0
rx_bytes: 1146579
tx_bytes: 0
rx_broadcast: 15367
tx_broadcast: 0
rx_multicast: 20
tx_multicast: 0
multicast: 20
collisions: 0
rx_crc_errors: 0
rx_no_buffer_count: 0
rx_missed_errors: 0
tx_aborted_errors: 0
tx_carrier_errors: 0
tx_window_errors: 0
tx_abort_late_coll: 0
tx_deferred_ok: 0
tx_single_coll_ok: 0
tx_multi_coll_ok: 0
tx_timeout_count: 0
rx_long_length_errors: 0
rx_short_length_errors: 0
rx_align_errors: 0
tx_tcp_seg_good: 0
tx_tcp_seg_failed: 0
rx_flow_control_xon: 0
rx_flow_control_xoff: 0
tx_flow_control_xon: 0
tx_flow_control_xoff: 0
rx_long_byte_count: 1146579
tx_dma_out_of_sync: 0
lro_aggregated: 0
lro_flushed: 0
tx_smbus: 0
rx_smbus: 0
dropped_smbus: 0
os2bmc_rx_by_bmc: 0
os2bmc_tx_by_bmc: 0
os2bmc_tx_by_host: 0
os2bmc_rx_by_host: 0
tx_hwtstamp_timeouts: 0
rx_hwtstamp_cleared: 0
rx_errors: 0
tx_errors: 0
tx_dropped: 0
rx_length_errors: 0
rx_over_errors: 0
rx_frame_errors: 0
rx_fifo_errors: 0
tx_fifo_errors: 0
tx_heartbeat_errors: 0
tx_queue_0_packets: 0
tx_queue_0_bytes: 0
tx_queue_0_restart: 0
rx_queue_0_packets: 15387
rx_queue_0_bytes: 1085031
rx_queue_0_drops: 0
rx_queue_0_csum_err: 0
rx_queue_0_alloc_failed: 0
Best Answer
Probably what's happening is that you're seeing IPv6 broadcast traffic on your subnet, as per what you posted from a tcpdump output here:
And as per what you wrote in your question here:
From your output and your question, it would seem that you indeed have IPv6 disabled on the server.
This leads me to the conclusion that the dropped packets you're seeing is likely due to IPv6 broadcast traffic from other hosts on the network.
In order to test this, you can re-enable IPv6 and see if the dropped packets go away. If they do, this is harmless.