Wczoraj oryginalny klient działał. Dziś nowy przybysz domaga się połączenia, a starszy profil zatrzymuje się na etapie, który wcześniej przechodził bez skargi. Dane logowania rzadko tu wchodzą w grę, a brama zwykle jest niewinna. Zmieniło się to, że dwa stosy VPN chcą teraz tego samego wyłącznego zasobu, a naprawa zależy od jego nazwania. Przejdź przez warstwy zamiast instalować oba od nowa.

Przejdź przez cztery warstwy po kolei

Produkt VPN potrzebuje czterech zasobów, które mogą się zderzyć: usługi w tle, która często odmawia działania dwa razy, stałego portu, wirtualnego adaptera lub filtra jądra, który widzi ruch przed tabelą tras, oraz prawa do instalowania tras przed domyślną. Wiedza, który z nich ustąpił, zamienia niejasny konflikt w jedno pytanie z odpowiedzią, którą można sprawdzić.

Przypisz objaw do warstwy, zanim czegokolwiek dotkniesz. Klient, który się nie uruchamia, wskazuje usługę; ten, który się uruchamia i nigdy nie negocjuje, wskazuje port; ten, który się łączy, gdy drugi traci całą łączność, wskazuje filtr lub trasę domyślną. Zapisz to przypisanie, bo oszczędza godzinę reinstalowania aplikacji w nadziei.

Zacznij od usługi, która nie działa dwa razy

W Windowsie klient korporacyjny to zwykle coś więcej niż tunel, bo obok profilu instaluje usługę, sterownik filtra i czasem dostawcę danych logowania. Zapisz, które usługi działają przed zmianą i ponownie po niej, a potem porównaj obie listy zamiast restartować, aż coś zacznie działać. Usługi mogą się też wzajemnie wykluczać przez zależności, gdzie uruchomienie jednej zatrzymuje drugą, i ten sam wzorzec widać w macOS z zadaniami launchd i wspólnym demonem. Klient, który uruchamia się i kończy w kilka sekund, zgłasza własność, a nie konfigurację.

Przeczytaj stan usługi i jej dziennik, zanim przeczytasz profil. Usługa, która uruchomiła się i zatrzymała w tej samej minucie, to wzorzec, którego szukasz, a jej własny dziennik zdarzeń nazywa zależność, która ją wypchnęła. Profil nie naprawi procesu, który nie działa, a czas spędzony na jego edycji to czas niepoświęcony prawdziwemu konfliktowi.

Potem zapytaj, kto jest właścicielem portu

Własność portu to najwyraźniejszy dowód, jaki dostaniesz, bo błąd powiązania wprost nazywa konflikt. Dwie implementacje IKE nie mogą obie odpowiadać na tym samym adresie lokalnym i porcie UDP, i żadna liczba ponownych prób tego nie zmieni.

Get-NetUDPEndpoint -LocalPort 500,4500 | Select-Object LocalAddress,LocalPort,OwningProcess
netstat -ano | findstr :500
sudo lsof -nP -iUDP:500
ss -lunp | grep -E ':500|:4500'

Którykolwiek wiersz pasuje do twojej platformy, odpowiedzią, której chcesz, jest proces i usługa, która go stworzyła. Jeśli nasłuchującym jest wbudowana usługa IKE, intruzem jest drugi klient; jeśli to agent dostawcy, intruzem jest wbudowany klient. Zdecyduj, który może startować przy logowaniu, i wyłącz autostart drugiego, zamiast zabijać go w każdej sesji.

Sterownik filtra siedzi pod twoimi trasami

Sterownik filtra sieciowego przechwytuje ruch między adapterem a stosem protokołów, więc może przepisywać lub blokować pakiety niezależnie od tego, co mówi tabela tras. Tak właśnie trasa, która wygląda poprawnie, jest ignorowana, i dlatego udany ping może stać obok przeglądarki, która niczego nie potrafi wczytać.

Komponenty dostawcy wiążą się też z konkretnymi połączeniami. Stary filtr powiązany z jednym adapterem może uniemożliwić skądinąd poprawnemu profilowi dokończenie uzgadniania, a odłączenie tego komponentu od właściwości adaptera jest węższe i bardziej odwracalne niż całkowite usunięcie produktu. Ponieważ powiązanie dotyczy każdego połączenia, porównuj adaptery, a nie cały stos.

Zdecyduj, który produkt jest właścicielem rozruchu, a potem to zapisz

Współistnienie jest realne tylko wtedy, gdy oba programy klienckie z założenia zajmują różne warstwy, na przykład stos IPsec obok proxy, które obsługuje wyłącznie ruch aplikacji. Gdy oba chcą tego samego portu, tej samej warstwy filtra lub prawa do publikowania trasy domyślnej, będą się dalej wymieniać, a każda awaria będzie wyglądać jak nowa usterka.

Wybierz właściciela świadomie. Formy, które przetrwają restart, to uruchamianie drugiego klienta w maszynie wirtualnej, trzymanie go na dedykowanym sprzęcie lub standaryzacja na jednym kliencie mówiącym oboma protokołami. Wyłączenie autostartu i usługi przegranego to mniejsza zmiana niż odbudowa tabeli tras po każdym starcie, i cofa się jedną zmianą ustawień.

Powiązane artykuły