cloudflare / boringtun

Userspace WireGuard® Implementation in Rust
BSD 3-Clause "New" or "Revised" License
5.92k stars 397 forks source link

How does warp use same allowedIP(172.16.0.2/32) for all of their clients ? #342

Closed b00tkitism closed 1 year ago

Noah-Kennedy commented 1 year ago

Normal wireguard usages create a virtual network topology via peers and allowed ips. Warp doesn't do this, as it basically creates a separate, single-peer topology for every client, so it is free to assign them all the same IP within the tunnel.

I'm closing to keep down noise as it's not really a question about boringtun, but we can still discuss this further in the thread.

b00tkitism commented 11 months ago

@Noah-Kennedy Thanks. Can you give me more details about warp topology ? Can I setup a wireguard server with that topology using boringtun or I should build a wireguard implementation for that ?

Noah-Kennedy commented 10 months ago

@alom4hdi at this point we'd be talking about implementing the wireguard protocol, but not the behavioral spec. You'd need your own implementation that uses wg's peer communications, but does routing, natting, etc a bit differently.