[strongSwan] trouble with ARP and NAT on EC2-hosted network

Ethan Tuttle ethan at ethantuttle.com
Tue Jun 18 09:17:34 CEST 2013


Hi, I've been working with strongswan 5.0.4 to set up tunnels from
racoon/OSX to a network hosted in Amazon's EC2.  I'm having some trouble
with farp and NAT.  The layout is:

Road warrior (behind NAT) --- internet --- EC2 Gateway (strongswan) ---
internal EC2 net

I followed the guides and have tunnels coming up, auth and SA establishment
works fine, and I can ping back and forth from gateway to road warrior.
 I'm using IKEv1 with xauth+rsa.  Road warrior is assigned a virtual IP on
the "internal EC2" net which is a /24 subnet.  leftfirewall=yes is in
strongswan and leftsubnet is the /24 EC2 net.  ip_forward is enabled on the
gateway.

First problem: farp doesn't appear to be advertising road warrior IPs on
the internal EC2 net.  When I ping from a host on that net to a road
warrior, I get Destination Host Unreachable.  Strongswan was built with
--enable-farp.  The arp command on gateway does not show entries for the
virtual IPs.  Any clues on how to debug this?

Second problem: SNAT on the gateway doesn't work for traffic coming from
road warriors.  All of my tables are set to ACCEPT, and I added two rules
to nat POSTROUTING:

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source
destination
   29  4242 ACCEPT     all  --  any    eth0    172.30.170.0/24
 anywhere             policy match dir out pol ipsec
  119  9384 SNAT       all  --  any    eth0    172.30.170.0/24
 anywhere             to:172.30.170.5

The strongswan box's internal address is .5, and its default route is .1 on
the same subnet, a gateway which ec2 provides.  The .1 gateway only
forwards traffic originating from the .5 address.  So the strongswan box
must SNAT packets coming over ipsec before forwarding to the .1 gateway.
 Strangely, the SNAT rule seems to match packets (counter goes up), but
watching the outgoing traffic with tcpdump, it still has the roadwarrior
source IP when it leaves eth0.  I also noticed the same SNAT rule works for
traffic coming from hosts on the internal EC2 net routing through the
strongswan gateway.  So there's something special about traffic originating
from ipsec.  Are additional iptables rules required?

Thanks for the excellent software and documentation.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.strongswan.org/pipermail/users/attachments/20130618/53f357f3/attachment.html>


More information about the Users mailing list