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.

IntentObjects involved
ASA allocates from its own poolip local pool plus the group policy's address-pool
External DHCP allocatesdhcp-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.

Artigos relacionados