Udev: đổi tên giao diện mạng của tôi


20

Tôi vừa cài đặt RHEL 6.3 trên máy chủ Dell 1950. Máy chủ này là hai cổng GBit, Gb0 và Gb1.

Vì một số lý do mơ hồ, udevđã chọn đặt tên Gb0 eth1Gb1 eth0 . Đây chắc chắn không phải là một phát hiện tốt cho tôi và chỉ gây nhầm lẫn.

Vì vậy, tôi đã sửa đổi cấu hình trong /etc/udev/rules.d/70-persistent-net.rules:

# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
  ATTR{address}=="00:20:19:52:d3:c0",           \
  ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x14e4:0x164c (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
  ATTR{address}=="00:20:19:52:d3:be",           \
  ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Tôi chỉ thay đổi trường "NAME" trên tệp để phản ánh những gì tôi muốn. Tôi đã khởi động lại máy chủ và nó không hoạt động.

Trong dmesgnhật ký tôi có thể đọc như sau:

udev: renamed network interface eth1 to rename5
udev: renamed network interface eth0 to eth1
udev: renamed network interface rename5 to eth0

Bất cứ ý tưởng về những gì sai ở đây? Tại sao udevchuyển đổi như thế này? Tôi có một máy chủ tương tự khác, nơi tôi không có vấn đề này.


vậy bài tập bây giờ là gì? vẫn Gb0 == eth1 & Gb1 == eth0?
umläute

một lần kiểm tra grep -R 'rename5' /etc/udev/rules.d/vì trong nhật ký tại sao nó hiển thị rename5là quy tắc nào khác cho cùng?
Rahul Patil

Tôi đã làm điều tương tự cho các giao diện mạng và nó hiển thị giống như trong nhật ký (nếu bạn tuân theo logic trong đó, nó chỉ gán một tên không có thật cho eth1 ban đầu để nó có thể đổi tên eth0 gốc thành eth1). Vì vậy, theo nhật ký mọi thứ nên ok. Bạn có chắc là tên vẫn chưa ổn?
zagrimsan

Việc gán vẫn sai: Gb0 == eth1 & Gb1 == eth0. Nó giống như những thay đổi tôi đã thực hiện trong tệp không được áp dụng. Tôi không có bất kỳ dấu vết nào của rename5 trong /etc/udev/rules.d/. Những gì tôi hiểu là khi kernel boot eth0 và eth1 khởi động nhưng udev chuyển chúng. eth0 => eth1 và eth1 => eth0
Hugo

Bạn đã tìm thấy một giải pháp? Tôi đang vật lộn với vấn đề này quá. Khi khởi động bình thường, tôi kết thúc với p1p1 và p1p2. Nhưng vì tôi đã cắm cáp mạng trên p1p2, trên một số khởi động (không phải tất cả, điều này thật kỳ lạ), tôi kết thúc với p1p1 và đổi tên3!?!? Udev đang đổi tên eth1 thành đổi tên3 thay vì p1p2 vì bất kỳ lý do gì. Điều này tất nhiên phá vỡ cấu hình i / f mạng và tường lửa X- (Không phải tôi đang ở trên Ubuntu
Huygens

Câu trả lời:


9

Trong khi điều này khá muộn, tôi đã khắc phục vấn đề của mình bằng cách xóa

KERNEL="eth*",

một phần của quy tắc trong /etc/udev/rules.d/70-persistent-net.rulestập tin. Điều này hoạt động bởi vì, một khi UDEV đã đổi tên thiết bị thành "đổi tên *", phần này sẽ dừng việc khớp quy tắc. Vì vậy, loại bỏ nó cho phép tên chính xác được gán cho thiết bị chính xác bất kể UDEV đã gọi nó trong lúc này.


Điều này cũng đã giải quyết nó cho tôi trên Ubuntu 14.04. Chính xác là hành vi tương tự như OP (ngoại trừ việc đổi tên thành pXpY).
ndemou

9

Trong trường hợp của tôi, vấn đề xuất phát từ thực tế là địa chỉ mac cho mỗi giao diện được đặt trong ba tệp:

/etc/udev/rules.d/70-persistent-net.rules
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1

Chúng tôi cần sự thống nhất giữa tệp ifcfg và net.rules cho địa chỉ mac.


1
/etc/sysconfiglà trên linux redhat / centos. Trên Ubuntu, các tệp đó sẽ nằm dưới/etc/network/if-up.d
nmgeek

6

Tôi đã có thể giải quyết điều này bằng cách xóa /etc/udev/rules.d/70-persistent-net.rulesvà khởi động lại.


1

bạn đã thử tạo một khoảng trống /etc/udev/rules.d/80-net-name-slot.ruleschưa?

kể từ Udev v197, udev đã triển khai các tên giao diện mạng có thể dự đoán được, bằng cách tạo một tệp trống trong đường dẫn đó sau đó khởi động lại, bạn nên đặt lại tên giao diện của mình.

tôi đã trả lời một câu hỏi tương tự tại: Creating eth0 with consistent network device naming


1
Điều này đã cố định hai trong số ba thiết bị mạng của tôi. Thay vì một tập tin trống, tôi đã tạo một liên kết đến / dev / null. Tôi hy vọng một trong hai cách tiếp cận sẽ làm việc.
MrMas

Có vẻ như đây là những thay đổi xung quanh v210, tập tin đã bị xóa khỏi systemd nếu tôi đọc chính xác: github.com/systemd/systemd/commit/NH
nhed

0

Nó cũng có thể xảy ra vì eth0, eth1, wlan0, wlan1, v.v. là tên hạt nhân tiêu chuẩn (trong trường hợp đặt tên sơ đồ không liên tục). Trong tài liệu udev, nó nói:

TÊN

Tên để sử dụng cho giao diện mạng. Xem systemd.link (5) để biết cơ chế cấp cao hơn để đặt tên giao diện. Tên của một nút thiết bị không thể được thay đổi bởi udev, chỉ có thể tạo các liên kết tượng trưng bổ sung.

Vì vậy, không bao giờ sử dụng tên eth *, wlan * vv cho các quy tắc udev.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.