Recentemente, ocorreu um problema em que adicionar um NAT dinâmico a uma interface quebrou todo o tráfego traduzido que passava pela interface com falhas de RPF. Descobrimos que a adição do comando fazia com que a filtragem de caminho reverso do NAT começasse a eliminar a maioria do tráfego na interface, mas a verificação RPF anterior não estava acontecendo (ou pelo menos não estava aparecendo anteriormente nos resultados packet-tracer
).
A interface já possuía centenas de isenções de NAT, estatísticas e NAT de política dinâmica, mas a adição do primeiro NAT dinâmico (com uma pequena restrição de origem e uma interface de destino não relacionada a 99% das traduções que foram interrompidas) falhas.
Veja o que quebrou:
nat (Public) 33 172.16.14.0 255.255.255.248 outside tcp 0 0 udp 0
global (Voice) 33 10.0.8.180 netmask 255.255.255.255
A regra referenciada no RPF falha foi a regra principal do PAT para o interior; nada sobre a configuração adicionada deve ter interferido no inverso bem-sucedido dessa regra:
Phase: 9
Type: NAT
Subtype: rpf-check
Result: DROP
Config:
nat (public) 0 0.0.0.0 0.0.0.0 outside
nat-control
match ip Public any inside any
no translation group, implicit deny
policy_hits = 7274
Additional Information:
Resultados completos de packet-tracer
antes de NAT ser adicionado: link e depois: link
Então, a questão é: é realmente assim que o RPF NAT se comporta - filtrando apenas uma interface, uma vez que a interface tenha um NAT dinâmico conectado? Por que um NAT dinâmico o acionou, mas os NATs de política dinâmica (comportando-se exatamente da mesma forma, mas com origem e destino especificados, em vez de apenas uma origem), não o fizeram? Ou estava sempre acontecendo, apenas com uma permissão implícita na interface até que houvesse uma NAT dinâmica, que então se transformaria em uma negação implícita se nenhuma regra fosse compatível?
5520 executando 8.2.2, se for importante.