Strony sklepów z routerami pokazują routing VPN jako jeden checkbox, a to sformułowanie ukrywa trzy różne pytania. Czy reguła pasuje do urządzenia, które wysyła ruch, do serwera, który go odbiera, czy do obu? Co dzieje się z ruchem, który nie pasuje do żadnego? A gdy dwie reguły się nakładają, która wygrywa? Zapisanie odpowiedzi jako pary źródła i celu zamienia niejasną listę funkcji w projekt, który można przetestować.

Nazwa funkcji ukrywa dwa końce

Odtwarzacz multimediów, który powinien korzystać z tunelu, to dopasowanie źródła. Prywatny prefiks biurowy, który powinien być osiągalny przez tunel, to dopasowanie celu. Stacja robocza, która powinna używać tunelu tylko do jednej usługi, jest oba, i właśnie ta część wspólna to przypadek, z którym większość firmwaru konsumenckiego radzi sobie źle.

Zapisz wymaganie jako parę, zanim porównasz produkty. Tę parę będziesz później testować.

Produkt oferujący listę urządzeń lub globalną listę celów może nie wyrażać „tylko to urządzenie, tylko te cele”. Różnica nie jest kosmetyczna: globalna reguła celu wysyła ruch każdego urządzenia do tej witryny przez tunel, a reguła urządzenia wysyła cały ruch tego urządzenia. Żadna z nich nie jest wymaganiem. Przetestuj ten przypadek z dwoma urządzeniami, zanim zaufasz ekranowi.

Zbuduj regułę jako część wspólną

Tabela utrzymuje projekt w uczciwości. Umieść scenariusz po lewej, a następnie nazwij osobno dopasowanie nadawcy i dopasowanie celu:

ScenarioSender matchTarget matchRule shape
Media player uses the tunnelPlayer addressAny internet destination except the LANSource only
Office prefix reachableAuthorized LAN devices10.40.0.0/16Target only
One app on one laptopLaptop addressThe service address setSource and target
Guest network never tunnelsGuest subnetAnyDeny, evaluated first

Trzeci wiersz jest ciekawy, bo potrzebuje obu połówek naraz. Jeśli firmware potrafi wyrazić tylko jedną oś, wymaganie trzeba podzielić na dwie reguły albo przenieść na urządzenie, które to potrafi.

Utrzymuj stabilną tożsamość źródła. Rezerwacja DHCP, wydzielony segment lub mechanizm tożsamości urządzenia działają, ale adres, który zmienia się po wygaśnięciu dzierżawy, nie działa. Uwzględnij IPv6, bo jeden adres IPv4 nie identyfikuje całego ruchu urządzenia.

Priorytet rozstrzyga nakładanie

Nakładanie się reguł jest normalne. Szeroka reguła urządzenia i wąska reguła celu mogą opisywać ten sam przepływ, a udokumentowana kolejność priorytetów decyduje, która wygrywa. Atrakcyjny ekran ustawień nie podaje tej kolejności.

Przeczytaj w instrukcji o kolejności i o przypadku bez dopasowania, a potem przetestuj oba ruchem, który możesz obserwować:

ip rule show
ip route get 203.0.113.10

Jeśli dokumentacja nie podaje kolejności, załóż, że węższa reguła może nie wygrać, i projektuj z tym założeniem. Dwie reguły, które nie mogą wejść w konflikt, łatwiej utrzymać niż jedną sprytną regułę o nieudokumentowanym pierwszeństwie.

Nazwy wymagają polityki odświeżania

Cel zapisany jako domena dodaje problem konserwacyjny. Router musi go rozwiązać, odświeżać mapowanie, obsługiwać wiele adresów i subdomen oraz radzić sobie z DNS aplikacji, który omija oczekiwany resolver.

Skopiowanie jednego wyniku wyszukiwania do reguły IP to migawka, a nie polityka domeny.

Ustal, jak stary może być wynik, zanim reguła stanie się błędna, i co router robi, gdy rozwiązywanie zawiedzie. Reguła, która zachowuje ostatni znany adres, może przetrwać migrację usługi; reguła, która odrzuca wpis, może po cichu zatrzymać tunelowanie. Oba zachowania są dopuszczalne, jeśli są zapisane obok reguły.

Zdefiniuj stan niedostępności

Preferencja trasy nie wymusza ruchu wyłącznie przez VPN. Gdy tunel jest wyłączony, router może zablokować przepływ, wysłać go bezpośrednio lub użyć innego tunelu, a każdy wybór ma inny podpis awarii.

Ustal, którego wymaga wymaganie, a potem zweryfikuj to, zatrzymując tunel i obserwując przepływ:

curl -sS -o /dev/null -w "%{http_code}" --max-time 5 https://service.example/
ping -c 2 203.0.113.10

Ruch pochodzący z samego routera to osobny zakres. Przekazywanie DNS, sprawdzanie aktualizacji i monitorowanie mogą uruchamiać nowe przepływy z samego routera zamiast dziedziczyć dopasowanie źródła urządzenia. Uwzględnij te przepływy jawnie, inaczej pojawią się w logach jako niewyjaśnione wycieki.

Powiązane artykuły