วิธีเปิดใช้งาน“ ชื่อเครือข่ายอินเตอร์เฟสที่คาดการณ์ได้”


12

ฉันตัดสินใจที่จะตรวจสอบสิ่งที่ชื่ออุปกรณ์อีเธอร์เน็ตของฉันจะจบลงด้วย แต่ตรงกันข้ามกับคนอื่น distrosเดเบียนดูเหมือนจะไม่ได้เปิดใช้งานการเปลี่ยนแปลงนี้ (หรือถือมันกลับมา?),

  • รักษารูปแบบการตั้งชื่ออินเทอร์เฟซเครือข่ายแบบต่อเนื่องเดิมไว้และทำการเลือกใช้ใหม่ผ่าน net.ifnames = 1 บนบรรทัดคำสั่งเคอร์เนล

ปัญหาคือว่าผมจะต้องแก้ไขด้วงสายเคอร์เนลและดูเหมือนว่า overkill สำหรับสิ่งที่สามารถใช้งานได้โดยการแก้ไขไฟล์ มีวิธีอื่นอีกไหม?


บางทีคุณอาจต้องการตรวจสอบลิงค์นี้: science.uva.nl/research/air/wiki/LogicalInterfaceNames คุณอาจพบว่ามีการแก้ไขเช่น nameif และการอัปเดตไฟล์เริ่มต้น ... @Braiam
user1527227

@ user1527227 นั่นคือสิ่งที่ฉันไม่ต้องการทำ
Braiam

ในเจสซี่คุณควรแก้ไขเพียงหนึ่งบรรทัดใน / etc / default / grub อย่างเสียงฮืด ๆ ไม่มีทางที่จะเปิดใช้งาน AFAIK นี้ได้ ฉันชอบรูปแบบการตั้งชื่อใหม่ดังนั้นฉันจึงตั้งค่ากฎ udev ของฉันเองบนเซิร์ฟเวอร์เสียงฮืด ๆ
GnP

คำตอบ:


11

เวอร์ชัน 220-7 บน Debian ปล่อยแพตช์ที่ทำให้การเลือกนี้:

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

สิ่งนี้มาจากข้อเสนอในรายการเดเบียน - เดเวล ระบบที่ใช้ชื่อเดิมจะไม่ถูกเปลี่ยนชื่อจนกว่าผู้ใช้จะย้ายข้อมูล อ่าน README.Debian สำหรับคำแนะนำในการย้ายข้อมูล

ชื่อใหม่สามารถทำนายได้โดยใช้:

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

โดยที่eth0เป็นชื่อปัจจุบันของอุปกรณ์


5

ฉันคิดว่าคุณกำลังพูดถึง sid หรือ jessie สำหรับการดังเสียงฮืด ๆ คุณอาจต้องการที่จะลองย้ายกลับของ v204

อาจมีความเข้าใจผิดบางอย่างในการเล่นที่นี่: ดังที่เห็นได้จากกฎของ udev ที่นี่ (สำหรับ v208 ในปัจจุบันใน sid) ผู้พัฒนา udev เลือกเคอร์เนล cmdline อย่างชัดเจนเป็นวิธีเริ่มต้นของการเปิดใช้ฟังก์ชันนี้
ฉันไม่เห็นอะไรเนื้อแท้ "overkill" กับการใช้อินเตอร์เฟซที่ได้รับการแต่งตั้งให้มันและก็วางในGRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1" /etc/default/grubมีผลข้างเคียงที่เฉพาะเจาะจงที่คุณเป็นห่วงหรือไม่?

ความจริงที่ว่าคำตอบที่คุณพูดถึงนั้นเป็นการแนะนำให้ลบไฟล์เพื่อปิดการใช้งานมันคือแฮ็ค (อย่างน้อยก็ในกรณีของ Debian) ที่จะไม่ทำงานในระยะยาวเพราะเดเบียนกฎเหล่านั้นจะถูกเก็บไว้/lib/udev/rules.dใน การอัพเกรด (นอกเหนือจากการปิดการใช้งานฟังก์ชั่นโดยการลบไฟล์อย่างมีประสิทธิภาพที่อธิบายว่ามีเหตุผลบางอย่าง แต่การเปิดใช้งานมันแตกต่างกันโดยพื้นฐานดังนั้นฉันคิดว่านี่เป็นการเปรียบเทียบที่ไม่ยุติธรรม)

OTOH ถ้าคุณมีเหตุผลที่หนักแน่นไม่ใช้ cmdline /etc/udev/เคอร์เนลคุณสามารถรายงานข้อผิดพลาดกับแพคเกจเดเบียนและมีผู้ดูแลย้ายกฎเหล่านี้ไป จากนั้นคุณสามารถสลับไปมาระหว่างกฎ "ถาวร" ปัจจุบันและกฎ "คาดการณ์" ใหม่ในปัจจุบัน

แต่เพียงแค่ FYI: ดูที่แหล่งข้อมูลสำหรับเวอร์ชัน 209 ดูเหมือนว่าจะเป็นการกำจัดnet.if_namesเช็คทั้งหมดดังนั้นคำถามของคุณอาจต้องการการอ่านซ้ำในอนาคตอันใกล้


1
"เลือกเคอร์เนล cmdline เป็นวิธีเริ่มต้นในการเปิดใช้งานฟังก์ชั่นนี้อย่างชัดเจน" จริงๆแล้วมันเป็นแพทช์ Debian ที่ทำเช่นนี้ไม่ใช่ udev devs พวกเขามีเพียงวิธีการในการยกเลิกการบูต Debian ได้เปลี่ยนวิธีการเลือกใช้และควรเปิดใช้งานได้ง่ายเนื่องจากเปิดใช้งานโดยค่าเริ่มต้น
Braiam

@Braiam: ดีจับ! แต่ฉันคิดว่าอาร์กิวเมนต์หลักยังคงเป็นตัวเลือก udev ในการใช้เคอร์เนล cmdline เป็นอินเตอร์เฟสไม่ว่าจะเปิดหรือปิดการใช้งานก็ตาม
Leo Antunes

ฉันแก้ไขบรรทัดคำสั่งเคอร์เนลเพื่อรวมnet.ifname=1พารามิเตอร์ แต่คุณสมบัตินี้ไม่ได้เปิดใช้งานบน Linux Mint Linux distros ใดที่ทราบว่ารองรับคุณสมบัตินี้?
sherrellbc

0

บน Debian / Ubuntu เริ่มต้นด้วย udev 220 คุณสามารถเปิดใช้งานชื่อใหม่โดยเปลี่ยนชื่อไฟล์นี้:

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

ตามที่แนะนำโดย/usr/share/doc/udev/README.Debian.gz, ตามด้วย

sudo update-initramfs -u

จากนั้นทำการรีบู๊ต (หรือ rmmod + insmod ของโมดูลที่ขับการ์ดเครือข่ายของคุณ)


-1

Ubuntu 15.10 ใช้biosdevnameซึ่งไม่ได้ระบุชื่ออินเทอร์เฟซเครือข่ายที่คาดเดาได้ แม้ว่าคุณจะลบ (apt-get remove biosdevname) และแก้ไข grub ( GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1") และกฎถาวรคุณยังคงไม่ได้รับการเชื่อมต่อเครือข่ายแบบ predicatble

เหตุผลหลักดูเหมือนว่าจะเข้ากันได้ย้อนหลัง ฉันทดสอบตอนนี้ด้วยอุปกรณ์ USB บรอดแบนด์มือถือ 2 เครื่องและชื่ออินเตอร์เฟสเครือข่ายนั้นมีชื่อไม่สอดคล้องกันในการบู๊ตแต่ละครั้ง (เช่นอินเตอร์เฟสแรก usb0, usb1 อันที่สองและวิธีอื่น ๆ ) เหตุผลหลักดูเหมือนว่าจะเข้ากันได้แบบย้อนหลัง

มีข้อบกพร่องบางอย่างที่เปิดบน launchpad (เช่นนี้ ) แต่คำตอบสั้น ๆ คือถ้าคุณกำลังมองหาชื่ออินเทอร์เฟซเครือข่ายที่คาดเดาได้คุณควรมองหา distro อื่น


เข้าใจแล้ว! ฉันจะปรับปรุงคำตอบตามที่ฉันคิดว่าฉันได้รับ
แอนโทนี่ฮันท์

@roalma ฉันได้อัพเดทคำตอบแล้ว! ขออภัยสำหรับโพสต์ "ชอบความคิดเห็น" ก่อนหน้านี้
แอนโทนี่ฮันท์

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