Linux interface RX Packet Dropped with LACP and not doing loadbalacing

bondingciscoethernetlinux

OS: CentOS 6.6 / 64bit / Kernel 2.6.32-504.30.3.el6.x86_64

I have bond0 interface with following configuration.

Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Aggregator selection policy (ad_select): stable
Active Aggregator Info:
    Aggregator ID: 7
    Number of ports: 2
    Actor Key: 17
    Partner Key: 3
    Partner Mac Address: a4:56:30:c6:0d:00

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: 9c:8e:99:0d:1a:f2
Aggregator ID: 7
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: 9c:8e:99:0d:1a:f4
Aggregator ID: 7
Slave queue ID: 0

modprobe.conf

alias bond0 bonding
options bond0 mode=4 miimon=100

Cisco switch config:

interface Port-channel1
 description Linux-bond0
 switchport access vlan 10

interface GigabitEthernet0/7
 switchport access vlan 10
 spanning-tree portfast
 spanning-tree guard root
 channel-protocol lacp
 channel-group 1 mode active
!
interface GigabitEthernet0/8
 switchport access vlan 10
 spanning-tree portfast
 spanning-tree guard root
 channel-protocol lacp
 channel-group 1 mode active
!

Issue

I am getting RX packet drop on bond0 and eth0 interface on Linux ( but not on eth1)

bond0 : RX packets:575214161 errors:0 dropped:6407 overruns:0 frame:0
eth0 : RX packets:573623915 errors:0 dropped:6410 overruns:0 frame:0
eth1 : RX packets:1590356 errors:0 dropped:0 overruns:0 frame:0

I have check MRTG to see traffic flow and its around ~30mbps

But interesting thing. I am seeing all 30mbps traffic on eth0, eth1 has few kbps traffic. That means my link is not doing load balancing right?

cacti reporting following data. LACP should share traffic on both link right?

eth0: 30mbps
eth1: 600kbps 

Best Answer

I wouldn't worry about the dropped packets. Doing the math, you're losing less than .001% of your total packets.

As far as the load balancing goes, you probably need to (re)configure the load distribution algorithm in use on your switch (since it's the switch to server traffic that's not balancing). Cisco has some pretty good documentation on that here but it's too much to copy into this answer. Also note that the distribution algorithm assigns traffic streams to a physical interface which means that if there is only one stream it will only use one physical interface.

Related Question