ชื่ออินเตอร์เฟสเครือข่ายที่คาดการณ์ได้ใน systemd


15

เวอร์ชันล่าสุดของ Ubuntu และ Debian (ขยาย) นำเสนอโครงร่างอินเตอร์เฟสเครือข่ายใหม่

ตอนนี้เมื่ออัปเดตจากระบบที่ใช้ชื่อแบบเก่าเช่น "eth0" ฉันต้องการทราบก่อนที่จะบูตว่าชื่อใหม่จะเป็นอย่างไร

ฉันจะทำสิ่งนี้ได้อย่างไร มีการเรียกใช้เวทมนต์ของ "systemd" ฉันสามารถใช้เพื่อแก้ไข / etc / network / interface ก่อนการบูท (และต่อมาสูญเสียการเชื่อมต่อเครือข่าย)?


1
ฉันพบสิ่งนี้และเป็นคำอธิบายที่ดีที่สุดเกี่ยวกับวิธีการใช้งานที่ฉันพบ: lists.debian.org/debian-user/2017/07/msg01453.html
Neil

คำตอบ:


7

มีโครงร่างที่แตกต่างกันสองแบบ: biosdevname vs ชื่ออินเตอร์เฟสเครือข่ายที่คาดเดาได้

biosdevname

ดูเหมือนว่า Biosdevname จะเป็นค่าเริ่มต้นใน Ubuntu มันถูกเปิดใช้งานโดยการติดตั้งแพคเกจ biosdevname

สามารถพบ biosdevname ของอินเตอร์เฟสได้ด้วย:

biosdevname -i eth0

ชื่ออินเตอร์เฟสเครือข่ายที่คาดการณ์ได้

ฉันเชื่อว่านี่เป็นค่าเริ่มต้นในการขยาย Debian แต่ต้องเปิดใช้งานอย่างชัดเจนในการอัปเกรดจากรุ่นก่อนหน้า

ชื่อที่คาดเดาได้ของ eth0 สามารถพบได้กับ:

udevadm test-builtin net_id /sys/class/net/eth0 | grep '^ID_NET_NAME_'

แม้ว่าคำตอบที่เกิดขึ้นจริงเกี่ยวกับวิธีการคาดการณ์ "ก่อนที่จะบูตสิ่งที่ชื่อใหม่จะเป็น" (ตามลิงค์ที่ให้บริการโดย @Neil) เป็นชื่อใหม่จะเหมือนกันกับชื่อเก่าเพราะยังมีกฎ udev ที่กำหนดค่า /etc/udev/rules.d/70-persistent-net.rulesชื่อเก่า ลิงก์นี้จะให้คำแนะนำในการย้ายข้อมูลหากคุณต้องการเปลี่ยนเป็นรูปแบบการตั้งชื่อใหม่
Tuomas

2

โครงการใหม่จะเห็นได้ชัดว่าเรียกว่า "ชื่ออินเตอร์เฟซเครือข่ายสามารถคาดเดาได้" แต่ฉันไม่พบเอกสารจำนวนมากเกี่ยวกับวิธีการจริงทำนายชื่อ ทุกสิ่งที่ฉันพบเกี่ยวกับเรื่องนี้โดยทั่วไปชี้ไปที่ความคิดเห็นซอร์สโค้ด (ซึ่งตัวเองชี้ไปที่ลิงค์แรก) จากความคิดเห็นยังไม่ชัดเจนเลยว่าจะรู้ได้อย่างไรว่า udev ใดที่จะใช้สำหรับชื่ออุปกรณ์เครือข่าย

ตามลิงค์แรกคุณสามารถปิดการใช้งานและใช้ชื่อดั้งเดิมโดยเพิ่มnet.ifnames=0ในบรรทัดคำสั่งเคอร์เนลใน Grub ตามความคิดเห็นนี้มันอาจจำเป็นถ้าคุณวางแผนที่จะสร้างอินเตอร์เฟสที่แท็ก VLAN เนื่องจากส่วนขยายที่เพิ่มจะทำให้ชื่ออินเตอร์เฟสยาวเกินไป

มิเช่นนั้นอาจเป็นการดีกว่าถ้าคุณถามคำถามอีกครั้งเพื่ออธิบายสิ่งที่คุณพยายามทำกับชื่อ (เช่นกำหนดค่าส่วนต่อประสานผ่าน ansible หรือคล้ายกัน)


2

ฉันไม่แน่ใจว่านี่ยังเป็นกรณีของรุ่นที่อัปเดตหรือไม่ แต่ในระบบเก่าของฉันฉันสามารถสร้างไฟล์ว่างที่/etc/udev/rules.d/80-net-name-slot.rulesและจะปิดใช้งานคุณลักษณะการตั้งชื่อที่ "คาดเดาได้" คุณยังสามารถสร้างกฎของคุณเองและตั้งชื่ออินเทอร์เฟซได้ด้วยตัวเองตามที่อยู่ mac หรือการเชื่อมต่อ PCI / USB


0

เอกสารนี้อาจช่วยได้เล็กน้อย ดูหัวข้อภายใต้ "มีอะไรเปลี่ยนแปลงอย่างแน่นอนใน v197" ใช่ฉันรู้ว่ามันค่อนข้างมีค่า จำกัด แต่มันอาจทำให้คุณมีช่องทางสำหรับการวิจัยเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.