Visão geral determinística do NAPT para serviços de próxima geração
Nos serviços de próxima geração com o MX-SPC3, você pode configurar serviços determinísticos de NAPT44 e NAPT64. Os serviços determinísticos de serviços de próxima geração usam um algoritmo para alocar blocos de portas de destino.
O serviço NAPT44 determinístico dos serviços de próxima geração garante que o endereço e a porta IPv4 de origem original sempre mapeiem para o mesmo endereço e alcance de porta IPv4 pós-NAT, e que o mapeamento reverso de um determinado endereço e porta IPv4 externos traduzidos são sempre mapeados para o mesmo endereço IPv4 interno.
O serviço NAPT64 determinístico dos Serviços de próxima geração garante que o endereço e a porta IPv6 de origem original sempre mapeiem para o mesmo endereço e alcance de porta IPv4 pós-NAT, e que o mapeamento reverso de um determinado endereço e porta IPv4 externos traduzidos são sempre mapeados para o mesmo endereço IPv6 interno.
Para obter informações detalhadas sobre como configurar o NAPT determinístico, veja configuração do NAPT determinístico para serviços de próxima geração.
Benefícios do NAPT determinístico
Elimina a necessidade de registro de tradução de endereços porque um endereço IP é sempre mapeado para o mesmo endereço IP externo e faixa de porta, e o mapeamento reverso de um determinado endereço IP externo traduzido e a porta são sempre mapeados para o mesmo endereço IP interno.
Entendendo algoritmos determinísticos de NAPT
A eficácia de sua implementação de NAPT determinístico depende da sua análise dos requisitos de seus assinantes. O tamanho do bloco que você fornece indica quantas portas serão disponibilizadas para cada endereço de assinante recebido a partir da faixa na from cláusula especificada na regra NAT aplicável. O algoritmo de alocação calcula um valor de compensação para determinar o endereço IP e a porta de saída. Um algoritmo reverso é usado para obter o endereço de assinante originado.
Para rastrear assinantes sem usar logs, um ISP deve usar um algoritmo reverso para obter endereços de assinante (fonte) de um endereço traduzido.
As variáveis a seguir são usadas no cálculo de encaminhamento (endereço IP de assinante privado para endereço IP público) e cálculo reverso (endereço IP público para endereço IP de assinante privado):
Pr_Prefix — Qualquer endereço de assinante IPv4 pré-NAT.
Pr_Port — qualquer porta de protocolo pré-NAT.
Block_Size — Número de portas configuradas para cada Pr_Prefix.
Se
block-sizeestiver configurado como zero, o método para computação do tamanho do bloco é computado da seguinte forma:tamanho de bloco = int (64512/ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix))
onde 64512 é a faixa de porta máxima disponível por endereço IP público.
Base_PR_Prefix — Primeiro endereço de assinante pré-NAT IPv4 utilizável em uma
fromcláusula da regra de NAT.Base_PU_Prefix — Primeiro endereço de assinante IPv4 pós-NAT utilizável configurado no pool de NAT.
Pu_Port_Range_Start — Primeira porta pós-NAT utilizável. Estamos em 1024.
Pr_Offset — A compensação do endereço IP pré-NAT que está sendo traduzido do primeiro endereço de assinante IPv4 pré-NAT utilizável em uma
fromcláusula da regra NAT. PR_Offset = Pr_Prefix – Base_Pr_Prefix.PR_Port_Offset — Compensação do endereço IP pré-NAT multiplicado pelo tamanho do bloco. PR_Port_Offset = Pr_Offset * Block_Size.
Pu_Prefix — endereço pós-NAT para um determinado Pr_Prefix.
Pu_Start_Port — porta de partida pós-NAT para um fluxo de um determinado Pr_Prefix
Pu_Actual_Port — porta pós-NAT vista em fluxo reverso.
Nr_Addr_PR_Prefix — Número de endereços de assinanteS IPv4 pré-NAT utilizáveis em uma
fromcláusula da regra de NAT.Nr_Addr_PU_Prefix — Número de endereços IPv4 pós-NAT utilizáveis configurados no pool de NAT.
Rounded_Port_Range_Per_IP — Número de portas disponíveis para cada endereço IP pós-NAT. Rounded_Port_Range_Per_IP = ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)] * Block_Size.
Pu_Offset — Compensação do endereço IP pós-NAT a partir do primeiro endereço pós-NAT utilizável. Pu_Offset = Pu_Prefix – Base_Pu_Prefix.
Pu_Port_Offset— Compensação da porta pós-NAT a partir de 1024 adicionada ao produto da compensação do endereço IP pós-NAT e do número de portas disponíveis para cada endereço IP pós-NAT. Pu_Port_Offset = (Pu_Offset * Rounded_Port_Range_Per_IP) + (Pu_Actual_Port – Pu_Port_Range_Start).
Uso de algoritmo — Assuma as seguintes configurações:
services {
nat {
source {
pool src-pool {
address 203.0.113.0/16;
port {
automatic {
random-allocation;
}
deterministic {
block-size 249;
host address 10.1.0.1/16;
}
}
}
rule-set set1 {
rule det-nat {
match-direction input;
match {
source-address 10.1.0.0/16;
}
then {
source-nat {
pool src-pool;
}
}
}
}
}
}
}
Tradução para o futuro
-
Pr_Offset =Pr_Prefix – Base_Pr_Prefix – lacunas no pool de IPs privados
Nota:Quando o pool de IPs privados é feito de várias piscinas que não são contíguas, a Pr_Offset deve contar apenas os IPs privados nas piscinas. Então é a soma de:
-
A compensação dentro do pool em que o IP cai.
-
O tamanho das piscinas com IPs mais baixos.
-
Pr_Port_Offset = Pr_Offset * Block_Size
Rounded_Port_Range_Per_IP = ceil[(Nr_Addr_PR_Prefix/Nr_Addr_PU_Prefix)] * Block_Size
Pu_Prefix = Base_Public_Prefix + piso (Pr_Port_Offset/Rounded_Port_Range_Per_IP)
Nota:Quando o pool de IPs públicos é feito de várias piscinas que não são contíguas, a Pu_Offset deve contar apenas os IPs públicos nas piscinas. Assim, a soma deve ser destinada a:
-
Se o valor
floor(Pr_Port_Offset / Rounded_Port_Range_Per_IP)for maior do que o tamanho dofirst Public IP pool, subtrai o tamanho deste primeiro pool a partir do valor. Então, considere o segundo tamanho da piscina. -
Repita o processo até que o valor seja menor do que o n-th pool.
-
Pu_Start_Port = Pu_Port_Range_Start + (Pr_Port_Offset % Rounded_Port_Range_Per_IP)
Usando a configuração da amostra e assumindo um fluxo de assinantes originado a partir de 10.1.250:5000:
Pr_Offset = 10,1,1,250 – 10,1,1 = 505
Pr_Port_Offset = 505 * 249 = 125.745
Rounded_Port_Range_Per_IP = ceil[(65, 533/254)] * 249 = 259 * 249 = 64.491
Pu_Prefix = 203,0,113,1 + piso (125.745 /64.491) = 203,0.113,1 +1 = 203,0,113,2
Pu_Start_Port = 1.024 + (125.745 % 64.491) = 62278
10.1.1.250 é traduzido para 203.0.113.2.
A porta inicial é 62278. Há 249 portas disponíveis para o assinante com base no tamanho do bloco configurado. A faixa de porta disponível abrange portas 62278 a 62526 (inclusive).
O fluxo específico 10.1.1.250:5000 atribui aleatoriamente qualquer uma das portas em seu intervalo porque a alocação aleatória foi especificada.
Tradução reversa
-
Pr_Offset =Pr_Prefix – Base_Pr_Prefix – lacunas no pool de IPs privados
Nota:Quando o pool de IPs privados é feito de várias piscinas que não são contíguas, a Pr_Offset deve contar apenas os IPs privados nas piscinas. Então é a soma de:
-
A compensação dentro do pool em que o IP cai.
-
O tamanho das piscinas com IPs mais baixos.
-
Pu_Port_Offset = (Pu_Offset * Rounded_Port_Range_Per_IP) + (Pu_Actual_Port – Pu_Port_Range_Start)
Subscriber_IP = Base_Pr_Prefix + piso(Pu_Port_Offset/Block_Size)
A tradução inversa é determinada da seguinte forma. Assuma um fluxo voltando a 203.0.113.2:62278.
Pu_Offset = 203,0,113,2 – 203,0,113,1 = 1
Pu_Port_Offset = (1 * 64.491) + (62.280 - 1024) = 125.747
Subscriber_IP = 10,1,0,1 + piso (125.747 / 249) = 10,1,0,1 + 505 = 10,1,250
Nota:Na tradução inversa, apenas o endereço IP privado original pode ser derivado, e não a porta original em uso. Isso é suficientemente granular para os requisitos de aplicação da lei.
Quando você tiver configurado o NAPT determinístico, você pode usar o e show services nat deterministic-nat nat-port-block os show services nat deterministic-nat internal-host comandos para mostrar mapeamento avançado e reverso. No entanto, os mapeamentos serão alterados se você reconfigurar o tamanho do bloco de alocação de blocos de porta determinístico ou a from cláusula para sua regra de NAT. Para fornecer informações históricas sobre mapeamentos, recomendamos que você escreva scripts que possam mostrar mapeamentos específicos para configurações anteriores.
Restrições determinísticas de NAPT
Ao configurar o NAPT determinístico, fique ciente do seguinte:
Para a configuração determinística do endereço de host NAT64 do IPv6, oferecemos suporte à última mudança de 32 bits (4 byte) do prefixo de host IPv6. Isso significa que só podemos configurar máscaras de prefixo /96 para endereço IPv6, que oferece suporte a um número de endereço máximo de 232 para um prefixo IPv6. O endereço do host é especificado na hierarquia de
[services nat source pool p1 port deterministic host]configuração.Normalmente, o número de endereços na faixa de host deve ser maior do que o número de endereços no pool.
-
Melhores práticas:
Não recomendamos que o número de endereço do host seja configurado para exceder o número total de recursos de blocos de porta, pois alguns hosts podem não receber um recurso de bloco de porta com sucesso.
O tamanho mínimo de bloco para NAT determinístico é 1. Se você configurar um tamanho de bloco menor, o commit falha. Se o tamanho do bloco estiver configurado para 0, o tamanho do bloco será calculado automaticamente com base no número do host e no número de endereço traduzido. Se o tamanho calculado do bloco for inferior a 1, o commit falha.
Para o NAPT determinístico de serviços de próxima geração, você pode configurar uma mistura de endereços de host IPv4 e IPv6 juntos em um pool de NAT em um endereço de host ou uma lista de nomes de endereços, no entanto. o número total de prefixo do host não pode exceder 1000.
Você não pode configurar uma faixa de endereço ou nome de DNS em um nome da lista de endereços do host.
O prefixo de endereço de host configurado e o nome da lista de endereços do host são mesclados se seus prefixos forem sobrepostos. Você pode usar o
show services nat source deterministiccomando operacional para mostrar os prefixos mesclados.-
Melhores práticas:
Recomendamos que você mantenha os endereços do host do assinante consistentes com várias regras que correspondam ao prefixo de endereço de origem, se o mesmo pool de NAT determinístico for usado em várias regras; caso contrário, o tráfego de hosts que não estão configurados no pool de NAT, mesmo que corresponda à regra nat, pode não alocar a porta com sucesso.
Para serviços NAPT de serviços de próxima geração, o número total de endereços de host configurados deve ser maior ou igual aos blocos de porta NAT determinísticos disponíveis.