Bonding only works when ethernet cards are in promisc
Hi. I've been having trouble getting two gigabit NICs (r8169) bonded in "active-backup" mode.
After many hours of trial and error, I've noticed that everything works perfectly provided that I put the individual NICs into promisc mode. I discovered this because every time I did a tcpdump on the backup NIC, my pings would start to work. In a nutshell: Linux 2.6 kernel (OpenSuSE 10.3) Both eth0 and eth1 are realtek 8169S bond0 is setup with "mode=active-backup miimon=100 updelay=500 primary=eth0" So basically I boot up the machine, bond0 comes up fine and gets an IP from my DD-WRT router. I ping the router, and it works fine. I pull the cable on eth0, and it stops responding. I background the ping, run "ifconfig eth1 promisc" and the pings resume. Has anyone else ever experienced this, or have any idea what's going on? I can't find anything online that says you need to place the cards into promisc mode to make bonding happen. I did find many references online to people having problems using 8169S cards for bonding. Thanks! --Brad |
Taken from kernel-src/Documentation/networking/bonding.txt
Quote:
:) |
Got it working...
Looks like the problem was with the r8169 driver, and had nothing to do with my bonding configuration. I detached eth1 from bond0, assigned a new MAC to the card and tried to ping my router. 100% loss. As soon as I put it into promiscuous mode, it started working.
So I guess the old driver didn't set the card up properly with the new MAC. I downloaded and compiled kernel 2.6.24 (was using 2.6.22), rebooted, and it worked perfectly. I know there's at least one guy out there on the net who scrapped his cards and bought new ones...hopefully someone will come across this post and it will save them time. --Brad |
Good to hear you got it working
;) |
All times are GMT -5. The time now is 05:46 AM. |