<div dir="ltr">Hi,<div><br></div><div>I want to setup a configuration, of which I could find an example in the strongswan documentation.</div><div><br></div><div><br></div><div><br></div><div><br></div><div>I want to setup a ike1 site-to-site configuration.</div><div>But A virtual IP address must be natted.</div><div><br></div><div><br></div><div>I've setup some site-to-site configurations before without NAT, all work just fine. </div><div>Whats different here, is that we must use NAT internally (virtual IP ?). The remote site needs to access us via a specific (virtual) ip.</div><div><br></div><div><br></div><div>site A  -  VPN A --------     VPN B  -    Site B</div><div><br></div><div><br></div><div>local network A  <a href="http://10.0.0.0/24">10.0.0.0/24</a></div><div>local network B <a href="http://10.123.123.32/29">10.123.123.32/29</a></div><div><br></div><div>VPN A is an ubuntu machine with strongswan.</div><div>I'm testing now with an ubuntu machine as Site B too, but eventually that'll be a party that I don't control, using some cisco device.</div><div>The question is about configuration of 'VPN A"</div><div>VPN A/VPN B: public ips are on the internet.<br></div><div><br></div><div><br></div><div>Site B needs to access a specific server in site A   <b>10.0.0.1</b></div><div>But Site B requires that he access that server as <b>10.137.250.112   </b>(the 'virtual ip', no machine has that ip)</div><div><br></div><div>I'd like this to achieve this with natting in VPN A. (not by adding the 10.37.250.112 as an ip/subnet in site A)</div><div><br></div><div><br></div><div>I managed to setup the tunnel correctly with the following config</div><div><br></div><div><div><font face="monospace, monospace"># config site A</font></div><div><font face="monospace, monospace">conn mycon</font></div><div><font face="monospace, monospace">    keyexchange=ikev1</font></div><div><font face="monospace, monospace">    authby=secret</font></div><div><font face="monospace, monospace">    auto=add</font></div><div><font face="monospace, monospace">    #keyingtries=%forever</font></div><div><font face="monospace, monospace">    ike=aes256-sha256-modp2048</font></div><div><font face="monospace, monospace">    esp=aes256-sha256-modp2048</font></div><div><font face="monospace, monospace">    type=tunnel</font></div><div><font face="monospace, monospace">    left=<public IP A></font></div><div><font face="monospace, monospace">    leftsubnet=<a href="http://10.137.250.112/32">10.137.250.112/32</a></font></div><div><font face="monospace, monospace">    leftfirewall=yes</font></div><div><font face="monospace, monospace">    right=<public IP B></font></div><div><font face="monospace, monospace">    rightsubnet=<a href="http://10.123.123.32/29">10.123.123.32/29</a></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">    closeaction=restart</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace"># config Site B</font></div><div><font face="monospace, monospace">conn mycon</font></div><div><font face="monospace, monospace">    keyexchange=ikev1</font></div><div><font face="monospace, monospace">    authby=secret</font></div><div><font face="monospace, monospace">    auto=add</font></div><div><font face="monospace, monospace">    # config paramets of the remote CISCO 55010</font></div><div><font face="monospace, monospace">    ike=aes256-sha256-modp2048</font></div><div><font face="monospace, monospace">    esp=aes256-sha256-modp2048</font></div><div><font face="monospace, monospace">    type=tunnel</font></div><div><font face="monospace, monospace">    left=< public IP B></font></div><div><font face="monospace, monospace">    leftsubnet=<a href="http://10.123.123.32/29">10.123.123.32/29</a></font></div><div><font face="monospace, monospace">    leftfirewall=yes</font></div><div><font face="monospace, monospace">    right=< public IP A></font></div><div><font face="monospace, monospace">    rightsubnet=<a href="http://10.137.250.112/32">10.137.250.112/32</a></font></div></div><div><br></div><div><br></div><div>The tunnel is up just fine:</div><div>site A</div><div><div><font face="monospace, monospace">Security Associations (1 up, 0 connecting):</font></div><div><font face="monospace, monospace">      symeon[4]: ESTABLISHED 30 minutes ago, 149.210.145.167[149.210.145.167]...176.58.118.248[176.58.118.248]</font></div><div><font face="monospace, monospace">  symeon-nat{6}:  INSTALLED, TUNNEL, reqid 3, ESP SPIs: c47cdf98_i c0a29f60_o</font></div><div><font face="monospace, monospace">  symeon-nat{6}:   <a href="http://10.137.250.112/32">10.137.250.112/32</a> === <a href="http://10.123.123.32/29">10.123.123.32/29</a></font></div></div><div><br></div><div><br></div><div>I now want to ping host 10.0.0.1 in Site A  from a machine in site B using the virtual ip<br><font face="monospace, monospace">    ping 10.137.250.112</font></div><div><br></div><div><br></div><div><br></div><div>Those PING packets traverse the tunnel ok. I see them appearing in the VPN A</div><div><br></div><div>tcpdump on VPN A shows:</div><div><br></div><div><div><font face="monospace, monospace">11:45:40.239138 IP 10.123.123.32 > <a href="http://10.137.250.112">10.137.250.112</a>: ICMP echo request, id 19009, seq 3768, length 64</font></div><div><font face="monospace, monospace">11:45:40.239167 IP 10.123.123.32 > <a href="http://10.137.250.112">10.137.250.112</a>: ICMP echo request, id 19009, seq 3768, length 64</font></div></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace"><br></font></div><div><b>iptables</b></div><div><br></div><div>VPN A is 10.0.0.2</div><div>The machine to reach is 10.0.0.1</div><div><br></div><div>I added the following rule  to VPN A:</div><div><font face="monospace, monospace">iptables -t nat -A PREROUTING -p icmp -s <a href="http://10.123.123.32/29">10.123.123.32/29</a> -d 10.137.250.112 -j DNAT --to-destination 10.0.0.1</font><br></div><div><font face="monospace, monospace"><div>iptables -t nat -A POSTROUTING -s <a href="http://10.123.123.32/29">10.123.123.32/29</a>  -j SNAT --to 10.0.0.2</div><div>iptables -t nat -A POSTROUTING -j MASQUERADE</div><div><br></div></font></div><div><font face="monospace, monospace"><br></font></div><div>This does not seem to work, I'd expect the icmp packets to be send to 10.0.0.2 with source 10.0.0.1 now (on the <a href="http://10.0.0.0/24">10.0.0.0/24</a> interface)</div><div><br></div><div>But I keep seeing the packets on the public interface as </div><div><div><font face="monospace, monospace">11:45:40.239138 IP 10.123.123.32 > <a href="http://10.137.250.112">10.137.250.112</a>: ICMP echo request, id 19009, seq 3768, length 64</font></div><div><font face="monospace, monospace">11:45:40.239167 IP 10.123.123.32 > <a href="http://10.137.250.112">10.137.250.112</a>: ICMP echo request, id 19009, seq 3768, length 64</font></div></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace"><br></font></div><div>Anyone an idea how to properly configure NAT here in the machine "VPN A" ?</div><div><br></div><div><br></div><div><font face="monospace, monospace">-Harm</font></div><div><br></div><div><br></div><div><br></div></div>