Verilənlər bazası sorğusu IPsec üzərində donur: UDP sıralaması, yoxsa TCP?
Təmiz handshake-dən sonra donan sorğu tunelin daxilindəki yola işarə edir. Üç şərt yolu düzəltmək və ya 443 portunda TCP-yə keçmək arasında qərar verir.
TCP handshake-dən sonra donan sorğu marşrut problemi deyil. Marşrut xətaları handshake-i uğursuz edir, ona görə də qurulan və sonra səssizləşən sessiya yolun daxilinə işarə edir: yoxlama, MTU və ya tunelin UDP paketlərinin gəlmə üsulu. Qarşındakı qərar bu yolu düzəltmək və ya tuneli TCP-yə köçürməkdir. Üç şərt bunu həll edir və heç biri verilənlər bazası ilə bağlı deyil.
Tuneli günahlandırmadan əvvəl dayanmanı təsnif et
Dörd nəticə istifadəçi üçün eyni görünür, mühəndis üçün isə tamamilə fərqli şeylər ifadə edir.
| 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 |
Yalnız son iki sətir tunelə vaxt ayırmağı əsaslandırır. VPN üzərindən rədd edilən bağlantı adətən verilənlər bazasının yalnız loopback-də dinləməsidir ki, bu dinləyici problemidir, handshake-dən əvvəlki timeout isə filtr və ya marşrutdur. Heç biri inkapsulyasiyanı dəyişməklə yaxşılaşmır.
Təsnifatı əvvəlcə bilete yaz. Bu, ən ucuz addımdır və axtarış sahəsinin çoxunu aradan qaldırır.
UDP ilə TCP arasında qərar verən üç şərt
İnkapsulyasiya olunmuş IPsec trafiki UDP üzərində gedir və UDP yola heç kimə demədən yenidən sıralama və atma azadlığı verir. Yenidən sıralama paketləri tunelin təkrar-oyun pəncərəsindən kənara çıxardıqda onlar səssizcə atılır və daxili TCP sessiyası sadəcə gözləyir. Uğurlu handshake və heç vaxt qayıtmayan sorğunun arxasındakı mexanizm budur.
Yolu düzəltmək və ya TCP-yə keçmək üç şeydən asılıdır. Birincisi, yolda real paket itkisi var, yoxsa yalnız yenidən sıralama? İkincisi, yoxlamanın baş verdiyi yeri dəyişə bilirsən, yoxsa bu tuneli sıralayan komponentdən çıxara bilirsən? Üçüncüsü, iş yükü dayanma modelinə həssasdır, məsələn bir linki paylaşan çoxsaylı multipleks sessiyalar?
Birinci cavab itki, ikinci cavab xeyr olarsa,443 portunda TCP praqmatik ehtiyat variantdır. İkinci cavab bəli olarsa, yolu düzəlt və UDP-də qal.
Tətbiq xətasını deyil, firewall qeydini oxu
Tətbiq timeout bildirir və bu, sənə səbəb haqqında heç nə demir. Atmanın və ya bloklamanın göründüyü yer firewall-un öz jurnalıdır, ona görə verilənlər bazası və tətbiq ünvanlarına görə filtrlə və qəbullarla yanaşı atılmaları da axtar.Təhdid qarşısının alma modulları tətbiq səviyyəsində xəta yaratmadan paketləri ata bilər, bu da donan sorğunun tam formasıdır. Jurnalda səssizlik də məlumatdır: o, jurnal tutmayan bir şeyə, məsələn yenidən sıralamaya işarə edir.
Klasteri də yoxla. Səhv konfiqurasiya edilmiş klaster sessiyanı bir üzvdə vəziyyət cədvəlində saxlayarkən paketlər digər üzvün yolundan gedə bilər, beləliklə cavablar vəziyyətin olmadığı yerə gəlir. Belə dayanmalar təsadüfi görünür və yüklə əlaqəli deyil.
Nəyisə dəyişməzdən əvvəl hər iki ucu müqayisə et və paket saylarını deyil, gəliş sırasını müqayisə et:
tcpdump -ni any udp port 4500 -w /tmp/encap.pcap
tcpdump -ni any tcp port 5432 -w /tmp/inner.pcap443 portunda TCP sənə həqiqətdə nəyə başa gəlir
Tuneli TCP-yə köçürmək yenidən sıralama əlamətini aradan qaldırır, çünki ara qurğu artıq sıralı axın görür. Amma TCP-over-TCP yaradır. Xarici bağlantı daxili bağlantının artıq təkrar göndərdiyini təkrar göndərir və bir itki bütün multipleks sessiyaları eyni anda dayandıra bilər. Təmiz yolda bu görünməzdir. İtkili yolda isə dərman əlamətdən pisdir.
Bu mübadilə alternativ bağlantısızlıq olduqda məqbuldur və normal kimi qəbul edilmək əvəzinə sahibi olan istisna kimi sənədləşdirilməlidir.
Nəqliyyatı, portu, nümunə sorğunu və ölçülmüş nəticəni, həmçinin tarixi qeyd et. Bu qeyd olmadan növbəti mühəndis təcrübəni təkrarlayır və istisna səssizcə arxitekturaya çevrilir.
Qərarı yenidən baxıla bilən saxla
Yol diaqnozu tez köhnəlir. Ara qurğu dəyişdirilir, modul konfiqurasiyası dəyişir, link təkmilləşdirilir və 443 portunda TCP-nin səbəbi yox olur, konfiqurasiya isə qalır. İstisnaya baxış tarixi qoy və UDP-yə qayıtmağa imkan verən şərti adlandır.
Hər iki nəqliyyatı kiçik sorğu və böyük nəticə dəsti ilə sına. Yenidən sıralama ölçüdən asılı dayanmalar kimi görünür, dinləyici xətası isə hər iki ölçünü bərabər dayandırır.