We can successfully open and use both a iPhone VPN IPSec connection and a Personal VPN IPSec connection within our app on iOS 12. When we try and establish the VPN on iOS 13 we wil get a connection ( either from a manual VPN connection or Personal VPN from within the app ) then we never get traffic then routed down the VPN tunnel. We are using IPSec with a shared secret for our VPN. Looking at the VPN server on Linux we can see that the connection was made but its always showing 0 bytes in and out for iOS 13. On iOS 12 everything works great. We've poured over the documentatin and cannot find anything where we can tell the networking to use the tunnel for all traffic. We also see the same problem now when we try anad establish a IPSec VPN connection on macOS Catalina. We can estalish IPSec VPN to our server on macOS Mojave, but it gives same effect of connecting under Catalina but no traffic is ruted then.
The issue we were having with Catalina and iOS 13 has been resolved by a configuration change on our IPSec server. We are running a Libreswan IPSec server. The following change to the ipsec.conf file is what resolved this for us. This was working fine with Mojave and iOS 12 but when we started trying to connect to VPN with the beta's for Catalina and iOS 13 then we would get a connection but after that nothing was being routed via the tunnel.
We did finally get contacted through the Feedback Assistant asking for our log files on the IPSec Server. i wish there was a way that open Feedback tickets could be marked so we would know if anyone is even investigating the issue. It's sort of like being in limbo.
Edit
/etc/ipsec.conf
on the VPN server. Find sha2-truncbug=yes
and replace it with sha2-truncbug=no
. Save the file and run service ipsec restart
.