do 'ip route replace default' instead of 'add'

When you define the gateway for an interface, dracut sets it up with:

  ip route add default via $gw dev $netif

If a default route is already set (e.g. if you have multiple NICs), this
will fail with the message "RTNETLINK answers: File exists".

So, if your first NIC isn't usable as a default route

Using "ip route replace default" instead allows ifup/dhclient-script to
correctly change the default route to the new interface.
master
Will Woods 2014-08-28 13:44:47 -04:00 committed by Harald Hoyer
parent a49cac2e65
commit 7e50abfdb8
2 changed files with 2 additions and 2 deletions

View File

@ -43,7 +43,7 @@ setup_interface() {
valid_lft ${lease_time} preferred_lft ${lease_time} \
dev $netif

[ -n "$gw" ] && echo ip route add default via $gw dev $netif > /tmp/net.$netif.gw
[ -n "$gw" ] && echo ip route replace default via $gw dev $netif > /tmp/net.$netif.gw

[ -n "${search}${domain}" ] && echo "search $search $domain" > /tmp/net.$netif.resolv.conf
if [ -n "$namesrv" ] ; then

View File

@ -143,7 +143,7 @@ do_static() {
ip addr add $ip/$mask ${srv:+peer $srv} brd + dev $netif
fi

[ -n "$gw" ] && echo ip route add default via $gw dev $netif > /tmp/net.$netif.gw
[ -n "$gw" ] && echo ip route replace default via $gw dev $netif > /tmp/net.$netif.gw
[ -n "$hostname" ] && echo "echo $hostname > /proc/sys/kernel/hostname" > /tmp/net.$netif.hostname

return 0