DB2 Version 10.1 for Linux, UNIX, and Windows

HADR and Network Address Translation (NAT) support

NAT, which is supported in an HADR environment, is usually used for firewall and security because it hides the server's real address.

In an HADR setup, the local and remote host configurations on the primary and standby nodes are cross-checked to ensure they are correct. In a NAT environment, a host is known to itself by a particular IP address but is known to the other hosts by a different IP address. This behavior causes the HADR host cross-check to fail unless you set the DB2_HADR_NO_IP_CHECK registry variable to ON. Using this setting causes the host cross-check to be bypassed, enabling the primary and standby to connect in a NAT environment.

If you are not running in a NAT environment, use the default setting of OFF for the DB2_HADR_NO_IP_CHECK registry variable. Disabling the cross-check weakens the HADR validation of your configuration.

Considerations for HADR multiple standby mode

In a NAT environment with a multiple standby setup, each standby's settings for hadr_local_host and hadr_local_svc must still be listed in the primary's hadr_target_list or the primary does not accept the connection from that standby.

Normally, in multiple standby mode, on start up, a standby checks that its settings for hadr_remote_host and hadr_remote_svc are in its hadr_target_list, to ensure that on role switch, the old primary can become a new standby. In NAT scenarios, that check fails unless the DB2_HADR_NO_IP_CHECK registry variable to ON. Because this check is bypassed, the standby waits until it connects to the primary to check that the primary's hadr_local_host and hadr_local_svc are in the standby's hadr_target_list. The check still ensures role switch can succeed on this pair.
Note: If the DB2_HADR_NO_IP_CHECK registry variable is set to ON, the hadr_remote_host and hadr_remote_svc are not automatically updated.

In a multiple standby setup, DB2_HADR_NO_IP_CHECK should be set on all databases that might be making a connection to another database across a NAT boundary. If a database will never cross a NAT boundary to connect to another database (that is, if no such link is configured), then you should not set this registry variable on that database. When DB2_HADR_NO_IP_CHECK is set, it prevents a standby from automatically discovering the new primary after a takeover has occurred, and you have to manually reconfigure the standby to have it connect to the new primary.