Bagaimana cara mengaktifkan "Nama Antarmuka Jaringan yang Dapat Diprediksi"?

12

Saya memutuskan untuk memeriksa nama perangkat ethernet saya yang akan berakhir, tetapi bertentangan dengan distro lain , Debian sepertinya tidak mengaktifkan perubahan ini (atau menahannya?),

  • Pertahankan skema penamaan antarmuka jaringan persisten lama untuk saat ini dan buat yang baru opt-in melalui net.ifnames = 1 pada baris perintah kernel.

Masalahnya adalah saya harus mengedit baris-baris kernel grub, dan itu kelihatannya berlebihan untuk sesuatu yang dapat dinonaktifkan dengan memodifikasi file . Apakah ada cara lain?

Braiam
sumber
Mungkin Anda ingin memeriksa tautan ini: science.uva.nl/research/air/wiki/LogicalInterfaceNames Anda dapat menemukan pekerjaan seputar seperti nameif dan memperbarui file startup ... @Braiam
user1527227
@ user1527227 itulah yang tidak ingin saya lakukan.
Braiam
Pada jesse, Anda hanya perlu memodifikasi satu baris di / etc / default / grub. Pada wheezy benar-benar tidak ada cara untuk mengaktifkan AFAIK ini. Saya sangat menyukai skema penamaan yang baru, jadi saya mengatur aturan udev saya sendiri di server pengi.
GnP

Jawaban:

11

Versi 220-7 pada Debian menjatuhkan tambalan yang membuat keikutsertaan ini:

* Switch to net.ifnames persistent network interfaces (on new
  installations/for new hardware), and deprecate the old
  75-persistent-net-generator.rules.

Ini muncul dari proposal dalam daftar debian-devel . Sistem yang menggunakan penamaan lama tidak akan diganti namanya sampai pengguna bermigrasi. Baca README.Debian untuk panduan migrasi.

Nama baru dapat diprediksi dengan menggunakan:

sudo udevadm test /sys/class/net/eth0 2>/dev/null |grep ID_NET_NAME_

di mana eth0nama perangkat saat ini.

Braiam
sumber
5

Saya menganggap Anda sedang berbicara tentang sid atau jessie. Untuk mengi Anda mungkin ingin mencoba backport v204 .

Mungkin ada beberapa kesalahpahaman dalam permainan di sini: seperti dapat dilihat dari aturan udev di sini (untuk v208 saat ini di sid), pengembang udev secara eksplisit memilih cmdline kernel sebagai cara default untuk mengaktifkan fungsi ini.
Saya tidak melihat apa-apa inheren "berlebihan" dengan menggunakan antarmuka yang dipilih untuk itu dan hanya menempatkan GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"di /etc/default/grub. Apakah ada efek samping spesifik yang Anda khawatirkan?

Fakta bahwa jawaban yang Anda sebutkan menyarankan menghapus file untuk menonaktifkannya adalah peretasan (setidaknya dalam kasus Debian) yang tidak akan berfungsi dalam jangka panjang karena dalam debian aturan tersebut disimpan /lib/udev/rules.d, yaitu: mereka akan ditimpa dalam upgrade (selain itu, menonaktifkan fungsionalitas dengan secara efektif menghapus file yang menggambarkannya masuk akal, tetapi mengaktifkannya secara fundamental berbeda, jadi saya pikir ini adalah perbandingan yang tidak adil).

OTOH, jika Anda memiliki alasan konkret untuk tidak menggunakan kernel cmdline, Anda dapat melaporkan bug terhadap paket debian dan meminta pengelola untuk memindahkan aturan-aturan ini /etc/udev/. Maka Anda secara teoritis dapat beralih antara aturan "persisten" dan "diprediksi" yang baru.

Tapi hanya FYI: melihat sumber-sumber untuk versi 209, sepertinya menyingkirkan net.if_namescek sama sekali, jadi pertanyaan Anda mungkin perlu beberapa penataan ulang dalam waktu dekat.

Leo Antunes
sumber
1
"secara eksplisit memilih cmdline kernel sebagai cara standar untuk mengaktifkan fungsi ini." sebenarnya ini adalah patch Debian yang melakukan ini , bukan devs udev. Mereka hanya menyertakan metode untuk membuatnya keluar saat boot, Debian mengubahnya menjadi opt-in, dan mengaktifkannya harus mudah karena diaktifkan secara default.
Braiam
@Braiam: Tangkapan bagus! Tapi saya pikir argumen utama tetap bahwa itu adalah pilihan udev menggunakan cmdline kernel sebagai antarmuka, apakah untuk mengaktifkan atau menonaktifkannya.
Leo Antunes
Saya mengedit baris perintah kernel untuk memasukkan net.ifname=1parameter, tetapi fitur ini tidak diaktifkan di Linux Mint. Distro Linux mana yang diketahui memiliki dukungan untuk fitur ini?
sherrellbc
0

Di Debian / Ubuntu, dimulai dengan udev 220, Anda dapat mengaktifkan nama baru dengan mengganti nama file ini:

sudo mv -T /etc/udev/rules.d/70-persistent-net.rules{,.old}

Seperti yang disarankan oleh /usr/share/doc/udev/README.Debian.gz, diikuti oleh

sudo update-initramfs -u

Kemudian reboot (atau rmmod + insmod dari modul yang menggerakkan kartu jaringan Anda).

Tobu
sumber
-1

Ubuntu 15.10 menggunakan biosdevnameyang tidak menyediakan nama antarmuka jaringan yang dapat diprediksi. Bahkan jika Anda menghapusnya (apt-get remove biosdevname) dan edit grub (GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1" ) dan aturan persisten, Anda masih tidak mendapatkan antarmuka jaringan yang dapat ditebak.

Alasan utama tampaknya kompatibilitas ke belakang. Saya mengujinya sekarang dengan 2 perangkat USB mobile broadband dan nama antarmuka jaringan secara tidak konsisten dinamai pada setiap boot (misalnya antarmuka pertama usb0, kedua usb1 dan sebaliknya). Alasan utama tampaknya kompatibilitas ke belakang.

Ada beberapa bug yang terbuka di launchpad (misalnya ini ) tetapi jawaban singkatnya adalah jika Anda mencari nama antarmuka jaringan yang dapat diprediksi, Anda harus mencari distro yang berbeda.

Anthony Hunt
sumber
Mengerti! Saya benar-benar akan memperbarui jawabannya karena saya pikir saya sudah mendapatkannya.
Anthony Hunt
@roalma Saya sudah memperbarui jawabannya! Maaf untuk pos "seperti komentar" sebelumnya.
Anthony Hunt
Debian memang mendukung fungsi ini secara default sejak versi 220-7 ketika mereka menjatuhkan patch yang terkait dengan perilaku tersebut. Sekarang sistem yang diinstal baru akan menggunakan nama yang dapat diprediksi secara default.
Braiam