Brak routingu w WireGuard

Czyli, jak się wpienić na maksa, gdy dotychczasowa konfiguracja działała bez żadnych zastrzeżeń, a system postanowił spaść z rowerka.

Dzisiejszemu wpisowi towarzyszy więcej emocji, aniżeli samej treści. Wszakże, wyobraź sobie sytuację, w której nagle po restarcie systemu, coś co działało, przestaje działać. Tak było w przypadku mojej dotychczasowej konfiguracji przygotowanej dla RaspberryPi. Chwaliłem się nawet znajomym, jak to wniesione poprawki towarzyszą obecnemu uptimeowi – malinka dała radę pracować nieprzerwanie przez blisko 30 dni.

Tego samego dnia, z którego pochodzi zrzut (9 listopad) zrobiłem restart. Nie był on wymuszony żadną aktualizacją, czy podyktowany czymś „od góry”. Po prostu chciałem uruchomić od nowa, by sprawdzić czy wstanie poprawnie. I dobrze że tak się stało na sucho, bo nie wszystko zadziałało :P.

WireGuard postanowił przestać przekierowywać ruch w świat. W skrócie, działało:

  • Łączenie przez WG do Maliny;
  • Zarządzanie maliną.

Co nie działało:

  • Wypuszczanie ruchu w świat;
  • Łączenie z urządzeniami w sieci wewn Maliny.

A, że sam WG jest dla mnie ważny, jako VPN, to dzięki niemu też mogę się dostać do SSH z zewnątrz. Domyślnie mam zablokowane wszystkie porty dostępowe z zewnątrz, poza HTTP, HTTPS, oident, no i WG – zarówno na routerze, jak i na RPI.

Co się stao siem

Dochodzimy do clou. Gdzieś około 10 listopada spędziłem blisko 4h na szukaniu błędu w konfiguracji WG, bo zakładałem, że to tam się coś wywaliło. Konfigurowałem usługę od 0, szukałem (wydawało mi się) wszędzie. Poprosiłem o pomoc IRC, Mastodon. Nic.

Rozwiązanie spadło, jak grom z jasnego nieba, gdy postanowiłem sprawdzić u podstaw, czyli /etc/sysctl.conf. Tam okazało się, że również jest wszystko ok… Szukałem w necie i spróbowałem zweryfikować jeszcze flagi w systemie (nie wiem, czy poprawnie to nazwałem) dla net.ipv4.ip_forward=1 – no i bingo.

WG zaczął działać po wykonaniu sysctl -p. W tym momencie poczułem dwie skrajne emocje: radość i wkurwienie (bo to nie była złość, to było coś więcej).

Do tej pory nie wiem, dlaczego Ubuntu po każdym restarcie ustawia flagę na 0. Dzieje się tak każdorazowo po restarcie. Jak to jednak mawiają: prowizorki są najlepsze. Rozwiązałem to sobie na ten moment wywołaniem sysctl -p z CRON po restarcie systemu.


Komentarze

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *