Cách đổi tên giao diện mạng thành eth0 trên CentOS

theanh

Administrator
Nhân viên
Trong bài viết này, chúng ta sẽ tìm hiểu về cách đặt tên giao diện Linux. Bài viết này được viết cho các bản phân phối Linux dựa trên RHEL như AlmaLinux, CentOS và Rocky Linux. Bạn sẽ tìm hiểu cách giao diện mạng trên Linux được đặt tên là eth(X), ens(X), eno(X), v.v.

Trước tiên, chúng ta sẽ tìm hiểu về khái niệm đặt tên của giao diện mạng trên hệ thống Linux, bao gồm lược đồ đặt tên cổ điển, biosdevname và chính sách udev hệ thống.

1. Quy ước đặt tên truyền thống​

Quy ước đặt tên truyền thống là lược đồ đặt tên giao diện truyền thống mặc định do trình điều khiển hạt nhân Linux cung cấp. Như chúng ta đã biết, Quy ước đặt tên truyền thống như eth(n) cho thiết bị Ethernet, wlan(n) cho thiết bị LAN không dây và usb(n) cho usbnet.

Theo quy ước đặt tên truyền thống, tất cả phần cứng mạng sẽ được trình điều khiển hạt nhân xử lý như nhau. Nó đủ tốt để cho chúng ta biết về loại kết nối, nhưng không nhiều đối với phần cứng bản chất mà bạn đã quen.

2. Biosdevname​

Biosdevname là một dự án do Dell khởi xướng để cung cấp cách đặt tên thống nhất cho các thiết bị mạng. Biosdevname là một tiện ích trợ giúp udev cung cấp cơ chế đặt tên nhất quán cho các thiết bị mạng dựa trên vị trí vật lý của phần cứng theo gợi ý của BIOS hệ thống.

Dưới đây là chính sách mặc định của lược đồ đặt tên do biosdevname cung cấp:
  • Đối với các thiết bị mạng tích hợp, sẽ được đặt tên là "em<port>[_<virtual instance>]"
  • Đối với các thiết bị NIC bổ sung, sẽ được đặt tên là "p<slot>p<port>[_<virtual instance>]"
Chi tiết hơn:
  • em = thiết bị mạng tích hợp
  • <slot> = khe cắm PCI tương ứng
  • <port> = số cổng của NIC (nếu có NIC đa cổng)
  • <thể hiện ảo> = chỉ mục thể hiện SRIOV và/hoặc NPAR
  • 'p' trên NIC bổ sung được coi là khe cắm pci và cổng tương ứng

3. Quy tắc Systemd Udev​

Ngày nay, một số bản phân phối Linux phổ biến như Ubuntu, CentOS và Debian đang sử dụng Systemd làm trình quản lý hệ thống và dịch vụ. Và kể từ phiên bản 197, systemd đã được thêm vào chính sách đặt tên gốc và lược đồ cho giao diện mạng tương tự như Biosdevname.

Dưới đây là 5 chính sách đặt tên giao diện mạng cho hệ thống dựa trên Systemd:
  1. Đối với các thiết bị mạng tích hợp, nó sẽ được đặt tên như 'eno1', 'eno2', v.v.
  2. Để kết hợp Firmware/BIOS cung cấp số chỉ mục khe cắm nóng PCI Express, được đặt tên là 'ens1'. Điều này sẽ được áp dụng nếu chính sách đầu tiên không thành công. Hầu hết được sử dụng bởi máy ảo như VMWare và KVM.
  3. Các tên kết hợp vị trí vật lý của đầu nối phần cứng (ví dụ: enp2s0) được áp dụng nếu có thể, nếu không sẽ quay lại trực tiếp lược đồ 5 trong mọi trường hợp khác.
  4. Các tên kết hợp địa chỉ MAC của giao diện (ví dụ: enx78e7d1ea46da) không được sử dụng theo mặc định nhưng có sẵn nếu người dùng chọn.
  5. Lược đồ đặt tên hạt nhân không thể đoán trước truyền thống được sử dụng nếu tất cả các phương pháp khác đều không thành công (ví dụ: eth0).
Bây giờ chúng ta đã tìm hiểu về quy ước đặt tên giao diện Linux.

Tiếp theo, chúng tôi sẽ chỉ cho bạn cách thay đổi tên giao diện mạng thành 'et0', eth1, v.v. truyền thống. Có hai cách để thực hiện, thay đổi tên giao diện mạng thông qua 'biosdevname' và thông qua 'quy tắc udev systemd'.

1. Đổi tên giao diện thành eth0 bằng cách vô hiệu hóa Biosdevname​

Như chúng ta đã biết ở trên, biosdevname là một tiện ích udev do Dell tạo ra để đặt tên cho các giao diện mạng theo gợi ý của BIOS hệ thống. Và theo mặc định, gói biosdevname được cài đặt trên hệ thống Linux.

Để vô hiệu hóa biosdevname trên hệ thống Linux, bạn sẽ cần vô hiệu hóa nó ở cấp độ khởi động bằng cách chỉnh sửa cấu hình grub trên hệ thống của mình.

Trước khi đi xa hơn, hãy kiểm tra các giao diện hiện tại trên hệ thống bằng lệnh sau.
Mã:
ifconfig -a
ip addr
Và bên dưới là kết quả.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22553%22%3E%3C/svg%3E


Kết quả là chúng ta có hai giao diện mạng 'ens3' và 'ens8'.

Tiếp theo, chúng ta sẽ đổi tên cả hai giao diện thành 'eth0' và 'eth1' trên hệ thống CentOS 8 của chúng ta bằng cách chỉnh sửa cấu hình grub và cấu hình mạng cho từng giao diện.

- Thiết lập Grub2​

Vào thư mục '/etc/sysconfig/' và chỉnh sửa cấu hình 'grub' bằng vim biên tập viên.
Mã:
cd /etc/sysconfig/
vim grub
Trên cấu hình 'GRUB_CMDLINE_LINUX', thêm cấu hình sau để vô hiệu hóa tham số kernel biosdevname và net.ifnames.
Mã:
net.ifnames=0 biosdevname=0
Lưu và đóng.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22120%22%3E%3C/svg%3E


Sau đó, tạo cấu hình grub mới sử dụng lệnh 'grub2-mkconfig' như bên dưới.
Mã:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Và bạn sẽ nhận được kết quả như bên dưới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22193%22%3E%3C/svg%3E

- Chỉnh sửa tập lệnh mạng​

Tiếp theo, chúng ta cần đổi tên cả hai giao diện mạng trên cấu hình nằm ở Thư mục '/etc/sysconfig/network-scripts/'.

Đi đến '/etc/sysconfig/network-scripts/'.
Mã:
cd /etc/sysconfig/network-scripts/
Đổi tên cả hai giao diện thành 'ifcfg-ethX'.
Mã:
mv ifcfg-enp0s3 ifcfg-eth0
mv ifcfg-enp0s8 ifcfg-eth1
Sau đó, đổi cả hai giao diện thành 'ethX' trên cả hai tệp bằng lệnh sed bên dưới.
Mã:
sed -i -e 's/enp0s3/eth0/g' ifcfg-eth0
sed -i -e 's/enp0s8/eth1/g' ifcfg-eth1
Bây giờ hãy khởi động lại hệ thống CentOS 8.
Mã:
sudo reboot

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22253%22%3E%3C/svg%3E

- Kiểm tra​

Sau khi bạn đăng nhập lại, hãy kiểm tra các giao diện mạng khả dụng bằng lệnh sau.
Mã:
ifconfig
ip addr
Và bạn sẽ thấy kết quả như bên dưới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22511%22%3E%3C/svg%3E


Cả hai giao diện mạng trên hệ thống CentOS 8 đều đã được thay đổi và hiện đang sử dụng quy ước đặt tên truyền thống. Giao diện mạng đã thay đổi bằng cách vô hiệu hóa 'biosdevname' trong quá trình khởi động hệ thống.

- Tùy chọn​

Nếu bạn muốn kiểm tra thông tin chi tiết về những thay đổi trong quá trình khởi động hệ thống, bạn có thể chạy lệnh sau.
Mã:
dmesg | grep -i eth
Bạn sẽ thấy tên giao diện mặc định đã được đổi thành tên truyền thống 'ethX', được thay đổi thông qua các quy tắc udev tùy chỉnh.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22286%22%3E%3C/svg%3E

2. Đổi tên giao diện thành eth0 bằng cách sử dụng Quy tắc Udev​

Một cách khác để đổi tên giao diện mạng thành tên truyền thống như eth0, v.v. là tạo các quy tắc udev tùy chỉnh. Và bằng cách sử dụng các quy tắc udev tùy chỉnh, các giao diện mạng sẽ được thay đổi sau khi hệ thống.

- Tạo các quy tắc Udev tùy chỉnh​

Bây giờ hãy vào thư mục '/etc/udev/rules.d/' và tạo quy tắc tùy chỉnh có tên '70-persistent-net.rules' bằng trình soạn thảo vim.
Mã:
cd /etc/udev/rules.d/
vim 70-persistent-net.rules
Thay đổi địa chỉ mac và giao diện mặc định 'ens3' và 'ens8' bằng giao diện của riêng bạn và dán vào nó.
Mã:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:6c:a8:e6", ATTR{type}=="1", KERNEL=="ens3", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:97:cf:33", ATTR{type}=="1", KERNEL=="ens8", NAME="eth1"
Lưu và đóng.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22129%22%3E%3C/svg%3E

- Chỉnh sửa tập lệnh mạng​

Tiếp theo, hãy vào '/etc/sysconfig/networ-scripts' thư mục.
Mã:
cd /etc/sysconfig/network-scripts/
Đổi tên cả hai giao diện thành 'ifcfg-ethX'.
Mã:
mv ifcfg-enp0s3 ifcfg-eth0
mv ifcfg-enp0s8 ifcfg-eth1
Sau đó, đổi cả hai giao diện thành 'ethX' trên cả hai tệp bằng lệnh sed bên dưới.
Mã:
sed -i -e 's/enp0s3/eth0/g' ifcfg-eth0
sed -i -e 's/enp0s8/eth1/g' ifcfg-eth1
Bây giờ hãy khởi động lại máy chủ CentOS 8.
Mã:
sudo reboot

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22233%22%3E%3C/svg%3E

- Kiểm tra​

Sau khi đăng nhập lại, hãy kiểm tra tất cả các giao diện mạng khả dụng bằng các lệnh sau.
Mã:
ifconfig
ip addr
Và bạn sẽ nhận được giao diện mới 'ethX' đã được chỉ định.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22580%22%3E%3C/svg%3E

- Tùy chọn​

Nếu bạn muốn kiểm tra thông tin chi tiết về những thay đổi trong quá trình khởi động hệ thống, bạn có thể chạy lệnh sau.
Mã:
dmesg | grep -i eth
Bạn sẽ thấy tên 'ensX' được đổi thành tên truyền thống 'ethX', được thay đổi thông qua các quy tắc udev tùy chỉnh.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22364%22%3E%3C/svg%3E

Tham khảo​

 
Back
Bên trên