Wireguard nepoužívá žádný koncept serverů a klientů. Všechny instance jsou si rovny. To mu dává velkou flexibilitu. Místo toho každá instance obsahuje seznam sousedů - peerů. Ten obsahuje pro každého souseda jeho veřejný klíč a seznam povolených IP adres, které mohou od daného souseda pocházet. Kromě bezpečnostního významu v příchozím směru (jeden soused nemůže podvrhnout adresy přidělené jinému sousedovi) se seznam povolených adres používá i jako směrovací tabulka pro odchozí směr.
Pokud má tedy jedna instance Wireguardu nakonfigurované třeba tři sousedy a do rozhraní wg přijde datagram, musí wireguard nějak rozhodnout, kterému ze tří sousedů má být určen. Použití seznamu povolených adres je skvělá volba, ale nese nějaká na první pohled nezřejmá omezení - to zásadní je, že není možné říci si „podvrhování adres mezi sousedy mě nezajímá, takže každému sousedovi povolím stejný blok všech adres.”
Pro implementaci klasické VPN s jedním koncentrátorem a několika cestujícími klienty to tedy vypadá tak, že instance wireguardu u každého klienta je jednoduchá, obsahuje jen jednoho souseda - koncentrátor - a u něj je nastavený seznam povolených adres na všechno, tedy 0.0.0.0/0 a ::/0, protože pomocí VPN plánujeme komunikovat s celým internetem.
Na straně koncentrátoru je situace složitější. Musí mít jako sousedy nakonfigurované všechny cestující klienty a u každého musí mít nastavenou v povolených adresách přesně tu adresu/y, které daný klient používá. Jen tak je zajištěno, že odchozí provoz ve směru z internetu k cestujícímu klientovi bude odeslán tomu správnému klientovi.
Snad to vysvětlení dává smysl.