Skip to content

Commit 8b03949

Browse files
committed
First round of feedback
1 parent 8886357 commit 8b03949

1 file changed

Lines changed: 16 additions & 17 deletions

File tree

content/en/docs/control-center/security/private-connectivity/best-practices.md

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,13 @@ Private Connectivity is currently in Public Beta, and will be out of Public Beta
1414

1515
This page provides best practices for configuring and using Private Connectivity networks, agents, and resources. Following these guidelines helps ensure secure, efficient, and maintainable connections between your Mendix apps and internal infrastructure.
1616

17+
{{% alert color="info" %}}
18+
Mendix uses Tailscale subnet routers to access routes in your network. In a Mendix context, these are called agents.
19+
{{% /alert %}}
20+
1721
## Authentication Key Security
1822

19-
Creating an agent involves creating an authentication key. Agents registered with that authentication key join the agent's network. If you have a production network, only use the generated authentication key for agents placed in your production network. Apply the same principle for development networks.
23+
Creating an agent involves creating an authentication key. An agent registered with that authentication key can join the agent's network. If you have a production network, only use the generated authentication key for agents placed in your production network. Apply the same principle for development networks.
2024

2125
## When to Create Networks
2226

@@ -33,25 +37,21 @@ Agents determine what parts of your infrastructure are accessible. While creatin
3337

3438
### Where to Place Agents
3539

36-
An agent forwards traffic to the advertised subnets. Place it where it can access those addresses:
37-
38-
* AWS – Place the agent in your VPC.
39-
* Azure – Place the agent in your VNet.
40-
* On-premises – Place the agent where it has network access to the target resources.
40+
Place the agent where it has network access to the target resources.
4141

4242
### Infrastructure Requirements
4343

44-
Install agents on infrastructure that has direct network reachability to the resources you want to advertise. Typically, a virtual machine (VM) or other host inside the relevant VPC or VNet is the best fit.
44+
Install agents on infrastructure that has direct network reachability to the resources you want to advertise, i.e. provide access to. Typically, a virtual machine (VM) or other host inside the relevant VPC or VNet is the best fit.
4545

4646
Tailscale supports both Linux and Windows. For the best results and performance, use Linux due to its [kernel integration](https://tailscale.com/docs/reference/kernel-vs-userspace-routers).
4747

4848
For recommendations on operating system tweaks and machine sizing for the main cloud providers, refer to [Tailscale's performance best practices](https://tailscale.com/docs/reference/best-practices/performance#operating-system-recommendations).
4949

50-
Suitable infrastructure for agents includes EC2 instances, VMs, and containers with privileged access on EKS or AKS.
50+
Suitable infrastructure for agents includes EC2 instances and VMs.
5151

52-
### Recommended Number of Agents
52+
### Agent Placement Strategy
5353

54-
It is more efficient to use one agent with multiple advertised subnets. You can advertise as wide a CIDR range as you need, or as many subnets as necessary on one agent. Using one agent requires less effort to install and is cheaper in both time and maintenance cost.
54+
It is more efficient to use one agent with multiple advertised subnets. You can advertise as wide a subnet range as you need, or as many subnets as necessary on one agent. Using one agent requires less effort to install and is cheaper in both time and maintenance cost.
5555

5656
However, you need to consider these trade-offs:
5757

@@ -60,9 +60,9 @@ However, you need to consider these trade-offs:
6060

6161
### High Availability
6262

63-
Subnet routers support high availability. To set this up, create two or more agents that advertise the same routes. For example, if you set up two routers that both advertise `10.0.0.0/16`, the first agent acts as the primary and the second as the failover.
63+
Agents support high availability. To set this up, create two or more agents that advertise the same routes. For example, if you set up two routers that both advertise `10.0.0.0/16`, the first agent acts as the primary and the second as the failover.
6464

65-
This setup provides a simple active/passive failover, not load balancing. When Tailscale detects that your primary subnet router is offline, routing immediately switches to the failover device.
65+
This setup provides a simple active/passive failover, not load balancing. When Tailscale detects that your primary agent is offline, routing immediately switches to the failover device.
6666

6767
For more information, refer to [Subnet Router High Availability](https://tailscale.com/docs/how-to/set-up-high-availability#subnet-router-high-availability).
6868

@@ -79,11 +79,10 @@ Use these parameters to avoid authentication failure issues:
7979
* Use the `TS_AUTHKEY` parameter to supply the authentication key to your container. For more information, refer to [TS_AUTHKEY](https://tailscale.com/docs/features/containers/docker/docker-params#ts_authkey).
8080
* Use the `TS_AUTH_ONCE` parameter to ensure the container only attempts authentication once. This helps avoid *API key not found* errors on container restarts. For more information, refer to [TS_AUTH_ONCE](https://tailscale.com/docs/features/containers/docker/docker-params#ts_auth_once).
8181
* Use the `TS_STATE_DIR` parameter to declare a space to save the state, then mount it as a volume. For more information, refer to [TS_STATE_DIR](https://tailscale.com/docs/features/containers/docker/docker-params#ts_state_dir).
82-
* On Kubernetes, use the `TS_KUBE_SECRET` parameter to store the state in a secret. The value is the name you want to give that secret. If it is not set, it defaults to `tailscale`. For more information, refer to [TS_KUBE_SECRET](https://tailscale.com/docs/features/containers/docker/docker-params#ts_kube_secret).
8382

8483
### Privilege Requirements
8584

86-
Tailscale typically runs in kernel (TUN) mode. If your environment allows privileged containers or host networking, that is the better choice for a subnet router. If it does not, you can run the subnet router in userspace mode, but this is better suited for lighter-duty use, and is not the first recommendation for higher-throughput production routing.
85+
Tailscale typically runs in kernel (TUN) mode. If your environment allows privileged containers or host networking, that is the better choice for an agent. If it does not, you can run the agent in userspace mode, but this is better suited for lighter-duty use, and is not the first recommendation for higher-throughput production routing.
8786

8887
For example, Azure Container Apps do not have privileged container access, so you need to enable userspace mode. For more information, refer to the following pages in the Tailscale documentation:
8988

@@ -98,6 +97,6 @@ Mendix uses Tailscale subnet routers to advertise routes to your network. This g
9897

9998
The routes you advertise depend on what your Mendix Cloud app needs to access and what you want to share:
10099

101-
* Single resource – If your app only needs to reach one specific resource, advertise that single address via a `/32` subnet mask (for example, `192.168.1.10/32`).
102-
* App subnet – If you host all apps in one specific subnet, use the subnet CIDR (for example, `192.168.1.0/24`).
103-
* Entire network – If you want to share the entire network to avoid repeatedly opening new routes, use the entire VPC or VNet CIDR (for example, `192.168.0.0/16`).
100+
* Single resource – If your app only needs to reach one specific resource, advertise it as a `/32` route (for example, `192.168.1.10/32`).
101+
* App subnet – If you host all apps in one specific subnet, use the subnet router (for example, `192.168.1.0/24`).
102+
* Entire network – If you want to share the entire network to avoid repeatedly opening new routes, use the entire VPC or VNet subnet router (for example, `192.168.0.0/16`).

0 commit comments

Comments
 (0)