Chcę podłączyć moduł ESP8266 w lokalizacji bez publicznego IP do Home Assiatanta który posiada publiczne IP. Zainstalowałem więc dodatek Wireguard. Konfiguracja po stonie HA jest najprostsza z możliwych i wygląda tak:
Dodatkowo w HA w konsoli należy wykonać polecenie:
ip route replace 172.27.66.0/24 via 172.30.33.4 src 192.168.11.110
Bez tego nie będzie pingu do modułu ESP. Po sprawdzeniu poleceniem “route” otrzymujemy:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default MiFi.lan 0.0.0.0 UG 100 0 0 enp0s18
172.27.66.0 a0d7b954-wiregu 255.255.255.0 UG 0 0 0 hassio
172.30.32.0 * 255.255.254.0 U 0 0 0 hassio
172.30.232.0 * 255.255.254.0 U 0 0 0 docker0
192.168.11.0 * 255.255.255.0 U 100 0 0 enp0s18
Po uruchomieniu wszystko działa prawidłowo, w logach po stronie HA i ESP widzę połączenie VPN, ping z HA do ESP jest 70ms. Dodaję więc nowe urządzenie do integracji ESP Home o adresie 172.27.66.2 na porcie 6053. Po chwili urządzenie i jego encje są dostępne. Skoro mam połączenie przez VPN to mogę teraz ten moduł podłączać do dowolnej sieci WiFi (bo konfigurowałem na tej z routera do którego jest podłączony HA). Zmieniam więc w ESP nazwę sieci i hasło, reszta bez zmian. Po ponownym uruchomieniu moduł łączy się z nowym WiFi, połączenie VPN działa, w logach widzę to samo co poprzednio, a ping jest na poziomie 200ms. Niestety HA już nie widzi tego urządzenia, encje stały się niedostępne. Usuwam więc i dodaję ponownie, ale po dłuższej chwili czekania wyskakuje komunikat: Unknown error occurred. Wygląda jakby działał nadal w sieci lokalnej mimo podania adresu VPN. W czym może być problem? Dodam jeszcze że po podłączeniu smartfona do tego Wireguarda, bez problemu działa integracja IP Webcam na adresie VPN i mam w HA obraz z kamery w telefonie, który jest podłączony do internetu przez sieć komórkową.
@Romek_B niestety źle interpretujesz jak działa połaczenie VPN. Aby z klienta zestawić połączenie VPN do bramki VPN musi istnieć połączenie sieciowe między klientem a bramką VPN czyli w skrócie takie:
ESPHome (dowolny IP adres prywatny) → internet → bramka VPN (adres IP publiczny). W ramach takiego połączenia jest zestawiany VPN - tunel VPN na istniejacym połączeniu a w tym tunelu adresy IP do komunikacji są już inne, napewno nie mogą się pokrywać z wcześniejszymi adresami IP ale muszą należeć do tej samej podsieci (w najprostszym rozwiązaniu).
Tutaj masz błąd w konfiguracji ESPHome:
Te adresy muszą nie mogą być takie same. Adres otrzymany z Wi-Fi może być dowolny ale inny niż z adresacji 172.27.66.0/24, którą przeznaczyłeś sobie na tunel VPN.
Przydzielanie statycznych adresów IP odbywa się inaczej, poczytaj WiFi Component — ESPHome : manual_ip (Optional): Manually configure the static IP of the node.
Maska sieciowa 0.0.0.0 (w CIDR, /0) oznacza „każdy adres istniejący w całym wszechświecie”, co jest nieprawidłową maską sieciową dla określonego zakresu adresów IP — zwykle można ją zobaczyć tylko w przypadku adresu IP 0.0.0.0, który w CIDR wynosi 0.0.0.0/0 i oznacza cały Internet. Ustawiając taką maskę jesteś narażony na wszelkiego rodzaju ataki.