<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 22, 2017 at 6:51 PM, Jason A. Donenfeld <span dir="ltr"><<a href="mailto:Jason@zx2c4.com" target="_blank">Jason@zx2c4.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Ryan,<br>
<br>
Sorry for the delayed response. The high volume and churn of<br>
development recently has gotten me a bit behind on the mail queue and<br>
rather confused.<br>
<span class=""><br>
You wrote:<br>
>  what i'm struggling with is if they are unable to communicate directly and build routes to one another via an intermediary router (which is also connected to each 'client' via wireguard).<br>
<br>
</span>If I understood you correctly, you're looking at this situation: Peer<br>
A connects to Peer S. Peer B connects to Peer S. A wants to talk to B,<br>
through S. In this case, the allowed-ips of S on A lists B's internal<br>
IP, and the allowed-ips of S on B lists A's internal IP address. In<br>
other words, you have A/B state that "I trust S to send me the traffic<br>
of B/A."<br>
<br>
Does this answer your question?<br>
<br>
Regards,<br>
Jason<br></blockquote><div><br></div><div>Sorry for my latent reply- I was traveling all last week and have been doing a bad job keeping up on my email</div><div><br></div><div>I think you understand the setup, mostly.  The missing piece is that A and B need to connect directly to one another as well. (Its kind of like a triangle).  The idea is that the link between A and B is 'primary' but if they are unable to communicate with one another directly, they will 'fall back' to using the 'Server' (S).  A and B will both likely be behind NATs, so is likely that at some point they will both be behind symmetric-nats and be unable to communicate directly, needing the fallback route provided by the server.</div><div><br></div><div>That said, i think i have a working setup.  there are 2 interfaces created.  one called 'server0' and one called 'direct0'.  On the server interface there is a single peer with an allowed-ips of fc00::/7 and on the direct interface, there is a peer for each of the other devices we want to connect to directly.  Each peer on the direct interface has an allowed-ips that matches the addr of the corresponding peer. (/128).</div><div><br></div><div>That provides 2 routes between peers- route selection is just matter of picking an interface.  Hopefully something that will be done via a routing daemon.</div><div><br></div><div>Hopefully the above makes sense.  I think i have a screenshot that will paint a clearer picture if needed.  (not sure if i can paste pictures into the mailing list)</div><div><br></div><div>ryan</div></div><br></div></div>