tên giao diện mạng có thể dự đoán trong systemd


15

Phiên bản gần đây của Ubuntu và Debian (kéo dài) mang đến một sơ đồ đặt tên giao diện mạng mới.

Bây giờ, khi cập nhật từ một hệ thống sử dụng tên kiểu cũ như "eth0", tôi muốn biết trước khi khởi động tên mới sẽ là gì.

Tôi có thể làm cái này như thế nào? Có một phép thuật kỳ diệu nào của "systemd" mà tôi có thể sử dụng để chỉnh sửa / etc / network / interface trước khi khởi động (và sau đó mất kết nối mạng) không?


1
Tôi tình cờ phát hiện ra điều này, và đó là lời giải thích tốt nhất về cách thức hoạt động mà tôi đã tìm thấy cho đến nay : lists.debian.org/debian-user/2017/07/msg01453.html
Neil

Câu trả lời:


7

Có hai lược đồ khác nhau có sẵn: tên miền sinh học và tên giao diện mạng có thể dự đoán được.

tên sinh học

Biosdevname dường như là mặc định trong ubfox. Nó được kích hoạt bằng cách cài đặt gói biosdevname.

Tên sinh học của một giao diện có thể được tìm thấy với:

biosdevname -i eth0

Tên giao diện mạng có thể dự đoán

Tôi tin rằng đây là mặc định trong bản mở rộng Debian, nhưng cần phải được kích hoạt rõ ràng khi nâng cấp từ các bản phát hành trước.

Tên dự đoán cho eth0 có thể được tìm thấy với:

udevadm test-builtin net_id /sys/class/net/eth0 | grep '^ID_NET_NAME_'

Mặc dù câu trả lời thực tế về cách dự đoán "trước khi khởi động tên mới sẽ là gì" (theo liên kết được cung cấp bởi @Neil) , tên mới sẽ giống với tên cũ , bởi vì vẫn còn các quy tắc udev cấu hình các tên cũ trong /etc/udev/rules.d/70-persistent-net.rules. Liên kết sẽ cung cấp một hướng dẫn di chuyển, nếu bạn muốn chuyển sang sơ đồ đặt tên mới.
Tuomas

2

Lược đồ mới rõ ràng được gọi là "tên giao diện mạng có thể dự đoán" nhưng tôi không tìm thấy nhiều tài liệu về cách dự đoán tên thực sự . Tất cả mọi thứ tôi tìm thấy về nó về cơ bản đều chỉ đến nhận xét mã nguồn này (chính nó quay lại liên kết đầu tiên). Từ nhận xét, hoàn toàn không rõ làm thế nào để biết lược đồ địa chỉ nào udev sẽ sử dụng cho tên thiết bị mạng.

Theo liên kết đầu tiên, bạn có thể vô hiệu hóa nó và sử dụng các tên truyền thống bằng cách thêm net.ifnames=0vào dòng lệnh kernel trong Grub. Theo nhận xét này có thể cần thiết nếu bạn có kế hoạch tạo giao diện được gắn thẻ Vlan, vì phần mở rộng được thêm vào sẽ khiến tên giao diện quá dài.

Mặt khác, có thể tốt hơn là đặt lại câu hỏi để giải thích những gì bạn đang cố gắng thực hiện với tên (ví dụ: định cấu hình giao diện thông qua ansible hoặc một cái gì đó tương tự)


2

Tôi không chắc liệu đây có phải là trường hợp của các phiên bản cập nhật hay không, nhưng trên các hệ thống cũ của tôi, tôi đã có thể tạo một tệp trống tại /etc/udev/rules.d/80-net-name-slot.rulesvà nó sẽ vô hiệu hóa tính năng đặt tên "có thể dự đoán". Bạn cũng có thể tự tạo quy tắc và đặt tên cho các giao diện dựa trên địa chỉ mac hoặc kết nối PCI / USB.


0

Tài liệu này có thể giúp một chút. Xem phần bên dưới "Chính xác điều gì đã thay đổi trong v197?". Vâng, tôi nhận ra rằng điều này có giá trị hơi hạn chế, nhưng nó có thể cung cấp cho bạn một con đường để nghiên cứu thêm.

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.