Jordan Whited popsal, jak řešil přímé propojení počítačů za NATem a eliminoval tak z hlediska provozu skok přes nějaký účastníkům známý server s veřejnou IPv4 adresou. Tento server je pořád potřeba, ale může být skutečně minimální, protože přes něj neproudí běžný provoz ale slouží jen pro určitou formu registrace. Když Alice posílá z poza NATu nějaký paket, tak NAT přepisuje zdrojovou IP adresu a port. Informaci, která IP a který port to jsou potřebuje zase Bob, aby věděl, kam adresovat pakety, ale i u něj je NAT, a informaci o zdrojové IP a portu zase potřebuje Alice pro svoje adresování. Díky tomu, jak Wireguard funguje je možné využít informaci o externí IP a portu použitého při registraci. Tuto informaci je možné vystavit např. do DNS pod SRV záznam, který umožňuje předat informaci jak o portu, tak IP adrese pomocí A záznamu. Záznamy se registrují pod BASE32 kódovaným veřejným klíčem účastníka.
Další detaily a odkaz na implementaci jsou dobře popsané v článku.
Celé řešení je možné použít na různých platformách se standardní implementací Wireguardu. Autor píše, že jistě bude nutné ještě nějak automatizovat konfiguraci, která je přeci jen kvůli nutnosti registrace složitější. Osobně se mi zdá, že vhodně připravené balíčky, které by tuto funkcionalitu realizovaly, ale byly jednodušší na nasazení a správu, by mohly z tohoto konceptu udělat poměrně dobře použitelné řešení i pro méně zdatné uživatele nebo třeba platformy jako OpenWRT.
Dlouhodobě je samozřejmě lepší řešení nasadit správně IPv6 a poskytnout uživatelům aspoň částečnou kontrolu nad firewallem routeru od poskytovatele, aby mohli povolit nové příchozí spojení na určitou adresu/ port.