質問、

質問、

Ubuntuサーバー14.042つのネットワークインターフェースを備えた仮想マシン

  • eth0- Web管理の場合SSH
  • eth1- 受信スパンネットワーク分析用

Macアドレスと論理ネットワークインタフェース名の一貫性と正しいバインディングを確保するために、udevルールを使用してシステムを設定しました。

  • サーバーをインストールするときにこれを一度だけ行いました。
  • このルールを書く/etc/udev/rules.d/70-persistent-net.rules

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:f5:aa:02", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth1"
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:f5:aa:f8", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"
    

ここに画像の説明を入力してください。


この設定は期待どおりに機能します。新しいネットワークインターフェイスがマシンに追加されるまで。新しいインターフェイスは次のとおりです。udevルールに追加されない。 (設定中は一度だけ行うので)

新しいネットワークインタフェース名は一般的な名前(たとえば/// eth3...)と見なされます。p2p1em1名前を使用しない限りudevルールを通して。

インターフェイスを追加してコンピュータを起動した後の経験は次のとおりです。

ここに画像の説明を入力してください。

  1. 私のudevルールは無視/衝突し、名前が付けられました。rename3
  2. eth0誘拐されました。現在、新しいインタフェースの1つはeth0セキュリティの面で非常に重要な問題です(データ漏洩につながる可能性があります)。

私が見つけた関連プロセスは次のとおりです。/var/log/messages

systemd-udevd[126]: starting version 204

...

vmxnet3 0000:04:00.0 eth0: NIC Link is Up 10000 Mbps
vmxnet3 0000:0b:00.0 eth1: NIC Link is Up 10000 Mbps
vmxnet3 0000:13:00.0 eth2: NIC Link is Up 10000 Mbps
vmxnet3 0000:1b:00.0 eth3: NIC Link is Up 10000 Mbps

...

vmxnet3 0000:0b:00.0 rename3: renamed from eth1
vmxnet3 0000:13:00.0 eth1: renamed from eth2
systemd-udevd[396]: renamed network interface eth1 to rename3
systemd-udevd[405]: renamed network interface eth2 to eth1
  • IMO これは競争条件です。ドライバー/カーネルジョブ名。後で私のudevルールが実行されると、占有された名前は次に戻ります。rename*

質問、

ドライバ/カーネルがインターフェイス名を使用する前に順序を変更し、udev-rulesに優先順位を付ける方法はありますか?

注 - 次の回避策(POCレベル)が私にとって効果的でした。

  • udevルールで別の命名規則(たとえば、management0および)を使用すると、span0デフォルト値と競合しないため、問題なく動作します。
  • @bootのスクリプトの実行 - ハードウェアの変更に関連するudevルールをオーバーライドします。動作しますが、追加の再起動が必要です(素直なアプローチ)。問題ありません。

関連情報