Os clientes VPN da ASA obtêm endereços do pool DHCP errado
Leia dhcp-server e dhcp-network-scope na ASA como dois campos distintos, defina o scope num endereço encaminhável fora do pool e depois verifique a rota.
Os clientes AnyConnect aparecem na sub-rede errada, ou o servidor DHCP recusa entregar o que quer que seja, enquanto a política de grupo parece correta à primeira vista. Numa ASA existem dois campos em dois locais que ambos soam como «de onde vêm os endereços», e configurar o errado produz exatamente isto. O perfil de ligação nomeia o servidor DHCP; a política de grupo nomeia uma sub-rede de onde esse servidor deve escolher. Nenhum dos dois cria um pool.
Três objetos, três perguntas
Separe primeiro o modelo de atribuição do pool, porque os dois modelos não partilham configuração. Se a ASA distribui os endereços ela própria, define um pool local e aponta a política de grupo para ele. Se um servidor DHCP externo os distribui, o perfil de ligação nomeia esse servidor e a política de grupo fornece uma indicação de scope. Misturar os dois é a razão habitual pela qual um endereço nunca aparece.
| Intent | Objects involved |
|---|---|
| ASA allocates from its own pool | ip local pool plus the group policy's address-pool |
| External DHCP allocates | dhcp-server on the tunnel group, dhcp-network-scope on the group policy |
Leia os valores efetivos antes de alterar um
Uma linha omitida não é o mesmo que um none explícito. A configuração em execução mostra o que escreveu; show run all group-policy mostra aquilo em que a política realmente se resolve, incluindo os valores predefinidos herdados. Verifique ambos antes de decidir que o scope está errado, porque uma política de grupo que herda de uma política predefinida pode fornecer um valor que nunca aparece na lista curta.
show running-config group-policy RemoteStaff
show run all group-policy RemoteStaff
show running-config tunnel-group RemoteStaff
group-policy RemoteStaff attributes
dhcp-network-scope ?
? vale a pena ler na versão instalada, porque os valores aceites e o respetivo texto de ajuda diferem entre versões. A referência Cisco ASA 9.24 para a política de grupo documenta o atributo como um endereço encaminhável na sub-rede desejada, fora do pool de atribuição, com preferência por um endereço de interface. Não é o intervalo do pool e não é o número de rede.
Defina o scope num endereço, não num intervalo
Vamos supor que o pool que quer que o servidor utilize é 10.50.30.50 até 10.50.30.200 numa /24, e que a interface da ASA nesse segmento é 10.50.30.1. O valor do scope é 10.50.30.1. Escrever 10.50.30.0 falha porque é o número de rede, e escrever o intervalo falha porque o atributo aceita um único endereço. Se o endereço que escolher não for um endereço de interface, precisa de uma rota estática para que a resposta do servidor DHCP o possa alcançar.
group-policy RemoteStaff attributes
dhcp-network-scope 10.50.30.1
Este fragmento faz apenas uma coisa. Não configura o servidor DHCP, não cria um pool lá e não transforma um perfil de acesso remoto parcial num perfil funcional. O comportamento documentado aqui é apenas IPv4; não espere que controle DHCPv6 ou delegação de prefixos.
Altere-o com um ponto de reversão
Faça primeiro um snapshot, para que a reversão seja um comando e não uma reconstrução. Guarde a configuração relevante num ficheiro antes de editar e saiba o que no restaura na sua versão: devolve o atributo ao valor predefinido ou herdado, que pode ser none em vez da política acima dele.
copy running-config flash:pre-dhcp-scope.cfg
conf t
group-policy RemoteStaff attributes
no dhcp-network-scope
dhcp-network-scope 10.50.30.1
end
write memory
Remover o atributo é também um passo de diagnóstico. Sem scope definido, o servidor DHCP procura nos seus próprios pools um endereço não atribuído, pelo que o cliente pode aterrar num local inesperado mas pelo menos liga-se. Esse resultado diz que o caminho do pedido funciona e que o que falha é a seleção do pool.
Verifique o endereço, a rota e as permissões
Leia a atribuição da tabela de sessões e não da janela do cliente, depois confirme que o endereço é encaminhável de volta para o túnel e que os filtros da política de grupo permitem o tráfego que espera. Uma decisão de atribuição não é uma decisão de encaminhamento, e um cliente que recebe um endereço do pool correto ainda pode falhar em cada pedido.
show vpn-sessiondb detail anyconnect filter name testuser
show ip local pool
show route | include 10.50.30
ping 10.50.30.61 source inside
Se a sessão mostra o endereço pretendido mas o tráfego morre, o scope fica descartado como suspeito. Veja a rota de retorno, as definições de split-tunnel ou de filtros da política de grupo, e se o scope DHCP está num segmento para o qual a ASA realmente encaminha.