Top Ad unit 728 × 90

Network Address Translation

Este artigo aborda o NAT (Network Address Translation) apenas no nível exigido pela Cisco para o exame CCNA Routing & Switching. Por isso vamos falar somente de NAT44 (4 to 4), ou seja, a tradução de um endereço IPv4 para outro endereço IPv4. NAT64 (6 to 4) não é abordado neste artigo.

Todos já sabemos que não existem mais endereços IPv4 disponíveis para distribuição na Internet. Isso se deu por uma razão matemática bem simples: um endereço IPv4 é composto de 32 bits, e com todas as combinações possíveis de 0s e 1s podemos alcançar pouco mais de 4 bilhões de endereços. Analisando a Internet de hoje em dia, esse número parece realmente pequeno (ainda mais se excluirmos os endereços reservados), mas quando a arquitetura do IPv4 foi planejada lá pelos anos de 1980, essa quantidade total de endereços pareceu atender satisfatoriamente a todas as necessidades. E o mais curioso é que os endereços IPv4 foram planejados para serem fim a fim, e isso implica que cada dispositivo do planeta tenha seu próprio endereço IP reconhecido globalmente (ou seja, os 4 bilhões e poucos deveriam atender a todo o mundo). Atualmente, numa simples comunicação entre o seu computador e um servidor hospedado na Internet, o seu endereço IP de origem não chega ao destino da mesma forma que saiu do seu computador. Ele é modificado! No jargão técnico, seu endereço IP de origem é traduzido. E quem faz essa tradução é o NAT.

Fica evidente que traduzir um endereço no meio do caminho de uma comunicação acaba indo contra o esquema original do endereçamento IP. Mas, paciência... Essa foi uma das soluções encontradas para tentar economizar ao máximo a quantidade de endereços IPv4 ainda disponíveis. Foi, na verdade, uma gambiarra — que acabou funcionando bem. A solução definitiva é a migração para IPv6, mas isso é assunto para outra ocasião.

Como, então, o NAT ajudou a postergar o esgotamento dos endereços IPv4? É justamente isso que você vai entender neste texto, não se preocupe. Mas antes você precisa saber o que são (e quem são) os endereços IPv4 privados, pois sem eles o NAT simplesmente não faria nenhum sentido.

ENDEREÇOS IPv4 PRIVADOS

A ideia de endereços privados surgiu da constatação de uma realidade que era de certa forma comum na época: algumas empresas que usavam redes TCP/IP simplesmente não tinham necessidade ou não queriam ter acesso à Internet. Essas empresas tinham suas próprias redes que serviam apenas para comunicação interna. A questão é que as redes dessas empresas usavam endereços IP que eram válidos globalmente, ou seja, na Internet. Analisando todo esse cenário, uma equipe de quatro engenheiros pensou o seguinte: "Bom, se os hosts dessas redes corporativas não se comunicam com a Internet, talvez eles possam usar endereços IP que não sejam reconhecidos pela Internet. Já sabemos que os endereços IP estão se esgotando, e podemos fazer uma boa economia com isso aqui!". E eles estavam certos.

A IANA (entidade que cuida da atribuição de endereços na Internet) pegou algumas faixas de endereços IP e definiu que essas faixas não seriam mais reconhecidas pela Internet, e só deveriam ser usadas por hosts que não tivessem conexão com a rede pública. Essas faixas são:

Classe A - 10.0.0.0 a 10.255.255.255
Classe B - 172.16.0.0 a 172.31.255.255
Classe C - 192.168.0.0 a 192.168.255.255

Quando dizemos que esses endereços não são reconhecidos na Internet, estamos afirmando que eles não são roteados na Internet. Em outras palavras, os roteadores da Internet não encaminham pacotes que contenham esses endereços como destino. Como as redes corporativas que não têm acesso à Internet não precisam de endereços que sejam válidos na Internet, elas podem usar os endereços IP privados, que só terão utilidade na comunicação interna da própria empresa.

Quaisquer endereços fora das faixas acima passaram a ser considerados endereços IPv4 públicos. São esses os endereços reais da Internet. O cenário, então, ficou bem de acordo com a realidade da época: empresas sem acesso à Internet usavam endereços privados; empresas com requisitos mistos, onde alguns hosts deviam ter acesso à Internet e outros não, usavam de um lado endereços públicos e de outro endereços privados; e por fim, empresas que tinham conexão de todos os seus hosts com a Internet usavam endereços públicos. Fim de papo (e, só para ressaltar, a economia de endereços foi realmente significante).

Tudo isso pareceu muito bom, mas conforme o tempo foi passando, a Internet cresceu e os requisitos das empresas mudaram. E a principal mudança foi justamente no acesso à Internet. Redes corporativas isoladas passaram a ter necessidade de se conectar à rede pública. Mas essas redes usavam endereços IP privados, que não podiam sair para a Internet! A única solução seria usar endereços públicos, e isso aumentaria ainda mais a preocupação com o esgotamento dos endereços IPv4.

O risco foi atenuado quando dois engenheiros publicaram a RFC da tecnologia que daria algum oxigênio a mais aos endereços IPv4: o NAT.

NETWORK ADDRESS TRANSLATION

Esses dois engenheiros definiram o seguinte: a partir de agora, todas as redes corporativas usarão endereços IPv4 privados, inclusive aquelas que possuem conexão com a Internet. Sempre que um pacote sair da rede local para a rede pública, o endereço de origem (que é privado) será traduzido para um endereço público, e na resposta o endereço público será traduzido para o endereço privado original. Com isso, criou-se o conceito de rede inside e rede outside, conforme ilustra a Figura 1.

Figura 1: Redes inside e outside.

NOTA: A rede inside pode ser uma LAN corporativa ou um ISP (Internet Service Provider), e a rede outside pode ser a Internet pública ou outro ISP. Para os propósitos deste artigo, a rede inside será sempre uma LAN corporativa e a rede outside será sempre a Internet.

A rede inside usa endereços IPv4 privados, e a rede outside usa endereços IPv4 públicos. Para sair da rede inside e chegar à Internet, todos os pacotes precisam passar pelo roteador, e é justamente nele onde aplicaremos nossas configurações de NAT (é possível configurar o NAT em outros dispositivos, como num firewall, por exemplo; neste artigo nos limitaremos a configurações em roteadores Cisco IOS).

Interfaces Inside e Outside

A primeira ação que devemos tomar ao iniciarmos a configuração de NAT é dizer ao roteador qual das suas interfaces se conecta à rede inside e qual se conecta à rede outside. O roteador não tem como saber disso sem que você dê essa informação a ele.

Usando a topologia da Figura 1, definiremos a interface G0/1 como inside e a interface S0/0/0 como outside. A configuração ficará da seguinte forma:

Router(config)#interface g0/1
Router(config-if)#ip address 192.168.0.254 255.255.255.0
Router(config-if)#ip nat inside
Router(config-if)#no shut
Router(config-if)#interface s0/0/0
Router(config-if)#ip address 203.0.113.1 255.255.255.248
Router(config-if)#no shut
Router(config-if)#ip nat outside

Observe que configuramos a interface G0/1 com um endereço IPv4 privado (linha 2), ao passo que a interface S0/0/0 foi configurada com um endereço IPv4 público (linha 6). Na vida real, o endereço da interface G0/1 seria definido pelo plano de endereçamento interno da empresa, e poderia ser qualquer endereço disponível na sub-rede. Já o endereço da interface S0/0/0 é definido pelo ISP, de modo que a empresa não tem autonomia para mudá-lo.

Agora que já definimos qual rede é a inside e qual é a outside, podemos partir para a configuração do NAT propriamente dita. Mas antes, devemos deixar claro que neste artigo estudaremos o NAT quando a origem da comunicação é a rede inside (inside source), ou seja, quando a rede corporativa tenta acessar a Internet. O NAT com outside source não é abordado aqui.

Existem basicamente dois tipos de NAT: estático e dinâmico. E no NAT dinâmico temos uma variação chamada PAT (Port Address Translation), que permite a milhares de hosts inside saírem para a Internet usando apenas um endereço público através da manipulação de portas de camada 4.

NAT Estático

O NAT Estático provê mapeamento um para um. Em outras palavras, ele traduz um endereço privado para um endereço público, e essa tradução é estática. Preste atenção na ênfase à palavra estática. Quando configuramos esse tipo de NAT, um endereço privado fica amarrado a um endereço público, permanentemente. Isso significa que o endereço privado sempre terá à sua disposição o endereço público associado a ele, mesmo quando não estiver se comunicando com a Internet (nesses períodos, o endereço público ficará ocioso).

Bom, o NAT Estático não cumpre o papel de ser uma tecnologia para economizar endereços IPv4. Mas ele serve para um propósito especial: possibilitar que um host interno (um servidor, por exemplo) seja acessado diretamente da Internet. Como você já sabe, a Internet não fala o idioma chamado "endereços privados", e por isso ela não pode se comunicar com um host inside através do endereço IP que ele usa. Porém, se esse host estivesse sempre atrelado a um endereço público, essa comunicação seria possível. É aqui que o NAT Estático entra na história, e por isso ele também é conhecido como inbound mapping.

Vamos analisar a Figura 2.

Figura 2: Servidor inside com acesso direto via Internet.

Talvez você já tenha fixado a ideia de que o NAT Estático permite que um host da rede inside tenha seu próprio endereço IP público, reconhecido na Internet. O servidor web da Figura 2 está na DMZ e precisa ser acessado diretamente a partir da Internet. (DMZ é o acrônimo de demilitarized zone e corresponde a uma parte da rede corporativa que é "aberta" à rede pública, onde qualquer incidente não impacta nem afeta o restante da rede.) Para que isso aconteça, faremos um mapeamento estático no roteador usando NAT conforme o exemplo a seguir.

Router(config)#
Router(config)#ip nat inside source static 192.168.0.50 203.0.113.2
Router(config)#end
Router#sh run
!
! output omitido
!
interface GigabitEthernet0/1
 ip address 192.168.0.254 255.255.255.0
 ip nat inside
!
interface Serial0/0/0
 ip address 203.0.113.1 255.255.255.248
 ip nat outside
!

Pronto, o endereço privado 192.168.0.50 está estaticamente atrelado ao endereço público 203.0.113.2 através do NAT (linha 2). Preste atenção no comando: ip nat inside souce static. Ele define que estamos configurando NAT do tipo estático tendo a origem da comunicação na rede inside.

Você pode estar se questionando: não seria bem mais simples configurar o endereço IP público no próprio servidor, excluindo o seu endereço privado? Bem, só conseguimos ver duas vantagens nisso: um endereço privado seria economizado e o roteador gastaria menos processamento e memória. Mas talvez nem possamos chamar esses dois detalhes de vantagem propriamente dita, primeiro porque a economia de endereço privado é insignificante considerando a enorme quantidade de endereços privados disponíveis para uso, e segundo porque os recursos de processamento e memória que o roteador gastaria para isso seriam mínimos. Configurar o servidor com um endereço público está muito longe de ser mais simples. Pense um pouco: onde configuraríamos o endereço de gateway padrão dele? A opção é o roteador, claro. Mas dê uma olhada no exemplo acima novamente. Colocamos de propósito a configuração das interfaces inside e outside, com seus respectivos endereços IP. Observe que o endereço "amarrado" ao servidor web via NAT Estático (203.0.113.2) está na mesma sub-rede do endereço configurado na interface outside (203.0.113.1) — e não poderia ser diferente, pois o ISP só aceitará pacotes que contenham endereços dessa sub-rede como origem. Resumindo: você simplesmente não conseguiria configurar um endereço de gateway padrão para o servidor neste roteador, pois duas interfaces de um mesmo roteador não podem estar configuradas na mesma sub-rede.

Voltando à Figura 2, com a configuração de NAT Estático o usuário em home office pode acessar o servidor web dentro da empresa diretamente via Internet, usando o endereço 203.0.113.2 ou algum nome DNS associado a ele.

A correspondência estática entre o endereço privado e o endereço público fica registrada permanentemente na tabela NAT. Essa tabela nada mais é do que a relação de quais endereços privados estão associados a quais endereços públicos naquele instante. No NAT Estático essa tabela não muda, pois a associação entre os dois endereços nunca é desfeita (a não ser, claro, que alguém exclua a configuração). O output a seguir mostra a tabela NAT após a configuração do NAT Estático.

Router#
Router#sh ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- 203.0.113.2        192.168.0.50       ---                ---
Router#

Não se preocupe por enquanto com os termos "Inside global", "Inside local", "Outside local" e "Outside global". Falaremos sobre eles mais à frente. Veja apenas que o endereço público está associado ao endereço privado.

O comando clear ip nat translation * limpa todas as associações da tabela NAT, exceto as associações estáticas. Ele só funciona para associações dinâmicas, que veremos a seguir.

NAT Dinâmico

O NAT Estático resolveu a demanda de acesso direto via Internet ao servidor web da rede corporativa, mas e os demais hosts? Como eles sairão para a Internet? "Aplique NAT Estático a todos!" — alguém poderia dizer. No entanto, o grande problema do NAT Estático está na escalabilidade. Como ele faz mapeamento permanente de um para um, a quantidade de endereços públicos têm que ser proporcional ao número de hosts que terão conexão com a rede outside. Imagine uma empresa com 800 hosts que precisam acessar a Internet! Inviável, é claro... E mesmo se tivéssemos toda essa quantidade de endereços públicos disponível, a manutenção das entradas estáticas de NAT no roteador seria muito extenuante.

Volte à configuração da interface S0/0/0 no exemplo da aplicação de NAT Estático. Observe que o endereço IP configurado está associado à máscara 255.255.255.248. Isso significa que o ISP disponibilizou para a rede corporativa 6 endereços IP públicos que podem ser usados para acesso à Internet! O total são 8, mas temos que excluir os endereços de rede e de broadcast, como você já sabe.

O NAT Dinâmico nos permite criar uma pool para reunir todos esses 6 endereços. Uma pool nada mais é do que um conjunto de endereços públicos usados pelo NAT para possibilitar que hosts com endereços privados acessem a Internet.

O grande detalhe com o NAT Dinâmico é que o mapeamento, embora ainda seja de um para um, não é permanente. Um endereço público fica associado a um endereço privado somente durante o período da sessão. Quando esse período termina, o endereço público volta a ficar disponível na pool para outro host usá-lo.

Podemos aplicar os seguintes comandos para configurar o NAT Dinâmico no roteador da Figura 2:

Router(config)#
Router(config)#access-list 10 permit 192.168.0.0 0.0.0.255
Router(config)#ip nat pool xpto 203.0.113.1 203.0.113.6 netmask 255.255.255.248
Router(config)#ip nat inside source list 10 pool xpto
Router(config)#

Antes de tudo, criamos uma lista de acesso para reunir todos os endereços privados que serão processados pelo NAT (linha 2). Essa lista não precisa ser estendida, pois sua única função é agrupar os endereços de origem.

Em seguida, criamos uma pool dando a ela o nome "xpto" (linha 3). Esse nome é apenas uma identificação para a pool. Definimos que os endereços 203.0.113.1 a 203.0.113.6, inclusive, farão parte da pool "xpto". Aqui especificamos apenas os endereços válidos, excluindo o endereço de rede (203.0.113.0) e o de broadcast (203.0.113.7), mas o comando também seria aplicado se especificássemos a faixa de 203.0.113.0 a 203.0.113.7. O que faria com que o NAT não usasse os endereços de rede e de broadcast seria a máscara aplicada no comando (255.255.255.248), que diria ao NAT quais endereços da faixa são realmente válidos (é uma boa prática especificar a faixa somente com endereços válidos, para não causar confusões). Inserimos a máscara em seu formato decimal-pontuado, usando o parâmetro netmask 255.255.255.248. Poderíamos configurar o mesmo parâmetro inserindo a máscara em seu formato de prefixo: prefix-length 29.

Por fim, configuramos o NAT Dinâmico propriamente dito associando a lista de acesso 10 à pool "xpto" (linha 4). Tendo já especificado as interfaces inside e outside, a partir de agora os endereços privados reunidos na lista de acesso 10 poderão sair para a Internet usando os endereços públicos reunidos na pool "xpto". Mas veja bem: somente 6 sessões simultâneas serão permitidas entre a rede inside e a Internet, pois só há 6 endereços públicos disponíveis. E não se esqueça que, entre esses 6 endereços, um já está associado estática e permanentemente ao servidor web, de modo que não poderá ser usado pelos outros hosts. Se todos os endereços da pool já estiverem em uso e um host tentar acessar a Internet, os pacotes desse host serão simplesmente descartados. 

Por padrão, um endereço público fica associado a um endereço privado por um período de 86400 segundos (24 horas). Se durante todo esse tempo o host inside não se comunicar novamente com a Internet, o timeout é alcançado e o endereço público volta a ficar disponível na pool. Dentro do período da associação, sempre que o host inside se comunica com a Internet o período é renovado, começando a contagem do zero. Com o comando abaixo (linha 5), alteramos o valor do período para 10800 segundos (30 horas):

Router(config)#
Router(config)#ip nat translation timeout ?
  0-536870    Timeout in seconds
  never       Never timeout
Router(config)#ip nat translation timeout 10800
Router(config)#

Quando o timeout de uma associação é alcançado, a linha correspondente a ela na tabela NAT é excluída. Por isso que, diferentemente do NAT Estático, a tabela do NAT Dinâmico muda conforme as associações são feitas e desfeitas. Novamente, todas as associações da tabela podem ser excluídas com o comando clear ip nat translation *.

Port Address Translation

É muito raro encontrar aplicações de NAT Dinâmico atualmente, sobretudo porque o seu mapeamento ainda é de um para um, embora não permanente. O NAT Dinâmico pode ser considerado um aprimoramento do NAT Estático, mas a solução que ele fornece para a questão da economia de endereços IPv4 não permaneceria válida por muito tempo. Hoje em dia, num pequeno escritório com 600 hosts, por exemplo, não é incomum se deparar com a maioria deles acessando a Internet ao mesmo tempo. O tamanho da pool para o NAT Dinâmico atender a essa demanda teria que ser gigantesca — praticamente, com uma quantidade de endereços públicos em torno de 600!

O que fazer, então? A nível de camada de rede, nada mais pode ser feito. A solução é subir um degrau e manipular as informações da camada de transporte. E é aqui que o PAT nasce.

Descrito na RFC 3022 com o nome de NAPT (Network Address Port Translation), o PAT permite que milhares de hosts de uma rede inside saiam para a Internet usando um único endereço público. O grande segredo do NAT é o uso de números de porta de camada 4 para diferenciar as sessões. Vamos dar uma olhada na Figura 3.

Figura 3: Port Address Translation.

O host A está acessando três páginas web na Internet ao mesmo tempo (observe que todas as conexões são para a porta 80, HTTP). O que diferencia o PAT dos outros modelos de NAT, basicamente, é a possibilidade de fazer o overloading (sobrecarga) de um único endereço público, ou seja, que epenas um endereço público seja necessário para atender milhares de hosts com endereços privados.

No caso da Figura 3, mesmo que o PAT não fizesse tradução de portas de origem (mantesse o número original), a comunicação seria teoricamente possível porque um único host não gera portas de origem iguais para sessões diferentes (cada sessão possui seu próprio número de origem). A primeira sessão na figura tem porta de origem 1060, a segunda 1070, e a terceira 1080. Após a tradução, a primeira sessão teria como origem 203.0.113.1:1060, a segunda 203.0.113.1:1070, e a terceira 203.0.113.1:1080. Dessa forma, o roteador conseguiria identificar cada sessão separadamente, a partir da combinação de IP e porta de origem.

Vamos dar uma olhada, agora, na Figura 4.

Figura 4: Port Address Translation.

Dois hosts distintos, A e C, estão se comunicando simultaneamente o com o mesmo servidor web na Internet. Ambas as sessões estão usando o mesmo número de porta de origem (como os hosts são diferentes, isso é perfeitamente possível). Sem considerar a tradução do número de porta de origem, ao sair para a Internet a primeira sessão teria como origem 203.0.113.1:1060, e a segunda sessão também teria 203.0.113.1:1060. No retorno da comunicação, quando o servidor web respondesse, o roteador receberia na interface S0/0/0 múltiplos pacotes destinados 203.0.113.1:1060. Para quem o roteador enviaria o tráfego? Para o host A ou o host C? Ele não teria como saber, pois há duas sessões idênticas na visão dele.

Por isso o PAT faz a tradução dos números de porta de origem: para diferenciar uma sessão da outra. Após a tradução, a primeira sessão da Figura 4 teria como origem 203.0.113.1:1060, e a segunda teria 203.0.113.1:1061, por exemplo. Ou seja, o PAT poderia manter a porta original da primeira sessão e traduzir a porta da segunda. Quando o servidor web respondesse, um tráfego seria destinado a 203.0.113.1:1060 e o outro seria para 203.0.113.1:1061, e o roteador saberia que o primeiro é para o host A e o segundo é para o host C.

Os comandos a seguir podem ser usados para configurar o PAT no cenário da Figura 4 (considerando que as portas inside (G0/1) e outside (S0/0/0) já estão configuradas):

Router(config)#
Router(config)#access-list 1 permit 192.168.0.0 0.0.0.255
Router(config)#ip nat inside source list 1 interface s0/0/0 overload
Router(config)#

O primeiro comando (linha 2) reúne, através de uma lista de acesso, os endereços privados que serão processados pelo PAT. O segundo comando (linha 3) configura o PAT propriamente dito, associando a lista de acesso 10 à interface S0/0/0. Na realidade, o comando determina que o PAT utilize o endereço IP configurado na interface S0/0/0 como o endereço público a ser usado nas traduções. O último parâmetro, overload, é o que de fato habilita o PAT. Se ele não fosse inserido, estaríamos configurando um NAT Dinâmico simples com apenas um endereço disponível para uso. Tenha muito cuidado ao configurar o PAT para não esquecer este parâmetro.

Um único endereço público usado com o PAT permite, em teoria, 65536 conexões simultâneas com a Internet (os campos de porta de origem e de destino de um cabeçalho TCP ou UDP são formados por 16 bits, portanto, 216 = 65536 números de porta possíveis).

Também é possível configurar o PAT com uma pool, possibilitando que mais de um endereço público esteja disponível para uso. Neste caso, as configurações ficariam da seguinte forma:

Router(config)#
Router(config)#access-list 1 permit 192.168.0.0 0.0.0.255
Router(config)#ip nat pool wpt 203.0.113.4 203.0.113.5 netmask 255.255.255.248
Router(config)#ip nat inside source list 1 pool wpt overload
Router(config)#

Dois endereços públicos /29 foram incluídos na pool chamada "wpt": 203.0.113.4 e 203.0.113.5 (linha 3). Em seguida, o PAT foi configurado usando os endereços privados da lista de acesso 1 e os endereços públicos da pool "wpt" (linha 4). Com dois endereços públicos disponíveis para o PAT, podemos ter em teoria 131072 conexões simultâneas com a Internet!

Por fim, com o PAT configurado, a tabela NAT do roteador da Figura 4 pode, em dado momento, estar da seguinte forma:

Router#
Router#sh ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
tcp 203.0.113.1:1060   192.168.0.1:1060   198.51.100.82:80   198.51.100.82:80
tcp 203.0.113.1:1061   192.168.0.2:1060   198.51.100.82:80   198.51.100.82:80
Router#

As associações PAT da tabela NAT são excluídas com o já conhecido clear ip nat translation *.

Terminologia NAT

Na tabela NAT acima, há pelo menos quatro termos que você talvez não conheça. São eles: "Inside local", "Inside global", "Outside local" e "Outside global". Há ainda o "Pro", mas ele é simplesmente uma abreviação de "Protocol", e está na tabela nomeando a coluna que indica o protocolo usado em cada sessão (as duas sessões são para acesso a páginas web, portanto, usam TCP).

Vamos dar uma olhada na Figura 5.

Figura 5: Terminologia NAT.

As expressões "Local" e "Global" fazem referência à localização do pacote. Perceba que na rede LAN corporativa há apenas endereços "Local", ao passo que na Internet existem apenas endereços "Global".

Já as expressões "Inside" e "Outside" nos dizem quem o endereço está representando. O endereço "Inside Local" da figura é 192.168.0.1:1060. Ele é "Inside" porque está representando um host da rede inside, e é "Local" porque o pacote está atualmente na rede local (na rede corporativa).

O endereço "Inside Global" — 203.0.113.1:1060 — é "Inside" porque representa um host que está na rede inside (o endereço não é do host, mas representa o host; este é o endereço público que o NAT associou ao endereço privado do host A), e é "Global" porque o pacote está atualmente na rede global (na rede pública, na Internet).

O endereço "Outside Local" — 192.51.100.82:80 — é "Outside" porque representa um host que está na rede outside (o servidor hospedado na Internet), e é "Local" porque o pacote encontra-se no momento na rede corporativa.

Por fim, o endereço "Outside Global" — 192.51.100.82:80 — é "Outside" porque representa um host na rede outside, e é "Global" porque o pacote está atualmente na Internet. Os endereços "Outside Local" e "Outside Global" são idênticos porque o NAT está traduzindo apenas os endereços privados, da rede inside.

Em suma, "Inside Local" são endereços privados atribuídos aos hosts da rede inside. "Inside Global" são os endereços públicos usados pelo NAT que representam os hosts da rede inside na rede outside. "Outside Local" são os endereços pelos quais os hosts da rede outside são conhecidos pelos hosts da rede inside. E "Outside Global" são endereços públicos atribuídos aos hosts da rede outside. Para os nossos propósitos, os endereços "Outside Local" e "Outside Global" sempre serão idênticos.

Verificação

Dois comandos show básicos do NAT são importantes para o nosso propósito.

O primeiro, como já vimos, é o show ip nat translations, usado para visualizar a tabela NAT.

O outro é o show ip nat statistics, que, como podemos prever, fornece estatísticas do processo de NAT em execução no roteador. O output desse comando nos dá as seguintes informações:

Router#
Router#sh ip nat statistics
Total active translations: 5 (1 static, 4 dynamic; 2 extended)
Peak translations: 6, occurred 16:44:28 ago
Outside interfaces:
  Serial0/0/0
Inside interfaces:
  GigabitEthernet0/1
Hits: 152155  Misses: 0
Expired translations: 3
Dynamic mappings:
-- Inside Source
[Id: 1] access-list 1 pool R8 refcount 3
 pool R8: netmask 255.255.255.248
        start 203.0.113.1 end 203.0.113.6
        type generic, total addresses 6, allocated 2 (33%), misses 0
Router#

As estatísticas mais relevantes são: "Total active translations", que nos mostra quantas traduções estão ativas no momento, presentes na tabela NAT, e se são estáticas, dinâmicas ou estendidas (PAT); "Peak translations" nos diz em que momento houve a maior quantidade de traduções na tabela NAT, e quantas foram; "Outside interfaces" nos lista a(s) interface(s) outside, e "Inside interfaces" nos lista a(s) interface(s) inside; a linha 14 nos informa qual lista de acesso reúne os endereços privados que serão processados pelo NAT e a pool que contém os endereços públicos ("refcount" é a quantidade de traduções que estão usando endereços da pool no momento); e as linhas 15 e 16 nos fornecem detalhes sobre os endereços públicos contidos na pool.

ESTUDO DE CASO: IMPLANTAÇÃO DE PAT

Analise o cenário da Figura 6. Configure o PAT em R1 para que os hosts da VLAN 20 se conectem à Internet usando o endereço configurado na interface S0/0/0, e os hosts da VLAN 30 usem os endereços disponíveis na faixa 203.0.113.2-6 /29, inclusive. Em ambos os casos, o NAT deve ser implantado em modo Overload.

Figura 6: Implantação de PAT.

Passo 1: Verificar o endereço atribuído à interface S0/0/0:

R1#
R1#sh ip interface brief
Interface      IP-Address   OK?  Method  Status  Protocol
Serial0/0/0    203.0.113.1  YES  manual  up      up
!
! output omitido
!
R1#

Passo 2: Configurar as interfaces inside e outside:

R1(config)#
R1(config)#interface g0/1
R1(config-if)#ip nat inside
R1(config-if)#interface s0/0/0
R1(config-if)#ip nat outside
R1(config-if)#

Passo 3: Configurar o PAT para a VLAN 20:

R1(config)#
R1(config)#access-list 20 permit 192.168.20.64 0.0.0.15
R1(config)#ip nat inside source list 20 interface s0/0/0 overload
R1(config)#

Passo 4: Configurar o PAT para a VLAN 30:

R1(config)#
R1(config)#access-list 30 permit 192.168.20.32 0.0.0.15
R1(config)#ip nat pool vlan30 203.0.113.2 203.0.113.6 netmask 255.255.255.248
R1(config)#ip nat inside source list 30 pool vlan30 overload
R1(config)#

Passo 5: Testar a implantação:

R1#
R1#sh ip nat translations 
Pro Inside global      Inside local        Outside local  Outside global
udp 203.0.113.1:59602  192.168.0.65:59602  8.8.8.8:53     8.8.8.8:53
udp 203.0.113.2:65389  192.168.0.33:65389  8.8.8.8:53     8.8.8.8:53
R1#
R1#sh ip nat statistics
Total active translations: 2 (0 static, 2 dynamic; 2 extended)
Peak translations: 2, occurred 19:33:40 ago
Outside interfaces:
  Serial0/0/0
Inside interfaces:
  GigabitEthernet0/1
Hits: 2  Misses: 0
Expired translations: 0
Dynamic mappings:
-- Inside Source
[Id: 1] access-list 20 interface Serial0/0/0 refcount 1
[Id: 2] access-list 30 pool vlan30 refcount 1
 pool vlan30: netmask 255.255.255.248
        start 203.0.113.2 end 203.0.113.6
        type generic, total addresses 5, allocated 1 (20%), misses 0
R1#
R1#

Network Address Translation Reviewed by Carlos Wolkartt on August 20, 2018 Rating: 5

No comments:

Todos os direitos reservados a Carlos Wolkartt © 2018
Hospedado no Blogger.

Mande sua mensagem

Name

Email *

Message *

Powered by Blogger.