Monday, June 6, 2016

two interfaces two networks

 two interfaces two networks  
   
 We will assume that we have two interfaces: eth0 and eth1. The two networks that should be used 
 are 10.97.136.0/24 and 192.168.5.0/24 .  
 The first IP address in each respective network is he gateway. Here's how to set thing up in 
 ubuntu to use two interfaces on two networks:  
   
 ...  
   
 /etc/network/interfaces  
   
 # This file describes the network interfaces available on your system  
 # and how to activate them. For more information, see interfaces(5).  
   
 # The loopback network interface  
 auto lo  
 iface lo inet loopback  
   
 # The primary network interface  
 auto eth0  
 iface eth0 inet static  
     address 10.97.136.83  
     netmask 255.255.255.0  
     network 10.97.136.0  
     broadcast 10.97.136.255  
     gateway 10.97.136.1  
     # dns-* options are implemented by the resolvconf package, if installed  
     dns-nameservers 10.97.136.24 10.97.136.21  
     dns-search blah.com  
   
 auto eth1  
 iface eth1 inet static  
     address 192.168.5.55  
     netmask 255.255.255.0  
     network 192.168.5.0  
     
 ...  
     
 Add a second kernel routing table  
 To add a new routing table, edit the file, /etc/iproute2/rt_tables .   
 The eth1's routing table shall be “rt2” with preference to 1.   
   
 ...  
   
 /etc/iproute2/rt_tables  
   
 #  
 # reserved values  
 #  
 255   local  
 254   main  
 253   default  
 0    unspec  
 #  
 # local  
 #  
 #1   inr.ruhep  
 1 rt2  
   
 ...  
   
 Configure rt2 routing table  
   
 # ip route add 192.168.5.0/24 dev eth1 src 192.168.5.55 table rt2  
 # ip route add default via 192.168.5.1 dev eth1 table rt2  
   
 The first command says that the network, 192.168.5.0/24, can be reached through the eth1 interface.   
 The second command sets the default gateway (even if there is none).  
   
 Configure two rules  
   
 # ip rule add from 192.168.5.55/32 table rt2  
 # ip rule add to 192.168.5.55/32 table rt2  
   
 These rules say that both traffic from the IP address, 192.168.5.55, as well as traffic 
 directed to or through this IP address, should use the rt2 routing table.  
   
 Making the Configuration permanent  
   
 The ip rule and ip route commands will become invalid after a re-boot, for which reason they should become part of a script   
 (for example, /etc/rc.local) that will be executed once the network has been started after booting. In ubuntu, these commands   
 can also be written directly into the /etc/network/interfaces file :  
   
 ...  
   
 auto eth1  
 iface eth1 inet static  
     address 192.168.5.55  
     netmask 255.255.255.0  
     network 192.168.5.0  
     post-up ip route add 192.168.5.0/24 dev eth1 src 192.168.5.55 table rt2  
     post-up ip route add default via 192.168.5.1 dev eth1 table rt2  
     post-up ip rule add from 192.168.5.55/32 table rt2  
     post-up ip rule add to 192.168.5.55/32 table rt2  
   
 ...  
   
 If there are more than two networks, a routing table can be created for each additional network analogous to the 
 above, do a step of one number.  
   
 Testing the Configuration  
 The following commands can be used to ensure that the rules as well as the routing entries are working as expected.  
   
 # ip route list table rt2  
   
 default via 192.168.5.1 dev eth1   
 192.168.5.0/24 dev eth1 scope link src 192.168.5.55   
   
 # ip rule show  
   
 0:   from all lookup local   
 32764: from all to 192.168.5.55 lookup rt2   
 32765: from 192.168.5.55 lookup rt2   
 32766: from all lookup main   
 32767: from all lookup default  
   
 pip pip!  

No comments: