Centos

如何配置網路知道 MAC 但不知道設備名稱?

  • January 25, 2017

背景:

我打算使用 Kickstart 來自動化 CentOS 7 的部署/配置。

我正在嘗試生成一個適當的 Kickstart 文件來為作業系統預配置網路,使用來自作業系統範例安裝的基本配置文件作為參考點。

我不清楚網路介面名稱是如何構造的,這會造成問題;我需要知道介面名稱是/將在部署時使用,以便配置網路設置,例如 IP 地址/網關/子網遮罩等。

但是,我確實可以訪問將部署作業系統的主機上每個網卡的 MAC 地址資訊。

問題:

我是否有足夠的資訊來預測網路介面名稱和/或我應該考慮另一種方法?

好的,所以如果我正確地解釋了您的問題,那麼您需要考慮一些事情。

首先:您似乎對 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 文件中的引導載入程序部分來抑制可預測的網路介面名稱。

添加 net.ifnames=0 和

$$ if needed $$biosdevname=0 到 –append 應該可以滿足您的要求。

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

然而,這當然只是一種解決方法——這可能是一個很好的機會,可以利用這個提示來熟悉新的命名法及其工作原理。

引用自:https://serverfault.com/questions/828479