ASA hairpin nat

So here's my situation. I have an ASA running 8.0.4 which can't be upgraded at the moment. This ASA has a guest network which is working fine, except that the captive portal page has a certificate error which we want to correct. The captive portal page is on the wireless controller AND is in the same subnet as the guest users. The guest users receive public DNS servers via DHCP (dictated by company security policy), and they don't have any one-to-one static mappings on the ASA nor are they available.

When this situation has come up in the past, there were usually a couple differences: the portal page was usually a virtual IP on the controller which wasn't a part of the guest network and/or there was an available static ip mapping that I could use for some DNS doctoring. However, I can't do DNS doctoring without a 1-to-1 mapping, and the captive portal is on the same subnet as the guests.

My only thought was PAT plus destination natting, but it didn't seem to work and I'm not onsite today to test it myself and do things like packet capture.

Here's what I did: guest network captive portal public ip

Set the captive portal to use an FQDN that did resolve to the company's public IP address using public DNS servers - (I do have a certificate installed in the captive portal for

From there I had a PAT and a static NAT to redirect traffic. The PAT was to change the source to get away from asymmetric routing, and the nat was to change the destination address from a public to a private.

access-list Guest_Network_nat_outbound extended permit ip host

global (outside) 1 interface
global (Guest_Network) 20 interface

nat (Guest_Network) 0 access-list Guest_Network_nat0_outbound
nat (Guest_Network) 20 access-list Guest_Network_nat_outbound
nat (Guest_Network) 1

static (Guest_Network,Guest_Network) netmask
LVL 20
Who is Participating?
Marius GunnerudConnect With a Mentor Senior Systems EngineerCommented:
I am not quite sure I understand exactly what issue you are having.  first off,  is the public IP of the captive portal?  and points to that IP?

So you clients on the guest network are connecting to which initially sends them out to the internet for their DNS lookup.  Now the should be NATed to the captive portal from the outside interface to the guest network that configured?  Does this work when clients are outside the Guest network?

If so then the DNS rewrite (aka DNS doctoring) would be configured on that NAT statement.  Keep in mind that DNS rewrite does not work on PAT so unless there is a static NAT sending all ports to the captive portal, this will not work.

The other option is to NAT the public IP back to the Guest network. as it seems you have already tried?  And that did not work?  Do you see anything in the logs that is denying the packet?  either ACL, Asynchronous NAT rules, etc.

Do you have control over these client machines? How many are there?  an option would be to configure static DNS entries on the machines but that would cause issues if they have to connect when out on the internet.  Unless you can create a script that removes this static mapping when they are not on that network.

If possible, could you post a full sanitized configuration of your ASA?
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.