สรุปอาการ
หลังจากทำการย้าย Virtual Machine (VM) ที่เป็นระบบปฏิบัติการ Linux มายังแพลตฟอร์ม Sangfor HCI อาจพบว่าชื่ออินเทอร์เฟซเครือข่าย (Network Interface Name) มีการเปลี่ยนแปลงไปจากเดิม (เช่น จาก eth0 เป็น ens192 หรือชื่ออื่น) ปัญหานี้อาจส่งผลกระทบต่อแอปพลิเคชัน, สคริปต์, หรือการตั้งค่าไฟร์วอลล์ที่อ้างอิงถึงชื่ออินเทอร์เฟซเดิม ทำให้ระบบไม่สามารถทำงานได้ตามปกติ
เอกสารนี้จะแนะนำวิธีการเปลี่ยนชื่ออินเทอร์เฟซเครือข่ายอย่างถาวรโดยใช้วิธีการสร้าง UDEV Rules ซึ่งเป็นวิธีที่ปลอดภัยและแนะนำ
สาเหตุ
การเปลี่ยนแปลงชื่ออินเทอร์เฟซเกิดจากคุณสมบัติ Predictable Network Interface Names ของ Linux kernel สมัยใหม่ ซึ่งจะตั้งชื่ออินเทอร์เฟซตามข้อมูลจากเฟิร์มแวร์, ตำแหน่งของอุปกรณ์บนบัส PCI, และ MAC Address เพื่อให้ชื่อมีความเฉพาะเจาะจงและไม่เปลี่ยนแปลงไปตามลำดับการโหลดไดรเวอร์ แต่หลังจากการย้าย VM ข้อมูลเหล่านี้อาจเปลี่ยนไป ทำให้ระบบสร้างชื่อใหม่ขึ้นมา
วิธีการแก้ไขปัญหา: การใช้ UDEV Rules
วิธีนี้เป็นการสร้างกฎ (rule) ให้กับระบบ UDEV ซึ่งเป็นตัวจัดการอุปกรณ์ของ Linux เพื่อบังคับให้ตั้งชื่ออินเทอร์เฟซตาม MAC Address ที่กำหนดโดยตรง ซึ่งเป็นวิธีที่ปลอดภัยและไม่ส่งผลกระทบต่อการตั้งค่า Bootloader ของระบบ (จำเป็นต้องใช้สิทธิ์ root หรือ sudo)
วิธีตรวจสอบ MAC Address จาก Sangfor HCI Console
ก่อนล็อกอินเข้า VM คุณสามารถตรวจสอบ MAC Address ได้โดยตรงจากหน้าจอการจัดการของ Sangfor HCI ซึ่งเป็นวิธีที่สะดวกและรวดเร็ว
- ไปที่เมนู Compute
- เลือก VM ที่ต้องการ แล้วคลิกที่แท็บ Summary หรือ Edit VM
-
มองหาการตั้งค่า Network Adapter หรือ NIC คุณจะเห็น MAC Address ของ VM แสดงอยู่
ขั้นตอนที่ 1: ตรวจสอบชื่ออินเทอร์เฟซและ MAC Address ภายใน VM
- ล็อกอินเข้าสู่ VM Linux ของคุณผ่าน Console
-
ใช้คำสั่งด้านล่างเพื่อดูชื่ออินเทอร์เฟซและ MAC Address ที่ระบบกำหนดให้ในปัจจุบัน:
ip a
- จดชื่ออินเทอร์เฟซปัจจุบัน (เช่น
ens192) และค่าlink/ether(MAC Address) ของการ์ดเน็ตเวิร์กที่ต้องการจะเปลี่ยนชื่อ
ขั้นตอนที่ 2: สร้างไฟล์ UDEV Rule
-
สร้างหรือเปิดไฟล์
/etc/udev/rules.d/70-persistent-net.rulesด้วยโปรแกรมแก้ไขข้อความ:sudo vi /etc/udev/rules.d/70-persistent-net.rules
-
เพิ่มบรรทัดต่อไปนี้เข้าไปในไฟล์ โดยแก้ไข
ATTR{address}ให้ตรงกับ MAC Address และNAMEให้เป็นชื่อที่ต้องการSUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:50:56:XX:XX:XX", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"-
ATTR{address}: คือ MAC Address ของการ์ดเน็ตเวิร์ก -
NAME: คือชื่อใหม่ที่ต้องการตั้ง (เช่นeth0,lan0)
-
- บันทึกไฟล์และออกจากโปรแกรมแก้ไขข้อความ
ขั้นตอนที่ 3: รีบูตและตรวจสอบ
-
ทำการรีบูต VM เพื่อให้การเปลี่ยนแปลงทั้งหมดมีผล:
sudo reboot
- หลังจาก VM เริ่มทำงานอีกครั้ง ให้ล็อกอินและตรวจสอบชื่ออินเทอร์เฟซด้วยคำสั่ง
ip aคุณจะพบว่าชื่ออินเทอร์เฟซได้เปลี่ยนไปตามที่กำหนดไว้
ข้อแนะนำ
หลังจากทำตามขั้นตอนข้างต้นแล้ว อินเทอร์เฟซจะมีชื่อใหม่แต่จะยังไม่มีการกำหนดค่า IP Address คุณจำเป็นต้องสร้างไฟล์กำหนดค่าเน็ตเวิร์ก (เช่น ifcfg-eth0 สำหรับ CentOS/RHEL หรือแก้ไข /etc/network/interfaces สำหรับ Debian/Ubuntu) เพื่อตั้งค่า IP ให้กับอินเทอร์เฟซใหม่
ข้อคิดเห็น
0 ข้อคิดเห็น
โปรด ลงชื่อเข้าใช้ เพื่อแสดงข้อคิดเห็น