Jason A. Donenfeld, autor VPN WireGuard, większą do głównego składu jądra OpenBSD sterownika „wg” dla protokołu WireGuard, specyficznego interfejsu sieciowego i wszystko, co działa w przestrzeni użytkownika. OpenBSD stał się drugim systemem operacyjnym po z pełnym i zintegrowanym wsparciem dla WireGuard. Włączenie WireGuard oczekiwane jest w wersji OpenBSD 6.8.
Łatki obejmują sterownik dla jądra OpenBSD, zmiany dla narzędzi ifconfig i tcpdump z obsługą funkcjonalności WireGuard, dokumentację oraz drobne zmiany w integracji WireGuard z resztą systemu. W sterowniku zastosowano własną implementację algorytmów , i , a także już obecnych w jądrze OpenBSD implementacji SipHash.
Implementacja jest kompatybilna ze wszystkimi oficjalnymi klientami WireGuard dla Linux, Windows, macOS, *BSD, iOS i Android. Testy wydajności na laptopie dewelopera (Lenovo x230) pokazały przepustowość na poziomie 750 Mbit/s. Dla porównania, isakmpd z podstawowymi ustawieniami ike psk zapewnia przepustowość 380 Mbit/s.
Przy opracowywaniu sterownika dla jądra OpenBSD wybrano niektóre podobne do sterownika dla Linux rozwiązania architektoniczne, ale sterownik przede wszystkim rozwijano dla OpenBSD, z uwzględnieniem specyfiki tego systemu i doświadczeń zdobytych przy tworzeniu sterownika dla Linux. Za zgodą pierwotnego autora WireGuard kod nowego sterownika jest w całości dystrybuowany na licencji ISC.
Sterownik ściśle integruje się z stosami sieciowymi OpenBSD i wykorzystuje istniejące podsystemy, co pozwoliło na uczynienie kodu bardzo kompaktowym (około 3000 linii kodu). Z różnic należy również zauważyć inne, niż dla Linux, rozdzielenie komponentów sterownika: specyficzne dla OpenBSD interfejsy zostały przeniesione do plików „if_wg.*”, kod do ochrony przed DoS w „wg_cookie.*”, a logika negocjacji połączeń i szyfrowania w „wg_noise.*”.
Źródło: opennet.ru
