Datu bāzes vaicājums karājas pāri IPsec: UDP pārkārtošana vai TCP?
Vaicājums, kas karājas pēc tīras handshake, norāda uz tuneļa ceļa iekšpusi. Trīs nosacījumi izlemj, vai labot ceļu, vai atgriezties pie TCP uz 443.
Vaicājums, kas karājas pēc TCP handshake, nav maršrutēšanas problēma. Maršruta kļūdas izgāž handshake, tāpēc sesija, kas izveidojas un pēc tam apklust, norāda uz ceļa iekšpusi: inspekcija, MTU vai veids, kā pienāk tuneļa UDP paketes. Lēmums jūsu priekšā ir labot šo ceļu vai pārcelt tuneli uz TCP. Trīs nosacījumi to izlemj, un neviens no tiem nav par datu bāzi.
Klasificējiet apstāšanos, pirms vainojat tuneli
Četri iznākumi lietotājam izskatās vienādi un inženierim nozīmē pilnīgi atšķirīgas lietas.
| 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 |
Tikai pēdējās divas rindas attaisno laiku tunelī. Atteikts savienojums pāri VPN parasti ir datu bāze, kas klausās tikai uz loopback, un tā ir klausītāja problēma, bet taimauts pirms handshake ir filtrs vai maršruts. Neviens no tiem neuzlabojas, mainot iekapsulējumu.
Vispirms ierakstiet klasifikāciju biļetē. Tas ir lētākais solis, un tas noņem lielāko daļu meklēšanas telpas.
Trīs nosacījumi, kas izlemj starp UDP un TCP
Iekapsulētā IPsec plūsma ceļo pa UDP, un UDP dod ceļam brīvību pārkārtot un nomest, nevienam to nesakot. Kad pārkārtošana izspiež paketes ārpus tuneļa atkārtošanās aizsardzības loga, tās tiek klusi izmestas, un iekšējā TCP sesija vienkārši gaida. Tas ir mehānisms aiz veiksmīgas handshake un vaicājuma, kas nekad neatgriežas.
Ceļa labošana vai atgriešanās pie TCP ir atkarīga no trim lietām. Pirmkārt, vai ceļā ir reāls pakešu zudums, vai tikai pārkārtošana? Otrkārt, vai jūs varat mainīt, kur notiek inspekcija, vai izslēgt šo tuneli no komponentes, kas pārkārto? Treškārt, vai slodze ir jutīga pret apstāšanās modeli, piemēram, daudzas multipleksētas sesijas, kas dala vienu saiti?
Ja pirmā atbilde ir zudums un otrā ir nē,TCP uz 443 ir pragmatiskā alternatīva. Ja otrā atbilde ir jā, labojiet ceļu un paturiet UDP.
Lasiet ugunsmūra ierakstu, nevis lietotnes kļūdu
Lietotne ziņo par taimautu, kas neko nepasaka par cēloni. Paša ugunsmūra žurnāls ir vieta, kur parādās nomešana vai bloķēšana, tāpēc filtrējiet pēc datu bāzes un lietotnes adresēm un meklējiet gan nomešanas, gan pieņemšanas.Draudu novēršanas moduļi var nomest paketes, neizraisot kļūdu lietotnes līmenī, un tā ir tieši karājošā vaicājuma forma. Klusums žurnālā arī ir dati: tas norāda uz kaut ko, kas neveic žurnalēšanu, piemēram, pārkārtošanu.
Pārbaudiet arī klasteri. Nepareizi konfigurēts klasteris var turēt sesiju viena dalībnieka stāvokļu tabulā, kamēr paketes iet cita dalībnieka ceļu, tāpēc atbildes nonāk tur, kur stāvokļa nav. Šādas apstāšanās izskatās nejaušas un nekorelē ar slodzi.
Salīdziniet abus galus, pirms kaut ko maināt, un salīdziniet pienākšanas secību, nevis pakešu skaitu:
tcpdump -ni any udp port 4500 -w /tmp/encap.pcap
tcpdump -ni any tcp port 5432 -w /tmp/inner.pcapCik jums patiešām izmaksā TCP uz 443
Tuneļa pārcelšana uz TCP novērš pārkārtošanas simptomu, jo starpniekserviss tagad redz sakārtotu plūsmu. Tas arī rada TCP pāri TCP. Ārējais savienojums pārsūta to, ko iekšējais jau pārsūtīja, un viens zudums var apturēt visas multipleksētās sesijas uzreiz. Uz tīra ceļa tas ir neredzams. Uz ceļa ar zudumiem ārstēšana ir sliktāka par simptomu.
Apmaiņa ir pieņemama, ja alternatīva ir pilnīgs savienojuma trūkums, un tā jādokumentē kā izņēmums ar atbildīgo personu, nevis jāpieņem kā norma.
Pierakstiet transportu, portu, parauga vaicājumu un izmērīto rezultātu, kā arī datumu. Bez šī ieraksta nākamais inženieris atkārto eksperimentu, un izņēmums klusi kļūst par arhitektūru.
Saglabājiet lēmumu pārskatāmu
Ceļa diagnostika ātri noveco. Starpniekserviss tiek nomainīts, moduļa konfigurācija mainās, saite tiek uzlabota, un iemesls TCP uz 443 pazūd, kamēr konfigurācija paliek. Uzlieciet izņēmumam pārskatīšanas datumu un nosauciet nosacījumu, kas ļautu atgriezties pie UDP.
Pārbaudiet abus transportus ar mazu vaicājumu un ar lielu rezultātu kopu. Pārkārtošana izpaužas kā no izmēra atkarīgas apstāšanās, kamēr klausītāja kļūme aptur abus izmērus vienādi.