次のページ 前のページ 目次へ

1. はじめに

Linux は複数の“ホスト”を1台のマシン上で稼動できます。多くの ユーザーが既に1つ以上の WWW サービスを Linux ボックス上で動か しています。 例えば:

www.sharpers.com                (192.168.55.37)
www.usurers.com                 (192.168.55.38)
www.swindlers.com               (192.168.55.39)

これらはあたかも3つの異なるホストのように見えますが、実は たった1台の Linux PC によりサービス提供されています。

この技術は“マルチホーミング (multihoming)”と呼ばれる機能と Linux の持つ、 複数の IP アドレスを1つのインターフェース( イーサネットカード またはモデム)に割当てられる機能によるものです。このおかげで、ネット 上で複数のアドレスやホスト名に対応する Linux システムを構築する場合 でも、複数のイーサネットカードは必要ありません。 Linux は追加 IP アドレスを“仮想インターフェース”と呼ばれる形で制御 します。“仮想インターフェース”は物理的には同じハードウェアに対応 していながら、論理的にはソフトウェア(とカーネル)によって IP アドレス として区別されます。

仮想インターフェースはメインインターフェースと同様の名前が付けられ、 単にサフィックスとして割当てられた番号でそれぞれを区別します。 “IP エイリアス”はこの仮想インターフェースに対する用語です。 上記の仮想ホストは "ifconfig" コマンドで見ると以下のように なります (編集してあります):

interface IP-address     broadcast-address       netmask
------------------------------------------------------------
eth0      192.168.55.37    192.168.55.63     255.255.255.224
 
eth0:0    192.168.55.38    192.168.55.63     255.255.255.224
eth0:1    192.168.55.39    192.168.55.63     255.255.255.224
eth0:2    192.168.55.40    192.168.55.63     255.255.255.224
eth0:3    192.168.55.41    192.168.55.63     255.255.255.224
     ^-- IP エイリアス番号

IP エイリアスの機能を使うには Linux カーネル に“モジュール”が 必要です。このモジュールはカーネルのコンパイル時、またはランタ イムに以下のコマンド(root として実行)によって使えるようになります:

insmod ipalias

最近の配布パッケージではこのモジュールは提供されているはずなので、 ここではどのようにモジュールを作成するかといったことについては触れ ません(ヒント:分からなければ Linux Kernel-HOWTO ( 日本語訳) を参照)。

前述のホストの IP エイリアスは、起動時に、簡単なシェルスクリプトで 作成されます。

#!/bin/sh

NETMASK="255.255.255.224"      # あなたのネットマスクに変更
BROADCAST="192.168.55.63"      # あなたのブロードキャストアドレスに変更
MAIN_IF="eth0"                 # メインインターフェース

IPALIASES="192.168.55.38   192.168.55.39   192.168.55.40 \
           192.168.55.41   192.168.55.42   192.168.55.43 \
           192.168.55.44   192.168.55.45   192.168.55.46"

# 以下は変更しないで下さい。
i=0
for ALIAS in $IPALIASES
do
    /sbin/ifconfig  ${NETTYPE}:${i}  ${ALIAS} \
                    broadcast ${BROADCAST}  netmask ${NETMASK}
    /sbin/route add -host ${ALIAS} dev ${NETTYPE}:${i}
    i=$[$i+1]
done

IP エイリアスに関し、まだ疑問がある場合は Linux "IP Alias mini-HOWTO ( 日本語訳)" と Linux カーネルソースの "Documentation/aliases.txt" を参照して 下さい。(通常は "/usr/src/linux" にあります。)


次のページ 前のページ 目次へ