คุณจะรีเซ็ตอย่างไร/etc/networking/interfaces
เมื่อใช้ "ชื่ออินเทอร์เฟซเครือข่ายที่คาดเดาได้"
Ubuntu รุ่นเก่ากว่า 15.10 ใช้ชื่ออะแดปเตอร์เครือข่ายเช่น:
eth0
eth1
eth2
การเปลี่ยนการ์ดเครือข่ายหรือย้าย vm ไปยังไฮเปอร์ไวเซอร์ใหม่จะทำให้ Linux เพิ่มหมายเลขอินเตอร์เฟซ การลบจะทำให้นำมาใช้ลินุกซ์ /etc/udev/rules.d/70-peristent-net.rules
eth0
Ubuntu 15.10 และใหม่กว่าใช้ ' Predictable Network Interface Names ' ชื่ออะแดปเตอร์เครือข่ายมาจากที่อยู่ mac
ens3
ens32
ens192
เมื่อทำการโอนย้าย vm ระบบเครือข่ายจะไม่เริ่มทำงานเนื่องจาก/etc/network/interfaces
ยังคงอ้างอิงอแด็ปเตอร์เครือข่ายเก่าที่ไม่มีอยู่
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto ens32
iface ens32 inet dhcp
pre-up sleep 2
วิธีที่ดีที่สุดในการรีเซ็ตไฟล์ / etc / network / interfaces คืออะไร
ฉันต้องทำการกระทำนี้ก่อนที่จะปิด VM และโอนย้ายไปยังไฮเปอร์ไวเซอร์ใหม่ตั้งแต่ฉันใช้บรรจุหีบห่อเพื่อให้ภาพสีทองอัตโนมัติขึ้นอยู่กับพ่อครัว / เบนโตะภาพสีทอง
ฉันพบว่าการลบ / etc / network / interfaces ไม่ทำงานเนื่องจากไฟล์ไม่ได้ถูกสร้างใหม่โดยอัตโนมัติในการบูตครั้งถัดไปหลังจากการโยกย้าย
ฉันลองแก้ไขไฟล์ด้วงเพื่อเปลี่ยนกลับเป็นแบบแผนการตั้งชื่อ 'eth0' ในขณะที่ / etc / network / interfaces อ้างถึงชื่อเก่า (eth0), vm จะไม่ได้รับ ip และการรีบูตใด ๆ จะทำให้ vm ใช้หลักการตั้งชื่อใหม่ นอกจากนี้ผมได้พบ systemd มักจะมีความสำคัญถ้าฉันสามารถรับประกันได้อย่างถาวรยังคงอยู่ในการกำหนดค่าด้วงbiosdevname=0
ไม่แน่ใจว่าจะใช้สิ่งนี้อย่างถาวรได้อย่างไร
GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 bios.devname=0"
หากเป็นไปได้ฉันไม่ควรใช้ cloud init หรือใช้สคริปต์เริ่มต้นโพสต์ใด ๆ เนื่องจากฉันควรรักษาภาพสีทองให้สะอาดที่สุดเท่าที่จะทำได้
แน่นอนว่านี่เป็นปัญหาที่ผู้ให้บริการคลาวด์ (Azure, AWS, RackSpace, Openstack) ได้แก้ไขไปแล้วเมื่อพวกเขานำเข้า vms ฉันไม่สามารถเป็นคนแรกที่ลองและย้ายข้อมูล vm โดยใช้ชื่อเครือข่ายอินเทอร์เฟซที่คาดเดาได้
ฉันได้ลองใช้คำสั่งเหล่านี้ก่อนที่จะปิดและโยกย้าย vm
apt-get remove biosdevname -y;
ln -s /dev/null /etc/systemd/network/99-default.link;
ฉันพบว่าเมื่อฉันย้าย vm นั้น/etc/network/interfaces
และip address
ยังคงหมายถึงens32