apache / apache/cloudstack

Enable T-NAT for client to site VPN via conn mark

Open
#10,655 5 comments 0 reactions 0 assignees View on GitHub
type:new-feature
Dominant language
Java
Stars
3.1k
Forks
1.4k
Avg merge
6d 19h
Merged PRs (30d)
32

Description

### The required feature described as a wish

Dear cloudstack community,

I was surprised to see that the current implementation of client to site VPN does not enable to open multiple client to site VPN when computers share the same public IPs.

I read #8566 and found that another people have the same experience.
Charon is aware of this NAT client situation as per my logs :

```
Apr 2 20:27:35 r-4188-VM charon: 06[ENC] parsed ID_PROT request 0 [ KE No NAT-D NAT-D ]
Apr 2 20:27:35 r-4188-VM charon: 06[IKE] remote host is behind NAT
Apr 2 20:27:35 r-4188-VM charon: 06[ENC] generating ID_PROT response 0 [ KE No NAT-D NAT-D ]
Apr 2 20:27:35 r-4188-VM charon: 06[NET] sending packet: from 182.234.27.275[500] to 36.35.10.124[57049] (372 bytes)
Apr 2 20:27:35 r-4188-VM charon: 12[NET] received packet: from 36.35.10.124[55814] to 182.234.27.275[4500] (76 bytes)
Apr 2 20:27:35 r-4188-VM charon: 12[ENC] parsed ID_PROT request 0 [ ID HASH ]
Apr 2 20:27:35 r-4188-VM charon: 12[CFG] looking for pre-shared key peer configs matching 182.234.27.275...36.35.10.124[192.168.1.93]
Apr 2 20:27:35 r-4188-VM charon: 12[CFG] selected peer config "L2TP-PSK"
Apr 2 20:27:35 r-4188-VM charon: 12[IKE] IKE_SA L2TP-PSK[150] established between 182.234.27.275[182.234.27.275]...36.35.10.124[192.168.1.93]
Apr 2 20:27:35 r-4188-VM charon: 12[ENC] generating ID_PROT response 0 [ ID HASH ]
[...]
Apr 2 20:27:35 r-4188-VM ipsec[6798]: 15[CFG] looking for pre-shared key peer configs matching 182.234.27.275...36.35.10.124[192.168.1.14]
Apr 2 20:27:35 r-4188-VM ipsec[6798]: 15[CFG] selected peer config "L2TP-PSK"
Apr 2 20:27:35 r-4188-VM ipsec[6798]: 15[IKE] IKE_SA L2TP-PSK[149] established between 182.234.27.275[182.234.27.275]...36.35.10.124[192.168.1.14]
```
--> Client host is behind NAT + private IP addresses discovered !

But like described in #8566 only one client is able to login at a time. The second one disconnect the first one...

[Strongswan's input ](https://docs.strongswan.org/docs/latest/plugins/connmark.html
)on that is to compile with --enable-connmark flag.

I am researching to fix this myself and then to make a PR to make this available for the community. Are the system vm images closed source or can I find a repo somewhere to improve this behavior?

Fred

Contributor guide

Open the contributing guide

Research direction

Start by locating the system VM image source and reviewing #8566 alongside the StrongSwan connmark documentation referenced in the issue. Done means multiple client-to-site VPN clients behind the same public IP can connect concurrently without disconnecting one another.

Written by the indexing model from the issue text.

Assessment

Domain
networking, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.