Odgovori eha stižu, udaljena radna površina radi, a preglednik stoji na praznoj stranici dok ne odustane. Dva objašnjenja odgovaraju tom obrascu i ona nisu varijante jednog problema: politika koja nikada nije dopustila uslugu ili paketi koji prestaju stati kada prijenos naraste. Odgovor eha ne isključuje nijedno od njih.

Krenite od najmanjeg pitanja prema najvećem i zapišite šta je svaki korak stvarno dokazao.

Odgovor eha odgovara na mnogo manje pitanje

Odgovor eha kaže da je IP stog odredišta odgovorio na ICMP zahtjev s vašeg izvora. On ne kaže ništa o tome postoji li TCP slušalac na portu koji vam treba, dopušta li politika taj port ili filtrira li odredišni host promet neovisno od pristupnika. Pristupnik koji dopušta jednu uslugu može odbaciti drugu dok oba cilja odgovaraju na ping. Čitajte odgovor kao jednu činjenicu o jednom paketu i jednom smjeru.

Potvrdite odredište i port usluge prije nego što bilo šta drugo protumačite. Adresa koju ste testirali i adresa koju aplikacija koristi ponekad su različiti zapisi, a ime koje se razrješava na dvije adrese to čini vjerojatnim.

Utvrdite je li veza počela

Veza koja se odmah odbije jest odgovor slušalca ili politike: nešto je odgovorilo i reklo ne. Veza koja se otvori pa zapne kada podaci počnu teći upućuje na veličinu. Veza koja nikada ne završi rukovanje obično je stvar politike ili usmjeravanja i izgleda kao istek vremena, a ne kao odbijanje.

curl -v --max-time 10 https://internal.example/ -o /dev/null
ss -tn state established '( dport = :443 )'

Zapišite koje ste od tih tri slučaja vidjeli prije nego što dirate MTU postavke. Mijenjanje veličine tunela da biste popravili odbijenu vezu troši tu promjenu i neko vrijeme skriva stvarni uzrok.

Izmjerite veličinu navedenim brojem

Kada se zastoj pojavi pod opterećenjem, testirajte jednu veličinu paketa s postavljenim bitom zabrane fragmentacije i navedite aritmetiku da rezultat nešto znači. Na Linuxu s iputils, korisni teret od 1392 bajta plus ICMP zaglavlje od 8 bajtova i IPv4 zaglavlje od 20 bajtova daje unutrašnji paket od točno 1420 bajtova. Navedite tu aritmetiku u kartici, jer goli ping koji stigne do pristupnika ne dokazuje ništa o aplikaciji.

ping -4 -M do -s 1392 10.44.0.10
ping -4 -M do -s 1372 10.44.0.10

Obje probe su mjerne točke, a ne preporuke za veličinu tunela. Ako se ICMP filtrira bilo gdje na putu, istek vremena ne govori ništa o veličini, jer filtriranje i prevelik paket izgledaju isto sa strane klijenta. Uspjeh također ne govori ništa o obrnutom smjeru ni o drugom odredištu.

Uzmite u obzir vanjski put

Enkapsulacija dodaje vlastita zaglavlja, pa je paket na žici veći od paketa koji ste izmjerili unutar tunela. Razmak između njih je ono što istodobno omogućuje mali zahtjev koji radi i veliki koji ne uspijeva.

IPv4 otkrivanje MTU puta ovisi o povratnim informacijama o paketima koji se ne mogu proslijediti bez fragmentacije, a IPv6 upotrebljava poruke Packet Too Big. IPv4 specifikacija opisuje taj mehanizam. Filtriranje povratnih informacija kvari sposobnost pošiljatelja da uči, pa on ponovno šalje pakete koji nikada neće stati. Zato mali zahtjev koji radi i veliki koji ne uspijeva tako ugodno supostoje.

Promijenite jedan broj i ponovno testirajte aplikaciju

Snizite MTU tunela ili ograničite najveću veličinu segmenta za TCP, pa ponovite izvorni test aplikacije umjesto probe. Proba koja uspije nakon promjene i aplikacija koja još visi različiti su problem sličnog oblika, a samo test aplikacije ih razlikuje.

Držite aritmetiku u zapisu promjene: izmjerenu veličinu, pretpostavljeni dodatni trošak i vrijednost koju ste postavili. Svako ko to kasnije pregleda može provjeriti pretpostavku umjesto da je iznova izvodi sa snimke zaslona pinga.

Ako aplikacija radi pri svakoj veličini koju ste pokušali, prestanite podešavati brojeve i pogledajte politiku koja odvaja uslugu koja radi od one koja ne uspijeva.

Povezani članci