Bagaimana Anda mengatur ulang /etc/networking/interfaces
saat menggunakan "nama antarmuka jaringan yang dapat diprediksi"?
Versi Ubuntu yang lebih tua dari 15,10 menggunakan nama adaptor jaringan seperti:
eth0
eth1
eth2
Mengganti kartu jaringan, atau memindahkan vm ke hypervisor baru, akan menyebabkan Linux menambah nomor antarmuka. Menghapus /etc/udev/rules.d/70-peristent-net.rules
akan membuat Linux digunakan kembali eth0
.
Ubuntu 15.10 dan yang lebih baru menggunakan ' Nama Antarmuka Jaringan yang Dapat Diprediksi '. Nama adaptor jaringan berasal dari alamat mac.
ens3
ens32
ens192
Saat memigrasi vm, jaringan tidak akan mulai karena /etc/network/interfaces
masih referensi adaptor jaringan lama yang tidak ada.
# 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
Apa cara terbaik untuk mereset file / etc / network / interfaces?
Saya perlu melakukan tindakan ini sebelum mematikan vm dan bermigrasi ke hypervisor baru karena saya menggunakan packer untuk membuat gambar emas otomatis, berdasarkan gambar koki / emas bento .
Saya menemukan menghapus / etc / network / interfaces tidak berfungsi karena file tidak secara otomatis dibuat ulang pada boot berikutnya setelah migrasi.
Saya sudah mencoba mengedit file grub saya untuk kembali ke konvensi penamaan 'eth0'. Sementara / etc / network / interfaces merujuk ke nama lama (eth0), vm tidak akan mendapatkan ip, dan setiap reboot akan menyebabkan vm menggunakan konvensi penamaan yang baru. Saya juga menemukan systemd akan selalu diutamakan kecuali saya bisa menjamin biosdevname=0
secara permanen tetap di konfigurasi grub . Tidak yakin bagaimana cara menerapkan ini secara permanen
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 bios.devname=0"
Jika memungkinkan, saya lebih suka tidak menggunakan cloud init atau menggunakan skrip startup posting karena saya lebih suka menjaga gambar emas sebersih mungkin.
Tentunya ini adalah masalah yang penyedia cloud (Azure, AWS, RackSpace, Openstack) telah dipecahkan ketika mereka mengimpor vms. Saya tidak mungkin menjadi orang pertama yang mencoba dan memigrasi vm menggunakan nama antarmuka jaringan yang dapat diprediksi.
Saya sudah mencoba menjalankan perintah ini sebelum mematikan dan memigrasi vm
apt-get remove biosdevname -y;
ln -s /dev/null /etc/systemd/network/99-default.link;
Saya menemukan ketika saya memigrasi vm, itu /etc/network/interfaces
dan ip address
masih merujukens32