home *** CD-ROM | disk | FTP | other *** search
-
- Mini How-to on Setting Up IP Aliasing On A Linux Machine
-
- My setup:
-
- * Latest kernel (2.0.12 - from ftp.funet.fi:/pub/Linux/kernel/src/v2.0).
- * IP Alias compiled as a loadable module .
- * I have to support 2 additional IPs over and above the IP already
- allocated to me.
- * A D-Link DE620 pocket adapter (not important, works with any Linux
- supported network adapter).
-
- Commands:
-
- * First load the IP Alias module:
-
- /sbin/insmod /lib/modules/`uname -r`/ipv4/ip_alias.o
-
- * Second, setup the loopback, eth0 and all the IP #s beginning with the
- main IP # for the eth0 interface:
-
- /sbin/ifconfig lo 127.0.0.0
- /sbin/ifconfig eth0 up
- /sbin/ifconfig eth0 172.16.3.1
- /sbin/ifconfig eth0:0 172.16.3.10
- /sbin/ifconfig eth0:1 172.16.3.100
-
- 172.16.3.1 is the main IP #, while .10 and .100 are the aliases. The
- magic is the eth0:x where x=0,1,2,...n for the different IP #s. The
- main IP # does not need to be aliased.
-
- * Third, setup the routes. First route the loopback, then the net and,
- finally, the various IP #s starting with the default (originally
- allocated) one:
-
- /sbin/route add -net 127.0.0.0
- /sbin/route add -net 172.16.3.0 dev eth0
- /sbin/route add -host 172.16.3.1 dev eth0
- /sbin/route add -host 172.16.3.10 dev eth0:0
- /sbin/route add -host 172.16.3.100 dev eth0:1
- /sbin/route add default gw 172.16.3.200
-
- That's it.
-
- In the example IP # above, I am using the Private IP #s (RFC 1918) for
- illustrative purposes. Substitute them with your own official or private IP
- #s.
-
- The example shows only 3 IP #s. The max is defined to be 256 in
- /usr/include/linux/net_alias.h. 256 IP #s on ONE card is a lot :-)!
-
- Here's what my /sbin/ifconfig looks like:
-
- lo Link encap:Local Loopback
- inet addr:127.0.0.0 Bcast:127.255.255.255 Mask:255.0.0.0
- UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
- RX packets:5088 errors:0 dropped:0 overruns:0
- TX packets:5088 errors:0 dropped:0 overruns:0
-
- eth0 Link encap:10Mbps Ethernet HWaddr 00:8E:B8:83:19:20
- inet addr:172.16.3.1 Bcast:172.16.3.255 Mask:255.255.255.0
- UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
- RX packets:334036 errors:0 dropped:0 overruns:0
- TX packets:11605 errors:0 dropped:0 overruns:0
- Interrupt:7 Base address:0x378
-
- eth0:0 Link encap:10Mbps Ethernet HWaddr 00:8E:B8:83:19:20
- inet addr:172.16.3.10 Bcast:172.16.3.255 Mask:255.255.255.0
- UP BROADCAST RUNNING MTU:1500 Metric:1
- RX packets:0 errors:0 dropped:0 overruns:0
- TX packets:0 errors:0 dropped:0 overruns:0
-
- eth0:1 Link encap:10Mbps Ethernet HWaddr 00:8E:B8:83:19:20
- inet addr:172.16.3.100 Bcast:172.16.3.255 Mask:255.255.255.0
- UP BROADCAST RUNNING MTU:1500 Metric:1
- RX packets:1 errors:0 dropped:0 overruns:0
- TX packets:0 errors:0 dropped:0 overruns:0
-
- And /proc/net/aliases:
-
- device family address
- eth0:0 2 172.16.3.10
- eth0:1 2 172.16.3.100
-
- And /proc/net/alias_types:
-
- type name n_attach
- 2 ip 2
-
- Of course, the stuff in /proc/net were created by the ifconfig command and
- not by hand!
-
- Question: How can I keep the IP alias settings through a reboot?
-
- Answer: Whether you are using BSD-style or SysV-style (Redhat for example)
- init, you can always include it in /etc/rc.d/rc.local. Here's what I have on
- my SysV init system (Redhat 3.0.3):
-
- * My /etc/rc.d/rc.local: (edited to show the relevant portions)
-
- #setting up IP alias interfaces
- echo "Setting 172.16.3.1, 172.16.3.10, 172.16.3.100 IP Aliases ..."
- /sbin/ifconfig lo 127.0.0.1
- /sbin/ifconfig eth0 up
- /sbin/ifconfig eth0 172.16.3.1
- /sbin/ifconfig eth0:0 172.16.3.10
- /sbin/ifconfig eth0:1 172.16.3.100
- #setting up the routes
- echo "Setting IP routes ..."
- /sbin/route add -net 127.0.0.0
- /sbin/route add -net 172.16.3.0 dev eth0
- /sbin/route add -host 172.16.3.1 eth0
- /sbin/route add -host 172.16.3.10 eth0:0
- /sbin/route add -host 172.16.3.100 eth0:1
- /sbin/route add default gw 172.16.3.200
- #
-
- * Hope the preceding is useful to someone.
-
- Thanks to all those who have done this great work on Linux and IP Aliasing.
- And especially to Juan Jose Ciarlante for clarifying my questions.
-
- Kudos to the ace programmers!
-
- If you do find this document useful or have suggestions on improvements, do
- send me an e-mail at h.pillay@ieee.org.
-
- Enjoy.
-
- ----------------------------------------------------------------------------
- Questions?
-
- Go back to Harish's Home Page at http://home.pacific.net.sg/~harish
- ----------------------------------------------------------------------------
-