當您需要監控網路流量時,傳統方式為登入執行個體抓包或在執行個體部署監控Agent,佔用執行個體的系統資源,影響業務效能。VPC流量鏡像提供旁路監控方案,在不影響業務流量的前提下,將符合篩選條件的出入指定彈性網卡的流量複製並轉寄到安全分析裝置,實現即時檢測。
流量鏡像常見的使用情境:
安全情境:網路入侵檢測
使用流量鏡像擷取特定流的全部資料包,通過自主研發或者第三方安全軟體進行全面檢查,即時捕獲所有可能存在的安全性漏洞和入侵威脅,更快速地檢查和響應攻擊。
審計情境:金融或政府
對於金融或安全性合規性比較高的業務情境,通過流量鏡像透明地將執行個體流量鏡像到統一審計平台進行分析,滿足審計需求。
網路營運情境:網路問題定位
通過流量鏡像來檢查網路問題,營運人員可以直接查看傳輸的內容(例如:分析TCP的重傳)來排查問題,無需登入ECS執行個體內部抓取報文。
工作原理
工作流程
流量鏡像會話在指定的鏡像源和鏡像目的建立轉寄路徑。啟動鏡像會話後,流量鏡像將執行以下操作:
複製符合篩選條件的鏡像源業務報文。
鏡像源當前僅支援彈性網卡。
篩選條件中包含入方向規則和出方向規則,採用源網段、源連接埠、目的網段、目的連接埠和協議類型組成的五元組,按照優先順序分別篩選彈性網卡執行個體接收/發出的流量。
使用標準的VXLAN報文格式封裝後作為鏡像報文。
VNI(VXLAN Network Identifier,VXLAN ID):分配給鏡像會話的虛擬網路 ID,用於區分不同會話的鏡像流量。建立鏡像會話時,如未指定VNI,將由系統隨機分配。
源 IP:鏡像源的主IP地址。
源連接埠:由業務報文的五元組雜湊值確定。
目的IP:鏡像目的的主IP地址。
目的連接埠:預設使用4789連接埠,不支援修改。
將鏡像報文轉寄至路由可達的鏡像目的。如果鏡像目的和鏡像源不屬於同一個VPC,您需要配置VPC互連,確保鏡像源和鏡像目的之間路由可達。
鏡像目的當前支援彈性網卡、專用網路類型的私網CLB或網關型負載平衡終端節點GWLBe。
當前,支援將流量轉寄至網關型負載平衡終端節點GWLBe的地區,有華東1(杭州)、華東2(上海)、華北1(青島)、華北2(北京)、華北5(呼和浩特)、華南1(深圳)、新加坡、美國(矽谷)、美國(維吉尼亞)。
從鏡像源複製報文時不受安全性群組和網路ACL策略的限制,但鏡像報文轉寄至鏡像目的時,需確保在鏡像目的所在的安全性群組和網路ACL中配置入方向規則,允許來自鏡像源的UDP協議報文訪問鏡像目的的4789連接埠。
使用專用網路類型的私網CLB作為鏡像目的時,需確保在4789連接埠配置UDP監聽。而網關型負載平衡配置會監聽所有連接埠的所有資料包。
匹配規則
同一個鏡像源的同一個報文只能被鏡像一次。
以鏡像源的入方向流量為例:
當鏡像源僅加入一個鏡像會話時,與鏡像會話關聯的篩選條件的入方向規則匹配。每條規則有優先順序,根據規則的五元組依次判斷是否與流量匹配。匹配到首條規則後,執行指定的鏡像策略。無法匹配時,不鏡像對應的流量。
當鏡像源加入多個鏡像會話時,將按照鏡像會話的優先順序,依次與鏡像會話關聯的篩選條件的入方向規則匹配。當前鏡像會話無法匹配時,將與下一優先順序的鏡像會話匹配,直到匹配到首條入方向規則,將執行指定的鏡像策略。若所有鏡像會話關聯的入方向規則均無法匹配,則不鏡像對應的流量。
鏡像目的接收的報文長度
分區業務報文的鏡像行為
當原始業務報文長度超過鏈路 MTU 時,會被切割為多個分區傳輸。
例如,業務報文長度為 2000 位元組,而鏈路 MTU 為 1500 位元組,報文將被切割為 1500、500 位元組的兩個分區。
在阿里雲網路內,鏈路預設支援的MTU為 1500,但部分網路組件例如 VPN 閘道等自身的MTU限制小於1500。
當鏡像源綁定的 ECS 執行個體開啟 TSO 或 UFO 功能時,分區業務報文的鏡像行為可能會有所不同。如需鏡像目的接收到所有分區業務報文的鏡像報文,建議您關閉 TSO 和 UFO 功能(關閉後可能會對執行個體效能有影響)或使用 7 代及以上的 執行個體規格類型系列。
您可以根據執行個體規格類型系列主體中的數字來判斷執行個體規格是否為7代,例如ecs.g7se.xlarge。
鏡像報文截斷:當被鏡像的分區報文或完整業務報文的長度加上 VXLAN 頭的長度(固定值50位元組),大於能夠完全轉寄的鏡像報文長度時,系統會對鏡像報文進行截斷。
在華東1(杭州)、華東2(上海)、華北1(青島)、華北2(北京)、華北5(呼和浩特)、華南1(深圳)、新加坡、美國(矽谷)、美國(維吉尼亞)地區,鏡像目的收到的被鏡像的報文長度受限於鏡像目的 MTU。目前,阿里雲的 8 代主售執行個體規格類型系列支援 8500 MTU 的巨型幀。建議您為鏡像目的開啟巨型幀,避免鏡像報文被截斷。
其他地區,鏡像目的收到的被鏡像的報文長度受限於鏈路預設 MTU(1500位元組)。
如果僅需要查看特定長度的鏡像報文頭,您可以設定鏡像報文長度,系統將對鏡像源業務報文中超過該值的部分進行截斷,再轉寄到鏡像目的。
使用限制
鏡像源和鏡像目的:同一個彈性網卡不能既作為鏡像源又作為鏡像目的。鏡像源和鏡像目的,不支援選擇託管彈性網卡。
帳號與地區:支援在同帳號、同地區的單VPC或跨VPC下配置鏡像源和鏡像目的,暫不支援跨地區或跨帳號的情境。
IP版本:支援鏡像IPv4的網路流量,暫不支援IPv6。
頻寬:流量鏡像會佔用執行個體的頻寬,且不會作額外限速。當執行個體頻寬達到最大容量時,會丟棄流量鏡像報文,保障優先轉寄業務流量。
流量類型:不支援鏡像網路ACL丟棄流量、安全性群組丟棄流量、流日誌流量、ARP及DHCP流量。
建立/刪除流量鏡像
出入鏡像源的業務流量,按照優先順序,基於協議類型、IP版本、源網段、目的網段、源連接埠、目的連接埠匹配到篩選條件中的特定規則後,系統將對流量執行指定策略,鏡像/不鏡像對應的流量。鏡像流量將被複製並轉寄到鏡像目的。
優先順序決定規則的生效順序,取值範圍為1~16777216。數字越小,優先順序越高,同一個篩選條件的每條入方向規則或出方向規則優先順序不能重複。
協議類型為TCP(6)/UDP(17)時,可以調整連接埠範圍。取值範圍為0~65535,設定格式為
開始端點口/終止連接埠。選擇其他協議類型時,連接埠範圍無法設定,預設為-1/-1,表示不限制連接埠。
控制台
初次使用時,請登入流量鏡像開通頁面,根據提示開通流量鏡像功能。
建立流量鏡像
建立篩選條件
如果已建立了符合鏡像流量需求的篩選條件,您可以直接建立鏡像會話。
前往專用網路控制台 - 篩選條件,在頂部功能表列選擇要建立流量鏡像的地區。單擊創建篩選條件。
配置入方向規則和出方向規則,確定哪些流量從鏡像源複製並轉寄到鏡像目的。當篩選條件中不包含任何規則時,不鏡像任何流量。
建立篩選條件時,出入方向規則分別最多可配置10條,建立完成後,您可以添加/編輯/刪除出入方向規則。
如需刪除篩選條件,請確保篩選條件沒有關聯鏡像會話。如有關聯,需先變更鏡像會話關聯的篩選條件,再在目標篩選條件的操作列單擊刪除。
建立鏡像會話
前往專用網路控制台 - 鏡像會話,在頂部功能表列選擇要建立流量鏡像的地區。單擊建立鏡像會話。
配置鏡像會話:
指定VNI:分配給鏡像會話的虛擬網路ID,用於區分不同會話的鏡像流量,取值範圍為0~16777215。如未指定VNI,將由系統隨機分配。
配置優先順序:當鏡像源加入多個鏡像會話時,將按照鏡像會話的優先順序來確定鏡像到哪個目的。取值範圍為1~32766。 數字越小,優先順序越高。同一帳號在同一個地區建立的鏡像會話優先順序不能重複。
如果僅需要查看特定長度的鏡像報文頭,您可以設定鏡像報文長度,系統將對鏡像源業務報文中超過該值的部分進行截斷,再轉寄到鏡像目的。
配置關聯的篩選條件、鏡像源、鏡像目的。
啟動鏡像會話
建立完成後啟用鏡像會話,或返回列表,在目標鏡像會話的操作列單擊啟動。
當鏡像源有符合篩選條件的流量時,您可以在鏡像目的執行
tcpdump -i 鏡像目的對應的網卡名稱 udp port 4789 -nne,查看鏡像目的接收的鏡像報文。
變更流量鏡像
在目標鏡像會話的詳情頁,您可以變更鏡像目的、篩選條件,添加或刪除鏡像源,或修改鏡像會話的VNI、優先順序與鏡像報文長度。
停止/刪除鏡像會話
在目標鏡像會話的操作列單擊停止/刪除。
API
建立流量鏡像
初次使用時,需調用OpenTrafficMirrorService開通流量鏡像功能。
調用CreateTrafficMirrorFilter建立流量鏡像篩選條件。
調用CreateTrafficMirrorFilterRules建立篩選條件的入方向或出方向規則。
調用CreateTrafficMirrorSession建立鏡像會話。
調用UpdateTrafficMirrorSessionAttribute調整
Enabled為true,啟動鏡像會話。
變更流量鏡像
調用AddSourcesToTrafficMirrorSession/RemoveSourcesFromTrafficMirrorSession為鏡像會話增加/刪除鏡像源。
調用UpdateTrafficMirrorSessionAttribute修改鏡像會話的配置或變更鏡像目的、篩選條件。
修改/刪除篩選條件
調用CreateTrafficMirrorFilterRules建立篩選條件的入方向或出方向規則。
調用DeleteTrafficMirrorFilterRules刪除篩選條件的入方向或出方向規則。
調用DeleteTrafficMirrorFilter刪除篩選條件。
停止/刪除流量鏡像
調用UpdateTrafficMirrorSessionAttribute調整
Enabled為false,停止鏡像會話。調用DeleteTrafficMirrorSession刪除鏡像會話。
Terraform
本樣本僅鏡像進出鏡像源的TCP流量,您應根據需鏡像的流量配置篩選條件的出入方向規則。
Resources:alicloud_vpc_traffic_mirror_filter、alicloud_vpc_traffic_mirror_session
# 指定建立流量鏡像的地區
provider "alicloud" {
region = "cn-hangzhou"
}
# 指定鏡像源的ID
variable "traffic_mirror_source_id" {
default = "eni-hp3e******" # 修改為彈性網卡的實際ID
}
# 指定鏡像目的的ID
variable "traffic_mirror_target_id" {
default = "eni-hp3h******" # 修改為彈性網卡的實際ID
}
# 建立篩選條件並配置出入方向規則:採集進出鏡像源的所有TCP流量
resource "alicloud_vpc_traffic_mirror_filter" "example_vpc_traffic_mirror_filter" {
traffic_mirror_filter_name = "example_vpc_traffic_mirror_filter_name"
egress_rules {
priority = 1
protocol = "TCP"
action = "accept"
destination_cidr_block = "0.0.0.0/0"
destination_port_range = "-1/-1"
source_cidr_block = "0.0.0.0/0"
source_port_range = "-1/-1"
}
ingress_rules {
priority = 1
protocol = "TCP"
action = "accept"
destination_cidr_block = "0.0.0.0/0"
destination_port_range = "-1/-1"
source_cidr_block = "0.0.0.0/0"
source_port_range = "-1/-1"
}
}
# 建立流量鏡像會話
resource "alicloud_vpc_traffic_mirror_session" "example_vpc_traffic_mirror_session" {
traffic_mirror_session_name = "example_vpc_traffic_mirror_session"
priority = 1 # 指定鏡像會話的優先順序,當鏡像源加入多個鏡像會話時,將按照鏡像會話的優先順序來確定鏡像到哪個目的。取值範圍為1~32766。 數字越小,優先順序越高。同一帳號在同一個地區建立的鏡像會話優先順序不能重複。
virtual_network_id = 10 # 指定鏡像會話的VNI,用於區分不同會話的鏡像流量,取值範圍為0~16777215。如未指定VNI,將由系統隨機分配。
traffic_mirror_filter_id = alicloud_vpc_traffic_mirror_filter.example_vpc_traffic_mirror_filter.id # 指定關聯的篩選條件
traffic_mirror_source_ids = [var.traffic_mirror_source_id] # 指定流量鏡像源
traffic_mirror_target_type = "NetworkInterface" # 指定流量鏡像目的類型
traffic_mirror_target_id = var.traffic_mirror_target_id # 指定流量鏡像目的
#packet_length = 1500 # 如果僅需要查看特定長度的鏡像報文頭,您可以設定鏡像報文長度,系統將對鏡像源業務報文中超過該值的部分進行截斷,再轉寄到鏡像目的。
}流量鏡像配置樣本
將入方向TCP流量鏡像到彈性網卡
將入方向TCP/UDP流量鏡像到不同的鏡像目的
將非VPC內部流量鏡像到跨VPC的鏡像目的
配置以下篩選條件,可以監控來自VPC外部的流量和流出VPC的流量。
例如,按照入方向規則的優先順序,所有源IP在VPC CIDR位址區段內的入方向流量就不採集,但會採集其他所有流量。
由於鏡像目的與鏡像源位於不同VPC,預設網路隔離。需要使用VPC對等串連並在兩端VPC配置路由,確保鏡像目的路由可達。
更多資訊
計費說明
計費項目
流量鏡像費用 = 執行個體費 + 流量處理費
執行個體費 = 啟動鏡像會話的鏡像源個數(個) × 鏡像會話活躍時間長度(小時) × 執行個體費單價(美元/個/小時)
流量處理費 = 鏡像流量總量(GB) × 流量處理費單價(美元/GB)
計費項目 | 單價 |
執行個體費 | 0.014(美元/個/小時) |
流量處理費 | 0.007(美元/GB) |
計費規則
2026年03月31日前,免收流量處理費。
鏡像源啟動鏡像會話後,每個啟用了鏡像會話的鏡像源按小時付費,不足1小時按1小時計費。
單個鏡像源建立了多個鏡像會話,執行個體費僅收取一次。鏡像會話活躍時間長度按照鏡像源在每個鏡像會話中累計的活躍時間長度計算。例如,鏡像源在鏡像會話1中活躍時間長度為5小時,在鏡像會話2中活躍時間長度為4小時,計費時鏡像會話活躍時間長度為9小時。
計費樣本
例如,一個VPC中有5個彈性網卡執行個體啟用了鏡像會話,鏡像會話的活躍時間為30天,每天24小時,鏡像流量總量為20 GB。詳細費用計算如下:
執行個體費 = 5 × 30 × 24 × 0.014 = 50.4 美元
流量處理費 = 20 × 0.007 = 0.14 美元
流量鏡像總費用 = 50.4 + 0.14 = 50.54 美元
欠費與儲值
欠費和續約說明
支援的地區
地區 | 支援流量鏡像的地區 |
亞太地區-中國 | 華東1(杭州)、華東2(上海)、華東5 (南京-本地地區-關停中)、華北1(青島)、華北2(北京)、華北3(張家口)、華北5(呼和浩特)、華北6(烏蘭察布)、華南1(深圳)、華南2(河源)、華南3(廣州)、西南1(成都)、中國香港、華東6(福州-本地地區-關停中) |
亞太地區-其他 | 日本(東京)、韓國(首爾)、新加坡、馬來西亞(吉隆坡)、印尼(雅加達)、泰國(曼穀)、菲律賓(馬尼拉) |
歐美地區 | 德國(法蘭克福)、英國(倫敦)、美國(矽谷)、美國(維吉尼亞) |
中東 | 沙特(利雅得) |
配額
配額名稱 | 描述 | 預設限制 | 提升配額 |
trafficmirror_quota_source_num_per_session | 單個鏡像會話支援加入的鏡像源個數 | 10個 | |
vpc_quota_traffic_mirror_source_num_per_large_ecs_target | 鏡像目的為彈性網卡,且彈性網卡綁定的是以下規格的ECS執行個體時,單個鏡像目的支援的鏡像源個數 | 200個 | |
vpc_quota_traffic_mirror_source_num_per_small_ecs_target | 鏡像目的為彈性網卡,且彈性網卡綁定的不是以下規格的ECS執行個體,單個鏡像目的支援的鏡像源個數 | 20個 | |
vpc_quota_traffic_mirror_rules_num_per_filter | 單個篩選條件支援的篩選規則數 | 20個 | |
無 | 單帳號單地區支援的最大鏡像會話數 | 20000個 | 無法提升 |
單個鏡像源支援建立的最大鏡像會話數 | 3個 | ||
鏡像目的為私網傳統型負載平衡CLB時,單個鏡像目的支援的鏡像源個數 | 500個 | ||
鏡像目的為網關型負載平衡終端節點GWLBe時,單個鏡像目的支援的鏡像源個數 | 500個 | ||
單帳號單地區支援的最大篩選條件數 | 100個 | ||
單個篩選條件支援關聯的鏡像會話數 | 2000個 |