彈性網卡(Elastic Network Interfaces,簡稱ENI)是一種在Virtual Private Cloud中為ECS執行個體提供網路介面和IP地址的虛擬網路介面。每台ECS執行個體可以附加一個或多個彈性網卡。彈性網卡支援多IP地址配置,並能在同一VPC、同一可用性區域內的不同ECS執行個體之間遷移,這使得網路設定更加靈活和可擴充,以滿足不同業務情境下的網路需求。例如,實現多IP地址、多網卡、高可用網路方案等。
彈性網卡的類別
阿里雲存在以下幾種類型的網卡:
主網卡
VPC網路中的每個執行個體預設擁有的網卡,稱為主網卡,每個執行個體只會有一個主網卡。
輔助彈性網卡
單主網卡情況下,執行個體只具備一個網路介面,所有網路流量也都通過這一個網路介面進出,適合業務流量較簡單的情境。如果您的業務需要更精細的網路分類、隔離,解決單網卡的單點故障問題等,您可以為ECS執行個體建立並綁定同一VPC下、同一可用性區域內的輔助彈性網卡,以實現網卡的擴充。
輔助彈性網卡是使用者可以單獨建立並額外綁定到執行個體上的網卡,與主網卡相比,它們可以被獨立建立、動態綁定與解除綁定。
具體操作,請參見建立並使用彈性網卡。
彈性網卡的功能特性
多IP地址支援:一張彈性網卡可以關聯多個私人IP地址,使得單個ECS執行個體能夠通過不同的IP地址對外提供服務或訪問外部資源,增加了網路靈活性。詳細資料,請參見輔助私網IP。
隨執行個體釋放功能:您可以在建立彈性網卡時或在彈性網卡建立後,通過開啟、關閉隨執行個體釋放功能來允許彈性網卡在執行個體釋放時釋放或保留。此功能預設開啟,即網卡隨執行個體釋放而釋放,簡化營運管理,避免資源殘留。
隨執行個體釋放而保留的彈性網卡,保留了IP、關聯安全性群組等配置,可以快速綁定到同一VPC、同一可用性區域內的其他執行個體上,也可以在建立新執行個體時直接複用,提升營運靈活性和商務持續性。
熱插拔:輔助彈性網卡的熱插拔功能提供了極大的靈活性和便利性,允許在ECS執行個體處於運行狀態時動態地添加或移除輔助彈性網卡,而無需重啟伺服器或中斷正在啟動並執行服務。比如,您可以在不重啟執行個體的情況下,將輔助網卡從一個執行個體解除綁定,然後掛載到同VPC下、同可用性區域的另一個執行個體。
說明主網卡無法解除綁定執行個體,不支援熱插拔。
目前部分執行個體規格支援網卡熱插拔,詳細資料,請參見執行個體規格類型系列。
對於不支援網卡熱插拔的ECS執行個體規格:
不支援在建立執行個體時添加輔助彈性網卡,可以在建立執行個體後綁定。
綁定和解除綁定輔助彈性網卡時,執行個體必須處於已停止狀態。
使用限制
彈性網卡是免費的,但單個阿里雲賬戶可以建立的彈性網卡數量是有限制的。更多資訊,請參見彈性網卡數量限制。
執行個體和綁定的彈性網卡,必須屬於同一VPC、同一可用性區域。
執行個體綁定的多張彈性網卡,可以屬於同一VPC、同一可用性區域下的不同子網(交換器)。
如果將來自同一子網的兩個或多個網卡附加到一個執行個體,可能會遇到非對稱路由等網路問題。您可以通過在一張彈性網卡(主網卡或輔助彈性網卡)上分配一個或多個輔助私網IP地址,實現Virtual Private Cloud類型ECS執行個體的高利用率和負載故障時的流量轉移。更多資訊,請參見輔助私網IP。
每個執行個體可以綁定的網卡數量由執行個體規格決定,更多資訊,請參見執行個體規格類型系列中的彈性網卡。
執行個體附加多張網卡不會增加或加倍主機執行個體的網路頻寬,詳細資料,請參見網路頻寬。
彈性網卡的重要屬性
通過綁定彈性網卡,ECS執行個體能夠獲得私人IP地址、Elastic IP Address等資源,從而實現與互連網或其他雲資源之間的通訊。以下是彈性網卡的幾個重要屬性:
Virtual Private Cloud:彈性網卡只能綁定到同一個專用網路的執行個體上,彈性網卡建立後無法更改專用網路。
交換器:每個VPC都有其獨立的IP位址範圍。在一個Virtual Private Cloud中,可以建立多個交換器來劃分子網,一個專用網路內的子網預設私網互連。當彈性網卡指定交換器時,它將獲得該子網內的一個或多個IP地址。彈性網卡和綁定的執行個體需要屬於同一可用性區域,可以分屬不同的交換器。
說明如果您希望為ECS執行個體綁定不在VPC網段範圍內的彈性網卡,您需要為VPC附加網段並建立附加網段內、同ECS執行個體相同可用性區域下的交換器,然後建立該交換器下的彈性網卡並綁定到執行個體。詳細資料,請參見VPC附加網段。
MAC地址:每個彈性網卡都有唯一的MAC地址,作為其唯一標識。
您可以通過控制台或API查看網卡的VPC、MAC地址等資訊,詳細資料,請參見查看或修改彈性網卡的屬性。
分配一個或多個私網IP實現私網通訊:每個彈性網卡會預設分配子網內的一個主私網IPv4地址。
如果您在多應用、容錯移轉和負載平衡等業務情境下有多IP的需求,您可以為彈性網卡分配一個或多個輔助私網IPv4地址。詳細資料,請參見為彈性網卡添加輔助私網IP地址。
如果您需要進行IPv6公私網通訊,您可以在開通了IPv6網段的VPC和交換器下,為執行個體的彈性網卡分配一個或多個IPv6地址。詳細資料,請參見IPv6通訊。
綁定固定公網IP或Elastic IP Address實現公網通訊:彈性網卡本身不具備公網通訊能力,您可以通過以下方式實現公網通訊:
您可以為執行個體(主網卡)分配固定公網IP,實現公網通訊。詳細資料,請參見固定公網IP。
您也可以為彈性網卡綁定Elastic IP Address實現公網通訊,Elastic IP Address可以靈活綁定與解除綁定。通過將Elastic IP Address綁定到彈性網卡的多個私網IP地址,您還可以實現ECS執行個體對外提供多個公網IP。詳細資料,請參見將EIP綁定至彈性網卡。
安全性群組:彈性網卡與安全性群組關聯,提供網路層面的安全控制。
當您將ECS執行個體關聯到安全性群組時,實際上是將ECS執行個體的主網卡關聯到安全性群組。詳細資料,請參見為執行個體(主網卡)關聯安全性群組。
在同一Virtual Private Cloud下,ECS執行個體的輔助網卡可以關聯與主網卡不同的安全性群組,詳細資料,請參見為輔助網卡關聯安全性群組。
路由表:在VPC內部以及與其他網路之間傳輸資料時,需要使用路由表來指導資料包的直接選取。對於彈性網卡來說,正確的路由配置是保證其能夠正確發送和接收資料的關鍵。詳細資料,請參見配置路由。
說明在多網卡環境中,輔助網卡預設路由的優先順序通常小於主網卡預設路由的優先順序,即優先會從主網卡發送資料,如果您希望指定輔助網卡對應私網IP的資料包從輔助網卡本身發送,您可以為輔助網卡配置策略路由,從而保證資料的源進源出。
彈性網卡的網路增強特性
彈性RDMA能力
彈性網卡支援增加彈性RDMA介面,即開啟支援彈性RDMA的能力,開啟後即為彈性RDMA網卡。通過在支援彈性RDMA的執行個體規格上,掛載開啟了彈性RDMA能力的彈性網卡,安裝彈性RDMA驅動,能夠在ECS執行個體上實現低延遲和高輸送量的網路通訊。詳細資料,請參見彈性RDMA網卡(ERI)。
網卡多隊列
網卡多隊列是指在網路介面上配置多個發送和接收隊列,每個隊列可以由不同的CPU核心進行處理,其主要目的是通過允許多個CPU核心同時處理網路資料包來提升網路I/O輸送量和降低延遲。
詳細資料,請參見網卡多隊列。
物理網卡映射
為了支援更高的網路效能,部分執行個體規格支援物理網卡映射,即附加網卡到執行個體時通過指定物理網卡索引,將彈性網卡綁定到底層不同的通訊通道,最大限度地利用頻寬,提升執行個體的頻寬能力。
詳細資料,請參見物理網卡映射。
查看ECS執行個體的彈性網卡
您可以在控制台上、執行個體內部查看執行個體所綁定的彈性網卡的相關資訊。
在控制台查看
訪問ECS控制台-執行個體。
在頁面左側頂部,選擇目標資源所在的資源群組和地區。
點擊目標執行個體,進入執行個體詳情頁面。
點擊彈性網卡頁簽,查看執行個體的彈性網卡列表。
您可以在列表中看到彈性網卡的ID、名稱、網卡類型、狀態、IP地址等相關資訊:
通過API查看
您可以通過調用DescribeInstances查詢指定InstanceIds的目標執行個體的詳細資料,返回的NetworkInterfaces為執行個體所綁定的彈性網卡集合,包括網卡類型Type、網卡ID NetworkInterfaceId、網卡的主私網IP地址PrimaryIpAddress等。
在執行個體內部查看
Linux執行個體
樣本作業系統:Alibaba Cloud Linux 3.2。
遠端連線Linux執行個體。
具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
執行如下命令,查看並確認執行個體的網卡資訊。
ip a
通過返回資訊,可以看到當前執行個體的網卡資訊:
網卡標識:eth0、eth1,本樣本中,執行個體共2張彈性網卡,一張主網卡eth0、一張輔助彈性網卡eth1。
網卡狀態:state UP,表示網卡狀態正常,即網卡已經在執行個體內部生效。
重要如果您看到下圖所示的state DOWN,表示此時網卡沒有成功載入,無法正常使用,您需要配置Linux作業系統識別網卡,保證網卡狀態正常。
網卡主私網IP地址:網卡狀態正常後,您可以看到每張彈性網卡的主私網IP地址。詳細資料,請參見主私網IP。
如果您的網卡分配了輔助私網IP地址,但是作業系統內部沒有識別,您可以參考配置作業系統識別輔助私網IP地址進行重新設定。
執行如下命令,查看網卡的路由資訊。
route -n
可以看到,通常情況下,系統會為輔助彈性網卡eth1配置兩條路由:
Destination為192.168.xx.xx的路由:指定了特定子網內的路由。該路由確保本機可以正確地識別並直接與子網內的其他主機進行通訊,而無需經過額外的路由器。
Destination為0.0.0.0的路由:預設路由,當資料包的目標地址未匹配到路由表中更具體的路由條目(如針對特定子網或主機的路由)時,系統將選擇預設路由。此時,資料包將通過
Iface
指定的網路介面發送到Gateway
指定的下一跳地址進行轉寄。重要當存在多條預設路由時,路由優先順序由Metric決定,Metric值越小,優先順序越高。
如果您希望精細控制流程量路徑,要求流量從接收資料的網卡原路返回,確保進出路徑一致,您可以為網卡配置策略路由。
部分較早的作業系統,如Ubuntu16,可能不會自動設定輔助彈性網卡的預設路由,查看路由後如下所示,這種情況可能會導致網卡使用異常,建議您使用較新的作業系統發行版,或者您可以自行配置,具體操作,請參見為網卡配置預設路由。
Windows執行個體
樣本作業系統:Windows Server 2022。
遠端連線Windows執行個體。
具體操作,請參見使用Workbench工具以RDP協議登入Windows執行個體。
開啟網路和共用中心。
單擊更改適配器設定。
本樣本中,執行個體綁定了兩張彈性網卡(一張主網卡,一張輔助彈性網卡),您可以看到如下所示資訊,表示網卡已經在執行個體內部生效,無需進行其他配置。
如果由於其他原因,輔助彈性網卡未正確識別,您可能看到如下資訊,您可以參考Windows執行個體彈性網卡配置失效處理方法。
查看網卡狀態及詳細資料。
雙擊網卡名稱,查看網卡狀態。
以主網卡乙太網路為例:
點擊詳細資料,查看網卡屬性資訊。
您可以在彈出的對話方塊中,看到網卡的主私網IPv4地址、子網路遮罩、預設閘道等資訊:
開啟命令提示字元頁面。
通過鍵盤快速鍵Win+R開啟運行對話方塊,輸入命令cmd,單擊確定。
執行如下命令,查看網卡的路由資訊。
相關文檔
您可以使用Terway網路外掛程式管理K8s叢集Pod的網路地址和通訊。它支援基於Kubernetes標準的網路原則來定義容器間的存取原則,提供了基於彈性網卡的VPC模式和基於彈性網卡輔助IP的ENI多IP模式,您可以靈活選擇來實現Kubernetes叢集內部的網路互連。更多資訊,請參見使用Terway網路外掛程式。
彈性網卡可以與負載平衡器SLB配合使用,以實現流量的分配和管理。更多資訊,請參見通過彈性網卡添加後端伺服器。
部分雲產品(例如Container ServiceACK、NAT Gateway等)需要基於彈性網卡能力提供相應服務時,您可以將雲端式產品建立的彈性網卡的生命週期系統管理權限授權給雲產品系統,由雲產品負責管理,從而防止您誤操作網卡並保障雲產品服務可用。詳細資料,請參見託管彈性網卡。