ifmetric is a Linux tool for setting the metrics of all IPv4 routes attached to a given network interface at once.
This may be used to change the priority of routing IPv4 traffic over the interface. Lower metrics correlate with higher priorities.
Sometimes two network interfaces of different speeds with equal routes are available at the same time. (e.g. a laptop with both a wireless and a copper LAN card) The one with the greater througput should be preferred over the other. To achieve this, you may use the route's metric field. Routes with lower metrics are preferred over those with higher. Unfortunately many network configurators (like DHCP clients) do not support to set the metric for a route. ifmetric may be used to manipulate the metrics of routes a posteriori. The default metric for a route in the Linux kernel is 0, meaning the highest priority.
ifmetric makes use of the NETLINK interface of the Linux kernel for manipulating the routes. Thus, ifmetric is compatible with complex routes created with iproute2.
ifmetric doesn't modify the routes atomically. The is due to the NETLINK API. However, this should not hurt since ifmetric makes sure that not routes are ever lost while modifying them.
Have a look on the manual page ifmetric(8).
To give all other interfaces a higher priority than wlan0 simply run:
ifmetric wlan0 1
To reset the metrics of the routes attached to wlan0 simply run:
ifmetric wlan0 0
· A newer Linux Kernel supporting the NETLINK API. (I think 2.2 is good enough).
· ifmetric was developed and tested on Debian GNU/Linux "testing" from August 2003, it should work on most other Linux distributions since it uses GNU autoconf for source code configuration.
· As this package is made with the GNU autotools you should run ./configure inside the distribution directory for configuring the source tree. After that you should run make for compilation and make install (as root) for installation of ifmetric.
· The Linux kernel headers have to be available during compilation.