(小ネタ) Red Hat Enterprise Linux 9でセカンダリプライベートIPアドレスやネットワークインターフェースを追加した際にOS側で設定が必要か試してみた
こんにちは!コンサル部の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側の設定で完結できました。
この知識が必要になるケースはそれほど多くないでしょうが、知っておくといざ必要になった際に役立ちそうです。
この記事が、どなたかのお役に立てば幸いです。それでは!