彈性網卡(Elastic Network Interfaces,簡稱ENI)是一種在Virtual Private Cloud中為ECS執行個體提供網路介面和IP地址的虛擬網路介面。每台ECS執行個體可以附加一個或多個彈性網卡。彈性網卡支援多IP地址配置,並能在同一VPC、同一可用性區域內的不同ECS執行個體之間遷移,這使得網路設定更加靈活和可擴充,以滿足不同業務情境下的網路需求。例如,實現多IP地址、多網卡、高可用網路方案等。
彈性網卡的類別
阿里雲存在以下幾種類型的網卡:
主網卡
VPC網路中的每個執行個體預設擁有的網卡,稱為主網卡,每個執行個體只會有一個主網卡。
預設情況下,主網卡隨執行個體的建立而自動建立。
您可以在建立執行個體時,選擇已有的輔助網卡作為主網卡建立執行個體,詳細資料,請參見釋放執行個體時保留彈性網卡。
輔助彈性網卡
輔助彈性網卡是使用者可以單獨建立並額外綁定到執行個體上的網卡,與主網卡相比,它們可以被獨立建立、動態綁定與解除綁定。
您可以通過綁定輔助網卡實現執行個體網路介面的擴充,詳細資料,請參見執行個體配置多網卡實現業務隔離。
彈性網卡的功能特性
多IP地址支援:一張彈性網卡可以關聯多個私人IP地址,使得單個ECS執行個體能夠通過不同的IP地址對外提供服務或訪問外部資源,增加了網路靈活性。詳細資料,請參見網卡綁定多個IP實現多業務線獨立出口。
隨執行個體釋放功能:可以在建立彈性網卡時或在彈性網卡建立後,通過開啟、關閉隨執行個體釋放功能來允許彈性網卡在執行個體釋放時釋放或保留。此功能預設開啟,即網卡隨執行個體釋放而釋放,簡化營運管理,避免資源殘留。
隨執行個體釋放而保留的彈性網卡,保留了IP、關聯安全性群組等配置,可以快速綁定到同一VPC、同一可用性區域內的其他執行個體上,也可以在建立新執行個體時直接複用,提升營運靈活性和商務持續性。
詳細資料,請參見釋放執行個體時保留彈性網卡。
熱插拔:輔助彈性網卡的熱插拔功能提供了極大的靈活性和便利性,允許在ECS執行個體處於運行狀態時動態地添加或移除輔助彈性網卡,而無需重啟伺服器或中斷正在啟動並執行服務。比如,您可以在不重啟執行個體的情況下,將輔助網卡從一個執行個體解除綁定,然後掛載到同VPC下、同可用性區域的另一個執行個體。
說明主網卡無法解除綁定執行個體,不支援熱插拔。
目前部分執行個體規格支援網卡熱插拔,不支援網卡熱插拔的規格列表如下所示:
對於不支援網卡熱插拔的ECS執行個體規格:
不支援在建立執行個體時添加輔助彈性網卡,可以在建立執行個體後綁定。
綁定和解除綁定輔助彈性網卡時,執行個體必須處於已停止狀態。
注意事項
彈性網卡是免費的,但單個阿里雲賬戶可以建立的彈性網卡數量是有限制的。更多資訊,請參見彈性網卡限制。
執行個體和綁定的彈性網卡,必須屬於同一VPC、同一可用性區域。
執行個體綁定的多張彈性網卡,可以屬於同一VPC、同一可用性區域下的不同子網(交換器)。
如果將來自同一子網的兩個或多個網卡附加到一個執行個體,可能會遇到非對稱路由等網路問題。您可以通過在一張彈性網卡(主網卡或輔助彈性網卡)上分配一個或多個輔助私網IP地址,實現Virtual Private Cloud類型ECS執行個體的高利用率和負載故障時的流量轉移。更多資訊,請參見輔助私網IP。
每個執行個體可以綁定的網卡數量由執行個體規格決定,更多資訊,請參見執行個體規格類型系列中的彈性網卡。
執行個體附加多張網卡不會增加或加倍主機執行個體的網路頻寬,詳細資料,請參見網路頻寬。
彈性網卡的重要屬性
通過綁定彈性網卡,ECS執行個體能夠實現與其他雲資源之間的通訊。以下是彈性網卡的幾個重要屬性:
Virtual Private Cloud:彈性網卡只能綁定到同一個專用網路的執行個體上,彈性網卡建立後無法更改專用網路。
交換器:每個VPC都有其獨立的IP位址範圍。在一個Virtual Private Cloud中,可以建立多個交換器來劃分子網,一個專用網路內的子網預設私網互連。當彈性網卡指定交換器時,它將獲得該子網內的一個或多個IP地址。彈性網卡和綁定的執行個體需要屬於同一可用性區域,可以分屬不同的交換器。
說明如果您希望為ECS執行個體綁定不在VPC網段範圍內的彈性網卡,您需要為VPC附加網段並建立附加網段內、同ECS執行個體相同可用性區域下的交換器,然後建立該交換器下的彈性網卡並綁定到執行個體。詳細資料,請參見VPC附加網段。
MAC地址:每個彈性網卡都有唯一的MAC地址,作為其唯一標識。
您可以通過控制台或API查看網卡的VPC、MAC地址等資訊,詳細資料,請參見查看或修改彈性網卡的屬性。
私網IP:彈性網卡會預設隨機分配所選交換器中的空閑IPv4地址,用於在VPC內部進行通訊。
如果您需要進行IPv6公私網通訊,您可以在開通了IPv6網段的VPC和交換器下,為執行個體的彈性網卡分配一個或多個IPv6地址。詳細資料,請參見IPv6通訊。
安全性群組:彈性網卡與安全性群組關聯,提供網路層面的安全控制。
當您將ECS執行個體關聯到安全性群組時,實際上是將ECS執行個體的主網卡關聯到安全性群組。詳細資料,請參見為執行個體(主網卡)關聯安全性群組。
在同一Virtual Private Cloud下,ECS執行個體的輔助網卡可以關聯與主網卡不同的安全性群組,詳細資料,請參見為輔助網卡關聯安全性群組。
常見業務情境
執行個體配置多網卡實現業務隔離
在單主網卡架構下,ECS執行個體通過單一網路介面處理全部出入流量,適用於網路流量較為單一的情境。若需實現網路流量的分級管控與業務隔離,可為執行個體綁定同VPC可用性區域內的輔助彈性網卡,通過多網卡架構分離業務通道,例如將公網流量與後端私人流量分別承載於不同網卡,同時可為每塊網卡獨立配置差異化的安全性群組策略,在實現前端公開域與後端私人網域網路分層的基礎上,通過安全性原則的逐層加固,有效提升整體網路架構的安全防護能力。
您可以根據實際業務需求,為執行個體綁定多張彈性網卡,並使其在執行個體內部配置生效,即可以實現多網卡通訊,不同執行個體規格支援綁定的網卡數量不同。具體操作,請參見建立並使用彈性網卡。
網卡綁定多個IP實現多業務線獨立出口
彈性網卡支援為單張網卡綁定多個輔助私網IP地址,並通過一一映射Elastic IP Address實現公私網通訊能力解耦,使用者既可基於單網卡構建多IP通訊架構,也可在多網卡間靈活劃分不同IP的流量路徑,滿足複雜業務情境中對網路地址資源擴充與流量精細化管理的需求。
不同執行個體規格支援分配的單網卡私人IP地址數量不同。如您只需要實現多個私網IP,則您需要為網卡分配多個輔助私網IP地址,並在執行個體內部配置生效即可,具體操作,請參見為彈性網卡添加輔助私網IP地址。
如您有多個公網IP的需求,您可以為主網卡或輔助網卡的多個私網IP一一映射綁定Elastic IP Address,具體操作,請參見普通模式實現ECS綁定多EIP。
您將EIP綁定至輔助彈性網卡後,必須確保網卡已綁定到執行個體上且已經在執行個體內部生效,這樣EIP才可以正常使用。
在使用輔助彈性網卡配合Elastic IP Address或NAT Gateway時,可能出現出站流量未從配置了公網IP的網卡流出,引發Elastic IP Address通訊異常。此時可以通過配置策略路由,強制流量從接收資料的網卡原路返回,確保進出路徑一致。詳細資料,請參見為網卡配置策略路由。
如果網卡及路由正確配置後,依然無法ping通公網IP,您可能需要進一步檢查安全性群組、防火牆等配置,詳細資料,請參見無法ping通ECS執行個體公網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登入Linux執行個體。
執行如下命令,查看並確認執行個體的網卡資訊。
ip a通過返回資訊,可以看到當前執行個體的網卡資訊:
網卡標識:eth0、eth1,本樣本中,執行個體共2張彈性網卡,一張主網卡eth0、一張輔助彈性網卡eth1。
網卡狀態:state UP,表示網卡狀態正常,即網卡已經在執行個體內部生效。
[root@i-xxx ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:xxx d ff:ff:ff:ff:ff:ff altname enp0s5 altname ens5 inet 172.16.20.182/24 brd 172.16.20.255 scope global dynamic noprefixroute eth0 valid_lft 315359014sec preferred_lft 315359014sec inet6 fe80::xxx/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:xxx f brd ff:ff:ff:ff:ff:ff altname enp0s7 altname ens7 inet 172.16.20.181/24 brd 172.16.20.255 scope global dynamic noprefixroute eth1 valid_lft 315359849sec preferred_lft 315359849sec inet6 fe80::xxx/64 scope link noprefixroute valid_lft forever preferred_lft forever重要如果您看到state DOWN,表示此時網卡沒有成功載入,無法正常使用,您需要配置Linux作業系統識別網卡,保證網卡狀態正常。
root@xxx:~# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:15:74:ee brd ff:ff:ff:ff:ff:ff inet 172.16.20.231/24 brd 172.16.20.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::216:3eff:fe15:74ee/64 scope link valid_lft forever preferred_lft forever 4: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 00:16:3e:46:31:f4 brd ff:ff:ff:ff:ff:ff網卡主私網IP地址:網卡狀態正常後,您可以看到每張彈性網卡的主私網IP地址。詳細資料,請參見主私網IP。
如果您的網卡分配了輔助私網IP地址,但是作業系統內部沒有識別,您可以參考配置作業系統識別輔助私網IP地址進行重新設定。
執行如下命令,查看網卡的路由資訊。
route -n[root@ecs ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.xxx.xxx 0.0.0.0 UG 100 0 0 eth0 0.0.0.0 192.168.xxx.xxx 0.0.0.0 UG 101 0 0 eth1 192.168.xxx.x 0.0.0.0 255.255.xxx.x U 100 0 0 eth0 192.168.xxx.x 0.0.0.0 255.255.xxx.x U 101 0 0 eth1 [root@ecs ~]#可以看到,通常情況下,系統會為輔助彈性網卡eth1配置兩條路由:
Destination為192.168.xx.xx的路由:指定了特定子網內的路由。該路由確保本機可以正確地識別並直接與子網內的其他主機進行通訊,而無需經過額外的路由器。
Destination為0.0.0.0的路由:預設路由,當資料包的目標地址未匹配到路由表中更具體的路由條目(如針對特定子網或主機的路由)時,系統將選擇預設路由。此時,資料包將通過
Iface指定的網路介面發送到Gateway指定的下一跳地址進行轉寄。重要當存在多條預設路由時,路由優先順序由Metric決定,Metric值越小,優先順序越高。
如果您希望精細控制流程量路徑,要求流量從接收資料的網卡原路返回,確保進出路徑一致,您可以為網卡配置策略路由。
部分較早的作業系統,如Ubuntu16,可能不會自動設定輔助彈性網卡的預設路由,查看路由後如下所示,這種情況可能會導致網卡使用異常,建議您使用較新的作業系統發行版,或者您可以自行配置,具體操作,請參見為網卡配置預設路由。
root@ixxxxx:~# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.16.20.253 0.0.0.0 UG 0 0 0 eth0 172.16.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 172.16.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
Windows執行個體
樣本作業系統:Windows Server 2022。
遠端連線Windows執行個體。
具體操作,請參見使用Workbench登入Windows執行個體。
開啟網路和共用中心。
單擊更改適配器設定。
本樣本中,執行個體綁定了兩張彈性網卡(一張主網卡,一張輔助彈性網卡),您可以看到如下所示資訊,表示網卡已經在執行個體內部生效,無需進行其他配置。
在網路連接面板中顯示兩個網路介面卡:乙太網路和乙太網路 2,適配器類型均為 Red Hat VirtIO Ethernet Adapter。
如果由於其他原因,輔助彈性網卡未正確識別,您可能看到如下資訊,您可以參考Windows執行個體彈性網卡配置失效處理方法。
輔助彈性網卡(如乙太網路 3)的狀態顯示為未識別的網路。
查看網卡狀態及詳細資料。
雙擊網卡名稱,查看網卡狀態。
以主網卡乙太網路為例:
在乙太網路 狀態對話方塊的常規選項卡中,可查看以下關鍵狀態:
IPv4 串連:顯示為Internet,表示已正常串連
IPv6 串連:顯示為無網路存取權限
速度:10.0 Gbps
點擊詳細資料,查看網卡屬性資訊。
您可以在彈出的對話方塊中,看到網卡的主私網IPv4地址、子網路遮罩、預設閘道等資訊。
開啟命令提示字元頁面。
通過鍵盤快速鍵Win+R開啟運行對話方塊,輸入命令cmd,單擊確定。
執行如下命令,查看網卡的路由資訊。
C:\Users\Administrator>route print =========================================================================== Interface List 4...xxx......Red Hat VirtIO Ethernet Adapter 10...xxx......Red Hat VirtIO Ethernet Adapter #2 1...........................Software Loopback Interface 1 =========================================================================== IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 172.16.20.253 172.16.20.242 15 0.0.0.0 0.0.0.0 172.16.12.253 172.16.12.76 15 127.0.0.0 255.0.0.0 On-link 127.0.0.1 331 127.0.0.1 255.255.255.255 On-link 127.0.0.1 331 127.255.255.255 255.255.255.255 On-link 127.0.0.1 331其中兩條預設路由(目標地址 0.0.0.0)分別指向網關 172.16.20.253(介面 172.16.20.242,Metric 15)和網關 172.16.12.253(介面 172.16.12.76,Metric 15),表示該執行個體已配置雙網卡雙網關。
相關文檔
您可以使用Terway網路外掛程式管理K8s叢集Pod的網路地址和通訊。它支援基於Kubernetes標準的網路原則來定義容器間的存取原則,提供了基於彈性網卡的VPC模式和基於彈性網卡輔助IP的ENI多IP模式,您可以靈活選擇來實現Kubernetes叢集內部的網路互連。更多資訊,請參見使用Terway網路外掛程式。
彈性網卡可以與負載平衡器SLB配合使用,以實現流量的分配和管理。更多資訊,請參見通過彈性網卡添加後端伺服器。
部分雲產品(例如Container ServiceACK、NAT Gateway等)需要基於彈性網卡能力提供相應服務時,您可以將雲端式產品建立的彈性網卡的生命週期系統管理權限授權給雲產品系統,由雲產品負責管理,從而防止您誤操作網卡並保障雲產品服務可用。詳細資料,請參見託管彈性網卡。
企業版轉寄路由器的組播功能是阿里雲提供的雲原生的組播能力,可以協助您快速搭建組播網路,無需額外購買物理裝置和第三方軟體認證。當前僅支援將ECS執行個體關聯的彈性網卡作為組播源,系統將以該彈性網卡的主私網IP地址向組播組發送組播流量。詳細資料,請參見組播管理。
常見問題
為什麼沒有 ECS 執行個體時控制台仍會顯示安全性群組和彈性網卡?
可能有以下原因:
彈性網卡未隨執行個體釋放:建立 ECS 執行個體時,若輔助彈性網卡設定了不隨執行個體釋放,則 ECS 執行個體釋放後彈性網卡會保留,繼續顯示在控制台中。您可以查看彈性網卡的綁定狀態,若狀態為可用(即未綁定執行個體),可能是此原因。
其他雲產品託管的彈性網卡和安全性群組:部分雲產品(例如Server Load Balancer、NAT Gateway、Container Service ACK 等)在提供服務時會基於彈性網卡能力建立託管的彈性網卡和安全性群組,其生命週期獨立於 ECS 執行個體,不會隨 ECS 執行個體的釋放而自動刪除。
預設安全性群組:首次使用 VPC 時,系統會自動建立預設安全性群組。預設安全性群組與 ECS 執行個體的生命週期無關,不會因為釋放所有 ECS 執行個體而自動刪除。
排查方法
您可以通過以下 API 排查具體原因:
調用 DescribeNetworkInterfaces API,查看彈性網卡的建立來源(
CreatedBy欄位)和綁定狀態(Status欄位),判斷網卡是否由其他雲產品託管或仍處於可用狀態未被使用。調用 DescribeSecurityGroups API,查看安全性群組的
ServiceManaged欄位,若值為true,說明此安全性群組由雲產品服務託管,需在對應雲產品控制台中管理。
若確認彈性網卡或安全性群組不再使用,可在 ECS 控制台手動釋放彈性網卡或刪除安全性群組。請謹慎操作服務託管的資源,以免影響相關雲產品的正常運行。