server-memo.net

CentOS6からの複数IP(secondary)設定方法

      2016/01/22

CentOS6からのNICに複数IPを設定する方法です。

NIC設定ファイルで設定(サーバ再起動でも設定は消えません)

CentOS5までは、一枚のNICに複数のIPを設定する場合は、「ifcfg-eth0:1」といったような設定ファイルを作って設定を行ってきましたが、CentOS6からは「ifcfg-eth0」ファイルに複数のIPアドレスを設定できるようになりました。

設定書式

「IPADDR」と「PREFIX」の後に番号を振ることで、複数のIPアドレスを設定することができます。

IPADDR=xxx.xxx.xxx.xxx
PREFIX=xx
IPADDR1=xxx.xxx.xxx.xxy  
PREFIX1=xx
IPADDR2=xxx.xxx.xxx.xxz
PREFIX2=xx

上記は「IPADDR1」「PREFIX1」と「IPADDR2」「PREFIX2」を追加した場合の例です。

設定例

「192.168.1.160/24」のIPアドレスを設定している「eth0」のNICに、追加で「192.168.1.161/24」と「192.168.1.162/24」のアドレスを追加で設定した場合の例です。

# vi /etc/sysconfig/network-script/ifcfg-eth0

設定例

IPアドレス設定部分を抜粋しています。

IPADDR=192.168.1.160
PREFIX=24
IPADDR1=192.168.1.161
PREFIX1=24
IPADDR2=192.168.1.162
PREFIX2=24

設定反映

設定ファイルの編集後「network」サービスを再起動することで設定を反映させることが出来ます。

CentOS6の場合

「service」コマンドを使用して「network」サービスを再起動します。

# service network restart

CentOS7の場合


「systemctl」コマンドを使用して「network」サービスを再起動します。

# systemctl restart network

設定確認

設定の確認には「ip addr」コマンドを使用します。
「ip addr」コマンドを使用して設定を確認すると、複数のIPが設定されていることが確認できます。

# ip addr show eth0
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:07:cf:27 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.160/24 brd 192.168.1.255 scope global eth0
    inet 192.168.1.161/24 brd 192.168.1.255 scope global secondary eth0
    inet 192.168.1.162/24 brd 192.168.1.255 scope global secondary eth0
    inet6 fe80::20c:29ff:fe07:cf27/64 scope link
       valid_lft forever preferred_lft forever

「ifconfig」コマンドを使用すると、設定されたIPが表示されませんので注意してください。

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0C:29:07:CF:27
          inet addr:192.168.1.160  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe07:cf27/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:66248 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25519 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:51776757 (49.3 MiB)  TX bytes:2960680 (2.8 MiB)

nmcliコマンドで設定(サーバ再起動でも設定は消えません)

CentOS7であれば、「nmcli」コマンドを使用することでも、NICに複数IPを設定することが出来ます。

設定書式

 nmcli connection modify デバイス名 +ipv4.addresses  "IPアドレス/ネットマスク(10進数)" 

設定例

「eno1677984」というデバイスに、「192.168.1.153/24」のIPアドレスを追加する場合は、下記のように設定を行います。

# nmcli connection modify eno16777984 +ipv4.addresses  "192.168.1.153/24"

※ ちなみに、「nmcli c m eno16777984 +ipv4.addresses "192.168.1.152/24"」 といったように、すこしコマンドを省略することもできます。

このコマンドを実行すると、NICの設定ファイルに「IPADDR1=192.168.1.153」「PREFIX1=24」といったように設定が追加されます。

設定反映

「nmcli」コマンドで設定を行った場合も、「systemctl」コマンドで「network」サービスを再起動することで、設定を反映させることが出来ます。

# systemctl restart network

IPコマンドで設定(サーバ再起動で設定が消えます)

「ip addr add」コマンドを使用することで、一時的に複数(secondary)IPアドレスを設定することが出来ますが、この方法は一時的に設定する場合の方法ですので、サーバを再起動すると設定は消えてしまいます。

また、コマンドを実行した時点ですぐに設定は反映されます。

設定書式

ip addr IPアドレス/ネットマスク(10進数) dev デバイス名

設定例

「eth0」のNICデバイスに「192.168.1.161/24」のIPアドレスを追加場合の例です。

# ip addr add  192.168.1.161/24 dev eth0

設定確認

NICにIPアドレスを追加されているか、「ip addr」コマンドで確認してみます。

「ip addr add」コマンドでIPアドレスを追加した場合は、即時反映されるので「network」サービスの再起動処理は必要ありません。

# ip addr show eth0
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:07:cf:27 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.160/24 brd 192.168.1.255 scope global eth0
    inet 192.168.1.161/24 scope global secondary eth0
    inet6 fe80::20c:29ff:fe07:cf27/64 scope link
       valid_lft forever preferred_lft forever

「192.168.1.161/24」が追加されていることが確認できました。

 - ネットワーク設定