Differences between current version and previous revision of HowToIPAlias.
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 4 | Last edited on Sunday, November 28, 2004 12:51:10 am | by AristotlePagaltzis | |
Older page: | version 3 | Last edited on Saturday, April 12, 2003 8:59:22 pm | by DynamicBits | Revert |
@@ -1,122 +1 @@
-!!!Setting up IP Aliasing on A Linux Machine Mini-HOWTO
-!Harish Pillay
-
- h.pillay@ieee.org
-
-__Joy Yokley__ - Converted document from HTML to !DocBook v4.1 (SGML)
-
-2001-01-23
-
-__Revision History__
-%%%Revision 1.2 2001-01-26 Revised by: JEY
-%%%Revision 1.1 2001-01-24 Revised by: JEY
-%%%Revision 1.0 1997-01-13 Revised by: HP
-
-This is a cookbook recipe on how to set up and run IP aliasing on a Linux box and how to set up the machine to receive e-mail on the aliased IP addresses.
-
-----
-
-__Table of Contents__
-%%%1. My Setup
-%%%2. Commands
-%%%3. Troubleshooting: Questions and Answers:
-%%%3.1. Question: How can I keep the settings through a reboot?
-%%%3.2. Question: How do I set up the IP aliased machine to receive e-mail on the various aliased IP addresses (on a machine using sendmail)?
-%%%4. Acknowledgements
-
-----
-
-!!!1. My Setup
-
-* IP Alias is standard in kernels 2..x and 2.2.x, and available as a compile-time option in 2.4.x (IP Alias has been deprecated in 2.4.x and replaced by a more powerful firewalling mechanism.)
-
-* IP Alias compiled as a loadable module. You would have indicated in the "make config" command to make your kernel, that you want the IP Masq to be compiled as a (M)odule. Check the Modules HOW-TO (if that exists) or check the info in /usr/src/linux/Documentation/modules.txt.
-
-
-* 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).
-
-----
-
-!!!2. Commands
-
-1. Load the IP Alias module (you can skip this step if you compiled the module into the kernel):
-
-;:/sbin/insmod /lib/modules/`uname -r`/ipv4/ip_alias.o
-
-2. Setup the loopback, eth0, and all the IP addresses beginning with the main IP address for the eth0 interface:
-
-;:/sbin/ifconfig lo 127...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 %%% %%%172.16.3.1 is the main IP address, while .10 and .100 are the aliases. The magic is the eth0:x where x=,1,2,...n for the different IP addresses. The main IP address does not need to be aliased.
-
-3. Setup the routes. First route the loopback, then the net, and finally, the various IP addresses starting with the default (originally allocated) one:
-
-;:/sbin/route add -net 127...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 address above, I am using the Private IP addresses (RFC 1918) for illustrative purposes. Substitute them with your own official or private IP addresses.
-
-The example shows only 3 IP addresses. The max is defined to be 256 in
-/usr/include/linux/net_alias.h. 256 IP addresses on ONE card is a lot :-)!
-
-Here's what my /sbin/ifconfig looks like:
-
-;:lo Link encap:Local Loopback %%%inet addr:127...1 Bcast:127.255.255.255 Mask:255...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:
-
-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 was created by the __ifconfig__ command and not by hand!
-
-----
-
-!!!3. Troubleshooting: Questions and Answers
-!!3.1. Question: How can I keep the settings through a reboot?
-
-Answer: Whether you are using BSD-style or SysV-style (Redhat(tm) 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(tm) 3..3 and 4.):
-
-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...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 %%%/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 %%%#
-
-!!3.2. Question: How do I set up the IP aliased machine to receive e-mail on the various aliased IP addresses (on a machine using sendmail)?
-
-Answer: Create (if it doesn't already exist) a file called, /etc/mynames.cw, for example. The file does not have to be this exact name nor in the /etc directory.
-
-In that file, place the official domain names of the aliased IP addresses. If these aliased IP addresses do not have a domain name, then you can place the IP address itself.
-
-The /etc/mynames.cw might look like this:
-
-;:# /etc/mynames.cw - include all aliases for your machine here; # is a comment %%%domain.one.net %%%domain.two.com %%%domain.three.org %%%4.5.6.7
-
-In your sendmail.cf file, where it defines a file class macro Fw, add the following:
-
-;:%%%################## %%%# local info # %%%################## %%% %%% %%%# file containing names of hosts for which we receive email %%%Fw/etc/mynames.cw %%% %%%
-
-That should do it. Test out the new setting by invoking sendmail in test mode. The following is an example:
-
-;:ganymede$ /usr/lib/sendmail -bt %%%ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) %%%Enter < ruleset> < address> %%%> 0 me@4.5.6.7 %%%rewrite: ruleset 0 input: me @ 4 . 5 . 6 . 7 %%%rewrite: ruleset 98 input: me @ 4 . 5 . 6 . 7 %%%rewrite: ruleset 98 returns: me @ 4 . 5 . 6 . 7 %%%rewrite: ruleset 97 input: me @ 4 . 5 . 6 . 7 %%%rewrite: ruleset 3 input: me @ 4 . 5 . 6 . 7 %%%rewrite: ruleset 96 input: me < @ 4 . 5 . 6 . 7 > %%%rewrite: ruleset 96 returns: me < @ 4 . 5 . 6 . 7 . > %%%rewrite: ruleset 3 returns: me < @ 4 . 5 . 6 . 7 . > %%%rewrite: ruleset 0 input: me < @ 4 . 5 . 6 . 7 . > %%%rewrite: ruleset 98 input: me < @ 4 . 5 . 6 . 7 . > %%%rewrite: ruleset 98 returns: me < @ 4 . 5 . 6 . 7 . > %%%rewrite: ruleset 0 returns: $# local $: me %%%rewrite: ruleset 97 returns: $# local $: me %%%rewrite: ruleset 0 returns: $# local $: me %%%> 0 me@4.5.6.8 %%%rewrite: ruleset 0 input: me @ 4 . 5 . 6 . 8 %%%rewrite: ruleset 98 input: me @ 4 . 5 . 6 . 8 %%%rewrite: ruleset 98 returns: me @ 4 . 5 . 6 . 8 %%%rewrite: ruleset 97 input: me @ 4 . 5 . 6 . 8 %%%rewrite: ruleset 3 input: me @ 4 . 5 . 6 . 8 %%%rewrite: ruleset 96 input: me < @ 4 . 5 . 6 . 8 > %%%rewrite: ruleset 96 returns: me < @ 4 . 5 . 6 . 8 > %%%rewrite: ruleset 3 returns: me < @ 4 . 5 . 6 . 8 > %%%rewrite: ruleset 0 input: me < @ 4 . 5 . 6 . 8 > %%%rewrite: ruleset 98 input: me < @ 4 . 5 . 6 . 8 > %%%rewrite: ruleset 98 returns: me < @ 4 . 5 . 6 . 8 > %%%rewrite: ruleset 95 input: < > me < @ 4 . 5 . 6 . 8 > %%%rewrite: ruleset 95 returns: me < @ 4 . 5 . 6 . 8 > %%%rewrite: ruleset 0 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6 . 8 > %%%rewrite: ruleset 97 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6 . 8 > %%%rewrite: ruleset 0 returns: $# smtp $@ 4 . 5 . 6 . 8 $: me < @ 4 . 5 . 6 . 8 > %%%>
-
-Notice when I tested me@4.5.6.7, it delivered the mail to the local machine, while me@4.5.6.8 was handed off to the smtp mailer. That is the correct response.
-
-You are all set now.
-
-----
-
-!!!4. Acknowledgements
-
-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 find this document useful or have suggestions on improvements, email me at <mailto:h.pillay@ieee.org>.
-
-Enjoy.
-
-For additional information on networking, you may want to consult the
[The Linux Networking Overview HOWTO|http://www.linuxdoc.org/HOWTO/Networking-Overview-HOWTO.html
].
+Describe
[HowToIPAlias
] here
.