Fixo!
Eu não tenho certeza do que estava acontecendo para causar o problema, mas isso é o que parecia estar acontecendo.
Vamos revisitar as regras NAT novamente.
nat (inside,outside) source static any any destination static VPN VPN
nat (dmz,outside) source static DMZ_VLAN DMZ_VLAN destination static VPN VPN
Observe a diferença entre as duas regras que (supostamente) fazem a mesma coisa para interfaces diferentes.
A razão pela qual o NAT superior é assim ( any any
) é porque existem várias redes que podem vir de dentro da nossa rede, então pensamos em deixá-lo aberto seria mais fácil do que definir todas as redes que pudessem aparecer.
O problema que parece ter acontecido, foi que quando o tráfego vem da VPN, o ASA olha através de seus NATs aparentemente antes de decidir qual caminho tomará através do firewall. Por isso, irá verificar o tráfego em relação ao topo NAT, e ele combina porque definitivamente vai de VPN para qualquer um .. Considerando que o tráfego de retorno seria de DMZ_VLAN para VPN e, portanto, não corresponderia à regra superior.
Não tenho certeza se a correspondência entre o primeiro NAT faz com que o ASA direcione o tráfego para dentro ou se apenas perceba que o tráfego de saída corresponderá a um NAT diferente.
Depois de modificar a regra de NAT principal para ser mais específica:
nat (inside,outside) source static IN_VLANS IN_VLANS destination static VPN VPN
Tudo funciona perfeitamente!
Problema estranho ... mas parece que a moral da história é ser específica com tudo, mesmo quando você não acha que vai causar problemas ... porque pode.