web-dev-qa-db-ja.com

回転MACのRHEL / CENTOS6インターフェースの命名とIP割り当て

バックグラウンド:

同じハードウェア(MACなどのシリアル番号を除く)を備えた多くの異なるコンピューターに渡される可能性のあるRHEL6OSディスクイメージを作成しています。イメージは事前構成されており、システムのセットアップ後にコピーされます。 (したがって、firstbootなどはありません。)イメージがHDDに配置されると、そのHDDは複数の異なるコンピューターに配置される場合があります。

MACに関係なく、作成されたすべてのネットワークインターフェイスにeth0という名前を付けたいと思います。使用可能な単一のネットワークインターフェイスの名前がeth0になるように、persistent-netudevルールを削除/変更しました。 (persistent-net udevルールを使用すると、ドライブがコンピューター間を通過するときにeth *がカウントを続けます。)このように、これは機能しています。

問題文:

また、これらすべてのコンピューターで静的IPアドレスを使用する必要があります。コンピューターに有効なネットワークが接続されていない場合でも、IPアドレスを割り当てる必要があります。 ifcfg-eth0を変更してIPアドレスを設定しましたが、これはMACに依存するため、ディスクを別のコンピューターに移動しても機能しません。 (私が知る限り、NetworkManagerもMACに依存しています。)

Ifcfg-eth0ファイルにHWADDR行がない場合は、コンピューター間を移動しても正常に機能します。 udevルールの最後にRUNコマンドを追加して、ifcfg-eth0からHWADDR行を削除するスクリプトを実行しましたが、udev中にファイルシステムが読み取り専用でマウントされていると確信しているため、機能しません。 ifcfg-eth0を実際に変更することはできません。

コンピューターの単一のネットワークインターフェイスが、現在のMACに関係なく、事前に指定されたIPアドレスで起動時に起動するようにしたい。私は本当に近いと思いますが、利用可能なインターフェイスにIPアドレスを割り当てるように強制するための最後のビットを思い付くことができないようです。

編集:

ifcfg-eth0:

DEVICE=eth0
IPADDR=10.10.10.10
BROADCAST=10.10.10.255
ONBOOT=yes
NAME=eth0
BOOTPROTO=none
NETMASK=255.255.255.0
TYPE=Ethernet
HWADDR=##:##:##:##:##:##
IPV6INIT=no
USERCTL=no
NM_CONTROLLED=no

HWADDR回線がその時点でコンピュータのMACと一致している場合は、問題ありません。しかし、HWADDR行が一致しない場合、カーネルは起動時に次のように文句を言います。

Bringing up interface eth0:  Device eth0 has different MAC address than expected, ignoring.   [FAILED]

HWADDR回線が起動時に存在しない場合、正常に機能しますが、ある時点でその回線に自動的に入力されるため、次にドライブを移動したときに機能しません。 udevの起動時にsedを使用してHWADDR行を削除することを考えましたが、読み取り専用ファイルシステムのため、実際にはそれは良い考えではないと思います(または機能すると思います)。

4
moderj

ファイルの不変ビットを(ビットを削除せずに)変更できないように設定します。

chattr + i/etc/sysconfig/network-scripts/ifcfg-eth0

2
yoonix