3. トラブルシューティング:質問と解答

3.1. 質問:リブートしても設定が維持されるようにするには?

解答:BSD スタイルの init を使っている場合でも、 SysV スタイル (例えば、RedHat ) の init の場合も、 いずれも /etc/rc.d/rc.local に設定を記述すれば、 設定が維持されます。以下に、SysV init システム (RedHat 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
# 

3.2. 質問:マシンに 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 には、ファイル・クラス・マクロ (file class macro) を設定している部分があるので、そこに以下の内容を追加します。

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

me@4.5.6.7 をテストした際、メールはローカルマシンに配信され、 me@4.5.6.8 をテストした際は、SMTP メーラに渡されました。 これは、正しい動作です。

これで、設定はすべて終了です。