Bug 76511

Summary: /sbin/ip does not set routing table properly for "equal cost multipath"
Product: [Retired] Red Hat Linux Reporter: Need Real Name <ntoedtmann>
Component: iprouteAssignee: Phil Knirsch <pknirsch>
Status: CLOSED CURRENTRELEASE QA Contact: Brock Organ <borgan>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.0CC: dnehring, rvokal
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-04-20 14:20:04 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Need Real Name 2002-10-22 17:35:37 UTC
Description of Problem:

We try to test (and if successful use) "equal cost multipath" routing using RH80
and iproute. But the /sbin/ip binary seems not to be able to handle multiple
"nexthop" args in the "ip route" command properly. It always sets the wrong
weight and the options "dead onlink pervasive" to the first route(s). We could
force the proper weight by adding the "weight" option, but we could not get rid
of that "dead onlink pervasive".

The funny observation: if we copy the /sbin/ip binary from a RH73 system to the
RH80 system it is able to set the routes properly (but the RH80-/sbin/ip shows
therouting table in the same way the RH73-/sbin/ip does). And the problem occurs
under different kernels (see below), so we think it's a problem with the ip binary.


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

  iproute-2.4.7-5
  Problems occurs under kernel-2.4.18-14 and a selfmade 2.4.19


How Reproducible:
  
  Try out Yourself, see "Steps to Reproduce" below


Steps to Reproduce:

# First, copy /sbin/ip from an RH73-system to /tmp/RH73/sbin/. Then:

root@ksinstall4:~# ip route add 10.11.12.0/24 equalize \
        nexthop via 192.168.3.110 dev eth0 \
        nexthop via 192.168.3.111 dev eth0
root@ksinstall4:~# ip route
10.11.12.0/24 equalize 
	nexthop via 192.168.3.110  dev eth0 weight 256 dead onlink pervasive
	nexthop via 192.168.3.111  dev eth0 weight 1
192.168.3.0/24 dev eth0  scope link 
127.0.0.0/8 dev lo  scope link 
default via 192.168.3.1 dev eth0 

# Now the same with the old binary:

root@ksinstall4:~# ip route del 10.11.12.0/24 
root@ksinstall4:~# /tmp/RH73/sbin/ip route add 10.11.12.0/24 equalize \
        nexthop via 192.168.3.110 dev eth0 \
        nexthop via 192.168.3.111 dev eth0
root@ksinstall4:~# ip route
10.11.12.0/24 equalize 
	nexthop via 192.168.3.110  dev eth0 weight 1
	nexthop via 192.168.3.111  dev eth0 weight 1
192.168.3.0/24 dev eth0  scope link 
127.0.0.0/8 dev lo  scope link 
default via 192.168.3.1 dev eth0 

(You can force the weight for all hops to 1 by adding "weight 1" to each nexthop
in the ip route command)


Actual Results:


Expected Results:


Additional Information:

Comment 1 Phil Knirsch 2004-04-20 14:20:04 UTC
OK, seems to be working nicely on RHEL3, FC1 and FC2, so closing this
bug as currentrelease.

Read ya, Phil