The Linux 2.2 kernel brought about a highly advanced networking stack. One of the things to come out of this was a unified set of tools for configuring networking as opposed to the combination of ifconfig, route, arp etc, which don't allow full access to the new networking stacks capabilities.

Note: iproute may also be referred to as iproute2

iproute2 Official website.
iproute2 @ Wikipedia.
Linux Advanced Routing & Traffic Control HOWTO


ip is the main tool and replaces a whole bunch of the older tools.

 Basic usage

Show your interfaces
# ip link
Bring up your network interface and give it an IP address.
# ip link set dev eth0 up
# ip addr add brd + dev eth0
Adding an IPv6 address is simpler as there's no broadcast address. e.g
# ip addr add 2001:db8:1234:abcd::f00/64 dev eth0
Add a default route to your router (
# ip route add default via dev eth0
You no longer need to think in terms of IP aliases and can simply add extra IP's using the above command. e.g to add another address to eth0.
# ip addr add brd + dev eth0
If however you'd like to keep the old conventions, you can name them e.g
# ip addr add brd + label eth0:0 dev eth0
But that really isn't necessary.

To show your IP addresses

# ip addr
Or for just a specific interface, e.g eth0
# ip addr show eth0
You can also use the -4 and -6 options to only show IPv4 and IPv6 entries respectively.

To view the IPv4 routing table use

# ip route
and for the IPv6 routing table
# ip -6 route
To view the arp cache
# ip neigh