Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Question] Routing in partial meshed cluster? #188

Closed
stv0g opened this issue Jun 15, 2021 · 2 comments
Closed

[Question] Routing in partial meshed cluster? #188

stv0g opened this issue Jun 15, 2021 · 2 comments

Comments

@stv0g
Copy link
Contributor

stv0g commented Jun 15, 2021

Hi, I was trying to understand if kilo can handle routing in a partially meshed network of nodes.

I have configured kilo with mesh granularity set to full.
However, what happens if Wireguard fails to establish connections between some of the nodes?
E.g. due to UDP blocking corporate firewalls?

Does kilo manage to route the traffic through other peers?

@leonnicolas
Copy link
Collaborator

Kilo will not route traffic over other peers. Kilo cannot detect by itself if connections between nodes are blocked due to a firewall.

However, when you are not using a symmetric firewall or symmetric NAT, #146 makes it possible to establish a connection between nodes that are in different NATs or behind firewalls with UDP whole punching. For this to work, at least one node needs to have a routable endpoint (eg. the API server).

@stv0g
Copy link
Contributor Author

stv0g commented Jul 13, 2021

Thanks @leonnicolas for the explanation. This confirms my own understanding after digging into the code.

I could be a nice idea to extend Kilo with some sort of dead-peer detection.
This would allow us to detect nodes which are located behind symmetrics firewalls/NATs.
In such a case #189 could be used as a fall-back.

@stv0g stv0g closed this as completed Jul 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants