IPv4 funguje, IPv6 nie. Ako odhaliť čiastočný výpadok webu?

Zelený monitor nemusí preveriť obe adresné rodiny. Oddelené testy IPv4 a IPv6, správanie klientov a kontroly sieťovej cesty pri HTTPS.

Čierne a biele serverové skrine v dátovom centre s modrou kabelážou pod stropom
Fotografia: Taylor Vick / Unsplash

Web otvoríte bez problémov, no časť návštevníkov hlási nedostupnosť alebo dlhé čakanie. Ak služba ponúka IPv4 aj IPv6, preverujte obe cesty samostatne. Úspech cez jednu z nich nevysvetľuje stav druhej. Nasledujúci postup sa sústreďuje na bežný dual-stack web a diagnostiku HTTPS cez TCP z Linuxu.

Overte DNS a vynúťte každú adresnú rodinu

Pre daný hostname si zaznamenajte A aj AAAA odpovede. AAAA obsahuje IPv6 adresu; samotný záznam však nepotvrdzuje dostupnosť služby na nej. Ak používate CDN alebo externú proxy, verejná adresa môže smerovať na ich vstupný bod. Najprv určte, ktorú časť cesty testujete, a porovnajte ju s konfiguráciou poskytovateľa.

Na stroji s overenou IPv4 aj IPv6 konektivitou použite curl -4 --http1.1 a curl -6 --http1.1 pre rovnakú HTTPS URL. Tým oddelíte adresné rodiny a pri tomto porovnaní zachováte HTTP/1.1. Uložte cieľovú adresu, výsledok a čas testu. Preverte aj prípadnú proxy v prostredí testu; môže meniť jeho sieťovú cestu.

Nenechajte sa zmiasť úspechom jedného klienta

Happy Eyeballs umožňuje klientovi rozložiť pokusy o spojenie medzi dostupné adresy a začať ďalší pokus, kým predchádzajúci ešte čaká. Úspešné IPv4 pripojenie tak môže zakryť nefunkčnú IPv6 cestu. Konkrétny výsledok závisí od klienta a siete. Úspech vo vašom prehliadači preto neposkytuje rovnaký dôkaz ako samostatný test IPv6.

RFC 8305 opisuje úspech pokusu spravidla už pri dokončení TCP spojenia. Nespoliehajte sa teda na Happy Eyeballs ako na univerzálnu záchranu pri následnej chybe TLS alebo aplikácie. Pri hlásení od návštevníka zaznamenajte klienta, sieť, čas a presný prejav. Rozlíšte chybu prekladu mena, timeout pripojenia, TLS chybu a neúspešnú HTTP odpoveď.

Preverte posluch služby aj cestu paketov

Na príslušnom linuxovom serveri alebo proxy porovnajte ss -lnt4 a ss -lnt6. Výpisy zobrazujú počúvajúce TCP sockety podľa adresnej rodiny. Samotný listener ešte nepreverí smerovanie ani pravidlá firewallu u poskytovateľa a na hostiteľovi. Kontrolujte vrstvu, na ktorú smeruje verejná adresa; pri CDN nemusí byť verejné IPv6 ukončené na vašom origin serveri.

Ak spojenie vznikne, ale väčší prenos sa zasekne, preverte aj MTU a ICMPv6 Packet Too Big. Tieto správy pri Path MTU Discovery informujú odosielateľa, že má prispôsobiť veľkosť paketov. Plošné blokovanie ICMPv6 preto môže narušiť komunikáciu. Je to jedna z diagnostických možností, nie dôkaz príčiny každého timeoutu. Pravidlá posudzujte cielene podľa sieťovej topológie.

Po oprave overte obe cesty aj skutočnú operáciu

Pri porovnaní ponechajte rovnaký hostname a zapnuté overenie certifikátu. Priame otvorenie IP adresy mení podmienky testu; curl pri HTTPS overuje aj zhodu názvu v certifikáte s menom v URL. Opravu potom overte aj bežným klientskym protokolom a operáciou, ktorá zlyhávala. Vynútený test HTTP/1.1 nie je úplným testom všetkých protokolov služby.

Ak IPv6 verejne poskytujete, nastavte samostatné kontroly pre obe adresné rodiny v nástroji, ktorý ich vie vynútiť. Pri výsledku zaznamenajte použitú adresu, chybu a odozvu, aby automatický výber cesty nezakryl poruchu. Po zmene DNS, siete alebo proxy zopakujte porovnanie aj z ďalšieho vhodného meracieho miesta.

  • Zaznamenajte A a AAAA odpovede pre rovnaký hostname.
  • Vynúťte IPv4 a IPv6 z miesta s overenou konektivitou.
  • Oddeľte problém spojenia, TLS a HTTP; preverte aj MTU.
  • Po oprave sledujte obe cesty a pôvodnú používateľskú operáciu.

Čo si odniesť

Pri čiastočnom výpadku zistite, ktorou cestou úspešný test skutočne prešiel. Samostatné overenie IPv4 a IPv6 pomôže oddeliť poruchu adresnej rodiny od chyby TLS alebo aplikácie a ukáže, čo treba po zásahu znova skontrolovať.

Dokumentácia a ďalšie čítanie

Mgr. Martin Hlavaj, MBA

Softvérový inžinier

Všetky články

O výpadku sa dozviete včas.

Pridajte svoj web alebo API do UpBota a nastavte, komu príde upozornenie.

Začať monitorovať zadarmo