LW IT Solutions
« Przegląd bloga /IT & Networks / Failover WAN: co dzieje się z otwartymi...
Ten artykuł w innych językach:

Failover WAN: co dzieje się z otwartymi połączeniami przy przełączeniu łącza

Failover WAN: co dzieje się z otwartymi połączeniami przy przełączeniu łącza
Spis treści
  1. Dlaczego ginie każde połączenie
  2. Ile przełączenie naprawdę trwa
  3. Co przetrwa, a co nie
  4. Powrót kosztuje to samo jeszcze raz
  5. Co da się z tym zrobić
  6. Pytania i odpowiedzi
  7. Źródła

Przełączanie awaryjne opisuje się zwykle w sekundach: sprawdzenie zauważa, router przełącza, łącze wraca. Ten opis zgadza się co do łącza i milczy o wszystkim, co z niego korzystało – a właśnie to zauważa najpierw ten, kto akurat rozmawia.

To, co dzieje się w chwili przełączenia, nie jest krótką przerwą w istniejących połączeniach. Jest ich końcem.

Oś czasu przez sześćdziesiąt sekund: WAN1 pada na dziesiątej sekundzie, trzy nieudane sprawdzenia później router przełącza, a sesja SSH, pobieranie i rozmowa kończą się na tej samej pionowej linii
Łącze wraca po 25 sekundach. Trzy z pięciu sesji nie wracają razem z nim.

Dlaczego ginie każde połączenie

Połączenie TCP oznacza się czterema wartościami: obydwoma adresami i obydwoma portami. Ruch wychodzący przez WAN1 niesie publiczny adres WAN1, a serwer po drugiej stronie ma ten adres w swojej połowie połączenia.

Po przełączeniu ten sam ruch wychodzi przez WAN2 i przybywa z innym adresem źródłowym. Dla serwera to nie jest to samo połączenie – to pakiety nienależące do niczego, które dostają zresetowanie albo zostają odrzucone. Router nie może pomóc: stan translacji odwzorowujący połączenie wewnętrzne na adres WAN1 należy do interfejsu, który jest wyłączony.

Dlatego wyrażeniem, którego przy sprzęcie tej klasy należy unikać, jest bezszwowe przełączanie. Bezszwowa jest dostępność drogi. Sesje nie są po niej przenoszone i nie zmienia tego żadne ustawienie czasu.

Ile przełączenie naprawdę trwa

Częścią widoczną jest rachunek sprawdzania – interwał razy liczba tolerowanych niepowodzeń. Część niewidoczna przychodzi przed tym: łącze może być martwe przez niemal cały interwał, zanim pierwsze sprawdzenie w ogóle to zauważy, bo sprawdzenie, które przed chwilą się powiodło, przebiegło moment przed awarią.

najgorszy przypadek = interwał × (niepowodzenia + 1)
typowo              = interwał × (niepowodzenia + 0,5)

interwał 5 s, 3 niepowodzenia
  najlepiej   15 s
  typowo      17,5 s
  najgorzej   20 s

do tego czas, którego aplikacje potrzebują, by zauważyć stratę -
przy przekroczeniu czasu TCP znacznie więcej niż wszystko powyżej

Ostatni wiersz rozstrzyga o tym, czego doświadcza człowiek. Router wraca po piętnastu sekundach; pobieranie, które jeszcze nie zauważyło, że jego połączenie jest martwe, siedzi w powtórzeniu transmisji znacznie dłużej, a karta przeglądarki przez cały ten czas wygląda na zamrożoną.

Co przetrwa, a co nie

Ruch Przetrwa? Dlaczego
SSH, połączenia z bazą nie długowieczne TCP, związane z parą adresów
Pobierania po HTTP/1.1 i HTTP/2 nie TCP; bez żądań zakresu zaczyna od początku
HTTP/3 (QUIC) często identyfikator połączenia oznacza sesję, a nie adres
Trwająca rozmowa nie strumień mediów kierowany jest na stary adres publiczny
Zapytania DNS tak pojedyncze pakiety, i tak powtarzane
Tunel VPN na chwilę znika zauważa i buduje się od nowa, wraz z sesjami w środku

Wiersz o QUIC jest prawdziwym wyjątkiem i warto go znać, bo po cichu staje się regułą: identyfikator połączenia niezależny od adresu to dokładnie ta własność, która czyni zmianę drogi możliwą do przetrwania – a obie strony muszą ją obsługiwać.

Wiersz o VPN wskazuje jedyny układ, który w praktyce pomaga. Tunel odbudowujący się samodzielnie zamienia jedno przełączenie w jedno ponowne połączenie, a wszystko wewnątrz tunelu widzi krótką przerwę zamiast martwego połączenia – bo wewnątrz tunelu adresy nigdy się nie zmieniły.

Powrót kosztuje to samo jeszcze raz

Przejście z powrotem na łącze główne jest drugim przełączeniem, z drugą rundą martwych sesji. To powód, dla którego oba czasy nie powinny być symetryczne: szybko przełączyć ogranicza awarię, wolno wrócić pozwala uniknąć płacenia ceny dwukrotnie za łącze, które nie jest jeszcze stabilne.

Trzepoczące łącze z równymi czasami to najgorszy przypadek całego tematu. Każde trzepnięcie kosztuje dwie rundy zerwanych sesji, a łącze trzepoczące co kilka minut jest odczuwalnie gorsze niż takie, którego po prostu nie ma – bo to, którego nie ma, przełącza raz i potem zostaje.

Co da się z tym zrobić

Na routerze niewiele, i to należy powiedzieć wprost, zamiast kręcić ustawieniami w nadziei, że któreś z nich jest sztuczką. Pomagają trzy rzeczy.

Różne cele sprawdzania na obu łączach, żeby awaria celu nie została wzięta za awarię obu linii. Czas powrotu będący wielokrotnością czasu przełączenia, żeby trzepotanie kosztowało jedno przełączenie zamiast dziesięciu. I dla wszystkiego, co naprawdę nie może się zerwać, tunel przetrwający zmianę drogi i niosący sesje w sobie.

Poza tym uczciwą postawą jest planowanie z przerwą, a nie zaprzeczanie jej: wiedzieć, że rozmowy się urwą, że kopia zacznie od nowa i że piętnaście sekund z ustawień jest mniejszą połową tego, co awaria faktycznie kosztuje.

Pytania i odpowiedzi

Dlaczego telefon IP po przełączeniu pozostaje nieosiągalny także dla nowych rozmów przychodzących?

Z dwóch powodów, które działają dłużej niż samo przełączenie.

  1. Rejestracja. Telefon rejestruje się u operatora pod adresem publicznym, z którego przychodzą jego pakiety, a operator kieruje rozmowy przychodzące dokładnie tam. Po przełączeniu operator wciąż ma zapisany adres WAN1 i tak pozostaje, dopóki telefon nie zarejestruje się ponownie; ile to trwa, zależy od ustawionego interwału.
  2. Stan translacji w routerze. Telefony utrzymują połączenie z operatorem przy życiu za pomocą regularnych małych pakietów, a każdy z nich odświeża wpis, który wysyłał je przez WAN1. Wpis, który nigdy nie cichnie, nigdy nie wygasa. Zależnie od routera pozostaje więc przywiązany do łącza, które padło, a pakiety dalej idą w próżnię, choć łącze WAN2 jest od dawna gotowe.

Na drugi powód wiele routerów ma ustawienie, które przy zmianie aktywnego łącza usuwa istniejące stany. Przy awarii nie kosztuje to niczego, co i tak nie byłoby stracone, bo te wpisy wskazują na łącze, które nie działa. Skutki pierwszego powodu ogranicza krótszy interwał rejestracji w telefonie, kosztem częstszych rejestracji.

Czy krótszy interwał sprawdzania przyspiesza przełączenie?

Tak, według tego samego wzoru: przy jednej sekundzie i trzech niepowodzeniach trwa ono od trzech do czterech sekund zamiast od piętnastu do dwudziestu. Ceną jest czułość, bo trzy utracone pakiety sprawdzające z rzędu mogą się zdarzyć na w pełni obciążonym łączu także bez awarii, a każde fałszywe przełączenie kosztuje te same dwie rundy zerwanych sesji co prawdziwe.

Czy pomaga korzystanie z obu łączy jednocześnie zamiast trzymania jednego w rezerwie?

Częściowo. Zwykłe rozkładanie obciążenia przypisuje do łącza każde połączenie, a nie każdy pakiet, bo inaczej to samo połączenie przychodziłoby z dwóch adresów źródłowych. Gdy łącze padnie, giną więc tylko połączenia, które akurat przez nie szły, a pozostałe działają dalej. Samo przełączenie pozostaje tak twarde, jak opisuje artykuł; trafia tylko w mniej sesji.

W zamian pojawia się nowy problem w zwykłej pracy. Kolejne połączenia tego samego urządzenia mogą wychodzić różnymi łączami, a usługa wiążąca logowanie z adresem źródłowym nagle widzi dwa adresy i kończy sesję. Routery rozwiązują to ustawieniem, często nazywanym „sticky connections”, które na pewien czas przypina wszystkie połączenia jednego urządzenia wewnętrznego do tego samego łącza. Obciążenie rozkłada się wtedy według urządzeń, a nie według połączeń.

Lukas Wójcik

Lukas Wójcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Get in Touch

Briefly describe your project or inquiry for a tailored response. This site is protected by reCAPTCHA.

Napisanie komentarza

Doświadczenia z innym sprzętem lub inną wersją oprogramowania oraz pytania o konfigurację są tu mile widziane.

Adres e-mail nie jest publikowany. Pola obowiązkowe oznaczono gwiazdką.

Artykuły i kategorie

CCTV

Śledź tę kategorię przez RSS

Cloud & AI

Wszystkie artykuły w tej kategorii (11) Śledź tę kategorię przez RSS

Data Privacy

Wszystkie artykuły w tej kategorii (18) Śledź tę kategorię przez RSS

Digital Analytics

Wszystkie artykuły w tej kategorii (58) Śledź tę kategorię przez RSS

Digital Marketing

Wszystkie artykuły w tej kategorii (37) Śledź tę kategorię przez RSS

IT & Networks

Wszystkie artykuły w tej kategorii (17) Śledź tę kategorię przez RSS

Music Production

Wszystkie artykuły w tej kategorii (16) Śledź tę kategorię przez RSS

Raspberry Pi

Śledź tę kategorię przez RSS

SaaS & Internet Earning

Artykuły w przygotowaniu

Smart Home

Wszystkie artykuły w tej kategorii (18) Śledź tę kategorię przez RSS

Tworzenie stron internetowych

Wszystkie artykuły w tej kategorii (11) Śledź tę kategorię przez RSS

Wtyczki i triki WordPress

Wszystkie artykuły w tej kategorii (13) Śledź tę kategorię przez RSS