IP Alias mini HOWTO 如何在 Linux 机器上设定 IP 别名( 二 )


UP BROADCAST RUNNINGMTU:1500Metric:1
RX packets:1 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0

而 /proc/net/aliases 是

device family address
eth0:0 2172.16.3.10
eth0:1 2172.16.3.100

而 /proc/net/alias_types 是

typenamen_attach
2 ip2

当然 , /proc/net 的内容是由 ifconfig 指令产生而非用手写的!


问: 如何在重新启动机器後保持设定?
答: 不论你是用 BSD 形式或是 SysV 形式(例如 Red Hat)的 init 启动 , 你都可以把它
放在 /etc/rc.d/rc.local 中.下面是我在我的 SysV init 系统(Red Hat 3.0.3
及 4.0)中的设定:

 * 我的 /etc/rc.d/rc.local: (修改过只显示相关的部份)

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


问: 我如何在具 IP 别名的机器上在不同的 IP 别名号码上接收电子邮件(在一部用
sendmail 的机器上)?
答: * 建立(如果还没有的话)一个档案 , 例如叫 /etc/mynames.cw.不需要真的是这个
名字 , 也不一定要放在 /etc 目录下.

* 在那个档案中 , 放上别名 IP 号码的完整领域名称.如果别名的 IP 没有领域名
称 , 你可以用这个 IP 本身.

/etc/mynames.cw:
 ----------------
 # /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

* 在你的 sendmail.cf 档中 , 在它定义档案类别巨集 Fw 的地方 , 加上:

 .
 .
 .
 ##################
 # local info #
 ##################
 .
 .
 # file containing names of hosts for which we receive email
 Fw/etc/mynames.cw
 .
 .
 .

* 这样应该就可以了.以测试模式执行 sendmail 以测试新的设定:

 ganymede$ /usr/lib/sendmail -bt
 ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
 Enter < ruleset> < address>
 > 0 me@4.5.6.7
 rewrite: ruleset0 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: ruleset3 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: ruleset3 returns: me < @ 4 . 5 . 6 . 7 . >
 rewrite: ruleset0 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: ruleset0 returns: $# local $: me
 rewrite: ruleset 97 returns: $# local $: me
 rewrite: ruleset0 returns: $# local $: me

推荐阅读