Se uma instância ECS precisar hospedar vários serviços que exigem endereços IP públicos dedicados, use o modo NAT para associar múltiplos EIPs às ENIs da instância.
Você pode associar vários EIPs tanto à ENI primária quanto às ENIs secundárias. Escolha a opção adequada ao seu design de rede. Este tópico usa uma ENI secundária como exemplo.
Funcionamento
Associação de múltiplos EIPs: Anexe uma ENI secundária com vários endereços IP privados a uma instância ECS. Em seguida, associe os EIPs aos endereços IP privados em um mapeamento um para um no modo NAT.
-
Configure o roteamento baseado em políticas para garantir caminhos de tráfego simétricos:
Tráfego de entrada: Quando uma solicitação externa atinge um EIP, o sistema encaminha automaticamente o tráfego para o endereço IP privado associado a esse EIP.
Tráfego de saída: Configure o roteamento baseado em políticas na instância ECS. A política de roteamento usa o endereço IP de source (o endereço IP privado) de um pacote para determinar seu próximo salto e interface de saída (a ENI secundária). Isso garante que o tráfego de resposta saia pelo EIP correto, mantendo o roteamento simétrico e evitando conflitos em ambientes com múltiplas ENIs.
Observações de uso
-
A quantidade de ENIs anexáveis a uma instância ECS e o número de endereços IP privados secundários atribuíveis a uma ENI variam conforme a família da instância.
Por exemplo, uma instância ECS do tipo
ecs.c6.largeaceita no máximo 2 interfaces de rede elásticas (ENIs), incluindo uma ENI primária e uma secundária. Cada ENI suporta até 6 endereços IP privados. Tanto a ENI primária quanto a secundária permitem associar 1 EIP ao endereço IP privado primário e 5 EIPs aos endereços IP privados secundários. -
No modo NAT, a associação dos EIPs às ENIs ocorre via NAT. Esse modo não oferece suporte a protocolos que dependem do NAT Application-Level Gateway (NAT ALG).
É possível associar EIPs tanto a ENIs primárias quanto secundárias.
Como o mapeamento é um para um, a quantidade de EIPs associáveis limita-se ao número de endereços IP privados disponíveis na ENI.
Se sua VPC usar um gateway IPv4 para acesso centralizado à internet, configure uma rota que direcione o tráfego para esse gateway, permitindo que a instância ECS acesse a internet.
Procedimento
Etapa 1: Associar múltiplos EIPs
-
Anexe uma ENI secundária com vários endereços IP privados à instância ECS.
Se você já tiver uma ENI secundária, associe-a diretamente à instância ECS.
Acesse a página de ENIs no console ECS. Na barra de navegação superior, selecione a região onde a instância ECS está localizada.
-
Clique em Create ENI.
Mantenha os valores padrão para os outros parâmetros . Após criar a ENI, clique em Manage ENI IP Addresses na coluna Operation da ENI para adicionar, excluir ou modificar seus endereços IP privados.
Selecione a VPC, o vSwitch e o grupo de segurança aos quais a instância ECS pertence.
Primary Private IP Address: Especifique um endereço IP não utilizado do vSwitch. Se nenhum endereço for especificado, o sistema atribuirá aleatoriamente um dos endereços disponíveis no vSwitch. Esse endereço não pode ser alterado após a criação.
Secondary Private IPv4 Address: Selecione Auto Assign e insira a quantidade de endereços IP privados secundários que deseja atribuir.
Na coluna Operation da ENI desejada, clique em Bind to Instance e selecione a instância ECS alvo.
-
Configure o sistema operacional para reconhecer os endereços IP privados secundários.
Este tópico usa o Alibaba Cloud Linux 3.2 como exemplo. Para outros sistemas operacionais, consulte Configurar o sistema operacional para reconhecer endereços IP privados secundários .
-
Faça login na instância ECS e execute o comando
ip apara visualizar e confirmar as informações da interface de rede.Identificadores de interface:
eth0(ENI primária),eth1(ENI secundária).Status da placa de rede:
state UPindica que a placa de rede funciona normalmente e está ativa na instância. Se o status forstate DOWN, será necessário configurar o sistema operacional Linux para reconhecer a placa de rede.
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000 link/ether 00:xxx:ff altname enp0s5 altname ens5 inet 192.168.0.3/24 brd 192.168.0.255 scope global dynamic noprefixroute eth0 valid_lft 1892159940sec preferred_lft 1892159940sec inet6 xxx/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000 link/ether 00:xxx:ff altname enp0s7 altname ens7 inet 192.168.0.252/24 brd 192.168.0.255 scope global dynamic noprefixroute eth1 valid_lft 1892159958sec preferred_lft 1892159958sec inet6 xxx/64 scope link noprefixroute valid_lft forever preferred_lft forever -
Use
nmcli conpara configurar um endereço IP privado secundário.Execute o comando
sudo vim /etc/cloud/cloud.cfg.d/99-disable-network-config.cfge adicione a configuraçãonetwork: {config: disabled}para desativar a configuração automática de rede pelo cloud-init e evitar que a configuração seja perdida após uma reinicialização.-
Execute
nmcli con showpara visualizar o nome da conexão de rede da interfaceeth1.[root@ixxx Z ~]# nmcli con show NAME UUID TYPE DEVICE System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0 Wired connection 1 c8c8d113-cd19-3945-a292-1a89d8bab4e8 ethernet eth1 -
Execute os comandos abaixo para configurar os endereços IPv4 privados secundários e o gateway padrão da ENI secundária.
Execute o comando
route -npara visualizar o gateway padrão.sudo nmcli con modify "<eth1_connection_name>" ipv4.addresses <secondary_private_IPv4_address_1>,<secondary_private_IPv4_address_2> sudo nmcli con modify "<eth1_connection_name>" ipv4.gateway <default_gateway>sudo nmcli con modify "Wired connection 1" ipv4.addresses 192.168.0.1/24,192.168.0.2/24 sudo nmcli con modify "Wired connection 1" ipv4.gateway 192.168.0.253
-
Execute o comando
sudo nmcli con up "<eth1 network connection name>"para ativar a conexão de rede modificada. Uma mensagem semelhante aConnection successfully activatedindica sucesso na configuração. Execute novamente o comandoip apara visualizar o endereço IP privado secundário.eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8500 qdisc mq state UP group default qlen 1000 link/ether 00:xxx:ff altname enp0s7 altname ens7 inet 192.168.0.1/24 brd 192.168.0.255 scope global noprefixroute eth1 valid_lft forever preferred_lft forever inet 192.168.0.2/24 brd 192.168.0.255 scope global secondary noprefixroute eth1 valid_lft forever preferred_lft forever inet 192.168.0.252/24 brd 192.168.0.255 scope global secondary dynamic noprefixroute eth1 valid_lft 1892159981sec preferred_lft 1892159981sec inet6 fe80::xxx/64 scope link noprefixroute valid_lft forever preferred_lft forever
-
-
Crie múltiplos EIPs e associe-os aos endereços IP privados da ENI secundária.
-
Acesse a página de compra de EIP.
Apenas os parâmetros relevantes estão listados aqui. Para orientações detalhadas, consulte Selecionar um EIP .
Billing Method: O método pagamento conforme o uso é adequado para serviços com cargas de trabalho flutuantes. O método Subscription é ideal para cargas de trabalho estáveis e de longo prazo. Este tópico usa Pay-as-you-go.
Region and Availability ZoneRegion: Selecione a mesma região da sua instância ECS.
Line Type: Esta opção está disponível apenas em algumas regiões.
Protection: Esta opção está disponível apenas para EIPs BGP (Multi-ISP) que usam o método de faturamento pagamento conforme o uso.
Address Pool: Se você já tem um pool de endereços IP, poderá alocar EIPs a partir dele.
Quantity: Insira a quantidade de EIPs que planeja associar.
-
Associe os EIPs aos endereços IP privados da ENI secundária em um mapeamento um para um.
Acesse a página Elastic IP Addresses. Na barra de navegação superior, selecione a região onde os EIPs estão localizados.
Para cada EIP, clique em Associate with Resource na coluna Actions. Selecione ENI e escolha o endereço IP privado secundário correspondente.
-
Etapa 2: Configurar roteamento baseado em políticas
Configure o roteamento baseado em políticas na instância ECS para garantir caminhos de tráfego simétricos.
-
Faça login na instância ECS e adicione uma rota padrão para a ENI secundária
eth1: crie uma tabela de rotastable 1001e uma política de roteamento correspondente para o endereço IP privado.ip -4 route add default via <default_gateway> dev eth1 metric 1001 && \ ip -4 route add default via <default_gateway> dev eth1 table 1001 && \ ip -4 rule add from <secondary_eni_private_ipv4_address_1> lookup 1001 && \ ip -4 rule add from <secondary_eni_private_ipv4_address_2> lookup 1001 && \ ip -4 rule add from <secondary_eni_private_ipv4_address_3> lookup 1001 -
Execute o comando
ip route list table 1001 && ip rule listpara visualizar a tabela de rotas criada e as rotas baseadas em políticas.[root@iZ ~]# ip route list table 1001 && ip rule list default via 192.168.0.253 dev eth1 0: from all lookup local 32763: from 192.168.0.2 lookup 1001 32764: from 192.168.0.1 lookup 1001 32765: from 192.168.0.252 lookup 1001 32766: from all lookup main 32767: from all lookup default -
Configure as rotas para atualização automática na inicialização, garantindo que a configuração persista entre reinicializações.
Execute
vim /etc/rc.locale adicione ao arquivo os comandos para criação da tabela de rotas e do roteamento baseado em políticas.Execute
sudo chmod +x /etc/rc.localpara adicionar permissões de execução.
Etapa 3: Verificar a configuração
Verificar endereços IP de saída
Faça login na instância ECS, execute curl --interface <private IP address of the secondary ENI> https://ifconfig.me e verifique se o endereço IP público de saída para o tráfego enviado de cada endereço IP privado corresponde ao EIP associado.
[root@iZbxxx ~]# echo $(curl --silent --interface 192.168.0.2 https://ifconfig.me)
47.xxx.xxx.13
[root@iZbxxx ~]# echo $(curl --silent --interface 192.168.0.1 https://ifconfig.me)
121.xxx.xxx.23
[root@iZbxxx ~]# echo $(curl --silent --interface 192.168.0.252 https://ifconfig.me)
121.xxx.xxx.175
Verificar caminhos de tráfego simétricos
Faça login em outra instância ECS de teste com acesso à internet e execute
ping <EIP bound to the secondary ENI>.Simultaneamente, faça login nesta instância ECS e execute o comando
tcpdump -i eth1 icmppara capturar pacotes ICMP na interfaceeth1.
Observe que o pacote entra pela interface eth1 e também retorna por eth1, demonstrando que os caminhos de tráfego de entrada e saída são consistentes.
[root@iZbp1xxx_uv2Z ~]# tcpdump -i eth1 icmp
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 262144 bytes
10:14:34.410905 IP 47.xxx.xxx.250 > iZbpxxx_uv2Z: ICMP echo request, id 19, seq 1, length 64
10:14:34.410944 IP iZbpxxx_juv2Z > 47.xxx.xxx.250: ICMP echo reply, id 19, seq 1, length 64
10:14:35.412272 IP 47.xxx.xxx.250 > iZbpxxx_juv2Z: ICMP echo request, id 19, seq 2, length 64
10:14:35.412307 IP iZbpxxx_juv2Z > 47.xxx.xxx.250: ICMP echo reply, id 19, seq 2, length 64
10:14:36.413675 IP 47.xxx.xxx.250 > iZbpxxx_uv2Z: ICMP echo request, id 19, seq 3, length 64
10:14:36.413707 IP iZbpxxx_juv2Z > 47.xxx.xxx.250: ICMP echo reply, id 19, seq 3, length 64
Considerações para produção
Prevenção de riscos: Esta solução usa uma única instância ECS. Para alta disponibilidade, use um balanceador de carga. Lembre-se de que reiniciar a instância ou alterar configurações de rede pode causar interrupções no serviço.
Monitoramento e alertas: Configure monitoramento e alertas para métricas essenciais na ENI secundária, como tráfego de rede, utilização de CPU e uso de memória, para detectar anomalias rapidamente.
Reforço de segurança: Configure o grupo de segurança da ENI secundária seguindo o princípio do menor privilégio. Permita apenas as portas e endereços IP de source estritamente necessários para seus serviços.
Faturamento
-
-
Taxa de configuração de EIP (taxa de retenção de IP público):
EIP com pagamento conforme o uso: Quando associado a uma ENI secundária, uma taxa de configuração (taxa de retenção de IP público) é cobrada mesmo sem tráfego de internet.
EIP com Subscription: Nenhuma taxa de configuração é cobrada.
-
Taxa de tráfego de internet:
EIP com pagamento conforme o uso: As taxas são cobradas com base no método de faturamento selecionado (por largura de banda ou por tráfego).
EIP com Subscription: As taxas são cobradas com base na largura de banda de pico.
-
Outros recursos: Recursos como instâncias ECS são faturados conforme suas regras padrão. ENIs secundárias são gratuitas.