Predictable Network Interface Names
ภาคสุดท้ายปิดตำนานยาจกซูกับไม้ตีสุนัข ไม่ใช่ละ อันนี้มันเกี่ยวกับระบบปฏิบัติการ จิงต้องบอกว่ามันไม่เกี่ยวกับหัวข้อเลยที่กล่าวถึง แต่ขอมัดรวมเป็นเรื่องเดียวกันหน่อยครับ เพราะมันมีบางส่วนที่ทำต่อเนื่องกัน โดยในบทความนี้ จะกล่าวถึงการตั้งชื่อ อินเตอร์เฟสแลนการ์ด โดยแมฟกับ MAC Address
จากตอนที่แล้วจะเห็นว่าอินเตอร์เฟสมันไม่เรียงเลย ถึงแม้เราจะเปลี่ยนชื่อเป็นแบบเก่า ก็จะยังเป็นแบบตามรูปด้านล่างที่ยังมีปัญหาอยู่ขึ้นอยู่ ทำให้ตอนใช้งานก็จะยังลำบากเหมือนเดิม
ปัญหาที่ตามมาคงไม่ต้องบอกกันนะ คนเขียนโปรแกรมถึงกลับร้องไห้ ผมจะเขียนยังไงอะพี่ โดยในลีนุกส์จะใช้การเรียงลำดับจากเลข MAC Address พอ chip คนละตัว และเลขน้อยกว่า ทำให้มันไปพอร์ตที่ 5 เป็น eth0 ตามด้านบน
วิธีแก้ไขจะมีอยู่ 2 แบบ ขึ้นกับว่าโอเอสที่ใช้
- และทำการรีบูตเครื่อง
ปล. จริงมีอีกแบบ คือ ใช้โปรแกรม ifrename แก้ไขที่ไฟล้ /etc/iftab แต่วิธีจะเก่ามากๆ แล้วครับ
หมายเหตุ ทุกคำสั่งใช้สิทธิ์ root ในการทำ หรือจะใช้คำสั่ง sudo นำหน้าก็ได้ครับ แบบ udev ก็ยังสามารถใช้ได้นะครับ แค่ไม่มีคำสั่ง write_net_rules
ลิงค์อ้างอิง UDEV
https://www.hellovinoth.com/ubuntu-14-04-renaming-ethernet-interfaces-from-p1p1%E2%80%B3-to-eth0%E2%80%B3/
http://fewstreet.com/2015/06/09/ubuntu-udev-naming-rules.html
ลิงค์อ้างอิง SystemD
https://www.freedesktop.org/software/systemd/man/systemd.link.html#id-1.8.3
https://tomsalmon.eu/2017/12/debian-9-stretch-systemd-network-interface-names/
วิธีแก้ไขจะมีอยู่ 2 แบบ ขึ้นกับว่าโอเอสที่ใช้
- แบบเก่า UDEV (Dynamic Device Management)
ขั้นตอน
- export INTERFACE=eth0
- export MATCHADDR=xx:xx:xx:xx:xx:xx
- /lib/udev/write_net_rules
คำสั่ง /lib/udev/write_net_rules จะทำการไปสร้างไฟล์ /etc/udev/rules.d/70-persistent-net.rules ซึ่งไฟล์นี้เราสามารถเข้าไปสร้างเองได้ ถ้าเรารู้รูปแบบ
ตัวอย่างไฟล์
ตัวอย่าง script ง่ายๆ
หมายเหตุ
* ทำไปเรื่อยๆ จนครบพอร์ตทั้งหมด
* xx:xx:.. คือ เลข MAC Address ที่กำหนด
- แบบใหม่สำหรับระบบปฏิบัติการที่ใช้ systemd (Network Device Configuration)
ขั้นตอน
- nano /etc/systemd/network/10-eth0.link
- และใส่ข้อความ
- บันทึกไฟล์ และ update-initramfs -u[Match]
MACAddress=00:90:0b:xx:xx:xx
[Link]
Name=eth0
- และทำการรีบูตเครื่อง
ปล. จริงมีอีกแบบ คือ ใช้โปรแกรม ifrename แก้ไขที่ไฟล้ /etc/iftab แต่วิธีจะเก่ามากๆ แล้วครับ
หมายเหตุ ทุกคำสั่งใช้สิทธิ์ root ในการทำ หรือจะใช้คำสั่ง sudo นำหน้าก็ได้ครับ แบบ udev ก็ยังสามารถใช้ได้นะครับ แค่ไม่มีคำสั่ง write_net_rules
ลิงค์อ้างอิง UDEV
https://www.hellovinoth.com/ubuntu-14-04-renaming-ethernet-interfaces-from-p1p1%E2%80%B3-to-eth0%E2%80%B3/
http://fewstreet.com/2015/06/09/ubuntu-udev-naming-rules.html
ลิงค์อ้างอิง SystemD
https://www.freedesktop.org/software/systemd/man/systemd.link.html#id-1.8.3
https://tomsalmon.eu/2017/12/debian-9-stretch-systemd-network-interface-names/
ความคิดเห็น
แสดงความคิดเห็น