Amazon Linux 2023 で永続的な static ルーティング設定を実装してみた

Amazon Linux 2023 で永続的な static ルーティング設定を実装してみた

Clock Icon2025.06.06

はじめに

テクニカルサポートの 片方 です。
今回は、Amazon Linux 2023 環境で永続的な static ルーティング設定を行う方法について、実際に試してみた結果をご紹介します。EC2 インスタンスでネットワーク再起動後も維持されるルーティング設定が必要になった際に参考になれば幸いです。

背景

Amazon Linux 2023 を使用した EC2 インスタンスで、特定の IP アドレス宛の通信を特定のゲートウェイ経由にルーティングする必要がありました。従来のように一時的なルーティングを追加する方法では、ネットワークサービスの再起動時に設定が消えてしまうため、永続的な設定方法を調査しました。

以下のように ip route add コマンドでルーティングを追加すると、一時的には設定できますが、ネットワークサービスを再起動すると消えてしまいます。

# ip route add 10.255.1.1/32 via 172.31.1.1

ネットワークサービスの再起動を実施すると、追加したルーティング設定が消えてしまいます。

# systemctl restart systemd-networkd.service

やってみた

Amazon Linux 2023 では、ネットワーク設定が以前のバージョンとは異なり、systemd-networkd を使用しています。そのため、永続的なルーティング設定も異なる方法で行います。

https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/networking-service.html

このネットワーク動作は、/etc/systemd/network ディレクトリにカスタム設定ファイルを配置して、/run/systemd/network に含まれるデフォルトの設定を上書きすることでカスタマイズできます。

1.ネットワークインターフェース名の確認
まず、使用しているネットワークインターフェース名を確認します。

$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 0a:35:1f:17:3c:83 brd ff:ff:ff:ff:ff:ff
    altname enp0s5
    altname eni-05e713ada4f73c7ee
    altname device-number-0.0

この例では、メインのネットワークインターフェース名は 「ens5」 です。

2.設定ファイルの作成
systemd-networkd用の設定ファイルを作成します。

$ sudo vim /etc/systemd/network/10-ens5.network

3.設定ファイルの内容を記述
以下の内容を設定ファイルに記述します。

[Match]
Name=ens5

[Network]
DHCP=yes

[Route]
Destination=10.255.1.1/32
Gateway=172.31.1.1
  • [Match]セクションでは、設定を適用するインターフェースを指定
  • [Network]セクションでは、DHCPを有効にして既存のネットワーク設定を維持
  • [Route]セクションで、特定の宛先(10.255.1.1/32)に対するゲートウェイ(172.31.1.1)を指定

https://www.freedesktop.org/software/systemd/man/latest/systemd.network.html

4.systemd-networkd の再起動
設定を反映させるために systemd-networkd サービスを再起動します。

$ sudo systemctl restart systemd-networkd.service

5.設定の確認
ルーティングテーブルを確認して、設定が反映されていることを確認します。

$ ip route

0001

ip route コマンドの出力を見ると、追加したスタティックルートが正しく設定されていることが確認できました。

10.255.1.1 via 172.31.1.1 dev ens5 proto static onlink

成功です!

まとめ

systemd-networkd サービスを再起動した後も設定が維持されており、永続的な設定として機能していることが確認できました。
なお、本番環境での実施前には、事前にバックアップ目的で AMI 作成することをお勧めします。
本ブログが誰かの参考になれば幸いです。

参考資料

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.