web-dev-qa-db-ja.com

永続的なネット名のルールを記述する方法は?

プロセスが/lib/udev/rules.d/75-persistent-net-generator.rulesにあるルールに基づいて永続的なネットワークカード名を生成することを知っています。このプロセスを簡単に無効にする方法も知っています

echo '#' > /etc/udev/rules.d/75-persistent-net-generator.rules

しかし、「インターフェイスに名前を付けるために独自のルールファイルを作成することもできます。名前がすでに設定されている場合、永続的なルールジェネレーターはインターフェイスを無視します」(/etc/udev/rules.d/READMEは、これは可能です)。

そのようなルールを記述する方法についての説明や例を提供できますか? (私は主にDebian/Ubuntuに関心があり、CentOSには少し影響します)。私の場合、次のようなルールを追加したいと思います。

  • mAC AまたはBのカードにはeth0という名前を付ける必要があります
  • mAC CまたはDのカードにはeth1という名前を付ける必要があります
  • それ以外はデフォルトの命名規則に従う

カスタムルールを作成する理由の具体例として、2つの同一のサーバーに1つのオンボードLANと1つのPCI LANがあります。 HW障害が発生した場合、ディスクをHW#1からHW#2に移動できるようにしたいと思います。eth0がオンボードカードを指し、eth1がPCIカードを指し続けることが重要です(途中でケーブル配線をいじりたくない)ハードウェア障害のパニック)。私の現在の回避策は機能しますが、多くの作業[1]なので、カスタムルールを作成することで上記のルールを表現できるかどうか疑問に思います


[1] OSをHW#1にインストールし、/ etc/udev/rules.d/70-persistent-net.rulesのコピーを保持します。ディスクをHW#2に移動し、同じファイルの2番目のコピーを保持します。 2つのコピーを連結し、NAME = "ethX"の部分を手動で編集します。 /etc/udev/rules.d/70-persistent-net.rulesを私のバージョンに置き換えます。最後に、新しい70-persistent-net.rulesの自動作成を無効にします。

echo '#' > /etc/udev/rules.d/75-persistent-net-generator.rules
4
ndemou

特定の質問に答えるには、これをpersistent-net.rulesに追加します。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="AA:AA:AA:AA:AA:AA", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="BB:BB:BB:BB:BB:BB", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="CC:CC:CC:CC:CC:CC", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="DD:DD:DD:DD:DD:DD", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth1"

Persistent-net-generator.rulesはそのままにしておきます。 udevは手動で追加したルールを上書きしませんが、ジェネレータールールは新しいルールを通常どおり新しいカードに追加します。

5
András Korn

通常、インターフェースの命名に関して私がやりたいのは、eth0とeth1を交換することだけです。システムにファイル/etc/udev/rules.d/70-persistent-net-rulesを作成させ、名前を切り替えて編集し、再起動して、ネットワーク構成ファイルでインターフェーススタンザを構成します。退屈ですが、それを成し遂げます。これに関するファイルの上部にヒントがあります:

/etc/udev/rules.d/70-persistent-net.rules 
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x8086:0x108c (e1000e) (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:90:22:74:24", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
0
nortally