Running two libp2p nodes behind NAT

Hi All,
We would like to run two libp2p nodes behind NAT, these nodes have non-public static IP addresses, We tried adding the public IP of the nodes to the address factory, but still, it didn’t help. Is there any better way to do it without using Relay Node?

FYI, I did some research related to CGNAT and PCP. Can we use PCP and enable port forwarding on the Gateway router.

@raul , @stebalien Appreciate your help.