O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve um problema comum que ocorre quando os clientes VPN se desconectam de um Cisco Adaptive Security Appliance (ASA) executado como headend de VPN de acesso remoto. Este documento também descreve a situação em que um loop de tráfego ocorre quando os usuários de VPN se desconectam de um firewall ASA. Este documento não aborda como configurar ou configurar o acesso remoto à VPN, somente a situação específica que surge de certas configurações de roteamento comuns.
A Cisco recomenda que você tenha conhecimento destes tópicos:
As informações neste documento são baseadas em um ASA Model 5520 que executa o ASA code versão 9.1(1).
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Este documento pode ser usado com estas versões de hardware e software:
Quando um usuário se conecta ao ASA como um concentrador VPN de acesso remoto, o ASA instala uma rota baseada em host na tabela de roteamento do ASA que roteia o tráfego para esse cliente VPN para fora da interface externa (em direção à Internet). Quando esse usuário se desconecta, a rota é removida da tabela e os pacotes na rede interna (destinados a esse usuário desconectado da VPN) podem estar em loop entre o ASA e um dispositivo de roteamento interno.
Outro problema é que os pacotes de broadcast direcionados (rede) (gerados pela remoção dos clientes VPN) podem ser encaminhados pelo ASA como um quadro unicast para a rede interna. Isso pode encaminhá-lo de volta ao ASA, que faz com que o pacote seja bloqueado até que o Time to Live (TTL) expire.
Este documento explica esses problemas e mostra quais técnicas de configuração podem ser usadas para evitar o problema.
Quando um usuário de VPN de acesso remoto se desconecta de um firewall ASA, os pacotes ainda estão presentes na rede interna (destinados aos usuários desconectados) e o endereço IP VPN atribuído pode ficar em loop na rede interna. Esses loops de pacote podem fazer com que o uso da CPU no ASA aumente até que o loop pare devido ao valor TTL do IP no cabeçalho do pacote IP decrementando para 0, ou o usuário se reconecta e o endereço IP é atribuído novamente a um cliente VPN.
Para entender melhor esse cenário, considere esta topologia:
Neste exemplo, o cliente de acesso remoto recebeu o endereço IP 10.255.0.100. O ASA neste exemplo está conectado ao mesmo segmento de rede interno junto com um roteador. O roteador tem dois segmentos de rede adicionais de Camada 3 conectados a ele. As configurações relevantes de interface (roteamento) e VPN do ASA e do roteador são mostradas nos exemplos.
Os destaques da configuração do ASA são mostrados neste exemplo:
interface GigabitEthernet0/0
nameif outside
security-level 0
ip address 198.51.100.100 255.255.255.0
!
interface GigabitEthernet0/1
nameif inside
security-level 100
ip address 10.1.0.1 255.255.255.0
!
same-security-traffic permit intra-interface
!
ip local pool VPNpool 10.255.0.1-10.255.0.255
!
route outside 0.0.0.0 0.0.0.0 198.51.100.1
route inside 10.0.0.0 255.0.0.0 10.1.0.2
Os destaques da configuração do roteador são mostrados neste exemplo:
interface FastEthernet0
description connected to the inside interface of the ASA G0/1
ip address 10.1.0.2 255.255.255.0
!
interface FastEthernet1
description connected to network segment
ip address 10.2.0.1 255.255.255.0
!
interface FastEthernet2
description connected to other network segment
ip address 10.3.0.1 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.1.0.1
A tabela de roteamento do roteador conectado ao interior do ASA simplesmente tem uma rota padrão apontada para a interface interna do ASA de 10.1.0.1.
Enquanto o usuário está conectado via VPN ao ASA, a tabela de roteamento do ASA mostra o seguinte:
ASA# show route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is 198.51.100.1 to network 0.0.0.0
S 10.255.0.100 255.255.255.255 [1/0] via 198.51.100.1, outside
S 10.0.0.0 255.0.0.0 [1/0] via 10.1.0.2, inside
C 198.51.100.0 255.255.255.0 is directly connected, outside
C 10.1.0.0 255.255.255.0 is directly connected, inside
S* 0.0.0.0 0.0.0.0 [1/0] via 198.51.100.1, outside
O problema ocorre quando o usuário VPN de acesso remoto se desconecta da VPN. Neste ponto, a rota baseada em host é removida da tabela de roteamento ASA. Se um host dentro da rede tenta enviar tráfego para o cliente VPN, esse tráfego é roteado para a interface interna do ASA pelo roteador. Esta série de etapas ocorre:
Um exemplo é mostrado abaixo:
Esse loop ocorre até que o TTL desse pacote diminua para 0. Observe que o ASA Firewall não decrementa o valor TTL por padrão quando processa um pacote. O roteador diminui o TTL à medida que roteia o pacote. Isso evita a ocorrência desse loop indefinidamente, mas esse loop aumenta a carga de tráfego no ASA e faz com que o uso da CPU aumente.
Esse problema é semelhante ao primeiro. Se um cliente VPN gera um pacote de broadcast direcionado para sua sub-rede IP atribuída (10.255.0.255 no exemplo anterior), esse pacote pode ser encaminhado como um quadro unicast pelo ASA para o roteador interno. O roteador interno pode, então, encaminhá-lo de volta ao ASA, que faz com que o pacote entre em loop até que o TTL expire.
Esta série de eventos ocorre:
Há várias soluções em potencial para esse problema. Dependendo da topologia da rede e da situação específica, uma solução pode ser mais fácil de implementar do que outra.
Quando você envia tráfego para uma interface Null0, isso faz com que os pacotes destinados à rede especificada sejam descartados. Esse recurso é útil quando você configura Remote Triggered Black Hole (RTBH) para Border Gateway Protocol (BGP). Nessa situação, se você configurar uma rota para Null0 para a sub-rede do cliente de acesso remoto, ela forçará o ASA a descartar o tráfego destinado aos hosts nessa sub-rede se uma rota mais específica (fornecida pela Injeção de rota inversa) não estiver presente.
route Null0 10.255.0.0 255.255.255.0
Essa solução é atribuir aos usuários remotos de VPN um endereço IP que não se sobreponha a nenhuma sub-rede interna da rede. Isso impediria que o ASA encaminhasse pacotes destinados àquela sub-rede VPN de volta ao roteador interno se o usuário VPN não estivesse conectado.
Essa solução é garantir que a tabela de roteamento do ASA não tenha nenhuma rota muito ampla que se sobreponha ao pool de IP da VPN. Para este exemplo de rede específico, remova a rota 10.0.0.0/8 do ASA e configure rotas estáticas mais específicas para as sub-redes que residem fora da interface interna. Dependendo do número de sub-redes e da topologia de rede, isso pode ser um grande número de rotas estáticas e pode não ser possível.
Essa solução é mais complicada do que as outras descritas neste documento. A Cisco recomenda que você tente usar as outras soluções primeiro devido à situação descrita na Nota mais adiante nesta seção. Essa solução é impedir que o ASA encaminhe pacotes IP originados da sub-rede IP da VPN de volta ao roteador interno; você pode fazer isso se adicionar uma rota mais específica para a sub-rede VPN fora da interface externa. Como essa sub-rede IP é reservada para usuários de VPN externos, os pacotes com um endereço IP de origem dessa sub-rede IP de VPN nunca devem chegar na entrada na interface interna do ASA. A maneira mais fácil de conseguir isso é adicionar uma rota para o pool IP da VPN de acesso remoto fora da interface externa com um endereço IP do próximo salto do roteador ISP upstream.
Neste exemplo de topologia de rede, essa rota seria assim:
route outside 10.255.0.0 255.255.255.0 198.51.100.1
Além dessa rota, adicione o comando ip verify reverse-path inside para que o ASA descarte todos os pacotes recebidos na interface interna originados da sub-rede IP VPN devido à rota mais preferencial existente na interface externa:
ip verify reverse-path inside
Depois que esses comandos são implementados, a tabela de roteamento ASA é semelhante a esta quando o usuário está conectado:
ASA# show route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Gateway of last resort is 198.51.100.1 to network 0.0.0.0
S 10.255.0.100 255.255.255.255 [1/0] via 198.51.100.1, outside
S 10.0.0.0 255.0.0.0 [1/0] via 10.1.0.2, inside
S 10.255.0.0 255.255.255.0 [1/0] via 198.51.100.1, outside
C 198.51.100.0 255.255.255.0 is directly connected, outside
C 10.1.0.0 255.255.255.0 is directly connected, inside
S* 0.0.0.0 0.0.0.0 [1/0] via 198.51.100.1, outside
Quando o cliente VPN está conectado, a rota baseada em host para esse endereço IP de VPN está presente na tabela e é preferida. Quando o cliente VPN se desconecta, o tráfego originado desse endereço IP do cliente que chega na interface interna é verificado em relação à tabela de roteamento e descartado devido ao comando ip verify reverse-path inside.
Se o cliente VPN gera um broadcast de rede direcionado para a sub-rede IP da VPN, esse pacote é encaminhado para o roteador interno e encaminhado pelo roteador de volta para o ASA, onde é descartado devido ao comando ip verify reverse-path inside.
Note: Depois que essa solução for implementada, se o comando same-security permit intrainterface estiver presente na configuração e as políticas de acesso permitirem, o tráfego originado de um usuário VPN destinado a um endereço IP no pool IP da VPN para um usuário que não está conectado pode ser roteado de volta para fora da interface externa em texto claro. Essa é uma situação rara e pode ser atenuada com o uso de filtros de VPN na política de VPN. Essa situação ocorre somente se o comando same-security permit intrainterface estiver presente na configuração do ASA.
Da mesma forma, se os hosts internos gerarem tráfego destinado a um endereço IP no pool de VPNs e esse endereço IP não for atribuído a um usuário remoto de VPN, esse tráfego poderá sair do lado de fora do ASA em texto claro.