/etc/networking/interfaces
「予測可能なネットワークインタフェース名」を使用するときにリセットする方法は?
15.10より前のUbuntuバージョンでは、次のネットワークアダプタ名を使用していました。
eth0
eth1
eth2
ネットワークカードを交換したり、仮想マシンを新しいハイパーバイザーに移動したりすると、Linuxのインターフェース番号が増えます。削除すると、/etc/udev/rules.d/70-peristent-net.rules
Linuxを再利用できますeth0
。
Ubuntu 15.10以降を使用する '予測可能なネットワークインターフェイス名'。ネットワークアダプタ名はMACアドレスから派生します。
ens3
ens32
ens192
/etc/network/interfaces
仮想マシンを移行すると、存在しない古いネットワークアダプタが参照され続けるため、ネットワークは起動しません。
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto ens32
iface ens32 inet dhcp
pre-up sleep 2
/etc/network/interfaces ファイルをリセットする最良の方法は何ですか?
私はこれをしなければなりません。今後使用しているので、VMをシャットダウンして新しいハイパーバイザーに移行します。包装労働者以下に基づいて自動化されたゴールデンイメージを作成します。シェフ/お弁当ゴールデンイメージ。
移行後、次回の起動時にファイルが自動的に再生成されなかったため、/etc/network/interfacesの削除が機能しないことがわかりました。
"eth0"命名規則に戻すためにgrubファイルを編集してみました。 /etc/network/interfacesは古い名前(eth0)を参照しますが、VMはIPを取得できず、再起動するとVMは新しい命名規則を使用します。また、保証できない限り、systemdが常に優先されることがわかりました。biosdevname=0
grub 構成に永続的に保持。これを永久に適用する方法がわかりません。
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 bios.devname=0"
可能であれば、ゴールデンイメージをできるだけきれいに保つためにクラウド初期化を使用しないか、リリース後にスクリプトを使用しません。
もちろん、クラウドプロバイダー(Azure、AWS、RackSpace、Openstack)は、仮想マシンをインポートするときにこの問題を解決しました。予測可能なネットワークインターフェイス名を使用してVMを移行する最初の人は、私にはなりません。
VMをシャットダウンして移行する前に、次のコマンドを実行してみました。
apt-get remove biosdevname -y;
ln -s /dev/null /etc/systemd/network/99-default.link;
VMの移行時に/etc/network/interfaces
まだip address
参照していることがわかりました。ens32
ベストアンサー1
もちろん、クラウドプロバイダー(Azure、AWS、RackSpace、Openstack)は、仮想マシンをインポートするときにこの問題を解決しました。
OpenStackはcloud-init、ConfigDrive形式を使用し、VMハードウェアに適したネットワーク構成を提供すると思います。源泉:
- https://bugs.launchpad.net/cloud-init/+bug/1577747
- https://cloudinit.readthedocs.io/en/latest/topics/datasources/configdrive.html?highlight=configdrive
- https://ask.openstack.org/en/question/63105/ways-to-inject-networking-configuration-on-instance-boot/
- https://access.redhat.com/documentation/en/red-hat-enterprise-linux-atomic-host/version-7/installation-and-configuration-guide/#setting_up_cloud_init
最初の起動スクリプトを除いて、明らかな答えがあります。
以前は、単一のイーサネットカードを搭載したホストには、事実上1つの「eth0」インターフェイスしか保証されていませんでした。この新しいスキームでは、管理者はコマンドを呼び出す前に、まずローカルインターフェイス名が何であるかを確認する必要があります。以前は、「eth0」が正しい名前だと思っていた可能性があります。
気に入らないのにどうやって無効にできますか?
デフォルトでは3つのオプションがあります。
- 予測できないカーネル名が再利用されるように、固定名の割り当てを無効にします。これを行うには、デフォルトポリシーに対してudevの.linkファイルをブロックします。ln -s /dev/null /etc/systemd/network/99-default.link
https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
古い永続インターフェイス名に戻すことは、文書化されたオプションの1つではありません。
別のオプションは、正確な名前に関係なく、デフォルトでネットワークインターフェイス設定を有効にすることです。 NetworkManagerは基本的にこれをサポートすると思います。 systemd-networkdにこれを行うように指示することもできます。。
仮想マシンに複数のネットワークデバイスがある場合は、特定の設定が必要な場合があります。
VMに加えて、NetworkManagerスタイルのアプローチには明らかな利点があります。 PCにはさまざまな種類の複数のネットワークインターフェイスがありますが、それらの1つだけが接続されています。たとえば、一部の高度なマザーボードまたは最初のネットワークインターフェイスが期待どおりに機能せず、ある時点で2番目のインターフェイスがインストールされているシステムでこの現象が発生する可能性があります。