So, I tried to add a route to the client as mention above. It does not work : the reply from Internet is still not forwarded back to the client.
Le lun. 10 nov. 2025 à 22:53, François RONVAUX <[email protected]> a écrit : > > are you using sec(4) between the gateway and VPN server, or just normal > > IPsec security associations? > > mmm, I think I do not use sec. > Here is the iked.conf on the gateway : > > GAT="gateway.fqdn" > GAT_IP="gateway_public_ip_address" > > VPN="vpn.fqdn" > VPN_IP="vpn_public_ip_address" > > CLIENT="private_ip_address" > > ikev2 'vpn_client' active esp \ > proto tcp \ > from $CLIENT to any \ > local $GAT_IP peer $VPN_IP \ > srcid $GAT dstid $VPN > > > > > you can't see the reply packets if you tcpdump on enc(4)? > > Correct. > tcpdump on enc0 only shows the traffic from the client to Internet, not > the reply. > When running inside the VMs, the traffic in both ways is seen on enc0. > > > > do you have a route on the vpn server for the clients address? > > you can use `route get $clientaddr` or `netstat -nr` to see. > > The IP address of the client does not appear on `netstat -nr`. > > > > without sec(4), you'll need a route to the client on the VPN server > > pointing anywhere (even a blackhole route via lo0 is fine) so the > > outgoing packets can be intercepted by IPsec and then pushed to the > > gateway. > > I will try this on the VPN : > `route add -inet client_ip 127.0.0.1` > > > > Le lun. 10 nov. 2025 à 21:55, David Gwynne <[email protected]> a écrit : > >> On Mon, Nov 10, 2025 at 02:30:11PM +0100, Fran??ois RONVAUX wrote: >> > Hello, >> > >> > >> > I set up a VPN with client-server mode. >> > I used three virtual machines (client / gateway / VPN) on the same >> physical >> > host to design the config files pf.conf and iked.conf. >> > In the VMs, everything works as expected with this simple architecture : >> > >> > Client--(clear)--Gateway--(encrypted traffic)--VPN--(clear)--Internet >> > >> > But when I push the config files on the physical hosts gateway and VPN >> > (with just changing interface names, host FQDN and IP addresses) I get a >> > very strange behavior : the traffic is one way only ! >> > >> > After checking what happens (with tcpdump / pfctl and ipsecctl), this is >> > what I see : >> > - the tunnel is created by IKED between gateway and VPN, >> > - the traffic from client is encrypted by the the gateway and sent in >> the >> > tunnel, >> > - the traffic is received and decrypted by VPN, >> > - VPN send the traffic to Internet (with NAT), >> > - VPN receives the answer from Internet, >> > - the answer is not forwared back to client. >> > >> > Any clue on the source of this problem ? >> >> are you using sec(4) between the gateway and VPN server, or just normal >> IPsec security associations? >> >> my guess is the VPN server doesn't have a route to the client, but ipsec >> SAs complicate this. >> >> you can't see the reply packets if you tcpdump on enc(4)? do you have >> a route on the vpn server for the clients address? you can use `route >> get $clientaddr` or `netstat -nr` to see. >> >> without sec(4), you'll need a route to the client on the VPN server >> pointing anywhere (even a blackhole route via lo0 is fine) so the >> outgoing packets can be intercepted by IPsec and then pushed to the >> gateway. >> >> with sec(4), you'd just add a route to the client via the gateways IP >> inside the sec(4) interface. >> >

