nama antarmuka jaringan yang dapat diprediksi di systemd

15

Versi terbaru dari Ubuntu dan Debian (stretch) membawa skema penamaan antarmuka jaringan baru.

Sekarang, ketika memperbarui dari sistem yang menggunakan nama gaya lama seperti "eth0", saya ingin tahu sebelum mem-boot apa nama baru itu.

Bagaimana saya bisa melakukan ini? Apakah ada doa ajaib "systemd" yang dapat saya gunakan untuk mengedit / etc / network / interface sebelum boot (dan kemudian kehilangan konektivitas jaringan)?

Ralf Hildebrandt
sumber
1
Saya menemukan ini, dan inilah penjelasan terbaik tentang cara kerjanya yang saya temukan sejauh ini: lists.debian.org/debian-user/2017/07/msg01453.html
Neil

Jawaban:

7

Ada dua skema berbeda yang tersedia: biosdevname vs nama antarmuka jaringan yang dapat diprediksi.

biosdevname

Biosdevname tampaknya menjadi default di ubuntu. Ini diaktifkan dengan menginstal paket biosdevname.

BIOSdevname sebuah antarmuka dapat ditemukan dengan:

biosdevname -i eth0

Nama antarmuka jaringan yang dapat diprediksi

Saya percaya ini adalah default di Debian, tetapi perlu diaktifkan secara eksplisit pada peningkatan dari rilis sebelumnya.

Nama yang dapat diprediksi untuk eth0 dapat ditemukan dengan:

udevadm test-builtin net_id /sys/class/net/eth0 | grep '^ID_NET_NAME_'
GnP
sumber
Meskipun jawaban aktual tentang cara memprediksi "sebelum mem-boot apa nama baru itu nantinya" (menurut tautan yang disediakan oleh @Neil) adalah nama baru akan sama dengan nama lama , karena masih ada aturan udev yang mengkonfigurasi nama lama di /etc/udev/rules.d/70-persistent-net.rules. Tautan akan memberikan panduan migrasi, jika Anda ingin beralih ke skema penamaan baru.
Tuomas
2

Skema baru ini rupanya disebut "diprediksi nama antarmuka jaringan" tapi aku tidak menemukan banyak dokumentasi tentang cara untuk benar-benar memprediksi nama. Semua yang saya temukan pada dasarnya menunjuk ke komentar kode sumber ini (yang dengan sendirinya menunjuk kembali ke tautan pertama). Dari komentar tersebut, tidak jelas sama sekali bagaimana mengetahui skema pengalamatan mana yang akan digunakan udev untuk nama perangkat jaringan.

Per tautan pertama, Anda dapat menonaktifkannya dan menggunakan nama-nama tradisional dengan menambahkan net.ifnames=0pada baris perintah kernel di Grub. Menurut komentar ini, mungkin perlu jika Anda berencana membuat antarmuka bertanda VLAN, karena ekstensi yang ditambahkan akan membuat nama antarmuka terlalu panjang.

Kalau tidak, mungkin lebih baik untuk mengajukan kembali pertanyaan untuk menjelaskan apa yang Anda coba lakukan dengan nama (mis. Konfigurasikan antarmuka melalui yang dimungkinkan atau sesuatu yang serupa)

DerfK
sumber
2

Saya tidak yakin apakah ini masih terjadi dengan versi yang diperbarui, tetapi pada sistem lama saya, saya dapat membuat file kosong di /etc/udev/rules.d/80-net-name-slot.rulesdan itu akan menonaktifkan fitur penamaan "dapat diprediksi". Anda juga dapat membuat aturan Anda sendiri dan memberi nama antarmuka sendiri berdasarkan alamat mac atau koneksi PCI / USB.

pengguna143311
sumber
0

Dokumentasi ini mungkin sedikit membantu. Lihat bagian di bawah "Apa tepatnya yang telah berubah di v197?". Ya, saya menyadari ini nilainya agak terbatas, tetapi mungkin memberi Anda jalan untuk penelitian lebih lanjut.

Charles Burge
sumber