全部產品
Search
文件中心

:多網卡情境下,Linux執行個體作業系統的網卡名稱發生漂移如何解決?

更新時間:Jul 31, 2024

本文介紹多網卡情境下,Linux執行個體作業系統的網卡名稱發生漂移的解決辦法。

問題現象

如果Linux作業系統中配備了多塊網卡,當在營運操作中添加或者刪除網卡時,Linux作業系統會出現網卡裝置名稱與網卡MAC地址對應不一致的情況,也叫網卡漂移。

以eth1實際對應的網卡MAC地址為00:16:3e:10:bd:1b、eth2實際對應的網卡MAC地址為00:16:3e:0c:92:df為例,如果發生了網卡漂移,則執行ip addr命令查看網卡資訊時,會在回顯中發現eth1對應的網卡MAC地址變為了eth2對應的網卡MAC地址,如下圖所示。網卡名稱發生漂移

問題原因

Linux作業系統中網卡相關資訊儲存在/etc/udev/rules.d/70-persistent-net.rules檔案中,當該檔案不存在或者檔案內容和Linux作業系統實際資訊不一致時,就可能導致網卡名稱發生漂移。

解決方案

重要
  • 如果您對執行個體或資料有修改、變更等風險操作,務必注意執行個體的容災、容錯能力,確保資料安全。建議您提前建立快照,快照相關資訊,請參見快照概述

  • 如果您在阿里雲平台授權或者提交過登入帳號、密碼等安全資訊,建議您及時修改安全資訊。

編輯Linux作業系統中的/etc/udev/rules.d/70-persistent-net.rules檔案,在該設定檔中將網卡名稱與網卡MAC地址進行綁定,使網卡MAC地址與網卡名稱一一對應。

  1. 遠端連線ECS執行個體。
    具體操作,請參見串連方式概述
  2. 執行如下命令,進入/etc/udev/rules.d目錄。
    cd /etc/udev/rules.d
  3. 執行如下命令,開啟/etc/udev/rules.d/70-persistent-net.rules檔案。
    vi 70-persistent-net.rules
  4. 執行如下命令,綁定網卡名稱與網卡MAC地址。
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="MAC地址", KERNEL=="eth*", NAME="網卡名稱"
    以綁定eth1對應的MAC地址為00:16:3e:10:bd:1b為例,命令如下:
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:3e:10:bd:1b", KERNEL=="eth*", NAME="eth1"
  5. 執行如下命令,查看/etc/udev/rules.d/70-persistent-net.rules中的網卡配置。
    cat 70-persistent-net.rules
    回顯如下:綁定網卡名稱與網卡MAC地址

    此時,eth1對應的MAC地址為00:16:3e:10:bd:1b,未發生漂移。