ifconfig changing a routing table?

From: Dan Stromberg
Date: Fri Aug 31 2007 - 00:05:24 EST



If I "ifconfig eth1 down", a rogue route disappears.

If I "ifconfig eth1 up" or "ip link set dev eth1 up", the rogue route
comes back.

The route in question is for 10.3/16, and it's breaking some of my
communications that should be handled by my default route.

I'm not accustomed to ifconfig changing the routing table. Is this
normal?

The kernel in question is 2.6.9-42.0.8.plus.c4smp. It's a CentOSplus
kernel.

The relevant syscalls in an strace of the above ip link command (which a
very short strace, BTW) appear to be:

9992 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
9992 ioctl(3, SIOCGIFFLAGS, {ifr_name="eth1", ifr_flags=IFF_BROADCAST|
IFF_MULTICAST}) = 0
9992 ioctl(3, SIOCSIFFLAGS, 0x7fbffff510) = 0
9992 close(3) = 0

The strace of ifconfig eth1 up is pretty similar, albeit with a slightly
different 3rd argument to the SIOCSIFFLAGS.

I tracked the call chain to dev_change_flags(), but then things seemed to
start branching out pretty fast, so I thought it might be more productive
to ask around before continuing.

Is anyone on the list familiar with ifconfig up and/or ip link up
changing a routing table? How does the kernel decide what route to add
in such a circumstance?

Thanks!


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/