Toda ACL Cisco termina com um deny any implícito que não aparece na configuração quando você faz show running-config.
Ele existe, está lá e vai bloquear qualquer tráfego que não casar com nenhuma regra explícita da ACL.
É o erro mais comum de quem configura ACL pela primeira vez: cria as regras de permit, aplica na interface e derruba tráfego que não era para bloquear.
O que é o implicit deny
Quando o roteador processa uma ACL, verifica cada pacote contra as regras em ordem, de cima para baixo. Se o pacote casar com uma regra, a ação dessa regra é aplicada e o processamento para.
Se o pacote passar por todas as regras sem casar com nenhuma, o implicit deny entra em ação e o pacote é descartado.
Não tem como desativar o implicit deny. Ele sempre existe, em qualquer ACL, padrão ou estendida, nomeada ou numerada.
Por que não aparece no show running-config
O implicit deny é comportamento padrão do IOS, não uma entrada configurada. O Cisco IOS não o exibe na configuração para não poluir a saída com uma linha que sempre existe.
Mas ele aparece quando você usa show access-lists:
Router# show access-lists 100
Extended IP access list 100
10 permit tcp 192.168.1.0 0.0.0.255 any eq 80
20 permit tcp 192.168.1.0 0.0.0.255 any eq 443
As linhas 10 e 20 permitem HTTP e HTTPS. Qualquer outro tráfego da rede 192.168.1.0/24 é bloqueado pelo implicit deny que não aparece na listagem.
O erro mais comum
ip access-list extended BLOQUEIA-TELNET
deny tcp any any eq 23
Essa ACL bloqueia Telnet. Mas quando aplicada na interface, bloqueia também SSH, HTTP, HTTPS e todo o resto, porque o implicit deny cai em tudo que não é Telnet.
A correção:
ip access-list extended BLOQUEIA-TELNET
deny tcp any any eq 23
permit ip any any
O permit ip any any no final permite explicitamente todo o tráfego que não é Telnet. Sem essa linha, o implicit deny bloqueia tudo.
Como verificar o que a ACL está bloqueando
O comando show access-lists mostra o contador de matches ao lado de cada regra:
Router# show access-lists 100
Extended IP access list 100
10 permit tcp 192.168.1.0 0.0.0.255 any eq 80 (45 matches)
20 permit tcp 192.168.1.0 0.0.0.255 any eq 443 (123 matches)
Se uma linha tem zero matches e você esperava que o tráfego passasse por ela, o pacote está sendo bloqueado antes de chegar nessa linha, ou não está chegando com os parâmetros que você configurou.
O implicit deny não tem contador de matches. Você não consegue ver quantos pacotes ele bloqueou diretamente. Para isso, adicione uma linha de deny explícita com log antes do implicit deny:
ip access-list extended 100
permit tcp 192.168.1.0 0.0.0.255 any eq 80
permit tcp 192.168.1.0 0.0.0.255 any eq 443
deny ip any any log
Agora o deny explícito com log aparece no syslog quando bloqueia tráfego.
Implicit deny em ACL padrão vs estendida
O implicit deny funciona igual nos dois tipos. A diferença é o que ele bloqueia:
Em ACL padrão, o implicit deny bloqueia qualquer IP de origem que não casou com as regras. Todo o tráfego desse IP é descartado, independente do destino ou protocolo.
Em ACL estendida, o implicit deny bloqueia qualquer combinação de origem, destino, protocolo e porta que não casou com as regras. Mais granular, mas o comportamento do implicit deny é o mesmo.
O que a prova CCNA cobra
Implicit deny está no domínio Security Fundamentals. Os pontos mais frequentes:
Identificar que o tráfego está sendo bloqueado pelo implicit deny quando nenhuma regra explicita faz o deny. Explicar por que uma ACL com apenas regras de deny bloqueia todo o tráfego. Corrigir uma ACL que bloqueia tráfego não intencional adicionando permit ip any any. Interpretar a saída do show access-lists e identificar qual regra está bloqueando o tráfego.
FAQ
Posso ter uma ACL sem implicit deny?
Não. O implicit deny sempre existe. A única forma de "desativá-lo" é adicionar um permit ip any any explícito como última regra.
O implicit deny aparece no show running-config?
Não. Só aparece implicitamente no comportamento da ACL. Para ver todos os bloqueios, adicione uma linha deny ip any any log explícita antes do implicit deny.
Se eu não aplicar a ACL em nenhuma interface, o implicit deny bloqueia tráfego? Não. Uma ACL que não está aplicada em nenhuma interface não tem efeito nenhum no tráfego. O implicit deny só entra em ação quando a ACL está ativa em uma interface.
▌ ACL e implicit deny são temas de Security Fundamentals do CCNA. O diagnóstico gratuito do PacketPass mostra onde estão suas lacunas por domínio. Resultado na hora, sem cadastro.
Informações baseadas no blueprint CCNA 200-301 atual e documentação oficial da Cisco sobre ACLs.