Dexus Asked: 2024-07-02 03:45:48 +0800 CST2024-07-02 03:45:48 +0800 CST 2024-07-02 03:45:48 +0800 CST 在 systemd-networkd 中,当尝试 [匹配] .network 文件中的以太网接口时,“Name=en*”和“Type=ether”之间有什么区别? 772 我还没有能够找到有关Name=en*和的不同性能影响的任何信息Type=ether。 我发现的唯一区别是Type=ether也匹配虚拟以太网端口,而Name=en*却不匹配。 networking 1 个回答 Voted Best Answer grawity_u1686 2024-07-02T22:56:52+08:002024-07-02T22:56:52+08:00 Systemd-networkd 配置仅对每个接口应用一次(或每个“networkctl reload”应用一次) - 它既不是每个数据包也不是每个连接,与 iptables 接口匹配不同 - 因此除非您有数千个接口需要配置,否则任何性能差异都是难以察觉的(即使这样,我怀疑 networkd 的一般逻辑仍然是瓶颈,并且 strcmp 与通配符匹配之间的任何差异都将是舍入误差)。 唯一的实际区别是Name=可以是任意的——en*只匹配 systemd 使用的命名样式,但eth#如果用户禁用了 systemd 命名,它将不匹配例如标准内核名称(),或者用户可能已定义的任何类型的自定义名称(通过 .link 文件或通过 udev 规则,就像过去所做的那样)。 简而言之,不能保证以太网接口被命名为en*,也不能保证每个被命名的接口en*都是以太网接口。
Systemd-networkd 配置仅对每个接口应用一次(或每个“networkctl reload”应用一次) - 它既不是每个数据包也不是每个连接,与 iptables 接口匹配不同 - 因此除非您有数千个接口需要配置,否则任何性能差异都是难以察觉的(即使这样,我怀疑 networkd 的一般逻辑仍然是瓶颈,并且 strcmp 与通配符匹配之间的任何差异都将是舍入误差)。
唯一的实际区别是
Name=
可以是任意的——en*
只匹配 systemd 使用的命名样式,但eth#
如果用户禁用了 systemd 命名,它将不匹配例如标准内核名称(),或者用户可能已定义的任何类型的自定义名称(通过 .link 文件或通过 udev 规则,就像过去所做的那样)。简而言之,不能保证以太网接口被命名为
en*
,也不能保证每个被命名的接口en*
都是以太网接口。