* BSD为什么将驱动程序专用名称用于网络接口?这是否意味着限制?


13

我注意到,根据网卡的品牌,接口名称有所不同(我想取决于驱动程序)。

  • * BSD为什么将驱动程序专用名称用于网络接口?
  • 这是否意味着内核中没有描述“通用网络接口”的抽象层,所以每个驱动程序都将通过自己的API在内部进行寻址?
  • (如何)影响链路聚合,流量整形,QoS(ALTQ),过滤等子系统?

准确地说,在pfSense下,我无法将ALTQ与链接聚合(LAG)虚拟接口一起使用。

由于缺少适当的抽象层,这是BSD的内部限制吗?

Answers:


7

* BSD为什么将驱动程序专用名称用于网络接口?

这只是一个历史选择。名称中的字母来自与卡通讯的驱动程序,因此,如果两个碰巧使用相同的驱动程序,则对于两个单独的接口它们将是相同的。

它确实具有一个实际的好处:在BSD上,网络驱动程序在第4节中有其自己的手册页。因此,dc(4)向您介绍了将控制dc0网络适​​配器的DEC 21143驱动程序。

您也可以在BSD Unix的其他部分(例如硬盘)中看到这一点。

由于缺少适当的抽象层,这是BSD的内部限制吗?

没有。

就其价值而言,Linux正在走类似的道路。随着网络变得越来越复杂,用于以太网适配器的简单命名规则的时代正在消失。


谢谢。您知道为什么我不能在链接聚合中使用ALTQ吗?
Totor

请每个问题一个问题。让我们集中讨论BSD设备命名。
沃伦·杨

我不会打电话给新的udev网络设备命名与BSD类似的路径。据我所知,默认方法是使用某种总线路径来标识设备,而不是使用随机编号方案来标识驱动程序名称。
帕维尔·西默达(PavelŠimerda)

@PavelŠimerda:我只是说使用此方案的Linux系统不再使用eth0thru ethINFINITY。您将不再能够只键入ifconfig eth0并期望您将看到第一个以太网接口,从用户界面的角度来看,这使此类Linux系统在功能上与FreeBSD相似,在FreeBSD中,您需要先验知识的名称。系统上的接口,或者您首先需要获取带有不合格ifconfig命令的列表。底层内核机制当然是完全不同的。
沃伦·杨

5

使用通用名称或特定于驱动程序的名称的选择与任何驱动程序限制无关。

这主要是化妆品的选择。使用通用名称的优点是隐藏了几乎总是不相关的信息-网络接口就是网络接口,无论是谁创建的。设备的功能取决于确切的型号及其配置,而不取决于所使用的驱动程序。特定名称的好处是对管理员而言:如果提到一条错误消息eth0(好的,那么哪一个是0,哪一个是1),它的信息量就比提到wlan0(啊,这是wifi接口)或bcm0(啊,那是Broadcom界面)。

在FreeBSD上,网络设置操作通过ioctl在Unix套接字上调用来进行。该ioctl由通用网络代码处理,并在ioctl要求的情况下滴流到相关的驱动程序。

我不知道ALTQ如何与链接聚合交互。确保使用最新版本的FreeBSD,因为以前该版本不起作用,但现在可以使用


3

这样可以更轻松地告诉您正在与哪个网卡通信。

如果您有Intel(igb0)和Realtek(rl0)网卡,则可以立即将它们分开。

另外,不同的驱动程序支持不同的功能。有些驱动程序支持polling,有些则不支持。一些支持LROTSORSS等这是比较容易跟踪,当它们是支持,不是所有刚刚任命eth

eth 如果您有许多其他类型的网络接口,则可能很有意义,但是您很少这样做。


+1,因为我知道你是谁。:)谢谢您的播客
沃伦·杨

1

* BSD为什么将驱动程序专用名称用于网络接口?

使事情变得简单。如果您查看一个名为的接口bge0并查看手册或使用助记符链接系统,您将很快记住该驱动程序是Broadcom千兆以太网文档也很有用。

这是否意味着内核中没有描述“通用网络接口”的抽象层,所以每个驱动程序都将通过自己的API在内部进行寻址?

这里的规则是:

  • 使用驱动程序的名称创建设备名称;
  • 使用最低的PCI ID在设备名称后创建数字;

无需抽象层。这么简单。

(如何)影响链路聚合,流量整形,QoS(ALTQ),过滤等子系统?

接口名称不应干扰流量交换。

准确地说,在pfSense下,我无法将ALTQ与链接聚合(LAG)虚拟接口一起使用。

今天它应该工作:

由于缺少适当的抽象层,这是BSD的内部限制吗?

不是说没有合适的层来处理这个问题。这是因为您可以使用其他资源来处理这些名称,例如创建接口名称/etc/rc.conf)或在主板设置上更改其pci id。就像其他人在这个问题上所说的那样,即使Linux也会使用biosdevname

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.