簡介
有別於傳統的網卡名稱 eth0、eth1,Talos 在 v1.5 後使用 predictable names 的方式命名網卡,如同 systemd 的規則。
為什麼要這樣做?
eth0、eth1 這種命名方式是根據驅動 (driver) 決定的,但這個機制可能會因為驅動初始化順序不同導致介面順序不固定,也就是說 eth0 在下一次開機時可能會變成 eth1。在這個情況下,使用網卡名稱的元件如防火牆,可能會因此發生問題。為了解決這種不可預測性,systemd v197 開始使用新命名方式。
規則是什麼?
依照網卡特性命名,Talos 預設使用 MAC Address,如 enx78e7d1ea46da
- firmware/BIOS 對板載裝置的 index,如
eno1 - firmware/BIOS 對熱插拔 PCIe 裝置的 index,如
ens1 - 硬體連接器,如 PCIe 上的網卡,可能有多個插孔,所以會出現
s0、s1的編號,如enp2s0
上述都是 en 開頭的網卡,其實還有其他的,如
| Prefix | Description |
|---|---|
| en | Ethernet |
| ib | InfiniBand |
| sl | Serial line IP (slip) |
| wl | Wireless local area network (WLAN) |
| ww | Wireless wide area network (WWAN) |
不喜歡怎麼辦?
改回 eth0 的命名方式
雖然建議使用新式命名,但想改回 eth0 的話,可以在 kernel argument 上新增 net.ifnames=0
machine:
install:
extraKernelArgs:
- net.ifnames=0使用 device selector
可以使用官方的 device selector 語法選擇網卡
machine:
network:
interfaces:
- deviceSelector:
busPath: "0*" # 這行代表選中所有硬體網卡,當該環境中只有一張網卡時,此方法很實用