Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 160710 - when using bonding, routes out of physical adapters are still configured
Summary: when using bonding, routes out of physical adapters are still configured
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 3
Classification: Red Hat
Component: kernel
Version: 3.0
Hardware: x86_64
OS: Linux
medium
high
Target Milestone: ---
Assignee: John W. Linville
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2005-06-16 20:06 UTC by Cole
Modified: 2007-11-30 22:07 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-08-03 16:14:22 UTC


Attachments (Terms of Use)
jwltest-fib-enslave.patch (deleted)
2005-06-24 21:25 UTC, John W. Linville
no flags Details | Diff

Description Cole 2005-06-16 20:06:23 UTC
Description of problem:
When bonding interfaces, three routes become active, 2 for the physical adapters
and one for the bonded adapter.

Version-Release number of selected component (if applicable):


How reproducible:
Bond 2 interfaces and notice that you must use ping -I bond0 etc for for
successful network communication

Steps to Reproduce:
1.Bond eth0 and eth1
2.run /sbin/ip route show
3.try and ping an external host(expect failure)
4.remove the eth routes using /sbin/ip route del
5.ping again (expect success)
  
Actual results:


Expected results:


Additional info:
The script we use to fix this in rhel 3 update 2 (/etc/init.d/route):
#!/bin/bash
 
###########################
# Add Support for chkconfig
###########################
 
# chkconfig: 3 10 99
# description: Custom route scripts
 
########################################
# Delete proto kernel routes for bonding
########################################
eth=true
int="eth0 eth1 eth2 eth3 bond0"
while [[ "$eth" = true ]];do
 
check=`/sbin/ip route show |grep eth`
bad=`/sbin/ip route show |grep eth |awk '{print $1}'`
 
for b in $bad
do
for i in $int
do
nohup /sbin/ip route del $b dev ${i} 2>&1 >/dev/null
done
done
 
if [[ $check = "" ]];then
eth=false ; else
eth=true
fi
done

Addendum a:
I also notice that every once and awhile, a route out of an eth interface will
sneak back into the route table.

Addendum b:
For due diligence, I added /etc/init.d/route to the end of /etc/init.d/network

Thanks,
Cole

Comment 5 John W. Linville 2005-06-24 21:25:49 UTC
Created attachment 115956 [details]
jwltest-fib-enslave.patch

Notify fib of enslaved interfaces, and have the fib remove their entries from
the routing table...

Comment 6 John W. Linville 2005-06-24 21:26:09 UTC
I have test kernels w/ the above patch here:  
  
   http://people.redhat.com/linville/kernels/rhel3/  
  
Please give them a try and see if the act in a desirable fashion.  I'm not  
100% sure that this patch will be acceptable, but if it works then that will  
be a "plus" to consider... :-)  Please post the test result here...thanks! 

Comment 7 John W. Linville 2005-08-03 16:14:22 UTC
Closed due to inactivity.  Please reopen when requested information becomes 
available.  Thanks! 


Note You need to log in before you can comment on or make changes to this bug.