udev:マルチユーザーターゲットが起動された後でもネットワークカード名が変更される可能性はありますか?

udev:マルチユーザーターゲットが起動された後でもネットワークカード名が変更される可能性はありますか?

Linuxサーバー(CentOS7.9カーネル5.4.179-1.el7.elrepo.x86_64)で奇妙な問題を調査しています。完全に正常なサービスがあります。

# /etc/systemd/system/test.service
[Unit]
Description=tet
Before=frr.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/etc/test.sh

[Install]
WantedBy=multi-user.target

test.shはネットワークを構成します(例:単純化された疑似コード)。

show nic name by mac

enp1s0f0たとえば、従来の名前などの代わりに最新のネットワークカード名を出力し、eth1サービスは他のすべてのサーバーで正常に動作します。

ところがある日、例えば昔の方式のネットワークカード名が出力されたようですがeth1、その当時さかのぼる関連ログが見つかりません。

dmesgでネットワークカード名変更ログが見つかりました。

[Fri Sep 15 00:38:24 2023] bnxt_en 0000:01:00.1 eth1: Broadcom BCM57414 NetXtreme-E 10Gb/25Gb Ethernet found at mem 4000200000, node addr 11:11:11:11:11:11
[Fri Sep 15 00:38:24 2023] bnxt_en 0000:01:00.1 enp1s0f1: renamed from eth1

だからネットワークカード名はeth1ではないかと思います。

multi-user.targetが起動した後でもネットワークカード名の変更が発生するかどうかを知りたいです。 (multi-user.targetはほとんどのサービスに接続されています)

ネットワークカードの名前変更は、より早く開始されるsystemd-udevd.serviceで発生しますが、ハードウェアイベントを継続的に受信するため、ネットワークカードが予想より遅くなり、test.serviceが起動した後でも名前が変更される可能性があります。

これが本当なら、それを使うべきだと思います。

udevadm settle

nic名前の変更が自動的に待機されるように、保留中のudevイベントがないことを確認してください。

関連情報