次のページ
前のページ
目次へ
Linux-IP-Alias-mini-HOWTO
=========================
Harish Pillay, h.pillay@ieee.org
1996-11-12
[翻訳:吉峯 幸郎, yoshimin@ms.civilnet.com.tw]
[翻訳日:1997/05/24]
------------------------------------------------------------------
Linux マシンにおける IP Alias の設定方法
GNU Copyleft 1996 Harish Pillay (h.pillay@ieee.org)
プライマリ・サイト:
http://home.pacific.net.sg/~harish/linuxipalias.html
まえがき:
このドキュメントは Linux ボックスにおける IP エイリアスの設定と
使用方法のレシピです。さらに、エイリアス IP 上のメールの受信するた
めのマシンの設定方法も紹介しています。
著者の環境:
* 最新カーネル (2.0.25 - ftp.funet.fi:/pub/Linux/kernel/src/v2.0
から入手) 1.3.7x 以降で使用可能です。
* ロード可能モジュールとしてコンパイルした IP Alias。カーネル作成時
の"make config" コマンド実行時に IP Masq を (M)odule としてコンパ
イルするか聞かれたはずです。詳しくは Modules HOW-TO (もし存在すれ
ば)か /usr/src/linux/Documentation/modules.txt を参照してください。
* 現在、著者のマシンに割り当てられている IP 以外に同一マシン上でさら
に2つの IP を使用しなければなりません。
* D-Link DE620 ポケットアダプター(重要ではありません。 Linux でサポ
ートされているネットワークアダプターであれば何でも OK です。)
コマンド:
* 第一に IP Alias モジュールをロードします。(モジュールをカーネル
内部にコンパイルした場合はスキップ。)
/sbin/insmod /lib/modules/`uname -r`/ipv4/ip_alias.o
* 第二に loopback と eth0 そして すべての IP アドレスを eth0 インター
フェースのメイン IP アドレスから順に設定します。
/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 はメイン IP アドレスで、.10 と .100 がエイリアスです。
ここでのポイントは異なる IP アドレスに対して設定する eth0:x
(x=0,1,2,...n )の部分です。メイン IP アドレスはエイリアスにする
必要はありません。
* 第三に route を設定します。最初の route は loopback です。そして
net。最後にそれぞれの IP アドレスをデフォルト(本来割当てられてい
たアドレス)から順に設定します。
/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
以上です。
上記の例では IP アドレスとして説明用のプライベート IP アドレス
(RFC 1918) を使用しています。それらを自分の正式なアドレスまたは
プライベートアドレスに置き換えて下さい。
例では、わずか 3 つの IP アドレスしか使用していませんが、最大 256
まで /usr/include/linux/net_alias.h に設定できます。一つのカードに
256 の IP アドレスは十分でしょう。
以下に著者の /sbin/ifconfig を紹介します:
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
そして著者の /proc/net/aliases です:
device family address
eth0:0 2 172.16.3.10
eth0:1 2 172.16.3.100
さらに /proc/net/alias_types です:
type name n_attach
2 ip 2
もちろん /proc/net は手作業でなく ifconfig コマンドによって生成されま
す。
質問:再起動時にどのように設定を維持しますか。
答え:BSD スタイルあるいは SysV スタイル(例:Redhat) のどちらの init
を使用していても、設定を /etc/rc.d/rc.local に入れておけばよいの
です。以下が著者の SysV スタイルの init システム(Redhat 3.0.3 と
4.0)です:
* 著者の /etc/rc.d/rc.local: (関連する部分のみ)
# IP エイリアス・インターフェースの設定
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
# route の設定
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 エイリアスを設定したマシンで、(sendmail を使用している
一つのマシン上の)様々なエイリアス IP アドレスへのメールを
受信するにはどのように設定すれば良いですか。
* 答え:(まだなければ)例えば /etc/mynames.cw という名のファイル
を作成します。この名前でなくても構いませんし、 /etc ディ
レクトリである必要もありません。
* そのファイルの中にエイリアス IP の正式なドメイン名を書きます。もし
これらのエイリアス IP にドメイン名がなければ IP アドレスそのものを
書きます。
/etc/mynames.cw:
----------------
# /etc/mynames.cw -このマシンのすべてのエイリアスを書く。
# # はコメント。
domain.one.net
domain.two.com
domain.three.org
4.5.6.7
* sendmail.cf のファイル・クラス・マクロ Fw を設定している部分に
以下を追加。
.
.
.
##################
# local info #
##################
.
.
# ファイルにはメールを受信するホストの名前が含まれています
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.8は smtp に転送されたのに me@4.5.6.7 をテスト
したとき、メールはローカルに配信されました。これは正し
い動作です。
* すべての設定が完了しました。
以上の内容が誰かにとって有用であることを期待します。
Linux と IP Alias を開発したすべての人達に感謝します。
また、著者の疑問を明らかにしてくれた Juan Jose Ciarlante には特に感謝で
す。
一流プログラマー達に賞賛を!
このドキュメントが有用だと感じた方やさらに良くするための意見などがあれば
h.pillay@ieee.org までメールを下さい。
===
Thanks.
--
Harish Pillay h.pillay@ieee.org
Singapore *** Ask me about Linux *** http://home.pacific.net.sg/~harish
[協力:Linux-JF プロジェクト]
[翻訳:吉峯 幸郎, yoshimin@ms.civilnet.com.tw]
次のページ
前のページ
目次へ