On Saturday 05 November 2005 16:06, François TOURDE wrote: > Le 13092ième jour après Epoch, > > Luca Pireddu écrivait: > > When both my wireless and wired networking devices are connected, how can > > I get my laptop to use the wired device and ignore the wireless one? I > > tried specifying a higher metric for my wired device (via ifconfig > > metric), but it doesn't seem to have an effect. > > If both interfaces are on same network, metric can't help you... You > must use "ip rule" and "ip route" without default route to solve your > problem.
That would explain the behaviour I was seeing. > > man ip > > and contact me (us) again if you have problems. > > For example: > > # eth1 = wired > # eth2 = wireless > > /sbin/ip rule add prio 50 table main > /sbin/ip route del default table main > > /sbin/ip rule add prio 201 from <wired_ip>/32 table 201 > /sbin/ip route add default via <wired_gateway> dev eth1 src <wired_ip> > proto static table 201 /sbin/ip route append prohibit default table 201 > metric 1 proto static > > /sbin/ip rule add prio 202 from <wireless_ip>/32 table 202 > /sbin/ip route add default via <wireless_gateway> dev eth2 src > <wireless_ip> proto static table 202 /sbin/ip route append prohibit default > table 202 metric 1 proto static > > /sbin/ip rule add prio 222 table 222 > /sbin/ip route add default table 222 proto static nexthop via > <wired_gateway> dev eth1 weight 2 nexthop via <wireless_gateway> dev eth2 > weight 1 Thanks for the tip on using routing rules and your example. I think I have a solution (it seems to work!). I'll post it here in case anyone is interested. I wrote these two little scrips: 1. route_up #!/bin/sh set +e if [ $IFACE == "eth0" ]; then # wired table=201 priority=50 elif [ $IFACE == "eth1" ]; then # wireless table=202 priority=100 fi ip rule add priority $priority table $table ip route add default via $IF_GATEWAY dev $IFACE proto static table $table exit 0 ------------------------------------------------- 2. route_down #!/bin/sh set +e if [ $IFACE == "eth0" ]; then # wired table=201 elif [ $IFACE == "eth1" ]; then # wireless table=202 fi ip rule delete table $table exit 0 ----------------------------------------------------- I placed route_up in /etc/network/if-up.d and route_down in /etc/network/if-post-down.d. Because of the differing priorities of the wired and wireless rules, the system always chooses the wired connection when they're both up---all without any manual intervention :-) Thanks for all the replies. I appreciate your help. Luca -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

