Skip to content

AWS EC2 で Linux にセカンダリアドレスを割り当てる

AWS 上の Linux (等) に固定アドレスを割り当てたり、セカンダリアドレスを割り当てる手順をメモしておきます。

プライマリアドレスを固定設定する

プライマリアドレスを固定設定してみます。

Step.1

インスタンスを作成する際、ネットワークインターフェイスの プライマリ IP に固定アドレスを指定します。 これで起動してくる Linux (のインターフェイス設定) 自体は DHCP ではあるものの、指定したアドレスで起動してきます。

file

Step.2

設定はこれだけです。 Linux ディストリビューションの種類に関わらず、以下のようにプライマリインターフェイスが固定アドレスで起動してきます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[root@ip-192-168-224-11 ~]# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 06:bf:e2:bc:01:c4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.224.11/24 brd 192.168.224.255 scope global dynamic eth0
       valid_lft 3180sec preferred_lft 3180sec
    inet6 fe80::4bf:e2ff:febc:1c4/64 scope link
       valid_lft forever preferred_lft forever

セカンダリアドレスを固定設定する

次はセカンダリアドレスを固定設定してみます。

Step.1

ENI の設定画面からセカンダリアドレスを固定設定したいインターフェイスを選択し、アクションIP アドレスの管理 をクリックします。

file

Step.2

新しい IP の割り当て をクリックします。

file

Step.3

空欄が追加されるので新規に固定設定したいアドレスを入力し、右下の 更新する をクリックします。

file

Step.4

これでセカンダリアドレスが固定設定されました。

file

Step.5

Amazon Linux の場合は ec2-net-utils というパッケージの機能により、AWS 管理コンソールからセカンダリアドレスを設定するだけで、OS 上の設定は特に必要なく、セカンダリアドレスが反映されます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[root@ip-192-168-224-11 ~]# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 06:bf:e2:bc:01:c4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.224.11/24 brd 192.168.224.255 scope global dynamic eth0
       valid_lft 3431sec preferred_lft 3431sec
    inet 192.168.224.12/24 brd 192.168.224.255 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::4bf:e2ff:febc:1c4/64 scope link
       valid_lft forever preferred_lft forever

手動で OS 上のセカンダリアドレスを固定設定する

Amazon Linux 以外、例えば CentOS の場合は AWS の管理コンソールから ENI にセカンダリアドレスを設定しても (ec2-net-utils が無い為) OS には自動反映されません。 CentOS であれば「ec2-net-utils を追加してしまう」という方法もありますが、セカンダリアドレスを手動で設定してしまう、という方法もあります。具体的には以下のようにサブインターフェイスを設定します。 以下は CentOS7 の場合です。

1
2
3
4
5
6
7
[root@ip-192-168-224-21 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.224.22
NETMASK=255.255.255.0

network サービスを再起動し、設定を反映します。

1
2
[root@ip-192-168-224-21 network-scripts]# service network restart
Restarting network (via systemctl):                        [  OK  ]

これでセカンダリアドレスが反映されました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[root@ip-192-168-224-21 ~]# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 06:fe:1e:f7:84:58 brd ff:ff:ff:ff:ff:ff
    inet 192.168.224.21/24 brd 192.168.224.255 scope global dynamic eth0
       valid_lft 2219sec preferred_lft 2219sec
    inet 192.168.224.22/24 brd 192.168.224.255 scope global secondary eth0:0
       valid_lft forever preferred_lft forever
    inet6 fe80::4fe:1eff:fef7:8458/64 scope link
       valid_lft forever preferred_lft forever

参考