reset penomoran ethernet linux

7

ketika Anda memasukkan harddisk ke komputer lain, dan Linux mengenali NIC baru, akan ada nomor baru yang dilampirkan eth sebagai contoh eth0 - & gt; eth1

Ini memecah beberapa skrip pribadi saya, misalnya mendapatkan alamat IP sistem.

Apakah ada cara untuk mengatur ulang nomor setiap kali ketika reboot ATAU NIC baru ditemukan?

c2h2
sumber

Jawaban:

12

Periksa aturan udev di /etc/udev/rules.d.

Dalam distribusi Fedora saya, ada aturan yang ditulis secara otomatis di 70-persistent-net.rules

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:f1:cc:2f:1a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

yang dengan jelas menautkan alamat ethernet ke nama perangkat. Komentar di bagian atas file memberikan petunjuk bagus bagaimana menyesuaikan perilaku ini.

wallyk
sumber
keren saya coba ini, ubuntu punya aturan ini juga.
c2h2
2
@ c2h2 Jika tujuan Anda adalah memberi nomor baru pada NIC Anda dari awal, solusi paling sederhana adalah dengan cukup menghapus file ini dan kemudian reboot - itu akan secara otomatis dibuat ulang selama proses boot, dan NIC pertama Anda sekarang akan menjadi eth0.
Kromey
ya, itu bekerja dengan sempurna!
c2h2
2

Tambahkan ini ke skrip Anda. Mungkin perlu dijalankan sebagai root tergantung pada sistem Anda.

ethX=`ifconfig -s | awk 'NR==2 {print $1}'`

Maka Anda bisa menggunakannya $ethX sebagai variabel ke NIC Anda.
Ini hanya mengambil output dari ifconfig -s dan mem-parsing semua kecuali teks pada baris 2 dan kolom 1.

jonescb
sumber
1

Dari apa yang saya mengerti, Linux menggunakan penomoran bus untuk menentukan urutan antarmuka dan penomorannya dalam mesin yang diberikan. Itu bisa PCI bus, mini-PCI atau apa pun. Akhir-akhir ini, karena skrip startup paralel dari segala jenis, segala sesuatunya menjadi acak kadang-kadang dari satu boot ke yang lain (sebenarnya, NIC kurang lebih dinamai sama pada mesin yang sama, tetapi perangkat lain tidak begitu banyak).

Jelas, urutan perangkat di bus berubah dari mesin ke mesin. Yang tidak berubah adalah alamat MAC.

Solusi saya:

Jika Anda menggunakan udev, Anda dapat menggunakan aturan konfigurasi udev yang serupa dengan yang ada dijelaskan di sini (untuk Debin, ubuntu serupa) untuk memaksa pengikatan antara antarmuka tertentu dan alamat MAC NIC.

Caveat Emptor: beberapa NIC memungkinkan untuk mengedit MAC mereka. Dalam hal ini, itu tidak akan berhasil.

Info ekstra kurikuler: Alternatif yang lebih sulit untuk diterapkan adalah menggunakan mekanisme baru yang diusulkan Matt Domsch / Dell untuk Fedora, diulas di sini

Sejauh Ubuntu berjalan, ada proposal untuk mengintegrasikan skema itu juga. Menurut 1 atas: Meskipun Fedora mengirim biosdevname terlebih dahulu, distribusi Linux lainnya juga diharapkan untuk mengadopsinya. Dilaporkan ada cetak biru untuk mengintegrasikan ini di Ubuntu 11.04 dan permintaan fitur untuk dimasukkan dalam OpenSUSE juga.

Semoga ini bisa membantu.

dawebber
sumber