web-dev-qa-db-ja.com

複製されたLinuxシステムと/etc/udev/rules.d/70-persistent-net.rules

Ubuntuシステムをセットアップし、eth0/etc/network/interfacesに定義するなど、適切に構成しました。次に、そのシステムをイメージ化し、新しいシステムに複製しました。

最初にシステムを起動したときはすべて問題ありませんでしたが、数回再起動すると、ネットワーク構成のタイムアウトが発生しました。ログインしたところ、eth0が利用できないことがわかりました。

最初の調査では、ifdown -aifup -aを試してみましたが、何回か行ったところ明らかな効果はありませんでした。

調査の結果、私は/etc/udev/rules.d/70-persistent-net.rulesを指摘されました。そこで、新しいシステムのMACアドレスがeth1を作成したことがわかりました。いい考えですが、私がしたかったことではありません。

今起動したところ、/etc/udev/rules.d/70-persistent-net.rulesに6つの異なるHWアドレスに対する6つのエントリがあることがわかりました。これは、インターフェイスが1つしかないために不思議です。

私の質問は次のとおりです。ifup -aを使用すると、作成する新しいMACアドレスがどういうわけか作成されましたか?そうでない場合、これがどのように発生したかについて何か考えはありますか?現在のハードウェアアドレスに/etc/udev/rules.d/70-persistent-net.rulesという名前を付けるようにeth0を変更しましたが、正常に機能しているようですが、再起動時にアドレスが再び変更されないことは保証されますか?

9
Zobal

CentOSで仮想マシン(VM)のクローンを作成したときに、まったく同じ問題が発生することがあります。この問題は、元のVMエントリを取得して、イーサネットデバイスeth0をセットアップするためにこのファイルに入力したものです。

サンプル.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.

# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:dd", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

最初のVMのクローンを作成すると、問題が醜くなります。KVM for one)などの一部の仮想化テクノロジーでは、新しいMACアドレスが作成されます。この新しいMACアドレスは、複製されたVMは/lib/udev/write_net_rulesによって起動され、新しいイーサネットデバイスとして表示されるため、2番目のエントリが上記のファイルに追加されます。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:de", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

通常、このファイル70-persistent-net.rulesをエディターで開き、行を統合して新しいMACアドレスをeth0デバイスに割り当てて再起動します。

...
# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:de", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

編集#1

OPは次の新しい情報で質問を追跡しました。

アイテム#1:うーん。 Macアドレスに関連付けられているflexライセンスでソフトウェアを実行しているため、これは私の場合には機能しません。絶えず変化するアドレスは、そのソフトウェアを役に立たなくします。

@Zobal-私はFlexに精通しています。 VMなので、VMのMACを変更できます(VMソフトウェア-VirtualBox、KVMなど))。

注:Flexは Flexera によって提供されるライセンス技術です。以前は、GlobeTrotter Softwareと呼ばれていました。このテクノロジーにより、ソフトウェアを物理ホストに関連付けるか、中央サーバーから「トークン」としてライセンスを管理して、クライアントが一定期間トークンをチェックアウトできるようにすることができます。通常、ライセンスはホストに関連付けられており、このホストは通常​​、hostidコマンドを使用して検索できる一意の番号で識別されます。

例えば:

$ hostid
a8c0c801

アイテム#2:私の場合、それはVMではありません。ある物理システムを別の物理システムに複製しました。

私が応答したところ:さて、あなたの唯一の選択肢は、新しいシステムのMACアドレスを他のシステムのMACと同じに変更することです。これらの2つのシステムは同じネットワーク上に存在できないことを認識してください。そうしないと、それらは互いに競合します。また、Flexライセンスは通常MACを使用せず、hostid!コマンドを使用して識別可能な番号を使用します。

参考文献

7
slm

hostidはサーバーのIPアドレスと同じくらいユニークです。
例のホストIDはa8c0c801ですが、サーバーのIPアドレスは192.168.1.200ですか?
A8C0 C801-> C0A8 01C8
C0:192
A8:168
01:1
C8:200

0
Chris