インターフェイスに複数の IP アドレスを割り当てる (CentOS 5.5) - Linux の使い方
IP エイリアスを利用して仮想インターフェイスを設定する
CentOS 5.5 では、ひとつのネットワークインターフェイスに複数の IP アドレスを設定することができるようになっています。
これは Linux の "IP エイリアス" という機能を利用して、ひとつのネットワークインターフェイス、たとえば "eth0" であれば、それに "eth0:0" や "eth0:1" といったインターフェイスを仮想的に用意して、それぞれに固定 IP を設定することができるようになる仕組みです。
CentOS 5.5 の場合、通常のネットワークインターフェイスと同じように、"/etc/sysconfig/network-scripts/" ディレクトリ内に "ifcfg-インターフェイス名" という形で設定ファイルを用意します。
この時、設定ファイル名のインターフェイス名や、その設定ファイル内の "DEVICE" で指定するデバイス名には、"eth0:番号" という形式で、仮想ネットワークインターフェイス名を指定するところに注意します。
仮想インターフェイスの番号は、通常 "0" からの通し番号で設定するようですので、たとえば "eth0:0" を設定したい場合には、次のような内容で "/etc/sysconfig/network-scripts/ifcfg-eth0:0" を用意します。
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.6
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
あとは、CentOS 5.5 の場合には、次のコマンドを実行して、ネットワーク設定をシステムに反映させます。このとき、稀にネットワークの有効化に失敗することがあるようなので、リモートで設定を行うときには十分注意が必要です。
service network restart
または、次のようにして、ネットワーク設定の全体ではなく、追加した "eth0:0" の有効化だけを図ることも可能と思います。
ifup eth0:0
こうすることで、従来の "eth0" に加えて、仮想ネットワークインターフェイス "eth0:0" が利用できるようになります。
設定の際の注意点としては、仮想ネットワークインターフェイスについては、"BOOTPROTO" を "static" に設定して、必ず固定で IP アドレスを設定してあげないといけないところでしょうか。
IP アドレスを設定しなかったり、または DHCP からの自動取得にしたりすると、"error in ifcfg-eth0:0: didn't specify device or ipaddr" というエラーメッセージが表示されてしまうようでした。
また、"DEVICE" のところを "eth0:0" にし忘れて eth0 などにしてしまうと、設定を反映した際に、従来の "eth0" インターフェイスを見失うことがあるため、既に稼働中のサーバーで設定を行う場合などには注意が必要です。
なお、"ipconfig" コマンドを使って、次のようにして直接的に仮想ネットワークインターフェイスを設定することも可能です。
ifconfig eth0:0 192.168.0.6 netmask 255.255.255.0 broadcast 192.168.0.255
このようにすることで、仮想ネットワークインターフェイス "eth0:0" が追加され、利用できるようになります。
ただしこの場合、再起動すると設定内容が消えてしまうので、再起動後もこの仮想ネットワークインターフェイスを利用する場合には、"/etc/rc.d/rc.local" 等の起動時に実行されるスクリプト内で、起動の都度、このコマンドが実行されるようにする必要があります。