Hi there!
I have been using OpenZiti in my home lab for about two months now, and since I started implementing it, I have been wondering why all traffic between my tunnelers always has to run through a router and why the router does not just serve as a kind of relay for establishing the connection.
Wouldn't it make more sense (in terms of performance and network overhead) to use the routers only to establish a direct (peer-to-peer) connection between the tunnelers and then communicate directly with each other, similar to what Tailscale does with its NAT traversal or TCP hole punching? And only use the router for the connection if no direct connection is possible?
I think this would lead to massive performance improvements and relief for the routers because then most of the data transfer would be direct between the tunnelers.
For example: If I have a network with a client network and several networks for different systems such as servers or a separate printer network, and these networks cannot communicate with each other because I want to use zero trust technology for this purpose. Then I have to place a router (or multiple ones) in the client network and all network traffic to the server or printers runs entirely through the Ziti router(s). If a client now copies large amounts of data to the server via SMB, the router is heavily utilized and all network traffic must first go to the router, which then forwards it to the server. In this case, it would make more sense to use the router to establish a direct connection and then transfer the data between the client and server without the traffic going through the router. With Tailscale, I wouldn't have this overhead because a direct connection is established.
Or am I fundamentally misunderstanding something? Is there a reason why the traffic flow was not implemented like it is in Tailscale?
Thanks in advance and have a great day!



