Päring, mis jääb pärast TCP handshake'i rippuma, ei ole marsruutimise probleem. Marsruudi vead lõhuvad handshake'i, seega sessioon, mis luuakse ja seejärel vaikib, osutab tee sisemusse: kontroll, MTU või viis, kuidas tunneli UDP paketid saabuvad. Otsus sinu ees on, kas see tee parandada või tunnel TCP-le viia. Kolm tingimust otsustavad selle ja ükski neist ei ole andmebaasist.

Klassifitseeri tõrge enne, kui tunneli süüdistad

Neli tulemust näivad kasutajale ühesugused ja tähendavad insenerile täiesti erinevaid asju.

What the client seesWhat it rules out
Connection refusedNothing is listening on the address and port the client reached
Timeout before the handshakeA filter, a missing route, or the wrong address
Handshake completes, query hangsThe session exists, so look at inspection, MTU and packet order
Stalls that recover on retryOften reordering, or a state table entry expiring

Ainult kaks viimast rida õigustavad tunnelile kulutatud aega. VPN-i kaudu tagasi lükatud ühendus on tavaliselt andmebaas, mis kuulab ainult loopbackil, mis on kuulaja probleem, ja handshake'i eelne ajalõpp on filter või marsruut. Kumbki ei parane kapseldamise muutmisest.

Kirjuta klassifikatsioon kõigepealt piletisse. See on odavaim samm ja eemaldab suurema osa otsinguruumist.

Kolm tingimust, mis otsustavad UDP ja TCP vahel

Kapseldatud IPsec liiklus sõidab UDP peal ja UDP annab teele vabaduse ümber järjestada ja maha visata, ilma kellelegi ütlemata. Kui ümberjärjestamine surub paketid väljapoole tunneli korduskaitset akent, visatakse need vaikselt ära ja sisemine TCP sessioon lihtsalt ootab. See on mehhanism edu saatva handshake'i ja kunagi tagasi mitte tuleva päringu taga.

Tee parandamine või TCP-le tagasi lülitumine sõltub kolmest asjast. Esiteks, kas teel on tõeline paketikaotus või ainult ümberjärjestamine? Teiseks, kas saad muuta, kus kontroll toimub, või selle tunneli ümberjärjestavast komponendist välja jätta? Kolmandaks, kas töökoormus on tundlik tõrke mustri suhtes, näiteks palju multipleksitud sessioone, mis jagavad ühte linki?

Kui esimene vastus on kaotus ja teine ei,on TCP pordil 443 pragmaatiline varuvariant. Kui teine vastus on jah, paranda tee ja jäta UDP alles.

Loe tulemüüri kirjet, mitte rakenduse viga

Rakendus teatab ajalõpust, mis ei ütle sulle põhjuse kohta midagi. Tulemüüri enda logi on koht, kus mahavisku või blokeerimine ilmub, seega filtreeri andmebaasi ja rakenduse aadresside järgi ning otsi nii mahaviskuid kui ka vastuvõtmisi.Ohutõrje moodulid saavad pakette maha visata, tekitamata rakenduse tasemel viga, mis on täpselt rippuma jääva päringu kuju. Vaikus logis on samuti andmed: see osutab millelegi, mis ei logi, näiteks ümberjärjestamisele.

Kontrolli ka klastrit. Valesti konfigureeritud klaster võib hoida sessiooni ühe liikme olekutabelis, samal ajal kui paketid lähevad teise liikme teed, nii et vastused saabuvad sinna, kus olekut ei ole. Sellised tõrked näivad juhuslikena ega korreleeru koormusega.

Võrdle mõlemat otsa enne, kui midagi muudad, ja võrdle saabumise järjekorda, mitte pakettide arvu:

tcpdump -ni any udp port 4500 -w /tmp/encap.pcap
tcpdump -ni any tcp port 5432 -w /tmp/inner.pcap

Mida TCP pordil 443 sulle tegelikult maksab

Tunneli viimine TCP-le eemaldab ümberjärjestamise sümptomi, sest vaheline seade näeb nüüd järjestatud voogu. See loob ka TCP-over-TCP. Välimine ühendus saadab uuesti seda, mida sisemine on juba uuesti saatnud, ja üksainus kaotus võib peatada kõik multipleksitud sessioonid korraga. Puhtal teel on see nähtamatu. Kaotusega teel on ravim hullem kui sümptom.

Vahetus on vastuvõetav, kui alternatiiviks on ühenduvuse puudumine, ja see tuleks dokumenteerida erandina koos omanikuga, mitte võtta normaalina.

Pane kirja transport, port, näidispäring ja mõõdetud tulemus ning kuupäev. Ilma selle kirjeta kordab järgmine insener katse ja erand muutub vaikselt arhitektuuriks.

Hoia otsus ülevaatamisele avatuna

Tee diagnoos vananeb halvasti. Vaheline seade vahetatakse, mooduli konfiguratsioon muutub, linki uuendatakse ja põhjus TCP järele pordil 443 kaob, samal ajal kui konfiguratsioon jääb. Pane erandile ülevaatamise kuupäev ja nimeta tingimus, mis lubaks sul UDP juurde naasta.

Kontrolli mõlemat transporti väikese päringu ja suure tulemuste hulgaga. Ümberjärjestamine ilmneb suurusest sõltuvate tõrgetena, samas kui kuulaja rike peatab mõlemad suurused võrdselt.

Seotud artiklid