我们的环境中有一些戴尔主机。我希望能够提供跨平台一致的网络接口命名。我知道 biosdevname 会尝试使接口在物理/硬件布局方面保持一致。但这不是我想要的那种一致性。我正在寻找一致的名称,以便我的 10gbps 端口和 1gbps 在不同硬件平台上具有相同的名称。
我希望的是,无论我在主机上如何物理分配接口,都可以:
- 第一个接口将是 em1,并且它将始终是第一个 1gbps 接口
- 第二个接口将是 em2,并且它将始终是第一个 10gbps 接口
例如,
如果在场景 1 中我有
--- --- --- ---
| 1 | 2 | 3 | 4 |
--- --- --- ---
其中:1 和 2 是 10gbps 接口 - 并且端口 1 已插入 3 和 4 是 1gbps 接口 - 并且端口 3 已插入
em1 将是端口 3 - 因为这是第一个运行的 1gbps 端口 em2 将是端口 1 - 因为这是第一个运行的 10gbps 端口
如果在场景 2 中我有
--- --- --- ---
| 1 | 2 | 3 | 4 |
--- --- --- ---
其中:1 和 2 是 1gbps 接口 - 插入端口 1 3 和 4 是 10gbps 接口 - 插入端口 3
em1 将是端口 1 - 因为这是第一个运行的 1gbps 端口 em2 将是端口 3 - 因为这是第一个运行的 10gbps 端口
有没有办法自动化这个接口命名选择标准(即查找第一个运行的 1gbps 接口并自动将其配置为 em1,查看第一个运行的 10gbps 接口并将其配置为 em1)
编辑:提供用例,这样它看起来就不会“那么疯狂”
这是针对 KVM 部署的,他们希望能够自动将 vlan 子接口(又名 em2.vlan#)连接到连接到域/来宾的预定义桥接器。为了确保我们知道要将 vlan 添加到哪个接口,我们需要在网络命名方面具有某种一致性。
我们曾考虑过创建单个接口的绑定,以确保我们拥有一致的接口名称。这可能行得通,但仍需要手动确定哪个接口是第一个要配置为 bond0 的 10gbps 接口。
如果有其他想法关于如何将 vlan 子接口一致地添加到 10gbps 端口而不必了解每台机器的底层命名约定,我们也将不胜感激。
我意识到像 openvswitch 这样的东西可能会起作用,但我们只是尝试在这里实现非常基本的网络连接。
答案1
停止与风车作斗争。
不要在接口上强制使用(损坏的)命名,而是更改 KVM 配置工具以使用 ethtool 等工具来检测应该使用的接口并在其上创建 vlan。
答案2
以下是我们可以在 HP ProLiant 服务器上执行的操作用于确定性网络设备命名。请通读并查看是否有任何共鸣。
如果您之前的安装使用了传统命名方案,则在升级操作系统后,系统将继续使用传统命名方案(或相同方案)。要获取从当前 ethN 名称到新 emX 或 pXpY 名称的映射,请发出 biosdevname –d 命令。有关更多信息,请参阅以下 Linux 手册页: http://linux.die.net/man/1/biosdevname