enp1s0 とか enp2s1 とかネットワークデバイス接続順で名前が決まるからSSDまるごと別のPCに移動させたときに、ネットワークデバイスが全滅する。eth0 に戻したい。
ubuntuの載ったサーバー本体を交換しました。
昨日、HDDを古いサーバーから、新しいサーバーに持ち込んで、起動しました。
無事に起動するのですが、ネットワークが完全に死んでいました。Ubuntuでネットワークがつながらないという。事故が起きました。
原因は enp1s0/enp2s0f0とnetplan
いままで使っていた、サーバー機では、ネットワークカードは enp2s0f0
という名前でした。
しかし、SDD載せ替えた新しいサーバーでは、NICがenp1s0
という名前でした。
そして、ubuntu では netplan を使っています。netplan に enp2s0f0を書いていました。
/etc/netplan/50-cloud-init.yaml
# vim: tabstop=2 sw=2 nowrap expandtab : network: version: 2 renderer: networkd ethernets: enp2s0f0: dhcp4: false dhcp6: false vlans: enp2s0f0.10: addresses: [] id: 10 link: enp1s0 (以下略
nic の名前の変更が、ネットワーク設定を亡き者した。
enp2s0f0
→ enp1s0
という名前の変更が、ネットワークにつながらない原因でした。これは怖いことです。
ネットワーク設定が eth0
と書かれいたら起こり得なかったことだと思います。現代では一貫性のある名前をつけるために、以前のネットワーク設定がロードされずネットワークにつながらないというトラブルが起きます。Ubuntuを使っていると、これから先だれでも一度は絶対に遭遇する。罠だと思います。
eth0 /eth1 なら起きなかった。
ubuntu 16くらいの従来どおり、eth0 という名前のネットワークデバイス名であれば、このようなことは起こりえません。最初に見つかったネットワークデバイスはいつでもeth0 なので。
enpXXXX
のような名前は、PCIデバイスの接続箇所の順番を示しているのですが。これがあるとネットワーク設定を使い回すことができず。思わぬトラブルをヒキコ推しました。
enpXXX を使わない。としたい。
安定して稼働させるために、enpXXXを使わないという選択肢もいいと思います。
Redhatは無効にしないでくださいと書いていましたが、それって結局不便だよね。って思った次第です。
たぶん他に困ったことになった人も多いと思う。いつでもDHCPでアドレスを取ってくるとは限らないので、怖い問題だと思う。
netplan でやると恒常的な変更にならない。
永続化する方法はこちら