Setting up IP Aliasing on A Linux Machine Mini-HOWTO
Prev |  | Next

# 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™ 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 and 4.0):

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
    #

## 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.

Prev | Home | Next
Commands |  | Acknowledgements