Nice stuff.

Two pieces I've used the "ip" utility for are source/policy based routing and
for ipv6 related commands that you did not mention.

"-f inet6" can be used to prune the ipv4 stuff out as "ip ne sh" by default
includes v4 and v6. As there is no such thing as ARP in v6 you can't use
the old "arp" command there anyways.

As for source/policy based routing I've used on multihomed servers that I want
traffic that originates in one particular NIC to always send reply traffic out
a network on that same NIC even if the default gateway would otherwise be the
other NIC.



On Fri, 2012-07-06 at 10:33 -0600, 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.
> 
> _______________________________________________
> TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
> tclug-list at mn-linux.org
> http://mailman.mn-linux.org/mailman/listinfo/tclug-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.mn-linux.org/pipermail/tclug-list/attachments/20120706/5e2bb587/attachment.html>