Objaw zgłoszony przez ludzi: „internet czasem muli"
Serwer nazw odpowiadał w 25 ms i nie umiał ustalić nic nowego
Zgłoszenie brzmiało tak, jak brzmi zawsze. Strony czasem otwierają się od razu, a czasem dopiero za drugim razem. Łącze było szybkie i symetryczne, test prędkości wychodził bez zarzutu.
Serwer nazw w tej sieci odpowiadał natychmiast. Na tym polegała pułapka.
Serwer nazw tłumaczy adres strony na numer, pod który łączy się przeglądarka. Jeśli ktoś już wcześniej o daną stronę pytał, odpowiedź leży w pamięci serwera i wraca w kilka milisekund. Wraca także wtedy, gdy serwer nie umie już ustalić nic nowego. Każdy zwykły test pyta o stronę popularną, więc każdy zwykły test przechodzi.
Zapytaliśmy więc o adres, którego nie ma. Wymyśliliśmy go na miejscu, w chwili pytania — ciąg liter, o który nikt nigdy wcześniej nie pytał. Takiego adresu żaden serwer nie ma w pamięci, więc musi go dopiero ustalić. Albo przyznać, że nie umie.
| adres, o który nikt nie pytał | błąd po 9 100 ms |
| ten sam adres, drugi serwer | błąd po 10 600 ms |
| znana strona | poprawnie w 22 ms |
| kontrola: serwer publiczny | poprawnie w 31 ms |
Oba serwery obsługujące tę sieć nie umiały ustalić żadnego nowego adresu. Nie tylko naszego — żadnego, o który nikt wcześniej nie pytał. Przeglądarka czekała na pierwszy serwer dziewięć sekund. Potem pytała drugiego i czekała kolejne dziesięć. Dopiero wtedy sięgała po to, co leżało w pamięci — i strona się otwierała. Stąd „czasem muli".
Kontrolę zrobiliśmy z tego samego miejsca, na serwerze publicznym. Zajęła 31 ms. To ona rozstrzygnęła, że łącze jest sprawne, a problem siedzi w serwerach nazw.
W innej sieci ten sam objaw miał inną przyczynę
Kilka dni później zobaczyliśmy identyczny obraz gdzie indziej. Tam przyczyna okazała się zupełnie inna. Ten serwer odmawiał odpowiedzi na każde pytanie, także o adresy popularne.
| zwykłe zapytanie | odmowa: zły format |
| to samo, zadane starszym sposobem | poprawnie w 8 ms |
Ten serwer działał bez zarzutu. Był tylko na tyle stary, że nie rozumiał rozszerzenia, którego nowoczesne narzędzia używają domyślnie. Nasz pierwszy pomiar opisał sprawny serwer jako martwy.
Dlaczego o tym piszemy
Bo tak właśnie audyt sieci wprowadza w błąd najczęściej. Przyrząd odpowiada na inne pytanie, niż zadał człowiek. Mierzyliśmy zgodność z pewnym rozszerzeniem, a opisywaliśmy dostępność usługi.
Gdybyśmy tego nie sprawdzili, wysłalibyśmy technika naprawiać serwer, który działa.
Po czym poznasz to u siebie
Poproś kogoś, kto zna Twoją sieć, o sprawdzenie adresu wymyślonego na miejscu — nie popularnej strony. Jeśli odpowiedź przychodzi w kilkadziesiąt milisekund, serwer nazw działa. Jeśli trwa to sekundy albo kończy się błędem, masz dokładnie ten przypadek.
Czego nie rozstrzygnęliśmy: dlaczego oba serwery straciły tę zdolność w tym samym czasie. Tego jeszcze nie zmierzyliśmy.