Checkpoint   Checkpoint – Automatic NAT vs Manual NAT

NAT (Network Address Translation) can be configured in our Checkpoint FW in 2 two different ways: Manual or Automatic

Automatic NAT

To configure the automatic NAT, the SERVER object properties has a NAT section.
So for example, if we want our host with internal private IP to be published in Internet with public IP

Checkpoint host general properties

Checkpoint host NAT properties

(I we only wanted to apply outbound IP masquerading, we should have applied hide NAT type.
In this example, we are also trying to publish to Internet to receive incoming connections, so static NAT type.)

For more details, visit my post Checkpoint – Hide NAT vs Static NAT

This NAT configuration automatically performs 2 actions:

1. Creation of the corresponding NAT rule

Original Packet Translated Packet
Source Destination Service Source Destination Service
Any Any Original Original

2. Configuration of the corresponding Proxy ARP

After applying the automatic NAT configuration, the firewall will start reply to the ARP request asking for the public IP. Then the firewall will 'NAT' the packet and route it to the proper gateway or to the final destination.

Its very important to apply the NAT section of the host only to the gateway we want (Instead of all, the default option)
Checkpoint NAT apply gatewayCheckpoint NAT apply gateway

Otherwise, in a VSX environment, all VS firewalls can start to reply those ARP request, and so, steal packets among them.

Manual NAT

To configure manual NAT, instead of using the NAT section of our HOST object we can add rules on the NAT section of our firewall policy.
To recreate the same NAT configuration as the previous example, there must also be another HOST object with the public IP configured

Checkpoint host general properties

And then we can create the NAT rule:

Checkpoint NAT rule

As I said, the automatic NAT method configures the proxy ARP automatically.
When using manual NAT, the proxy ARP must be added manually. Check this post "Checkpoint – Proxy ARP for manual NAT on VSX" for more information

Manual NAT vs Automatic NAT

Then, if manual NAT requires more configurations, why should I use it?? Good question.

Sometimes we need to perform NAT based on destination port (or any combination based on the source IP, destination IP, port…)

For example:

When accesing the public IP, the destination internal IP the firewall NATs to depends on the destination port:
Checkpoint NAT rule

Or this rule allows us to access three different internal servers on the same port with a single public IP (based on the original packet destination port)

Checkpoint NAT rule

So, if the NAT rule is simple, better use Automatic NAT. Otherwise, your only option is using the Manual NAT method.

14 thoughts on “Checkpoint – Automatic NAT vs Manual NAT

  1. Great post – very well explained.

    I do have a question however, can manual NAT be configured for Hide NAT and not just Static?

    • Thanks Mark!
      Yes, its possible by doing a manual NAT rule but instead of translating the destination, translating the source.
      This can have sense for example when in another network you dont manage, access control is performed and “they” await all your packets as coming from certain concrete IP (the hide IP).
      Dunno if i solved your question.

  2. I have a question. After successfully configuring a Static destination NAT rules to allow internet users (public IPs) reach the SERVER_PUBLIC_IP, do you still need to all a firewall rule to allow that traffic? If YES, what would the rule look like?

    Thanks for your feedback!

    • Yes, you should create a rule on the policy to allow the traffic to the public IP (the POLICY is applied BEFORE the NAT).
      – In case of an automatic NAT, for example, to allow HTTP port to internet users you should create a rule like:


      The SERVER_OBJECT contains both the private IP (on the global properties tab) and the public IP (on the NAT tab), so this is valid.

      – In case of a manual NAT, you dont configure using the SERVER_OBJECT because it would only contain the private IP (it does not on the NAT tab when using manual NAT). So the rule would be something like:


      SERVER_PUBLIC_IP_OBJECT would contain the public IP on the global properties

      Hope this helps you!

  3. I have question, if I configure similar NAT rule as automatic and manually, then which which NAT rule will get triggered. I mean which NAT rule as more priority.

    • Hi Rajesh
      The NAT policy shows manually generated NAT rules placed above the automatic ones.
      So, manual NAT rules have highest priority.
      In fact, for example, you also can use manual NAT rules to avoid application of automatic NAT rules for certain objects.

      Hope this answer your question.

  4. I have an internal machine which i want to translate to a particular public ip when making outbound http/web connections. I created a manual hide nat rule that translates the source address from internal ip to public ip, and also added proxy arp rule for the public ip , but it does not work. The internal machine makes no connection to the outside…

  5. Well explained! Needed that little bit of what if as I migrate rules over from ASA to Checkpoint.

    Sometimes if someone else explains it with the right details, then things just click. I’m now able to talk about the existing ASA config and also talk about how, what if’s on the checkpoint as I migrate.


  6. In ASA, interface is taken in account when nat rules are created. How is this happening checkpoint ? Is it possible to create source and destination IP nat in manual nat ?

    • – In ASA, interface is taken in account when nat rules are created. How is this happening checkpoint ?

      When performing hide, interface is also taken in account.

      – In ASA, interface is taken in account when nat rules are created. How is this happening checkpoint ?

      Yes, my examples only showed source or destination nat one at a time, but its possible both in a single rule.

Leave a Reply

Your email address will not be published. Required fields are marked *