如何在知道 MAC 地址但不知道设备名称的情况下配置网络?

如何在知道 MAC 地址但不知道设备名称的情况下配置网络?

背景:

我打算使用 Kickstart 来自动部署/配置 CentOS 7。

我正在尝试生成一个适当的 Kickstart 文件来预先配置操作系统的网络,使用来自操作系统示例安装的基本配置文件作为参考点。

我不清楚网络接口名称是如何构造的,这带来了一个问题;我需要知道部署时的接口名称是什么/将是什么,这样我就可以配置网络设置,如 IP 地址/网关/子网掩码等。

但是,我可以访问将部署操作系统的主机上每个网卡的 MAC 地址信息。

问题:

我是否有足够的信息来预测网络接口名称和/或我应该考虑其他方法?

答案1

好的,如果我正确理解了你的问题,那么这里有几件事你需要思考。

首先:您似乎对 CentOS 7 中引入的新网络接口命名术语感到困惑。从理论上讲,这种命名法实际上比以前的命名法更可预测(只是直观/可读性稍差一些)。

命名方式如下(来自Red Hat 文档):

 Two character prefixes based on the type of interface:
   en -- ethernet
   sl -- serial line IP (slip)
   wl -- wlan
   ww -- wwan

 Type of names:
   b<number>                             -- BCMA bus core number
   ccw<name>                             -- CCW bus group name
   o<index>                              -- on-board device index number
   s<slot>[f<function>][d<dev_port>]     -- hotplug slot index number
   x<MAC>                                -- MAC address
   [P<domain>]p<bus>s<slot>[f<function>][d<dev_port>]
                                         -- PCI geographical location
   [P<domain>]p<bus>s<slot>[f<function>][u<port>][..][i<interface>]
                                         -- USB port number chain

因此,您实际上应该能够根据对主板的了解来预测接口名称(或者更基本地说 - 如果您每次都使用相同的主板,您只需部署一次并查看所涉及的接口的名称,然后使用它。

其次,如果你愿意的话,你实际上可以禁用这个新的命名法,这实际上是SF 之前曾报道过此问题

您可以使用 kickstart 文件中的 bootloader 部分来抑制可预测的网络接口名称。

将 net.ifnames=0 和 [如果需要] biosdevname=0 添加到 --append 应该可以实现您所要求的功能。

bootloader --location=mbr --append="net.ifnames=0 biosdevname=0"

然而,这当然只是一种解决方法——这可能是一个很好的机会,可以利用这个提示来熟悉新的命名法及其工作原理。

相关内容