全部產品
Search
文件中心

Elastic Compute Service:彈性網卡概述

更新時間:Jun 19, 2024

彈性網卡(Elastic Network Interfaces,簡稱ENI)是一種在Virtual Private Cloud中為ECS執行個體提供網路介面和IP地址的虛擬網路介面。每台ECS執行個體可以附加一個或多個彈性網卡。輔助彈性網卡可以在不同ECS執行個體之間進行解除綁定和綁定操作,這使得網路設定更加靈活和可擴充,以滿足不同業務情境下的網路需求。例如,實現多IP地址、多網卡、高可用網路方案等。

每個彈性網卡可以包含以下主要屬性:

  • 您的Virtual Private Cloud資訊,包括交換器、可用性區域等。

  • 您的VPC交換器子網的IPv4位址範圍內的一個主要私人IPv4地址。

  • 您的VPC交換器子網的IPv4位址範圍內的一個或者多個輔助私人IPv4地址。

  • 一個或多個公有IPv4地址。

  • 一個或多個IPv6地址。

  • 一個MAC地址。

  • 一個或多個安全性群組。

基本概念

概念

說明

網卡類型

網卡類型包括主網卡(Primary)和輔助彈性網卡(Secondary)。VPC網路中的每個執行個體都有預設的網卡,稱為主網卡,您無法獨立建立和從執行個體卸載主網卡;您可以建立並額外綁定到執行個體上的網卡,稱為輔助彈性網卡。

私人IPv4地址

每個彈性網卡都有一個交換器位址範圍內的私人IPv4地址,稱為主私網地址。您可以在建立輔助彈性網卡時指定主私網地址,如果不指定,我們將為您隨機分配。此外,您還可以為彈性網卡分配一個或者多個輔助私人IPv4地址,隨後回收該輔助私人IP地址,再分配給其他彈性網卡。彈性網卡的IP地址數量由執行個體規格決定。更多資訊,請參見執行個體規格類型系列中的單網卡私人IPv4地址數指標。

私人IPv6地址

如果Virtual Private Cloud和交換器開通了IPv6網段,您可以為彈性網卡分配一個或者多個輔助私人IPv6地址,有關開通交換器IPv6網段的資訊,請參見建立和管理交換器。您使用的彈性網卡的IP地址數量由執行個體規格決定。更多資訊,請參見執行個體規格類型系列中的單網卡IPv6地址數指標。IPv6地址支援VPC內網通訊,您可以通過開通IPv6公網頻寬來訪問公網或被公網訪問,更多資訊,請參見Windows開通IPv6公網頻寬或者Linux開通IPv6公網頻寬

Elastic IP Address地址

您可以為彈性網卡綁定一個或者多個Elastic IP Address,用於公網通訊。更多資訊,請參見綁定和解除綁定Elastic IP Address

多隊列

網卡多隊列是指執行個體規格支援的最大網卡隊列數。當單台ECS執行個體的vCPU處理網路中斷存在效能瓶頸時,您可以將執行個體中的網路中斷分散給不同的vCPU處理,從而提升效能。更多資訊,請參見配置網卡多隊列

物理網卡映射

為了支援更高的網路效能,部分執行個體規格支援物理網卡映射,即附加網卡時通過NetworkCardIndex參數映射到物理機的網卡上,從而避免頻寬爭搶,提升執行個體的頻寬能力。您可以使用DescribeInstanceTypes介面查詢執行個體規格支援的物理網卡資訊。附加網卡時,若您要指定物理網卡索引,主網卡的物理網卡索引必須為0,輔助彈性網卡可根據執行個體規格中物理網卡的索引資訊進行設定。您需要將輔助網卡和主網卡設定在不同索引上,才能最大限度發揮執行個體的網路效能。相關使用方法,請參見基於JavaSDK實現彈性網卡操作最佳實務

常見情境

  • 容器網路方案:您可以使用基於彈性網卡的CNI (Container Network Interface)外掛程式來管理K8s叢集Pod的網路地址和通訊。例如,您可以使用阿里雲開源的基於Virtual Private Cloud彈性網卡的容器網路介面CNI外掛程式Terway。它支援基於Kubernetes標準的網路原則來定義容器間的存取原則,提供了基於彈性網卡的VPC模式和基於彈性網卡輔助IP的ENI多IP模式,您可以靈活選擇來實現Kubernetes叢集內部的網路互連。更多資訊,請參見使用Terway網路外掛程式

  • 網路與安全管理:多塊網卡可以實現虛擬化網路裝置功能,例如配置有多塊網卡的負載平衡器、網路位址轉譯(NAT)伺服器和Proxy 伺服器等。安全虛擬設備通常配置多個虛擬網卡,每塊網卡都配置有自己的專有IP地址,並根據需要配置公網IP地址與防火牆。一種典型設定是執行個體上的主網卡處理外部公網流量,輔助彈性網卡處理內部流量,並串連到您的VPC中的各個子網。主網卡有一個關聯的安全性群組控制從Internet(或者公網負載平衡器的TCP 80和443連接埠)對伺服器的訪問,而私人網卡關聯的安全性群組只控制來自VPC內允許的私人子網的訪問。外部流量只能從公用外部客戶端通過主網卡的虛擬防火牆(安全性群組)強制卡點訪問專用VPC網路。所有可從互連網訪問的資源都應該與您的內部網路及其服務分離開來。這在很大程度上限制了安全違規可能影響的範圍及造成的損害。

  • 外網隔離:在分層網路架構方面,一項最佳實務是將面向公眾的服務與內部網路及其服務隔離開來。您可以在串連到中層網路(存在應用伺服器)的每個網路伺服器上都掛載一塊輔助彈性網卡。一塊網卡接收面向公眾的流量,另一塊網卡處理存取控制比較嚴格的後端專用流量。每個雙宿主執行個體會先接收和處理前端請求,然後啟動到後端的串連,接著將請求發送至後端網路上的伺服器。通過配置獨立網卡(一個面向公眾,另一個專用),您可以將獨立的防火牆規則和存取控制分別應用到每塊網卡,並在從公開網域到專用網域的通訊過程中強制實施安全功能。

  • 高可用:如果您的執行個體失效,其網卡可掛載到預配置的熱/冷待命執行個體,以快速恢複服務。例如,您可以將一塊網卡用作串連資料庫執行個體或NAT執行個體等關鍵服務的主要或輔助網卡。如果執行個體失效,您(或更有可能是代表您啟動並執行代碼)可以將網卡掛載到熱備用執行個體。由於網卡保留了私人IP地址、彈性EIP地址和MAC地址,因此只要您將網卡掛載到替代執行個體,網路流量就會立即開始流向備用執行個體。

  • 流量隔離:在某些應用中,某些流量極其敏感。在這種情況下,可使用彈性網卡將這部分流量與其他流量分離開來,以保證在出現流量高峰或流量擁塞時可以使用最低頻寬。每塊網卡都設定一個虛擬隊列。虛擬隊列可防止一個VPC網路出現的頻寬高峰和DDoS攻擊影響其他VPC網路。每塊網卡的虛擬隊列還可以防止隊頭阻塞,並使每個I/O介面都能公平共用該執行個體的CPU。

最佳實務

  • 彈性網卡是免費的,但數量是有限制的。更多資訊,請參見彈性網卡數量限制

  • 您可以在執行個體運行時(熱)、執行個體停止時或執行個體啟動時(冷)將彈性網卡綁定到相同可用性區域的執行個體上,每台執行個體可以綁定的網卡數量由執行個體規格決定,更多資訊,請參見執行個體規格類型系列中的彈性網卡數。但是,您不能卸載主網卡,更多資訊,請參見綁定輔助彈性網卡

  • 如果執行個體位於相同可用性區域時,您可以將網卡從一個執行個體卸載,然後掛載到另一個執行個體,將彈性網卡綁定到執行個體不會增加或加倍主機執行個體的網路頻寬。

  • 您建立彈性網卡時可同時為網卡指定多個安全性群組,多個安全性群組的規則會疊加作用於當前網卡,如果您為網卡設定了多個輔助IPv4或者IPv6地址,這些IPv4或者IPv6地址也同時屬於您指定的安全性群組且不可更改,如果您要調整網卡的安全性群組,請參見修改彈性網卡屬性。調整後自動生效,關於安全性群組的更多資訊,請參見安全性群組概述

  • 通過API方式查詢網卡列表,您可以使用更加穩定、高效的NextToken方式。更多資訊,請參見DescribeNetworkInterfaces

  • CentOS 6.8 64位、CentOS 7.3 64位、Windows Server 2008 R2及更高版本等鏡像的執行個體會自動在該執行個體的作業系統上配置網卡,其他鏡像的執行個體需要您自己手動設定。更多資訊,請參見配置輔助彈性網卡

  • 使用CLI、API或開發套件啟動執行個體時,您可以指定輔助彈性網卡。更多資訊,請參見綁定輔助彈性網卡

  • 您可以使用阿里雲開源的基於Virtual Private Cloud彈性網卡的容器網路介面CNI外掛程式Terway來管理K8s叢集Pod的網路地址和通訊。更多資訊,請參見使用Terway網路外掛程式

  • 如果將來自同一子網的兩個或多個網卡附加到一個執行個體,可能會遇到非對稱路由等連網問題。您可以通過在一張彈性網卡(包括主網卡和輔助彈性網卡)上分配一個或多個輔助私網IP地址,實現Virtual Private Cloud類型ECS執行個體的高利用率和負載故障時的流量轉移。更多資訊,請參見分配輔助私網IP地址

  • 單台ECS執行個體vCPU處理網路中斷存在效能瓶頸時,您可以將執行個體中的網路中斷分散給不同的CPU處理,從而提升效能。更多資訊,請參見配置網卡多隊列

  • 您可以使用eRDMA彈性網卡將線下的RDMA應用平滑遷移到雲上,擷取成本更低、彈性更好的高效能RDMA服務,例如高效能運算、AI訓練、巨量資料處理等。更多資訊,請參見eRDMA概述

  • 彈性網卡數量較多時,您可以通過標籤服務來分組管理。更多資訊,請參見標籤概述

  • 您可以通過彈性網卡添加Server Load Balancer的後端伺服器。更多資訊,請參見通過彈性網卡添加後端伺服器

管理彈性網卡

通過ECS控制台或者調用API,您可以對彈性網卡資源進行全面的管理和配置。

  • 通過ECS控制台管理:您可以直觀地查看、建立、編輯和刪除彈性網卡,以及進行綁定和解除綁定操作。

  • 通過調用API管理:您可以編寫指令碼或使用SDK來批量管理、自動化操作和整合彈性網卡資源。

通過調用API管理