Datumbaza peto pendiĝas super IPsec: UDP-reordigo aŭ TCP?
Peto, kiu pendiĝas post pura manpremo, montras internen de la tunela vojo. Tri kondiĉoj decidas, ĉu ripari la vojon aŭ reveni al TCP ĉe 443.
Peto, kiu pendiĝas post la TCP-manpremo, ne estas vojiga problemo. Voj-eraroj malsukcesigas la manpremon, do seanco, kiu establiĝas kaj poste silentas, montras internen de la vojo: inspektado, MTU, aŭ la maniero, kiel alvenas la UDP-paketoj de la tunelo. La decido antaŭ vi estas, ĉu ripari tiun vojon aŭ movi la tunelon al TCP. Tri kondiĉoj decidas tion, kaj neniu el ili temas pri la datumbazo.
Klasifiku la haltiĝon antaŭ ol kulpigi la tunelon
Kvar rezultoj aspektas samaj por uzanto kaj signifas tute malsamajn aferojn por inĝeniero.
| 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 |
Nur la lastaj du vicoj pravigas tempon ĉe la tunelo. Rifuzita konekto tra VPN estas kutime la datumbazo aŭskultanta nur ĉe loopback, kio estas aŭskultila problemo, kaj tempolimo antaŭ la manpremo estas filtrilo aŭ vojo. Neniu el ili pliboniĝas per ŝanĝo de la enkapsuligo.
Skribu la klasifikon unue en la bileton. Ĝi estas la plej malmultekosta paŝo kaj forigas la plej grandan parton de la serĉospaco.
Tri kondiĉoj, kiuj decidas inter UDP kaj TCP
Enkapsuligita IPsec-trafiko veturas sur UDP, kaj UDP donas al la vojo liberecon reordigi kaj forĵeti sen diri al iu. Kiam reordigo puŝas paketojn ekster la fenestron kontraŭ ripeto de la tunelo, ili estas silente forĵetataj kaj la interna TCP-seanco simple atendas. Tio estas la mekanismo malantaŭ manpremo, kiu sukcesas, kaj peto, kiu neniam revenas.
Ripari la vojon aŭ reveni al TCP dependas de tri aferoj. Unue, ĉu estas reala paketa perdo sur la vojo, aŭ nur reordigo? Due, ĉu vi povas ŝanĝi, kie okazas la inspektado, aŭ ekskludi ĉi tiun tunelon el la komponanto, kiu reordigas? Trie, ĉu la laborŝarĝo estas sentema al la haltiĝa ŝablono, ekzemple multaj multpleksitaj seancoj dividantaj unu ligilon?
Se la unua respondo estas perdo kaj la dua estas ne,TCP ĉe 443 estas la pragmata rezervo. Se la dua respondo estas jes, riparu la vojon kaj konservu UDP.
Legu la registrojn de la fajroŝirmilo, ne la eraron de la aplikaĵo
La aplikaĵo raportas tempolimon, kio diras al vi nenion pri la kaŭzo. La propra protokolo de la fajroŝirmilo estas loko, kie aperas la forĵeto aŭ blokado, do filtru laŭ la adresoj de la datumbazo kaj de la aplikaĵo kaj serĉu forĵetojn same kiel akceptojn.Moduloj de minacpreventado povas forĵeti paketojn sen krei eraron ĉe la aplikaĵa nivelo, kio estas ĝuste la formo de peto, kiu pendiĝas. Silento en la registro ankaŭ estas datumo: ĝi montras al io, kio ne registras, kiel reordigo.
Kontrolu ankaŭ la klusteron. Malĝuste agordita klustero povas teni seanchon en la statotabelo de unu membro dum la paketoj sekvas la vojon de alia membro, do respondoj alvenas tie, kie ne ekzistas stato. Tiaj haltiĝoj aspektas hazardaj kaj ne korelacias kun la ŝarĝo.
Komparu ambaŭ finojn antaŭ ol ŝanĝi ion, kaj komparu la alvenan ordon anstataŭ la pakan nombrojn:
tcpdump -ni any udp port 4500 -w /tmp/encap.pcap
tcpdump -ni any tcp port 5432 -w /tmp/inner.pcapKion TCP ĉe 443 efektive kostas al vi
Movi la tunelon al TCP forigas la reordigan simptomon, ĉar la meza aparato nun vidas ordan fluon. Ĝi ankaŭ kreas TCP-super-TCP. La ekstera konekto resendas tion, kion la interna jam resendis, kaj unu sola perdo povas haltigi ĉiujn multpleksitajn seancojn samtempe. Sur pura vojo tio estas nevidebla. Sur perda vojo la kuracilo estas pli malbona ol la simptomo.
La interŝanĝo estas akceptebla, kiam la alternativo estas nenia konektebleco, kaj ĝi dokumentiĝu kiel escepto kun posedanto anstataŭ esti ensorbita kiel normala.
Registru la transporton, la pordon, specimenan peton kaj la mezuritan rezulton, plus la daton. Sen tiu registro la sekva inĝeniero ripetas la eksperimenton, kaj la escepto silente fariĝas la arkitekturo.
Tenu la decidon revidebla
Vojdiagnozo maljuniĝas malbone. La meza aparato anstataŭiĝas, la agordo de la modulo ŝanĝiĝas, la ligilo pliboniĝas, kaj la kialo por TCP ĉe 443 malaperas dum la agordo restas. Metu revizian daton al la escepto kaj nomu la kondiĉon, kiu permesus vin reveni al UDP.
Testu ambaŭ transportojn per malgranda peto kaj per granda rezulta aro. Reordigo montriĝas kiel grandecdependaj haltiĝoj, dum aŭskultila misfunkcio haltigas ambaŭ grandecojn egale.