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!
Monday, June 6, 2016
two interfaces two networks
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment