<!--<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook V4.1//EN">-->
<!doctype article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<article ID="IPaliasing">

<!--<articleinfo>--><artheader>
<title>Setting up IP Aliasing on A Linux Machine Mini-HOWTO</title>

<author>
<firstname>Harish</firstname>
<surname>Pillay</surname>
<affiliation>
<address> <email>
<ulink URL="mailto:h.pillay@ieee.org">
h.pillay@ieee.org</ulink></email> </address>
</affiliation>
</author>

<abstract>
<para>
<!--
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.
-->
この文書は、Linux マシン上での IP エイリアスの設定方法と利用方法を
簡単に述べたものです。マシンをセットアップして、エイリアス設定した IP 
アドレス上でメールを受信する方法についても説明しています。
</para>
</abstract>

<pubdate>2001-01-23</pubdate>

<revhistory>
<revision>
<revnumber>1.2</revnumber>
<date>2001-01-26</date>
<authorinitials>JEY</authorinitials>
</revision>
<revision>
<revnumber>1.1</revnumber>
<date>2001-01-24</date>
<authorinitials>JEY</authorinitials>
</revision>
<revision>
<revnumber>1.0</revnumber>
<date>1997-01-13</date>
<authorinitials>HP</authorinitials>
</revision>
</revhistory>

<othercredit role="converter">
<firstname>Joy</firstname>
<surname>Yokley</surname>
<contrib>Converted document from HTML to DocBook v4.1 (SGML)</contrib>
</othercredit>

<othercredit lang="ja">
<firstname>JF Project</firstname>
<surname></surname>
<contrib>日本語訳</contrib>
<affiliation>
 <address>JF@linux.or.jp</address>
</affiliation>
</othercredit>

<!--</articleinfo>--></artheader>

<sect1 ID="MySetup">
<title><!--My Setup-->著者の設定</title>

<itemizedlist>
<listitem><para>
<!--
IP Alias is standard in kernels 2.0.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 エイリアスは、kernel 2.0.x および 2.2.x では標準で有効になっています。
2.4.x ではコンパイル時のオプションを使って有効にしてください (
kernel 2.4.x では IP エイリアスは重要視されておらず、よりパワフルな
ファイアーウォール機能に置き換わっています)。
</para></listitem>
<listitem><para>
<!--
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 <filename>
/usr/src/linux/Documentation/modules.txt.</filename>
-->
著者は、IP エイリアス機能をローダブルモジュールとしてコンパイルしました。
読者のなかには、カーネルの再構築の際の "make config" の途中で、IP Masq 
の方をモジュールとしてコンパイルするよう指定してしまっている人がいるかも
しれません。モジュールに関する事柄は、(もし閲覧可能なら) <ulink 
url="http://www.linuxdoc.org/HOWTO/Module-HOWTO/index.html">
Module HOWTO</ulink> をチェックするか、<filename>
/usr/src/linux/Documentation/modules.txt</filename> に記載された情報を
チェックしてください。
</para></listitem>
<listitem><para>
<!--
I have to support 2 additional IPs over and above the IP already
allocated to me.
-->
著者は、すでに割り当てを受けていた IP に加えて、さらに 2 つの IP アドレスを
使えるようにしました。
</para></listitem>
<listitem><para>
<!--
A D-Link DE620 pocket adapter (not important, works with any Linux
supported network adapter).
-->
著者は、D-Link DE620 ポケットアダプタを使っています 
(アダプタの種類は重要ではありません。Linux でサポートされているネットワーク
アダプタなら何でもかまいません)。
</para></listitem>
</itemizedlist>
	
</sect1>
<sect1 ID="Commands">
<title><!--Commands-->設定コマンド</title>
<orderedlist>
<listitem><para>
<!--
Load the IP Alias module (you can skip this step if you compiled
the module into the kernel):
-->
IP エイリアスのモジュールをロードします (カーネルにモジュールを組み込んで
いる場合、この手順は不要です)。
</para>
<screen>/sbin/insmod /lib/modules/`uname -r`/ipv4/ip_alias.o</screen>
</listitem>

<listitem><para>
<!--
Setup the loopback, eth0, and all the IP addresses beginning with the
main IP address for the eth0 interface:
-->
ループバックデバイスと eth0 を設定し、eth0 インターフェイスに対してメイン IP 
アドレスから順番にすべての IP アドレスを設定します。
</para>

<screen>
/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</screen>
		
<para>
<!--
172.16.3.1 is the main IP address, while .10 and .100 are the aliases. The
magic is the eth0:x where x=0,1,2,...n for the different IP addresses. The
main IP address does not need to be aliased.
-->
172.16.3.1 というのが、メインとなる IP アドレスであり、.10 と .100 とが
エイリアスです。重要なのは、eth0:x (x=0,1,2,...n) という部分にそれぞれ
違う IP アドレスを設定しているということです。メイン IP アドレスは、エイリアス
にする必要はありません。
</para></listitem>

<listitem><para>
<!--
Setup the routes. First route the loopback, then the net, and
finally, the various IP addresses starting with the default (originally
allocated) one:
-->
ルートの設定をします。まず最初に、loopback です。次に、ret、そして最後に、
それぞれの IP アドレスをデフォルト (もともと割り当てられていた IP のこと) 
から順に設定します。
</para>
		
<screen>
/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</screen>

<para><!--That's it.-->これで、終了です。</para></listitem>
</orderedlist>

<para>
<!--
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.
-->
上記例題の IP アドレスには、説明の便宜上、プライベート IP アドレス (RFC 1918) 
を使っています。実際には、読者自身の正式な IP アドレスか、もしくは自分用の 
IP アドレスに置き換えてください。
</para>

<para>
<!--
The example shows only 3 IP addresses. The max is defined to be 256 in
<filename>/usr/include/linux/net_alias.h.</filename> 256 IP addresses on ONE 
card is a lot :-)!
-->
例題では、3 つの IP アドレスしか設定していませんが、最大で 256 の IP アドレス
まで設定できます。この最大値は、<filename>/usr/include/linux/net_alias.h
</filename> で設定できます。
とはいえ、256 の IP アドレスを一枚のネットワークカードに設定する人はいないで
しょうけど :-)!
</para>

<para>
<!--
Here's what my <filename>/sbin/ifconfig</filename> looks like:
-->
以下に、著者の <filename>/sbin/ifconfig</filename> の出力結果を
記載します。
</para>
<programlisting>
lo        Link encap:Local Loopback
	       inet addr:127.0.0.1  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
</programlisting>

<para>
<!--
And <filename>/proc/net/aliases</filename>:
-->
また、<filename>/proc/net/aliases</filename> は、次のようなものです。
</para>	
<screen>
device         family    address
eth0:0           2      172.16.3.10
eth0:1           2      172.16.3.100
</screen>
<para>
<!--
And <filename>/proc/net/alias_types</filename>:	
-->
そして、<filename>/proc/net/alias_tupes</filename> が、以下です。
</para>

<programlisting>
type    name            n_attach
2       ip              2
</programlisting>

<para>
<!--
Of course, the stuff in <filename>/proc/net</filename> was created by the 
<command>ifconfig</command> command and not by hand!
-->
もちろん、<filename>/proc/net</filename> 以下の出力は、手動で編集したのでは
なく、<command>ifconfig</command> コマンドによって生成されたものです。
</para>
</sect1>

<sect1 ID="Troubleshooting">
<title><!--Troubleshooting: Questions and Answers-->
トラブルシューティング：質問と解答</title>

<sect2 ID="KeepSettings">
<title>
<!--Question: How can I keep the settings through a reboot?-->
質問：リブートしても設定が維持されるようにするには？</title>

<para>
<!--
Answer: Whether you are using BSD-style or SysV-style (Redhat&trade for 
example) <command>init</command>, you can always include it in <filename>
/etc/rc.d/rc.local</filename>. Here's what I have
on my SysV init system (Redhat&trade 3.0.3 and 4.0):
-->
解答：BSD スタイルの <command>init</command> を使っている場合でも、
SysV スタイル (例えば、RedHat ) の <command>init</command> の場合も、
いずれも <filename>/etc/rc.d/rc.local</filename> に設定を記述すれば、
設定が維持されます。以下に、SysV init システム (RedHat 3.0.3 と 4.0 ) の著者の
設定を記載します。
</para>

<para>
<!--
My <filename>/etc/rc.d/rc.local</filename>: (edited to show the relevant 
portions)
-->
著者の <filename>/etc/rc.d/rc.local</filename>：(関連部分だけです)
</para>

<screen>
#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
# </screen>
</sect2>

<sect2 ID="SettingUpMail">
<title><!--
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)?
-->
質問：マシンに IP エイリアスを設定し、エイリアス設定した個々の IP アドレス
上でメールを受信するにはどうすればいいですか (sendmail を使ったマシンです)？
</title>

<para>
<!--
Answer: Create (if it doesn't already exist) a file called, 
<filename>/etc/mynames.cw</filename>,for example. The file does not have to be 
this exact name nor in the <filename>/etc directory</filename>.
-->
解答：例えば、<filename>/etc/mynames.cw</filename> といったファイルを
作成します(既に作成済みなら、それを使って下さい)。ファイル名は、この名前の
通りでなくてもかまいませんし、必ずしも <filename>/etc</filename> ディレクトリに
ある必要もありません。
</para>

<para>
<!--
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.
-->
そのファイルの中に、エイリアス設定した IP アドレスの正式なドメイン名を
書き込みます。エイリアス設定した IP アドレスがドメイン名を持っていない
場合は、IP アドレス自体を書き込んでもかまいません。
</para>

 <para> 
<!--
The <filename>/etc/mynames.cw</filename> might look like this:
-->
<filename>/etc/mynames.cw</filename> は、次のようなものになると思います。
</para>

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

<para>
<!--
In your <filename>sendmail.cf</filename> file, where it defines a file class 
macro Fw, add the following:
-->
<filename>sendmail.cf</filename> には、ファイル・クラス・マクロ (file class 
macro) を設定している部分があるので、そこに以下の内容を追加します。
</para>

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

<para>
<!--
That should do it. Test out the new setting by invoking sendmail in
test mode. The following is an example:
-->
これで大丈夫なはずです。sendmail をテストモードで起動して、新しい設定が
上手く動くか確かめてください。例えば、以下のようにします。
</para>

<screen>
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 >
></screen>

<para>
<!--
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.
-->
me@4.5.6.7 をテストした際、メールはローカルマシンに配信され、
me@4.5.6.8 をテストした際は、SMTP メーラに渡されました。
これは、正しい動作です。
</para>

<para><!--You are all set now.-->これで、設定はすべて終了です。</para>
</sect2>
</sect1>

<sect1 ID="Acknowledgements">
<title><!--Acknowledgements-->謝辞</title>
<para>
<!--
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.
-->
Linux と IP エイリアス の開発に関わったすべての人々に感謝します。
そして、私の疑問を解決してくれた Juan Ciarlante には特に感謝して
います。
</para>

<para><!--Kudos to the ace programmers!-->
エース・プログラマたちに栄光あれ！</para>

<para>
<!--
If you find this document useful or have suggestions on improvements, email me 
at <email><ulink URL="mailto:h.pillay@ieee.org">h.pillay@ieee.org</ulink>
</email>.
-->
この文書についての感想や提案、ご意見は、&lt;h.pillay@ieee.org&gt; まで
メールでお知らせください。
</para>
<para><!--Enjoy.-->よろしくお願いします。</para>
<para>
<!--
For additional information on networking, you may want to consult the <ulink 
URL="http://www.linuxdoc.org/HOWTO/Networking-Overview-HOWTO.html">
The Linux Networking Overview HOWTO</ulink>.
-->
ネットワーキングに関する詳しい情報は、<ulink 
url="http://www.linuxdoc.org/HOWTO/Networking-Overview-HOWTO.html">
Networking-Overview-HOWTO</ulink> (<ulink 
url="http://www.linux.or.jp/JF/JFdocs/Networking-Overview-HOWTO.html">
日本語訳</ulink>) をご覧ください。
</para>
</sect1>

<sect1 id="jptrans">
<title>日本語訳について</title>
<para>
<simplelist columns="3" type="horiz">
<member>翻訳：</member>
<member>吉峯 幸郎</member>
<member>&lt;yoshimin@ms.civilnet.com&gt; (1997/05/24)</member>
<member>更新：</member>
<member>千旦 裕司</member>
<member>&lt;ysenda@pop01.odn.ne.jp&gt; (2001/09/15)</member>
<member>校正：</member>
<member>Seiji Kaneko</member>
<member>&lt;skaneko@a2.mbn.or.jp&gt;</member>
</simplelist>
</para>
<para>
誤訳・誤植・コメント等は、&lt;JF@linux.or.jp&gt; までお願いします。
</para>

</sect1>

</article>

