ASH | サーバ | セキュリティ | Linux | FreeBSD | DB | Web | CGI | Perl | Java | XML | プログラム | ネットワーク | 標準 | Tips集

複数のIPアドレスを割り当てる

 つまり1枚のネットワークデバイスに複数のIPアドレスを割り当てる方法です。 この方法を使えば、複数のIPアドレスへのアクセスを1台のマシンで処理することができます。
 DNSの設定などを変えることなしに、複数のアドレスへの処理を1台のマシンにさせるなどの設定が可能になります。
 これには、LinuxのIP aliasingいう機能を利用することになります。 この機能がカーネルに組み込まれていなければ、組み込む必要があります。

 なお、設定などに、LANカードを2枚使う場合と似通った部分がありますので、 「LinuxでLANカードを2枚使う」も参考にして下さい。

IP aliasingをカーネルに組み込む

 今回の場合(Plamo Linux 1.4.4)は、モジュールとして提供されていたので、モジュールを組み込むことにしました。

linux# depmod -a
linux# modprobe ip_alias.o
linux# lsmod
Module:        #pages:  Used by:
ip_alias           1            0

 depmod -aは、モジュールの依存関係を調べるコマンド。modprobeは、モジュールを指定して組み込むコマンド。lsmodは、現在組み込まれているモジュールを確認するコマンドです。

自動起動設定

 このままでは、再起動時に設定が消えてしまうので、
/etc/rc.d/rd.modules
に、
/sbin/modprobe ip_alias.o
の行を追加し、起動時にモジュールを組み込む設定にします。

IPアドレスを割り当てる

 IP alias機能が有効になったら、ネットワークインターフェイスにIPアドレスを割り当てます。

/sbin/ifconfig eth1:0 10.0.1.40 netmask 255.255.255.0 broadcast 10.0.1.255
/sbin/route add -host 10.0.1.40 dev eth1:0

 ここでは、eth1:0(2枚目のLANカード)に、10.0.1.40というアドレスを割り当てています。
 なお、eth1:1、eth1:2、などと指定することで、さらにIPアドレスを割り当てることも可能です。

自動起動設定

 再起動時にIPアドレスの設定を行うために、
/etc/rc.d/rc.inet1
に、上記のifconfigコマンドとrouteコマンドを追記します。

動作試験

 ifconfigコマンドを使ってネットワークの状態を確認します。

linux# ifconfig
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:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          Collisions:0

eth0      Link encap:Ethernet  HWaddr 00:40:33:56:7D:D4
          inet addr:210.154.87.30  Bcast:210.154.87.31  Mask:255.255.255.240
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5198 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2276 errors:0 dropped:0 overruns:0 carrier:0
          Collisions:0
          Interrupt:12 Base address:0xd400

eth1      Link encap:Ethernet  HWaddr 00:40:33:A0:E4:95
          inet addr:10.0.1.30  Bcast:10.0.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2364 errors:0 dropped:0 overruns:0 frame:3
          TX packets:111 errors:0 dropped:0 overruns:0 carrier:0
          Collisions:0
          Interrupt:10 Base address:0xd000

eth1:0    Link encap:Ethernet  HWaddr 00:40:33:A0:E4:95
          inet addr:10.0.1.40  Bcast:10.0.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Collisions:0

 別のマシンからpingコマンドなどを使って、割り当てたIPアドレスが有効になっているか確認します。

linux# ping 10.0.1.40
PING 10.0.1.40 (10.0.1.40): 56 data bytes
64 bytes from 10.0.1.40: icmp_seq=0 ttl=64 time=1.3 ms
64 bytes from 10.0.1.40: icmp_seq=1 ttl=64 time=0.5 ms
64 bytes from 10.0.1.40: icmp_seq=2 ttl=64 time=0.5 ms
64 bytes from 10.0.1.40: icmp_seq=3 ttl=64 time=0.5 ms

--- 10.0.1.40 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.5/0.7/1.3 ms


Copyright (C)1995-2002 ASH multimedia lab.
mail : info@ash.jp