Upit baze podataka visi preko IPsec-a: preraspodjela UDP ili TCP?
Upit koji visi nakon čistog rukovanja upućuje na unutrašnjost putanje tunela. Tri uvjeta odlučuju hoćete li popraviti putanju ili se vratiti na TCP na 443.
Upit koji visi nakon TCP rukovanja nije problem usmjeravanja. Greške usmjeravanja ruše rukovanje, pa sesija koja se uspostavi i zatim utihne upućuje na unutrašnjost putanje: inspekciju, MTU ili način na koji pristižu UDP paketi tunela. Odluka je pred vama: popraviti tu putanju ili prebaciti tunel na TCP. Tri uvjeta to rješavaju i nijedan se ne tiče baze podataka.
Klasificirajte zastoj prije nego optužite tunel
Četiri ishoda korisniku izgledaju isto, a inženjeru znače posve različite stvari.
| What the client sees | What it rules out |
|---|---|
| Connection refused | Nothing is listening on the address and port the client reached |
| Timeout before the handshake | A filter, a missing route, or the wrong address |
| Handshake completes, query hangs | The session exists, so look at inspection, MTU and packet order |
| Stalls that recover on retry | Often reordering, or a state table entry expiring |
Samo posljednja dva retka opravdavaju vrijeme na tunelu. Odbijena veza preko VPN-a obično je baza podataka koja sluša samo na loopbacku, što je problem slušatelja, a istek vremena prije rukovanja je filtar ili ruta. Ni jedno se ne popravlja promjenom enkapsulacije.
Najprije upišite klasifikaciju u tiket. To je najjeftiniji korak i uklanja većinu prostora pretrage.
Tri uvjeta koja odlučuju između UDP-a i TCP-a
Enkapsulirani IPsec promet putuje preko UDP-a, a UDP daje putanji slobodu da preslaže i odbacuje bez da ikome kaže. Kada preslaganje izgura pakete izvan prozora protiv ponavljanja tunela, oni se tiho odbacuju i unutarnja TCP sesija jednostavno čeka. To je mehanizam iza rukovanja koje uspije i upita koji se nikada ne vrati.
Popravak putanje ili povratak na TCP ovisi o tri stvari. Prvo, postoji li stvarni gubitak paketa na putanji ili samo preslaganje? Drugo, možete li promijeniti gdje se inspekcija odvija ili isključiti ovaj tunel iz komponente koja preslaže? Treće, je li opterećenje osjetljivo na obrazac zastoja, primjerice mnoge multipleksirane sesije koje dijele jednu vezu?
Ako je prvi odgovor gubitak, a drugi ne,TCP na 443 pragmatična je zamjena. Ako je drugi odgovor da, popravite putanju i zadržite UDP.
Čitajte zapis vatrozida, a ne grešku aplikacije
Aplikacija prijavljuje istek vremena, što o uzroku ne govori ništa. Vlastiti log vatrozida mjesto je na kojem se odbacivanje ili blokada pojavljuje, pa filtrirajte po adresama baze podataka i aplikacije i tražite odbacivanja kao i prihvaćanja.Blade moduli za sprječavanje prijetnji mogu odbaciti pakete bez stvaranja greške na razini aplikacije, a to je upravo oblik upita koji visi. Tišina u logu također je podatak: upućuje na nešto što ne bilježi, poput preslaganja.
Provjerite i klaster. Pogrešno konfiguriran klaster može držati sesiju u tablici stanja na jednom članu dok paketi idu putanjom drugog člana, pa odgovori stižu tamo gdje stanja nema. Takvi zastoji izgledaju slučajno i ne koreliraju s opterećenjem.
Usporedite oba kraja prije bilo kakve promjene i usporedite redoslijed dolaska, a ne broj paketa:
tcpdump -ni any udp port 4500 -w /tmp/encap.pcap
tcpdump -ni any tcp port 5432 -w /tmp/inner.pcapKoliko vas TCP na 443 stvarno stoji
Prebacivanje tunela na TCP uklanja simptom preslaganja jer middlebox sada vidi uređen tok. Stvara i TCP-over-TCP. Vanjska veza ponovno šalje ono što je unutarnja već poslala, i jedan gubitak može zaustaviti sve multipleksirane sesije odjednom. Na čistoj putanji to je nevidljivo. Na putanji s gubicima lijek je gori od simptoma.
Zamjena je prihvatljiva kada je alternativa nikakva povezanost, i treba je dokumentirati kao iznimku s vlasnikom umjesto prihvatiti kao normalno.
Zabilježite transport, port, primjer upita i izmjereni rezultat, uz datum. Bez tog zapisa sljedeći inženjer ponavlja pokus, a iznimka tiho postaje arhitektura.
Neka odluka ostane pregledna
Dijagnoza putanje brzo stari. Middlebox se zamjenjuje, konfiguracija modula mijenja, veza nadograđuje, i razlog za TCP na 443 nestaje dok konfiguracija ostaje. Stavite datum pregleda na iznimku i navedite uvjet koji bi vam omogućio povratak na UDP.
Testirajte oba transporta malim upitom i velikim skupom rezultata. Preslaganje se pokazuje kao zastoji ovisni o veličini, dok kvar slušatelja zaustavlja obje veličine jednako.