ASA Traceroute from Lower to Higher Security Level – How It Works

ciscocisco-asafirewallSecurity

In following scenarios Security Level 50 (dmz-1) to Security level 75 (dmz-2) traceroute not working. I think traceroute use specific port for unreachable function but in following scenario i don't know which udp port it's going to pick.

enter image description here

I have following config

access-list DMZ-1-IN extended permit icmp any any unreachable
access-list DMZ-1-IN extended permit icmp any any time-exceeded
access-list DMZ-1-IN extended permit icmp any any traceroute
!
access-group DMZ-1-IN in interface dmz-1
!
class class-default
  set connection decrement-ttl

Update:

Here are the logs

Oct 20 2017 09:47:04: %ASA-4-106023: Deny udp src dmz-1:10.5.8.40/48236 dst dmz-1:10.5.16.40/33434 by access-group "DMZ-1-IN" [0x0, 0x0]
Oct 20 2017 09:47:04: %ASA-4-106023: Deny udp src dmz-2:10.5.8.40/53052 dst dmz-2:10.5.16.40/33435 by access-group "DMZ-1-IN" [0x0, 0x0]

Best Answer

Yes, you need to update your ACL to allow more UDP ports covering the traceroute packets from Unix-like Operating system.

According to the Wikipedia Page for Traceroute:

  • On Unix-like Operating Systems, traceroute sends (by default) a sequence of UDP packets with destination port range: 33434 - 33534.
  • On Windows Operating Systems, traceroute sends ICMP echo requests instead of UDP packets. That is why when you traceroute from a Windows host, you do not face this issue.

So, you need to update your ACL with the following rule to allow destination UDP ports when tracerouting from your Linux/Unix/like hosts and servers:

access-list DMZ-1-IN extended permit udp any any range 33434 33534

I hope it is helpful and answers your question.