I learned about ip back when I was doing Suse and Novell Clustering.
I sure wish everything would switch to it so we didn't have to keep remmebering 
both ip and ifconfig. :-)
Solaris has the ip command too.

My system (Ubuntu 12.04) doesn't have the ip_route file, but the man page for
ip says that the routes are in /etc/iproute2/rt_tables (which does exist)

It's cool!

On Fri, 6 Jul 2012, ron at ron-l-j.com wrote:

> I have just finished two advanced Linux classes in my BS in IT(straight
> A's). I have been working with various virtual machines. THrough the
> process of setting up A DHCP,Firewall,Name server, and Time server, (each
> with a secondary server for redundancy) I have had to learn  about the
> networking interfaces. I am sharing what I have learned.
> Linux IP Utility
>
> The ip utility has replaced the ifconfig command. The ip command can set
>
> interfaces attributes, manage arp tables, perform routing commands, read
> neighbor tables, set site specific routing rules, Vlan specific, and host
> specific addresses.
>
> man ip
>
> ip - show / manipulate routing, devices, policy routing and tunnels ip [
> OPTIONS ] OBJECT { COMMAND | help }
>
> Using IP
> By using aliasing for ip’s, the concept of a device having one ip address
> is obsolete.
>
> How to show the status of your interfaces.
>
> ip link show
>
> Setting your eth0 ip address[es].
>
> ip addr add 192.168.1.21/24 dev eth0
>
> You can see how this syntax matches the above definition od ip (OPTIONS [
> addr add 192.x.x.x]) (OBJECT [ dev eth0 ])
>
> Using these options we can set gateways, ip address, broadcast address and
> much more. This is something you should make note of. In UNIX/Linux
> devices are virtualized and can have more than one ip address and hardware
> address. The ip command use the concept of scope for setting ip
> address.Host scope,local scope for the LAN, and global for the globe.
>
> Now lets look at our ARP cache(arp is the request sent out on the LAN to
> find machines and resolve local machine name requests).
>
> ip neigh show
>
>
>
> You can add more names to your arp cache by pinging your neighbors on the
> or by using ip neigh add 192.168.x.x dev eth0. You can use the delete
> keyword in place of add to remove a neighbor from the arp cache.
>
> This shows us our routing table.
>
> ip route show
>
> ip rule list will show you the default rule list “main”(old kernel rule
> list)” “local”& “default” are new. From all main,local, and default.
>
> ip route list table local
>
> Shows the local table with the scope for the address from the ip rules.
>
> Lets add a rule to the config for another computer. The config file is
> /etc/iproute2/ ip_route. Perform a less command for that file to get a lay
> of the routing table setup
>
> enter this command set using the ; as a delimiter.
>
> echo 666 BatChicken >> /etc/iproute2/rt_tables;ip rule add from (insert
> your default gateway ip here) table BatChicken;
>
> ip rule show
>
> This has added a rule for BatChicken to rt_tables now lets generate the
> table.
>
> This part is a little tricky so pay attention.
>
> ip route add default via 192.168.x.x dev ppp2 table BatChicken
>
> The address is the address of your gateway on your network. Now clean the
> cache.
>
> ip route flush cache
>
> Many people have issues with the incrementing of nic card values in a
> Linux system. I use IP to fix this here is how.
>
> If your cloning a VM use the VM to generate a new nic MAC. Then use ip
> link sh dev eth3 to output only the ethx number you want to use. Then
> append that to your eth0 interface configuration file. ip link sh dev eth3
>>> /etc/sysconfig/network-scripts/ifcfg-eth0
>
> then edit your HWADDR= line in your ifcfg-eth0
>
> I hope by now you are starting to see the value of the ip utility.There
> are many more advanced monitoring interface states, policies and more
> inside the ip utility toolset way too much to be covered here.
>
> How do you gather your interface information
>
> ip addr sh
> ip route sh
> will show will show your route.
>
> The important thing is to examine your Final line
> default via 10.0.0.1 dev eth0
>
> This line is your default gateway, and its address. It is this gateway
> that will most likely be your DHCP server(router) as well. This matters
> because the DHclient script writs to your /etc/resolv.config file.
> DHclient updates your name server lines dynamicly. If you are looking to
> use your own name servers  you can edit your ifcfg-ethx file by adding a
> line like.
>
> PEERDNS=no
>
> This will stop DHclient from overwriting your /etc/resolv.config file. I
> have tried using DHCP=no but DHclient still over writes resolv.config.
>
> I hope this helps some people get to know the IP utility and Linux a
> little better.


-- 
Gerry Skerbitz
gsker at skerbitz.org