Tại sao * BSD sử dụng tên cụ thể của trình điều khiển cho giao diện mạng? Liệu nó có ngụ ý hạn chế?


12

Tôi nhận thấy rằng tùy thuộc vào thương hiệu của card mạng, tên giao diện khác nhau (phụ thuộc vào trình điều khiển tôi cho là).

  • Tại sao * BSD sử dụng tên cụ thể của trình điều khiển cho giao diện mạng?
  • Điều đó có nghĩa là không có lớp trừu tượng mô tả "giao diện mạng chung" trong kernel, vì vậy mỗi trình điều khiển sẽ được xử lý nội bộ thông qua API riêng của nó?
  • (làm thế nào) nó có ảnh hưởng đến các hệ thống con như tập hợp liên kết, định hình lưu lượng truy cập, QoS ( ALTQ ), lọc và các hệ thống khác không?

Chính xác, có vẻ như dưới pfSense, tôi không thể sử dụng ALTQ với giao diện ảo tổng hợp liên kết (LAG).

Đây có phải là giới hạn bên trong BSD do thiếu lớp trừu tượng thích hợp không?

Câu trả lời:


7

Tại sao * BSD sử dụng tên cụ thể của trình điều khiển cho giao diện mạng?

Nó chỉ là một lựa chọn lịch sử. Các chữ cái trong tên đến từ trình điều khiển nói chuyện với thẻ, vì vậy chúng sẽ giống nhau cho hai giao diện riêng biệt nếu chúng tình cờ sử dụng cùng một trình điều khiển.

Nó có một lợi ích thiết thực: trên BSD, các trình điều khiển mạng có các trang hướng dẫn riêng trong phần 4. Vì vậy, dc(4)cho bạn biết về trình điều khiển DEC 21143, sẽ điều khiển dc0bộ điều hợp mạng.

Bạn cũng thấy điều này trong các phần khác của BSD Unix, chẳng hạn như đĩa cứng.

Đây có phải là giới hạn bên trong BSD do thiếu lớp trừu tượng thích hợp không?

Không.

Đối với những gì nó có giá trị, Linux đang đi xuống một con đường tương tự . Thời của các quy tắc đặt tên đơn giản cho các bộ điều hợp Ethernet đang biến mất, vì mạng trở nên phức tạp hơn.


Cảm ơn bạn. Bạn có biết tại sao tôi không thể sử dụng ALTQ với tập hợp liên kết không?
Toto

Một câu hỏi cho mỗi câu hỏi, xin vui lòng. Hãy tập trung cái này vào việc đặt tên thiết bị BSD.
Warren Young

Tôi sẽ không gọi thiết bị mạng udev mới đặt tên đường dẫn tương tự BSD. Theo như tôi biết thì cách mặc định là sử dụng một số loại đường dẫn xe buýt để xác định các thiết bị, không phải tên trình điều khiển với sơ đồ đánh số ngẫu nhiên.
Pavel imerda

@ PavelŠimerda: Tôi chỉ có nghĩa là các hệ thống Linux sử dụng lược đồ này không còn sử dụng eth0thông qua ethINFINITYnữa. Bạn sẽ không còn có thể chỉ cần gõ ifconfig eth0và hy vọng rằng bạn sẽ được nhìn vào giao diện Ethernet đầu tiên, mà làm cho các hệ thống Linux như chức năng tương tự từ một quan điểm giao diện người dùng để FreeBSD, nơi bạn cần hoặc là một tiên nghiệm kiến thức về tên của các giao diện trên hệ thống, hoặc bạn cần có một danh sách với ifconfiglệnh không đủ tiêu chuẩn trước tiên. Các cơ chế hạt nhân cơ bản tất nhiên là hoàn toàn khác nhau.
Warren Young

5

Việc lựa chọn sử dụng tên chung hoặc tên trình điều khiển cụ thể không liên quan gì đến bất kỳ giới hạn trình điều khiển nào.

Nó chủ yếu là một sự lựa chọn mỹ phẩm. Sử dụng tên chung có lợi thế là che giấu thông tin hầu như không liên quan - giao diện mạng là giao diện mạng, bất kể ai tạo ra thông tin đó. Các khả năng của một thiết bị phụ thuộc vào kiểu máy chính xác và cấu hình của nó, không phụ thuộc vào trình điều khiển nào đang được sử dụng. Ưu điểm của tên cụ thể là dành cho quản trị viên: nếu thông báo lỗi đề cập eth0(ok, vậy cái nào là 0 và cái nào là 1), thì nó ít thông tin hơn nếu nó đề cập wlan0(ah, đó là giao diện wifi) hoặc bcm0(ah, đó là giao diện Broadcom).

Trên FreeBSD, các hoạt động thiết lập mạng hoạt động bằng cách gọi ioctltrên ổ cắm Unix. Ioctl này được xử lý bởi mã mạng chung và lừa xuống trình điều khiển có liên quan nếu ioctl gọi cho điều này.

Tôi không biết ALTQ tương tác với tập hợp liên kết như thế nào. Đảm bảo sử dụng phiên bản FreeBSD gần đây, vì phiên bản này trước đây không hoạt động nhưng hiện tại thì có .


3

Nó làm cho nó dễ dàng hơn để nói bạn đang nói chuyện với card mạng nào.

Nếu bạn có một Intel (igb0) và Realtek (rl0), bây giờ bạn có thể phân biệt chúng ngay lập tức.

Ngoài ra, trình điều khiển khác nhau hỗ trợ các tính năng khác nhau. Một số trình điều khiển hỗ trợ pollingvà một số thì không. Một số ủng hộ LRO, TSORSSvv Nó là dễ dàng hơn để theo dõi mà hỗ trợ mà khi họ không tất cả chỉ là đặt tên eth.

eth có thể có ý nghĩa nếu bạn có nhiều loại giao diện mạng khác, nhưng bạn hiếm khi làm điều đó.


+1, vì tôi biết bạn là ai. :) Cảm ơn bạn đã podcast !
Warren Young

1

Tại sao * BSD sử dụng tên cụ thể của trình điều khiển cho giao diện mạng?

Để làm cho mọi thứ đơn giản. Nếu bạn nhìn vào một giao diện có tên bge0và xem hướng dẫn sử dụng hoặc sử dụng hệ thống liên kết ghi nhớ của bạn, bạn sẽ nhanh chóng nhớ rằng trình điều khiển này là Broadcom Gigabit Etherhet . Tài liệu này cũng hữu ích.

Điều đó có nghĩa là không có lớp trừu tượng mô tả "giao diện mạng chung" trong kernel, vì vậy mỗi trình điều khiển sẽ được xử lý nội bộ thông qua API riêng của nó?

Quy tắc ở đây là:

  • Sử dụng tên trình điều khiển Tiếng Việt để tạo tên thiết bị;
  • Sử dụng id PCI thấp nhất để tạo số ngay sau tên thiết bị;

Không có lớp trừu tượng cần thiết. Thật đơn giản.

(làm thế nào) nó có ảnh hưởng đến các hệ thống con như tập hợp liên kết, định hình lưu lượng truy cập, QoS (ALTQ), lọc và các hệ thống khác không?

Tên giao diện không nên can thiệp vào giao thông.

Chính xác, có vẻ như dưới pfSense, tôi không thể sử dụng ALTQ với giao diện ảo tổng hợp liên kết (LAG).

Hôm nay nó sẽ hoạt động:

Đây có phải là giới hạn bên trong BSD do thiếu lớp trừu tượng thích hợp không?

Nó không phải là một lớp thích hợp để xử lý việc này. Nó là vì bạn có thể sử dụng các tài nguyên khác để xử lý các tên đó như tạo tên giao diện ( /etc/rc.conf) hoặc thay đổi id pci id trên thiết lập bo mạch chủ. Và như những người khác đã nói về câu hỏi này, ngay cả Linux cũng sẽ đi theo con đường này biosdevname.

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.