O espelhamento de tráfego da VPC copia o tráfego de entrada e saída da ENI correspondente às condições do filtro e o encaminha para dispositivos de análise de segurança para inspeção em tempo real, sem afetar o desempenho da instância.
Casos de uso comuns
-
Segurança: detecção de intrusão
Capture todos os pacotes de um fluxo específico para inspeção por software de segurança proprietário ou de terceiros e detecte vulnerabilidades e intrusões em tempo real.
-
Auditoria: conformidade financeira ou governamental
Espelhe o tráfego da instância para uma plataforma de auditoria unificada para atender aos requisitos de conformidade financeira ou regulatória.
-
O&M: solução de problemas de rede
Analise retransmissões TCP e outros padrões de tráfego para solucionar problemas de rede sem fazer login em uma instância ECS.
Como funciona
Fluxo de trabalho
Uma sessão de espelhamento de tráfego define o caminho de encaminhamento. Após o início, a sessão executa as seguintes etapas:
-
Copia pacotes da source do espelhamento de tráfego correspondentes às condições do filtro.
Somente ENIs são compatíveis como origens de espelhamento de tráfego.
Um filtro de espelhamento de tráfego contém regras de entrada e saída. Cada regra corresponde ao tráfego por tupla-5 (bloco CIDR de origem, porta de origem, bloco CIDR de destino, porta de destino e protocolo) e é avaliada por prioridade.
-
Encapsula os pacotes copiados no formato padrão de pacote VXLAN.
Identificador de Rede VXLAN (VNI): distingue dados espelhados entre sessões. É atribuído aleatoriamente se não for especificado.
IP de origem: IP principal da source do espelhamento de tráfego.
Porta de origem: derivada do hash da tupla-5 do pacote.
IP de destino: IP principal do destino do espelhamento de tráfego.
Porta de destino: a porta 4789 é usada por padrão e não pode ser modificada.
-
Encaminha os pacotes espelhados para o destino. Se a source e o destino estiverem em VPCs diferentes, configure uma conexão de peering de VPC.
Destinos compatíveis: ENIs, CLBs voltados para a rede interna e endpoints do Gateway Load Balancer (GWLB).
As regiões que oferecem suporte ao encaminhamento de tráfego para endpoints GWLB são China (Hangzhou) , China (Shanghai) , China (Qingdao) , China (Beijing) , China (Hohhot) , China (Shenzhen) , Singapore, US (Silicon Valley) e US (Virginia) .
Os pacotes copiados ignoram grupos de segurança e ACLs de rede na source. No entanto, o grupo de segurança e a ACL de rede do destino devem permitir tráfego UDP de entrada na porta 4789.
Quando o destino é um CLB voltado para a rede interna, configure um listener UDP na porta 4789. Um GWLB escuta em todas as portas.
Regras de correspondência
Cada pacote de uma determinada source só pode ser espelhado uma vez, mesmo que corresponda a várias sessões.
Tomando o tráfego de entrada como exemplo:
Se uma source pertence a uma única sessão, as regras de entrada são avaliadas por prioridade em relação à tupla-5. A primeira correspondência determina a ação. O tráfego sem correspondência não é espelhado.
Caso uma source pertença a múltiplas sessões, os filtros são avaliados pela prioridade da sessão. Quando nenhuma regra corresponde em uma sessão, a próxima sessão é verificada. O tráfego sem correspondência em todas as sessões não é espelhado.
Tamanho do pacote no destino
-
Pacotes de service fragmentados
-
Se um pacote de service exceder o MTU do link, ele será fragmentado antes da transmissão.
Exemplo: um pacote de 2.000 bytes com um MTU de link de 1.500 bytes é fragmentado em 1.500 bytes e 500 bytes.
O MTU padrão do link no Alibaba Cloud é de 1.500 bytes. Alguns componentes, como gateways VPN, possuem um MTU menor.
-
Se TSO ou UFO estiver ativado na instância ECS de origem, os pacotes fragmentados poderão ser espelhados de forma diferente. Para receber todos os fragmentos, desative o TSO/UFO (o que pode afetar o desempenho) ou use uma família de instâncias de sétima geração ou superior.
O número da geração aparece no nome da família da instância, como ecs.g7se.xlarge.
-
-
Truncamento de pacote espelhado: se um pacote espelhado (original + cabeçalho VXLAN de 50 bytes) exceder o MTU do caminho de encaminhamento, o sistema o trunca.
-
Nas regiões China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Hohhot), China (Shenzhen), Singapore, US (Silicon Valley) e US (Virginia), o tamanho do pacote espelhado é limitado pelo MTU do destino. Famílias de instâncias primárias de oitava geração oferecem suporte a jumbo frames (MTU 8500). Ative-os no destino para evitar truncamento.
-
Em outras regiões, o tamanho do pacote espelhado é limitado pelo MTU padrão do link (1.500 bytes).
-
-
Para capturar apenas cabeçalhos de pacotes até um comprimento específico, defina o Mirrored Packet Length. O sistema trunca o pacote de service além desse comprimento antes do encaminhamento.
Limites
-
Origem e destino:
A mesma ENI não pode servir simultaneamente como source e destino. ENIs gerenciadas não são compatíveis como origens ou destinos.
O destino do espelhamento de tráfego deve ser roteável dentro da VPC. Se não houver uma rota específica para o destino de espelhamento e o vSwitch da instância de origem tiver uma rota padrão apontando para um gateway NAT, o tráfego espelhado seguirá a rota padrão para o gateway NAT. Isso pode fazer com que o gateway NAT receba tráfego inesperado e interrompa services.
Região e conta: source e destino devem estar na mesma conta e região, mas podem estar em VPCs diferentes. O espelhamento entre regiões e entre contas não é suportado.
Versão do IP: somente IPv4 é suportado.
Largura de banda: o espelhamento consome a largura de banda da instância. Quando a largura de banda é totalmente utilizada, os pacotes espelhados são descartados para priorizar o tráfego de service.
Tipo de tráfego: tráfego descartado por ACLs de rede ou grupos de segurança, tráfego de log de fluxo, tráfego ARP e tráfego DHCP não podem ser espelhados.
Priority determina a prioridade de uma regra. O valor varia de 1 a 16777216. Um valor menor indica maior prioridade. As prioridades das regras de entrada ou saída no mesmo filtro de espelhamento de tráfego devem ser únicas.
Para TCP(6) ou UDP(17), defina o intervalo de portas (0–65535) no formato
start port/end port. Outros tipos de protocolo não suportam intervalos de portas. Padrão: -1/-1 (sem restrição de porta).-
Crie critérios de filtro
Se você já possui um filtro adequado, pule esta etapa e crie uma sessão diretamente.
Acesse a página VPC console - Filter. Na barra de navegação superior, selecione a região de destino. Clique em Create Filter.
-
Configure regras de entrada e saída para especificar qual tráfego espelhar. Um filtro sem regras não espelha nenhum tráfego.
É possível configurar até 10 regras de entrada e 10 de saída durante a criação. Posteriormente, adicione, edite ou exclua regras.
Para excluir um filtro, desassocie-o de todas as sessões primeiro e depois clique em Delete na coluna Actions.
-
Crie uma sessão de espelhamento de tráfego
Acesse a página VPC console - Traffic Mirror Session. Na barra de navegação superior, selecione a região de destino. Clique em Create Traffic Mirror Session.
-
Configure a sessão de espelhamento de tráfego:
VNI: ID de rede virtual que distingue dados espelhados entre sessões. Valores válidos: 0 a 16777215. Se não for especificado, o sistema atribui um aleatoriamente.
Configure a Priority: quando uma source pertence a várias sessões, o tráfego é espelhado com base na Priority da sessão. Valores válidos: 1 a 32766. Um valor menor indica maior prioridade. As prioridades devem ser únicas entre sessões na mesma região e conta.
Para capturar apenas cabeçalhos de pacotes até um comprimento específico, defina o Mirrored Packet Length. O sistema trunca o pacote de service além desse comprimento antes do encaminhamento.
Configure o filtro associado, a source e o destino.
-
Inicie a sessão de espelhamento de tráfego
Após criar a sessão, ative-a. Alternativamente, retorne à lista de sessões e clique em Start na coluna Actions.
Se o tráfego de source corresponder ao filtro, execute
tcpdump -i name of the NIC corresponding to the traffic mirror destination udp port 4789 -nneno destino para visualizar os pacotes espelhados.
Chame a operação CreateTrafficMirrorFilter para criar um filtro de espelhamento de tráfego.
Chame a operação CreateTrafficMirrorFilterRules para criar regras de entrada ou saída para o filtro de espelhamento de tráfego.
Chame a operação CreateTrafficMirrorSession para criar uma sessão de espelhamento de tráfego.
Chame a operação UpdateTrafficMirrorSessionAttribute e defina o parâmetro
Enabledcomotruepara iniciar a sessão de espelhamento de tráfego.Chame a operação AddSourcesToTrafficMirrorSession ou RemoveSourcesFromTrafficMirrorSession para adicionar ou remover origens de uma sessão.
Chame a operação UpdateTrafficMirrorSessionAttribute para modificar a configuração de uma sessão ou alterar seu destino ou filtro.
Chame a operação CreateTrafficMirrorFilterRules para criar regras de entrada ou saída para o filtro de espelhamento de tráfego.
Chame a operação DeleteTrafficMirrorFilterRules para excluir regras de entrada ou saída de um filtro de espelhamento de tráfego.
Chame a operação DeleteTrafficMirrorFilter para excluir um filtro de espelhamento de tráfego.
Chame a operação UpdateTrafficMirrorSessionAttribute e defina o parâmetro
Enabledcomofalsepara parar a sessão de espelhamento de tráfego.Chame a operação DeleteTrafficMirrorSession para excluir uma sessão de espelhamento de tráfego.
Taxa de instância = Número de origens de espelhamento de tráfego com sessões ativas (quantidade) × Duração ativa das sessões (horas) × Preço unitário da taxa de instância (USD/quantidade/hora)
Taxa de processamento de dados = Total de dados espelhados (GB) × Preço unitário (USD/GB)
As taxas de processamento de dados estão isentas até 31 de março de 2027.
A cobrança é feita por hora, por source com sessão ativa. O uso inferior a uma hora é arredondado para cima.
Se várias sessões compartilharem uma source, a taxa de instância é cobrada uma única vez. A duração faturável é o tempo ativo acumulado em todas as sessões. Exemplo: 5 horas na sessão 1 mais 4 horas na sessão 2 = 9 horas faturáveis.
Taxa de instância = 5 × 30 × 24 × 0,014 = USD 50,4
Taxa de processamento de dados = 20 × 0,007 = USD 0,14
Taxa total de espelhamento de tráfego = 50,4 + 0,14 = USD 50,54
Crie ou exclua uma sessão de espelhamento de tráfego
O sistema avalia o tráfego de source em relação às regras de filtro associadas. Uma correspondência de regra é determinada pela Priority, Protocol Type, Source CIDR Block, Destination CIDR Block, Source Port e Destination Port. Em caso de correspondência, o sistema execute a ação especificada para determinar se deve espelhar o tráfego. Os dados espelhados são então encaminhados para o destino.
Console
Ao usar o espelhamento de tráfego pela primeira vez, ative o service. Faça login na página de ativação do espelhamento de tráfego e siga as instruções.
Crie um espelhamento de tráfego
Modifique um espelhamento de tráfego
Na página de detalhes da sessão, você pode Change o destino e o filtro, Add ou Delete origens, ou modifique o VNI, a prioridade e o comprimento do pacote espelhado.
Parar ou exclua uma sessão de espelhamento de tráfego
Na coluna Actions da sessão de destino, clique em Stop ou Delete.
API
Crie um espelhamento de tráfego
Antes do primeiro uso, chame a operação OpenTrafficMirrorService para ativar o service.
Modifique um espelhamento de tráfego
Modifique ou exclua critérios de filtro
Parar ou exclua um espelhamento de tráfego
Terraform
Este exemplo espelha apenas tráfego TCP de entrada e saída. Ajuste as regras de filtro conforme suas necessidades.
Recursos: alicloud_vpc_traffic_mirror_filter , alicloud_vpc_traffic_mirror_session
# Specify the region where you want to create the traffic mirror.
provider "alicloud" {
region = "cn-hangzhou"
}
# Specify the ID of the traffic mirror source.
variable "traffic_mirror_source_id" {
default = "eni-hp3e******" # Replace with the actual ID of the ENI.
}
# Specify the ID of the traffic mirror destination.
variable "traffic_mirror_target_id" {
default = "eni-hp3h******" # Replace with the actual ID of the ENI.
}
# Create a traffic mirror filter and configure inbound and outbound rules to collect all TCP traffic that enters and leaves the traffic mirror source.
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"
}
}
# Create a traffic mirror session.
resource "alicloud_vpc_traffic_mirror_session" "example_vpc_traffic_mirror_session" {
traffic_mirror_session_name = "example_vpc_traffic_mirror_session"
priority = 1 # Specify the priority of the traffic mirror session. If a traffic mirror source is added to multiple traffic mirror sessions, the traffic is mirrored to a destination based on the priority of the traffic mirror sessions. Valid values: 1 to 32766. A smaller value indicates a higher priority. The priorities of traffic mirror sessions created in the same region with the same account must be unique.
virtual_network_id = 10 # Specify the VNI of the traffic mirror session. It is used to distinguish mirrored data from different sessions. Valid values: 0 to 16777215. If you do not specify a VNI, the system randomly assigns one.
traffic_mirror_filter_id = alicloud_vpc_traffic_mirror_filter.example_vpc_traffic_mirror_filter.id # Specify the associated traffic mirror filter.
traffic_mirror_source_ids = [var.traffic_mirror_source_id] # Specify the traffic mirror source.
traffic_mirror_target_type = "NetworkInterface" # Specify the type of the traffic mirror destination.
traffic_mirror_target_id = var.traffic_mirror_target_id # Specify the traffic mirror destination.
#packet_length = 1500 # If you only need to view the header of a mirrored packet of a specific length, you can set the mirrored packet length. The system truncates the part of the service packet from the traffic mirror source that exceeds this value and then forwards it to the traffic mirror destination.
}
Exemplos
Espelhar tráfego TCP de entrada para uma ENI
Espelhar tráfego TCP/UDP de entrada para destinos diferentes
Espelhar tráfego de fora de uma VPC para outra VPC
Configure um filtro para monitorar o tráfego que entra e sai de uma VPC a partir de fontes externas.
Use a prioridade da regra para excluir o tráfego intra-VPC e espelhar todo o outro tráfego de entrada.
Se a source e o destino estiverem em VPCs diferentes, conecte-as com uma conexão de peering de VPC e configure rotas em ambas as VPCs.
Mais informações
Faturamento
Itens faturáveis
Taxa de espelhamento de tráfego = taxa de instância + taxa de processamento de dados
Item faturável | Preço unitário |
Taxa de instância | 0,014 (USD/quantidade/hora) |
Taxa de processamento de dados | 0,007 (USD/GB) |
Regras de faturamento
Exemplo de faturamento
Cinco ENIs em uma VPC têm sessões de espelhamento de tráfego ativadas 24 horas por dia durante 30 dias. Total de dados espelhados: 20 GB.
Pagamentos em atraso e recargas
Regiões suportadas
Área | Regiões |
Ásia-Pacífico - China | China (Hangzhou), China (Shanghai), China (Nanjing - Local Region, Closing Down), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Ulanqab), China (Shenzhen), China (Heyuan), China (Guangzhou), China (Chengdu), China (Hong Kong) e China (Fuzhou - Local Region, Closing Down) |
Ásia-Pacífico - Outros | Japan (Tokyo), South Korea (Seoul), Singapore, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Thailand (Bangkok), Philippines (Manila) |
Europa e Américas | Germany (Frankfurt), UK (London), US (Silicon Valley) e US (Virginia) |
Oriente Médio | SAU (Riyadh - Partner Region) |
Cotas
Nome da cota | Descrição | Limite padrão | Ajustável |
trafficmirror_quota_source_num_per_session | Número máximo de origens de espelhamento de tráfego que podem ser adicionadas a uma sessão de espelhamento de tráfego. | 10 | Sim. Para solicitar um aumento de cota, acesse a página Gerenciamento de Cotas ou o Quota Center. |
vpc_quota_traffic_mirror_source_num_per_large_ecs_target | Número máximo de origens de espelhamento de tráfego para um destino de espelhamento de tráfego que seja uma ENI anexada a um dos seguintes tipos de instância ECS. | 200 | |
vpc_quota_traffic_mirror_source_num_per_small_ecs_target | Número máximo de origens de espelhamento de tráfego para um destino de espelhamento de tráfego que seja uma ENI anexada a uma instância ECS de tipo diferente dos listados abaixo. | 20 | |
vpc_quota_traffic_mirror_rules_num_per_filter | Número máximo de regras de filtro que podem ser criadas para um único filtro. | 20 | |
Nenhum | Número máximo de sessões de espelhamento de tráfego que podem ser criadas com uma única conta em uma única região. | 20.000 | Não |
Número máximo de sessões de espelhamento de tráfego por source de espelhamento de tráfego. | 3 | ||
Número máximo de origens de espelhamento de tráfego suportadas por um único destino de espelhamento de tráfego quando o destino é um Classic Load Balancer (CLB) privado. | 500 | ||
Número máximo de origens de espelhamento de tráfego para um destino de espelhamento de tráfego que seja um endpoint do Gateway Load Balancer (GWLBe). | 500 | ||
Número máximo de filtros que podem ser criados com uma única conta em uma única região. | 100 | ||
Número máximo de sessões de espelhamento de tráfego por filtro. | 2.000 |