Làm cách nào để tạo bí danh cho thiết bị mạng?


13

Tôi đang cố gắng để có một phần mềm cụ thể chạy, sử dụng trình quản lý giấy phép mà không nhận thấy rằng các bản phân phối Linux mới hơn không đặt tên cho các thiết bị mạng của họ eth0nữa. Nó đang cố gắng xác minh địa chỉ MAC, nhưng vì NIC của tôi được gọi ens1trên Centos 7 nên nó không hoạt động.

Nhà cung cấp phần mềm này đã sửa lỗi này trên một máy tính khác và tôi muốn hiểu họ đã làm điều này như thế nào. Họ đã tạo ra một số bí danh để ens1người quản lý giấy phép có thể tìm eth0lại.

Bí danh hoàn toàn không hiển thị nếu tôi làm ifconfig -a, nhưng nó hiển thị khi gọi rõ ràng ifconfig eth0. Sử dụng ip linklệnh, nó được hiển thị như sau:

eth0@ens1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT
link/ether [mac address] brd ff:ff:ff:ff:ff:ff

Chính xác thì họ đã làm gì ở đây và làm thế nào tôi có thể tạo lại loại bí danh này trên một máy tính khác?


2
Có lẽ họ đã sử dụng ip link set ens1 name eth0@ens1? Tôi nghi ngờ rằng sẽ tồn tại một khởi động lại như vậy, nhưng có lẽ bạn có thể thực hiện thay đổi trong DEVICEdòng ifcfg-ens1hoặc một cái gì đó? Bạn có thể thấy cả hai eth0@ens1ens1trong ip linkdanh sách của bạn , hoặc chỉ tên mới?
Eric Renouf

1
tôi vừa thử cái này trong VM - cũng ip link set ens1 name eth0@ens1hiển thị tên mới ifconfig -a. và ip link set ens1 alias eth0hiển thị alias eth0trên một dòng riêng biệt khi bạn chạy ip link.
cas

Câu trả lời:


5

Điều này có thể được thực hiện bằng cách sử dụng macvlantính năng. Nó cho phép thêm giao diện Ethernet ảo lên trên giao diện phần cứng hiện có. Trong trường hợp của bạn, nó có thể đã được thực hiện như thế này:

ip link add link ens1 name eth0 type macvlan

Theo mặc định, giao diện mới nhận được một địa chỉ MAC unicast được quản lý cục bộ. Ngoài ra, bạn có thể chỉ định địa chỉ MAC với address <MAC>.


1

Bạn có thể sử dụng quy tắc udev để đổi tên NIC trở lại eth0kiểu cũ .

ví dụ: chỉnh sửa /etc/udev/rules.d/70-persistent-net.rulesđể có một dòng như thế này:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

xx:xx:xx:xx:xx:xxđịa chỉ MAC của NIC của bạn ở đâu .

Bạn cũng sẽ phải cập nhật bất kỳ cấu hình mạng nào để nó sử dụng eth0tên chứ không phảiens1

Xem Tên giao diện mạng có thể dự đoán để biết thêm thông tin về lý do thay đổi này xảy ra.


2
Tôi muốn tránh đổi tên hoàn toàn các giao diện, và tôi cũng tò mò về cách bí danh hoạt động mà chúng thực hiện.
Nhà khoa học điên

1
Tôi chưa bao giờ nhìn thấy eth0@ens1hình thức đó trước đây và googling cho nó chỉ hiển thị câu hỏi của bạn. Bạn đã thử grep -r eth0 /etcchưa nếu bạn tìm thấy nó, xin vui lòng gửi vì tôi cũng tò mò.
cas
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.