OK. Seems the android client has some unfortunate limitations...

>> Is there a way to force the server to send NAT-T keep-alives to a server, 
>> just to keep the carrier NAT from timing out?
> 
> libreswan automatically sends NAT-T keepalives every 20s if the client
> is behind NAT (and the server is not behind NAT). But I think in your
> case there might be double NAT happening, and your timeout happens on
> the NAT near the client, not near the server.

NAT is only on the client on the mobile carrier gateway. The server detects 
this properly:

Mar  9 23:14:44 core pluto[26250]: | NAT_TRAVERSAL encaps using auto-detect
Mar  9 23:14:44 core pluto[26250]: | NAT_TRAVERSAL this end is NOT behind NAT
Mar  9 23:14:44 core pluto[26250]: | NAT_TRAVERSAL that end is behind NAT 
178.197.x.x
Mar  9 23:14:44 core pluto[26250]: | NAT_TRAVERSAL nat_keepalive enabled 
178.197.x.x
Mar  9 23:14:44 core pluto[26250]: |  NAT-Traversal support  [enabled] add v2N 
payloads.
Mar  9 23:14:45 core pluto[26250]: "ikev2-cp"[4] 178.197.x.x #4: 
STATE_V2_IPSEC_R: IPsec SA established tunnel mode {ESP/NAT=>0x5d613f24 
<0xdff1b417 xfrm=AES_GCM_16_256-NONE NATOA=none NATD=178.197.x.x:8331 
DPD=active}

But there are no keepalives from the server.

On the server NAT is only for non-ipsec traffic:

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
        
   34  2664 RETURN     all  --  *      vlan5   0.0.0.0/0            0.0.0.0/0   
         policy match dir out pol ipsec
4193K  487M MASQUERADE  all  --  *      vlan5   0.0.0.0/0            0.0.0.0/0  
      

as explained in https://libreswan.org/wiki/FAQ#NAT_.2B_IPsec_is_not_working


_______________________________________________
Swan mailing list
[email protected]
https://lists.libreswan.org/mailman/listinfo/swan

Reply via email to