(小ネタ) Red Hat Enterprise Linux 9でセカンダリプライベートIPアドレスやネットワークインターフェースを追加した際にOS側で設定が必要か試してみた

(小ネタ) Red Hat Enterprise Linux 9でセカンダリプライベートIPアドレスやネットワークインターフェースを追加した際にOS側で設定が必要か試してみた

Clock Icon2024.06.30

こんにちは!コンサル部のinomaso(@inomasosan)です。

Red Hat Enterprise Linux 9(以下、RHEL)のEC2インスタンスで、ネットワークインターフェイスにセカンダリプライベートIPアドレスを追加やネットワークインターフェース自体を追加した場合に、OS側で追加設定が必要か気になったので調べてみました。

RHEL7.5ではOS側で追加設定が必要だったので、RHEL9ではどうなんだろう?と思ったのが主な動機です。

先に結論

  • セカンダリプライベートIPアドレスやルーティングの変更に伴い、OSのネットワークインターフェイスのプライベートIPアドレスやルートテーブルが自動更新される
  • OSやネットワークサービスの再起動不要

環境

今回実行した環境は以下の通りです。

項目 バージョン
AMI名 RHEL-9.3.0_HVM-20240229-x86_64-27-Hourly2-GP3
インスタンスタイプ t3.micro
VPC CIDR 172.31.0.0/16
サブネット CIDR 172.31.32.0/20

検証

まずはネットワークインターフェイスとプライベートIPアドレスが1つずつの状態を確認していきます。

# ip a
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 mq state UP group default qlen 1000
    link/ether 06:d8:b1:59:a6:35 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname ens5
    inet 172.31.45.73/20 brd 172.31.47.255 scope global dynamic noprefixroute eth0
       valid_lft 3041sec preferred_lft 3041sec
    inet6 fe80::4d8:b1ff:fe59:a635/64 scope link
       valid_lft forever preferred_lft forever
# ip r
default via 172.31.32.1 dev eth0 proto dhcp src 172.31.45.73 metric 100
172.31.32.0/20 dev eth0 proto kernel scope link src 172.31.45.73 metric 100</code>

次にAWSマネジメントコンソールでセカンダリプライベートIPアドレスを追加してみました。
既存のネットワークインターフェイスにプライベートIPアドレスが追加された、サブネット内のルートが追加されました。

# ip a
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 mq state UP group default qlen 1000
    link/ether 06:d8:b1:59:a6:35 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname ens5
    inet 172.31.45.73/20 brd 172.31.47.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 172.31.46.54/20 brd 172.31.47.255 scope global secondary noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::4d8:b1ff:fe59:a635/64 scope link
       valid_lft forever preferred_lft forever
# ip r
default via 172.31.32.1 dev eth0 proto dhcp src 172.31.45.73 metric 100
172.31.32.0/20 dev eth0 proto kernel scope link src 172.31.45.73 metric 100
172.31.32.0/20 dev eth0 proto kernel scope link src 172.31.46.54 metric 100

次にネットワークインターフェイスを追加してみました。
eth1のネットワークインターフェイス設定が追加され、デフォルトゲートウェイとサブネットのルートが追加されました。
eth0と比較するとeth1の方がメトリックの値が大きく、優先度が低いことがわかります。

# ip a
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 mq state UP group default qlen 1000
    link/ether 06:d8:b1:59:a6:35 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname ens5
    inet 172.31.45.73/20 brd 172.31.47.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 172.31.46.54/20 brd 172.31.47.255 scope global secondary noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::4d8:b1ff:fe59:a635/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
    link/ether 06:26:59:2a:33:cf brd ff:ff:ff:ff:ff:ff
    altname enp0s6
    altname ens6
    inet 172.31.38.44/20 brd 172.31.47.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::bf83:6c2f:bb34:7dba/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
# ip r
default via 172.31.32.1 dev eth0 proto dhcp src 172.31.45.73 metric 100
default via 172.31.32.1 dev eth1 proto dhcp src 172.31.38.44 metric 101
172.31.32.0/20 dev eth0 proto kernel scope link src 172.31.45.73 metric 100
172.31.32.0/20 dev eth0 proto kernel scope link src 172.31.46.54 metric 100
172.31.32.0/20 dev eth1 proto kernel scope link src 172.31.38.44 metric 101

他のディストリビューションだとどうなのか?

AWS公式ドキュメントには以下のような記載があるため、Amazon Linux以外はドキュメント等にて確認する必要があります。

別の Linux ディストリビューションを使用している場合、Linux ディストリビューションのドキュメントを参照してください。追加のネットワークインターフェイスとセカンダリ IPv4 アドレスの設定に関する情報が記載されています。

まとめ

RHEL7.5と同様に手動でOSの設定が必要かと思いましたが、AWS側の設定で完結できました。
この知識が必要になるケースはそれほど多くないでしょうが、知っておくといざ必要になった際に役立ちそうです。

この記事が、どなたかのお役に立てば幸いです。それでは!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.