Endereços IP e portas
Esta página descreve como os gateways NAT da nuvem usam endereços IP e como atribuem portas de origem a instâncias de máquinas virtuais (VMs) do Compute Engine e nós do Google Kubernetes Engine (GKE) que usam os gateways.
Antes de rever estas informações, familiarize-se com a vista geral do Cloud NAT.
Endereços IP NAT públicos
Um endereço IP NAT público é um endereço IP externo regional que é encaminhável na Internet. Uma VM sem um endereço IP externo, que se encontra numa sub-rede (subnet) publicada por um gateway NAT público, usa um endereço IP NAT público quando envia pacotes para um destino na Internet.
Para atribuir endereços IP de tradução de endereços de rede (NAT) a um gateway NAT público, use um dos seguintes métodos:
Atribuição automática de endereços IP NAT. Quando seleciona este método ou escolhe as predefinições, o NAT público adiciona automaticamente endereços IP externos regionais ao gateway com base no seguinte: Google Cloud
- O nível da rede que selecionar
- O número de VMs que usam a porta de entrada
- O número de portas reservadas para cada VM
O NAT público também remove automaticamente um endereço IP NAT quando já não precisa de portas de origem nesse endereço IP NAT.
Seguem-se as caraterísticas da atribuição automática de endereços IP NAT:
Quando um gateway NAT público adiciona um endereço IP NAT, cria um endereço IP externo regional estático (reservado) no nível de rede que selecionou no momento da configuração do gateway. Por exemplo, se tiver selecionado o nível Premium, o gateway NAT público cria o endereço IP nesse nível. Os níveis de rede suportados são o nível premium (opção predefinida) e o nível padrão.
Os endereços IP NAT adicionados automaticamente podem ser vistos na lista de endereços IP externos estáticos. Estes endereços não são contabilizados nas quotas por projeto.
- Se alterar o nível da rede de um gateway NAT público, os endereços IP existentes desse gateway são libertados e é atribuído um novo conjunto de endereços IP do nível selecionado.
- Com a atribuição automática, não pode prever o próximo endereço IP que é atribuído. Se depender do conhecimento do conjunto de endereços IP NAT possíveis antecipadamente (por exemplo, para criar uma lista de autorizações), deve usar a atribuição manual de endereços IP NAT.
Quando os endereços IP NAT adicionados automaticamente deixam de estar em utilização, são removidos. No entanto, o NAT público só anula a atribuição de um endereço quando a última VM atribuída ao endereço deixa de usar portas. Como tal, quando o número de VMs que usam o NAT público diminui, pode não ver uma redução no IP . O motivo é que o Cloud NAT não realoca dinamicamente VMs de um endereço IP para outro, porque a realocação interromperia as ligações estabelecidas. Enquanto pelo menos uma VM estiver a usar um endereço IP, o endereço IP permanece ativo e podem ser-lhe atribuídas novas VMs.
Se quiser poder reatribuir manualmente VMs de um endereço IP para outro de forma a minimizar a utilização de endereços IP, use atribuições manuais de endereços IP NAT. A atribuição manual de endereços IP NAT permite a drenagem de endereços IP NAT públicos.
Se mudar posteriormente para a atribuição manual de endereços IP NAT, os endereços IP externos regionais reservados automaticamente são eliminados. Para mais informações, consulte o artigo Mudar o método de atribuição.
Atribuição manual de endereços IP NAT. Quando seleciona esta opção, cria e atribui manualmente endereços IP externos regionais estáticos (reservados) ao gateway NAT público. Pode atribuir manualmente endereços IP a partir do nível Premium, do nível Standard ou de ambos, sujeito a condições.
- Pode aumentar ou diminuir o número de endereços IP NAT atribuídos manualmente editando o gateway NAT da nuvem.
- Quando usar a atribuição manual de endereços IP NAT, tem de calcular o número de endereços IP externos regionais de que precisa para o gateway NAT público. Se o gateway ficar sem endereços IP NAT, o NAT público elimina pacotes. Os pacotes rejeitados são registados quando usa o registo do Cloud NAT para ativar o registo de erros.
- Para ver exemplos de cálculos, consulte o exemplo de reserva de porta.
Para o número máximo de endereços IP NAT atribuídos automaticamente ou manualmente, consulte os limites do Cloud NAT.
Atribua manualmente uma combinação de endereços IP do Nível Premium e do Nível Padrão
Quando cria um gateway NAT público com o método de atribuição de endereços IP NAT manual, pode atribuir uma combinação de endereços IP de nível Premium e de nível Standard, desde que os endereços IP de diferentes níveis de rede não pertençam à mesma regra (incluindo a regra predefinida).
Numa regra (incluindo a regra predefinida), todos os endereços IP atribuídos a intervalos ativos têm de ser do mesmo nível de rede. Se tentar usar endereços IP de diferentes níveis como parte da mesma regra,o Google Cloud rejeita a configuração.
Mude o método de atribuição
Pode mudar um gateway NAT público da atribuição automática de endereços IP NAT para a atribuição manual de endereços IP NAT. No entanto, os endereços IP NAT não podem ser preservados. Embora os endereços IP NAT atribuídos automaticamente sejam estáticos, não podem ser movidos para uma atribuição manual de endereços IP NAT. Por exemplo, não pode começar a usar um gateway NAT público com endereços IP NAT atribuídos automaticamente e, mais tarde, usar os mesmos endereços quando mudar para endereços IP NAT atribuídos manualmente.
O conjunto de endereços IP externos regionais que o NAT público usa para a atribuição automática de endereços IP NAT é diferente do conjunto de endereços IP externos regionais que pode escolher manualmente.
Esvazie os endereços IP NAT públicos
Quando configura um gateway NAT público com atribuição manual de endereços IP NAT, pode escolher o que acontece quando precisa de reduzir o número de endereços IP NAT que o gateway usa:
Se remover um endereço IP NAT atribuído manualmente, as ligações NAT estabelecidas são interrompidas imediatamente.
Em alternativa, pode optar por desativar um endereço IP NAT atribuído manualmente. A drenagem indica ao gateway NAT público que pare de usar o endereço IP NAT para novas ligações, mas que continue a usá-lo para ligações estabelecidas. As ligações estabelecidas podem ser fechadas normalmente em vez de serem terminadas abruptamente. Para esgotar um endereço IP associado a um gateway NAT público que não usa regras NAT, consulte o artigo Esgote endereços IP externos associados ao NAT. Para esgotar um endereço IP associado a um gateway NAT que usa regras NAT, consulte o artigo Atualize as regras NAT.
Endereços IP NAT privados
Um endereço NAT privado é um endereço IPv4 interno regional que
provém do intervalo de endereços IPv4 principal de uma sub-rede
NAT privada localizada na mesma região e rede VPC que um
gateway NAT privado. Um endereço IP NAT privado não é encaminhável na Internet. Os endereços IP dos intervalos de endereços IPv4 principais das sub-redes NAT privadas só podem ser usados por gateways NAT privadas. Para criar uma sub-rede NAT privada, adicione uma sub-rede apenas IPv4 através da CLI Google Cloud e da flag --purpose=PRIVATE_NAT
.
Depois de configurar um gateway NAT privado para fornecer serviços NAT para uma sub-rede numa rede VPC, as VMs com interfaces de rede nessa sub-rede podem enviar pacotes para recursos localizados noutras redes, como redes VPC anexadas ao mesmo hub do Network Connectivity Center que a rede que aloja o gateway NAT privado ou redes fora de Google Cloud que estão ligadas aGoogle Cloud através do Cloud Interconnect ou do Cloud VPN. Na saída, Google Cloud altera o endereço IP de origem para um endereço IP da sub-rede NAT privada associado ao gateway.
Seguem-se as caraterísticas dos endereços IP NAT privados:
- Não pode atribuir automaticamente endereços IP NAT privados a um gateway NAT privado. Em alternativa, quando cria uma regra num gateway NAT privado, especifica manualmente a sub-rede ou as sub-redes NAT privadas. As sub-redes NAT privadas têm de estar localizadas na mesma rede VPC e região que o gateway. O gateway usa endereços IP apenas dos intervalos de endereços IPv4 primários das sub-redes NAT privadas.
- Para determinar quantos endereços IP NAT cada sub-rede NAT privada pode fornecer, use a seguinte fórmula:
2(32 - PREFIX_LENGTH) - 4
, ondePREFIX_LENGTH
é o comprimento da máscara de sub-rede do intervalo de endereços IPv4 principal da sub-rede NAT privada. Quatro endereços IP são inutilizáveis em todos os intervalos de endereços IPv4 principais da sub-rede.
Portas
Cada endereço IP NAT num gateway NAT da nuvem (NAT público e NAT privado) oferece 64 512 portas de origem TCP e 64 512 portas de origem UDP. O TCP e o UDP suportam 65 536 portas por endereço IP. O Cloud NAT não usa as portas conhecidas (privilegiadas) (0 a 1023).
Quando um gateway Cloud NAT realiza a tradução de endereços de rede de origem (SNAT) num pacote enviado por uma VM, altera o endereço IP de origem do NAT e a porta de origem do pacote.
Quando cria um gateway NAT da nuvem, escolhe se quer usar a atribuição de portas estática ou a atribuição de portas dinâmica. Pode alterar o método de atribuição de portas após criar o gateway. Para saber como a alteração do método de atribuição de portas para um gateway NAT da nuvem afeta as ligações estabelecidas, consulte o artigo Mude o método de atribuição de portas.
Se tiver atribuído manualmente vários endereços IP externos regionais estáticos (reservados) ao seu gateway NAT público, uma única VM que use o gateway pode obter as portas necessárias de qualquer um dos endereços IP NAT atribuídos, mesmo de vários endereços IP NAT em simultâneo.
Atribuição de portas estática
Quando configura a atribuição de portas estática, especifica um número mínimo de portas por instância de VM. Se não especificar o número mínimo de portas por VM, oGoogle Cloud usa o valor predefinido.
A atribuição de portas estática está ativada, por predefinição, para o NAT público. Por outro lado, o NAT privado usa a atribuição de portas dinâmica por predefinição.
Uma vez que todas as VMs têm o mesmo número de portas atribuídas, a atribuição de portas estática funciona melhor se todas as VMs tiverem uma utilização de saída semelhante. Quando a atribuição de portas estáticas está configurada, o número de portas atribuídas a cada VM é fixo e não se altera se algumas VMs usarem mais portas do que outras ou se uma VM esgotar todas as suas portas. Se a utilização da saída variar, considere configurar a atribuição dinâmica de portas.
Se quiser configurar o mapeamento independente do ponto final na gateway NAT pública, tem de usar a atribuição de portas estática. O mapeamento independente do ponto final não está disponível para gateways NAT privados.
Atribuição dinâmica de portas
Quando configura a atribuição dinâmica de portas, especifica um número mínimo de portas por instância de VM e um número máximo de portas por instância de VM.
A atribuição dinâmica de portas está ativada por predefinição para o NAT privado. O NAT público usa a atribuição estática de portas por predefinição.
A configuração da atribuição dinâmica de portas permite que o mesmo gateway Cloud NAT atribua diferentes números de portas por VM, com base na utilização da VM. Inicialmente, é atribuído a uma VM o número mínimo de portas por instância de VM. Se uma VM estiver prestes a esgotar todas as portas que lhe estão atribuídas, o número de portas atribuídas à VM é duplicado. A VM pode pedir repetidamente mais portas até ao número máximo de portas por instância de VM. Quando a utilização de portas diminui significativamente, as portas são desalocadas e podem ser alocadas a outras VMs que usam o mesmo gateway NAT.
A atribuição dinâmica de portas tem as seguintes vantagens:
O número de portas atribuídas, mas não usadas, é reduzido.
O gateway NAT monitoriza a utilização de portas de cada VM e modifica o número de portas atribuídas a cada VM, com base na necessidade. Não precisa de monitorizar a utilização de portas nem ajustar a configuração do gateway NAT.
Antes de usar a atribuição dinâmica de portas, considere o seguinte:
Se o mapeamento independente do ponto final estiver ativado no gateway NAT na nuvem, não pode configurar a atribuição dinâmica de portas. Se precisar de mapeamento independente do ponto final, use a atribuição de portas estática.
Enquanto são atribuídas portas adicionais às VMs, pode ocorrer um limite de tempo atingido ou latência na ligação. Para ver estratégias que ajudam a evitar falhas de ligação, consulte o artigo Reduza as falhas de ligação com a atribuição dinâmica de portas.
Altere o método de atribuição de portas
Pode alternar entre a atribuição de portas estática e a atribuição de portas dinâmica para um gateway Cloud NAT específico.
A mudança para o método de atribuição de portas dinâmico interrompe as ligações NAT existentes apenas se for cumprida uma das seguintes condições:
Definiu o número máximo de portas por VM para um valor inferior ao número mínimo de portas por VM especificado na configuração de NAT anterior (com atribuição de portas estática).
Se, na configuração anterior, o número mínimo de portas por VM tiver sido definido como superior a
1024
e especificar1024
como o número máximo de portas por VM na nova configuração, as ligações existentes são interrompidas porque a primeira condição tem precedência.Definir o número máximo de portas por VM para um valor inferior a
1024
.
A menos que se verifique uma das condições anteriores, a mudança para a atribuição dinâmica de portas não interrompe as ligações NAT existentes.
A desativação da atribuição dinâmica de portas e a mudança para a atribuição estática de portas é perturbadora e interrompe todas as associações NAT ativas.
Procedimento de reserva de porta
O Cloud NAT usa o seguinte procedimento para aprovisionar o endereço IP de origem NAT e as tuplas de porta de origem para cada VM que a gateway do Cloud NAT (NAT público e NAT privado) serve.
O Cloud NAT determina os endereços IP internos da VM para os quais o NAT deve ser realizado. Os endereços IP internos da VM são determinados pelos intervalos de endereços IP da sub-rede que o gateway foi configurado para publicar.
Se o gateway NAT público estiver configurado para realizar NAT para o intervalo de endereços IP principal da sub-rede usada pela interface de rede da VM, o gateway realiza NAT para ambos, o endereço IP interno principal da VM e qualquer um dos intervalos de IPs de alias do intervalo de endereços IP principal da sub-rede.
Se o gateway NAT público estiver configurado para realizar NAT para um intervalo de endereços IP secundário da sub-rede usada pela interface de rede da VM, o gateway realiza NAT para quaisquer intervalos de IP de alias do intervalo de endereços IP secundário dessa sub-rede.
Uma vez que um gateway NAT privado está configurado para realizar NAT para todos os intervalos de endereços IP da sub-rede usada pela interface de rede da VM, o gateway realiza NAT para todos os intervalos de IP dessa sub-rede.
O Cloud NAT ajusta as portas mínimas por instância de VM, se necessário. Se a atribuição de portas estáticas estiver configurada e o gateway realizar NAT para intervalos de IPs de alias que tenham mais do que um endereço (máscara de rede inferior a
/32
), o Cloud NAT ajusta as portas mínimas por VM para o máximo destes dois valores:O número mínimo de portas por instância de VM que especificar
O número 1024
Em todas as outras situações, incluindo quando a atribuição dinâmica de portas está configurada, o gateway Cloud NAT avança para o passo seguinte usando as portas mínimas especificadas por instância de VM como entrada. Se não especificar o número mínimo de portas por instância de VM, é usado o valor predefinido:
64
para a atribuição de portas estática e32
para a atribuição de portas dinâmica.O Cloud NAT reserva tuplos de endereço IP de origem e porta de origem NAT para cada VM. O gateway NAT da nuvem usa as portas mínimas fornecidas ou ajustadas por instância de VM do passo anterior para calcular o número de tuplos de endereço IP de origem e porta de origem da NAT a atribuir à VM.
Para a NAT pública, Google Cloud atribui tuplos de endereço IP de origem e porta de origem da NAT usando múltiplos de potências de dois, pelo que o número de tuplos de endereço IP de origem e porta de origem da NAT é superior ou igual ao número mínimo de portas por instância de VM que especificar.
Para o NAT privado, Google Cloud aloca o dobro do número de portas mínimas necessárias por VM para garantir a fiabilidade. Certifique-se de que a sub-rede a partir da qual o NAT privado atribui endereços IP e portas tem o tamanho adequado.
Se o gateway NAT da nuvem usar dois ou mais endereços IP NAT, é possível que as tuplas de endereço IP de origem e porta de origem NAT abranjam mais do que um endereço IP NAT. Um único endereço IP NAT pode não ter portas de origem disponíveis suficientes para acomodar o número de tuplos de endereço IP de origem NAT e porta de origem de que uma VM precisa.
A gateway do Cloud NAT atribui tuplos de endereço IP de origem e porta de origem a cada VM.
Se tiver configurado a atribuição de portas estáticas, o número de endereços IP de origem e de tuplos de portas de origem é fixo. Cada VM não pode usar mais do que o número atribuído de tuplos de endereço IP de origem e porta de origem, mesmo durante picos de tráfego.
Se configurou a atribuição dinâmica de portas, o número de endereços IP de origem e de tuplos de portas de origem pode mudar com base na procura. Se uma VM estiver perto de esgotar a respetiva atribuição de portas atual, o Cloud NAT atribui portas adicionais, até ao valor máximo de portas por instância de VM especificado. Depois de a utilização de portas da VM ficar abaixo de um limite, as portas são libertadas e podem ser atribuídas a outras VMs.
Aumente as portas por VM
Se configurou um gateway Cloud NAT com atribuição de portas estática, quando aumenta o número mínimo de portas por VM no gateway, não há interrupção do tráfego.
Se configurou um gateway Cloud NAT com atribuição dinâmica de portas, o aumento do número mínimo, máximo ou ambos de portas por VM não interrompe as ligações NAT existentes nem perturba o tráfego que flui através do gateway NAT.
Considere o seguinte quando aumentar o número de portas por VM:
Quando usar o NAT público com a atribuição manual de endereços IP NAT, tem de calcular o número de endereços IP de origem NAT de que precisa. Antes de aumentar o número mínimo de portas por VM, atribua, pelo menos, esse número de endereços IP NAT ao gateway NAT público.
Quando usa o NAT público com a atribuição automática de endereços IP NAT, o aumento do número mínimo de portas por VM faz com que o gateway NAT público adquira e atribua mais endereços IP externos regionais automaticamente.
Quando usar o NAT privado, certifique-se de que a sub-rede a partir da qual o gateway atribui endereços IP tem um número adequado de endereços IP.
Reduza as portas por VM
Se configurou um gateway NAT da nuvem com atribuição de portas estática e reduzir as portas mínimas por VM no gateway, não existe esgotamento de ligações. As ligações NAT estabelecidas são imediatamente interrompidas e os clientes têm de estabelecer novas ligações TCP.
Se configurou uma gateway do Cloud NAT com atribuição dinâmica de portas, as seguintes afirmações são verdadeiras:
- A redução do número mínimo de portas por VM não interrompe as ligações NAT existentes nem perturba o tráfego que flui através da gateway de NAT.
- A redução do número máximo de portas por VM interrompe imediatamente todas as ligações NAT existentes e o número de portas atribuídas a todas as VMs é reposto temporariamente para o valor especificado para o número mínimo de portas por VM.
Portas e ligações
O número de tuplos de endereço IP de origem e porta de origem NAT que um gateway NAT da nuvem reserva para uma VM restringe o número de ligações que a VM pode estabelecer a um destino único:
Um destino único significa uma tripla única composta por um endereço IP de destino, uma porta de destino e um protocolo IP (como TCP ou UDP).
Uma ligação significa uma tupla de 5 elementos exclusiva que consiste na tupla de porta e no endereço IP de origem da NAT combinados com uma tupla de 3 elementos de destino exclusiva. Uma vez que o protocolo UDP não tem ligação, o conceito de ligação é reduzido a uma tupla de 5 elementos associada a um datagrama UDP exclusivo.
Suponhamos que um gateway NAT da nuvem calcula 1024 para o número fixo de portas de uma VM seguindo o procedimento de reserva de portas. A gateway do Cloud NAT reserva 1024 combinações únicas de tuplos de endereço IP de origem e porta de origem do NAT para a VM. A gateway do Cloud NAT pode processar 1024 ligações simultâneas a cada tuplo de 3 elementos de destino único. No entanto, o Cloud NAT considera as ligações fechadas inutilizáveis durante 120 segundos após o fecho da ligação, o que pode afetar o número de ligações em utilização em simultâneo.
Exemplos:
O gateway suporta 1024 ligações simultâneas ao endereço IP de destino
203.0.113.99
na porta80
através do protocolo TCP.O gateway suporta outras 1024 ligações simultâneas ao mesmo endereço IP de destino na porta
443
, também através do protocolo TCP.O gateway suporta outras 1024 ligações simultâneas a um endereço IP de destino diferente na porta
80
, também através do protocolo TCP.
Reutilização simultânea de portas e mapeamento independente do ponto final
Desde que pelo menos um elemento de informação na tripla de destino mude (o endereço IP de destino, a porta de destino ou o protocolo), a mesma tripla de endereço IP de origem e porta de origem NAT pode ser usada simultaneamente para muitas ligações diferentes.
O NAT público usa o mapeamento independente do ponto final, conforme definido na secção 2.3 da RFC 5128. Como resultado, o número de ligações simultâneas que uma VM cliente pode estabelecer a uma tupla de 3 elementos de destino única pode ser reduzido se o NAT público atribuir a mesma tupla de endereço IP de origem e porta de origem do NAT a mais do que um endereço IP interno e uma porta de origem efémera de uma VM cliente. As probabilidades de isto acontecer aumentam se a VM do cliente tiver um grande número de endereços IP de origem internos e fizer um grande número de ligações à mesma tupla de 3 elementos de destino. A primeira vez que uma VM cliente envia um pacote a partir de um endereço IP interno e de uma porta de origem efémera, o NAT público cria um mapeamento independente do ponto final de vários para um entre o seguinte:
- A tupla de porta de origem e endereço IP interno
- Uma tupla de porta de origem e endereço IP de origem NAT exclusiva
Por exemplo, quando uma VM cliente envia um pacote a partir do respetivo endereço IP interno
10.0.0.2
através da porta de origem efémera 10001
, a NAT pública atribui
10.0.0.2:10001
. Esta tupla de endereço IP de origem e porta de origem da NAT é, em seguida, usada
para todas as ligações subsequentes de 10.0.0.2:10001
a qualquer tupla de 3 elementos de destino.
Se a mesma VM usar uma porta de origem efémera diferente para enviar um pacote, por exemplo, 10.0.0.2:20002
, a NAT pública também atribui um endereço IP de origem da NAT e uma tupla de porta de origem para todas as ligações subsequentes de 10.0.0.2:20002
a qualquer tupla de destino de 3 elementos. É possível que o NAT público possa atribuir a mesma tupla de endereço IP de origem e porta de origem NAT a ambas as tuplas de endereço IP interno e porta de origem efémera, o que causa um conflito independente do ponto final em determinadas situações.
Para um exemplo mais detalhado, consulte o Exemplo de conflito de mapeamento independente do ponto final.
Reduza os conflitos independentes do ponto final
Pode fazer alterações à configuração para reduzir os conflitos independentes do ponto final. Para mais informações, consulte o artigo Pacotes rejeitados com o motivo de conflito independente do ponto final.
Atraso para a reutilização da porta de origem TCP
Depois de um gateway Cloud NAT fechar uma ligação TCP, Google Cloud aplica um atraso antes de o gateway poder reutilizar o mesmo endereço IP de origem NAT e a tupla de porta de origem com o mesmo destino (endereço IP de destino, porta de destino e protocolo). A duração do atraso é controlada pela definição TCP TIME_WAIT Timeout.
Se necessário, pode reduzir este atraso modificando o valor predefinido do tempo limite de espera do TCP. Para obter informações sobre como modificar os limites de tempo da NAT, consulte o artigo Alterar limites de tempo da NAT. Em alternativa, pode fazer uma das seguintes alterações:
Aumente o número mínimo de portas por instância de VM para que o procedimento de reserva de portas atribua à VM mais tuplos de endereço IP de origem e porta de origem NAT.
Se uma VM precisar de abrir e fechar rapidamente ligações TCP ao mesmo endereço IP de destino e porta de destino através do mesmo protocolo, em vez do Cloud NAT, atribua um endereço IP externo à VM e use regras de firewall para limitar as ligações de entrada não solicitadas.
Portas de origem e segurança
Se depender da aleatorização da porta de origem como medida de segurança, tem de considerar o seguinte:
Aumente o número mínimo de portas por instância de VM para que o procedimento de reserva de portas atribua à VM mais tuplos de endereço IP de origem e porta de origem NAT. Aumentar o número mínimo de portas por instância de VM atribui um intervalo de portas aleatoriamente a cada VM. No entanto, a porta de origem escolhida nesse intervalo é sequencial.
Atribua um endereço IP externo à VM em vez de usar o NAT público.
Exemplos
Os exemplos seguintes demonstram como a NAT na nuvem reserva endereços IP de origem NAT e portas de origem para uma VM e como executa a NAT para pacotes enviados para a Internet.
Reserva de porta
Os exemplos seguintes demonstram aplicações do procedimento de reserva de portas.
Suponhamos que está a configurar um gateway NAT público para fornecer NAT para o intervalo de endereços IP principal de uma sub-rede e que as VMs que usam essa sub-rede não têm intervalos de IP de alias do intervalo de endereços IP principal da sub-rede. Arredondar para baixo o resultado de qualquer operação de divisão para o número inteiro mais próximo. ⌊⌋ é a função de arredondamento para baixo (o maior inteiro), o que significa que descarta qualquer resultado fracionário da divisão.
Se configurar o gateway NAT público com um único endereço IP NAT usando a atribuição manual e definir o número mínimo de portas por instância de VM como 64, o gateway pode fornecer serviços NAT para até 1008 VMs:
⌊(1 endereço IP NAT) × (64 512 portas por endereço) / (64 portas por VM)⌋ = 1008 VMs
Se precisar de suportar mais de 1008 VMs, pode atribuir um segundo endereço IP NAT ao gateway NAT da nuvem. Com dois endereços IP NAT, mantendo o número mínimo de portas por VM em 64, pode suportar 2016 VMs:
⌊(2 endereços IP NAT) × (64 512 portas por endereço) / (64 portas por VM)⌋ = 2016 VMs
Se definir o número mínimo de portas por VM como 4096, cada endereço IP NAT pode suportar 15 VMs. Este cálculo é arredondado para baixo para o número inteiro mais próximo:
⌊(1 endereço IP NAT) × (64 512 portas por endereço) / (4096 portas por VM)⌋ = 15 VMs
Suponhamos que está a configurar um gateway NAT privado para fornecer NAT para todos os endereços IP de uma sub-rede:
O tamanho mínimo da sub-rede que pode criar é de oito endereços IPv4, o que corresponde a uma máscara de sub-rede de
/29
. Se configurar um gateway NAT privado com uma sub-rede NAT de tamanho mínimo e definir o número mínimo de portas por instância de VM para 64, o gateway pode fornecer serviços NAT para até 2016 VMs:⌊(2(32-29) - 4) endereços IP NAT × (64 512 portas por endereço) / (64 portas por VM × 2)⌋ = 2016 VMs
No exemplo anterior, se definir o número mínimo de portas por instância de VM como 1024, o gateway pode fornecer serviços de NAT para até 126 VMs:
⌊(2(32-29) - 4) endereços IP NAT × (64 512 portas por endereço) / (1024 portas por VM × 2)⌋ = 126 VMs
Se configurar um gateway NAT privado com uma máscara de sub-rede NAT de
/28
e definir o número mínimo de portas por instância de VM como 64, o gateway pode fornecer serviços NAT para até 6048 VMs:⌊(2(32-28) - 4) endereços IP NAT × (64 512 portas por endereço) / (64 portas por VM × 2)⌋ = 6048 VMs
Conflito de mapeamento independente do ponto final
O exemplo seguinte ilustra como o mapeamento independente do ponto final pode reduzir o número de ligações simultâneas de uma VM cliente para a mesma tupla de destino de 3 elementos, mesmo quando existe um número suficiente de tuplas de endereço IP de origem e porta de origem NAT livres disponíveis para a VM cliente.
Suponhamos que configurou um gateway NAT público para fornecer NAT para o intervalo de endereços IP principal de uma sub-rede. Criou uma VM cliente com uma interface de rede cujo endereço IP interno principal é 10.0.0.2
nessa sub-rede. A VM de exemplo não tem um endereço IP externo atribuído à respetiva interface de rede.
A VM abre uma ligação com estas caraterísticas:
- Endereço IP interno e porta de origem:
10.0.0.2:10001
- Tuplo de 3 elementos de destino:
203.0.113.1:80
com TCP - O NAT público usa a seguinte tupla de endereço IP de origem e porta de origem do NAT:
192.0.2.10:30009
- Endereço IP interno e porta de origem:
A VM abre uma segunda ligação com as seguintes caraterísticas:
- Endereço IP interno e porta de origem:
10.0.0.2:10002
- Tuplo de 3 elementos de destino:
203.0.113.2:80
com TCP - O NAT público pode optar por usar o mesmo endereço IP de origem NAT e a tupla de porta de origem
192.0.2.10:30009
também para esta ligação. É possível usar a mesma tupla de endereço IP de origem e porta de origem da NAT para um endereço IP de cliente e uma porta de origem efémera diferentes.
- Endereço IP interno e porta de origem:
Enquanto a primeira e a segunda ligações estiverem ativas, o NAT público não pode abrir uma terceira ligação TCP com as seguintes características:
- O mesmo endereço IP interno de origem e porta que a primeira ligação:
10.0.0.2:10001
- O mesmo triplo de destino que a segunda ligação:
203.0.113.2:80
usando TCP
Esta terceira tentativa de ligação é rejeitada com um erro de conflito independente do ponto final porque o mapeamento independente do ponto final estabelecido pela primeira ligação exige que todas as ligações de
10.0.0.2:10001
usem a mesma tupla de endereço IP de origem e porta de origem NAT,192.0.2.10:30009
. No entanto, o nome192.0.2.10:30009
já está a ser usado pela segunda ligação TCP a203.0.113.2:80
.- O mesmo endereço IP interno de origem e porta que a primeira ligação:
Para dissipar a ambiguidade, uma tentativa de ligação subsequente neste exemplo é bem-sucedida desde que uma das seguintes condições seja verdadeira:
- A primeira ligação TCP foi fechada. O encerramento da ligação remove o mapeamento independente do ponto final entre
10.0.0.2:10001
e192.0.2.10:30009
, pelo que a terceira ligação pode ser mapeada para um endereço IP de origem NAT e uma tupla de porta de origem diferentes para comunicar com203.0.113.2:80
através de TCP. - A segunda ligação TCP foi fechada. O encerramento da ligação liberta
10.0.0.2:10001
para usar o endereço IP de origem da NAT e a porta de origem192.0.2.10:30009
para comunicar com203.0.113.2:80
através de TCP. - A terceira tentativa de ligação seleciona uma porta de origem efémera (interna) diferente. Neste exemplo, um mapeamento independente do ponto final estabeleceu um mapeamento de vários para um para endereços IP de origem NAT internos e portas de origem
10.0.0.2:10001
e10.0.0.2:10002
para usar192.0.2.10:30009
quando comunica com203.0.113.2:80
através de TCP. Se a terceira tentativa de ligação usar uma porta de origem efémera diferente de10001
e10002
, existe a possibilidade de usar um endereço IP de origem e uma porta de origem NAT diferentes para comunicar com203.0.113.2:80
através de TCP. - Desativar a independência do ponto final. A ativação/desativação permite que a nova ligação de
10.0.0.2:10001
não precise de usar192.0.2.10:30009
, o que lhe permite usar um endereço IP de origem e uma porta NAT diferentes.
- A primeira ligação TCP foi fechada. O encerramento da ligação remove o mapeamento independente do ponto final entre
Para ver técnicas que pode usar para evitar conflitos, consulte o artigo Reduzir conflitos independentes do ponto final.
O que se segue?
- Configure um gateway de NAT público.
- Configure um gateway de NAT privado.
- Crie uma configuração de exemplo do Compute Engine.
- Crie uma configuração de exemplo do GKE.
- Resolva problemas comuns.