1枚のNIC(ネットワークカード)に複数のIPアドレスを設定する方法(Linux)

一時的にIPアドレスを設定する方法
IPアドレスを永続的に設定する方法
IP aliasingをカーネルに組み込む
[参考記事] Windowsで1枚のNIC(ネットワークカード)に複数のIPアドレスを設定する方法
[参考記事] FreeBSDで1枚のNIC(ネットワークカード)に複数のIPアドレスを設定する方法

一時的にIPアドレスを設定する方法

IPアドレスを変更する前に試してみたり、一時的にIPアドレスを設定したいときには次のコマンドを実行します。

ifconfig 【デバイス名】 【IPアドレス】 netmask 【サブネットマスク】

このときSSHで接続している場合は、eth0など接続中のデバイスのIPを変更してしまうと、SSHのネットワークが切れます。
1枚のNICには複数のIPアドレスを設定できるので、確認のときにはeth0:1などにします。

(例)eth0:1に192.168.10.15/24のIPアドレスを追加する場合

# ifconfig eth0:1 192.168.10.15 netmask 255.255.255.0

ifconfigで動作確認

# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:11:51:AD  
          inet addr:192.168.11.10  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe11:51ad/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:156 errors:0 dropped:0 overruns:0 frame:0
          TX packets:158 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:24219 (23.6 KiB)  TX bytes:20681 (20.1 KiB)

eth0:1    Link encap:Ethernet  HWaddr 08:00:27:11:51:AD  
          inet addr:192.168.10.15  Bcast:192.168.11.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

この設定は一時的な設定のため、サーバの再起動やネットワークの再起動をすることで元の設定に戻ります。

# /etc/rc.d/init.d/network restart
[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:11:51:AD  
          inet addr:192.168.11.10  Bcast:192.168.11.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe11:51ad/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:136 errors:0 dropped:0 overruns:0 frame:0
          TX packets:123 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:22741 (22.2 KiB)  TX bytes:15713 (15.3 KiB)

IPアドレスを永続的に設定する方法

再起動をしても設定を残したいときには、設定ファイルでの設定をします。

# vi /etc/sysconfig/network-scripts/ifcfg-【デバイス名】
DEVICE=【デバイス名】
ONBOOT=yes
BOOTPROTO=static
IPADDR=【IPアドレス】
NETMASK=【サブネットマスク】
BROADCAST=【IPアドレス(ブロードキャスト)】

(例)eth0:1に192.168.10.15/24のIPアドレスを追加する場合

# vi /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.15
NETMASK=255.255.255.0
BROADCAST=192.168.0.255

ネットワークを再起動すると設定が反映されます。

service network restart

デバイス設定を指定して反映させることもできます。

ifup eth0:1

追加の設定はDHCPなどはできません。固定IPとしなかった場合には次のようなエラーが出ます。

error in ifcfg-eth0:1: didn't specify device or ipaddr

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

1枚のNICに複数のIPアドレスを設定するには、IP aliasingなどが必要です。
CentOS5などでは、標準で組み込まれている場合があります。

depmod -aは、モジュールの依存関係を調べるコマンド。

# depmod -a

modprobeは、モジュールを指定して組み込むコマンド。

# modprobe ip_alias.o

lsmodは、現在組み込まれているモジュールを確認するコマンドです。

# lsmod
Module:        #pages:  Used by:
ip_alias           1            0

自動起動設定

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

関連記事

スポンサーリンク

[暗号化]ブロック暗号とは(AES/DES/Blowfish PKCS5Padding ECB/CBC IV)

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る