Təsəvvür edin ki, brauzer HTTPS səhifəsi yükləyir, SSH müştərisi başqa serverə çatır və həlledici sorğuya cavab verir — hamısı bir OpenVPN sessiyası üzərindən. Fiziki interfeysdə bir söhbət görürsünüz; tunelin içində isə üç. Hər iki görünüş doğrudur və bunun səbəbini bilmək faydalı çəkilişlə qarışıq çəkiliş arasındakı fərqdir. Bir daxili axını soketdən naqilə qədər izləyin və qatlanma artıq mücərrəd olmaqdan çıxır.

Bir xarici söhbət, çoxlu daxili axın

Hər tətbiq öz soketini açır və nüvə ona mənbə ünvanı, mənbə portu, təyinat ünvanı, təyinat portu və protokoldan ibarət beş elementli kortej verir. Bu kortejlər hər hansı tunel işə düşməzdən əvvəl mövcuddur. Sonra marşrutlaşdırma hamısının tunel qurğusundan çıxdığına qərar verir, yəni OpenVPN-ə verilən paket hələ də orijinal başlıqları içində daşıyır. OpenVPN həmin daxili paketi şifrələyir və nəticəni həmyaşıd ilə tək bir xarici UDP və ya TCP söhbətinə bükür. Deməli, xarici söhbət birdir, içindəki axınlar isə tətbiqlərin açdığı qədərdir.

Heç nə dağılmır. Daxili kortejlər başdan sona qalır, buna görə uzaq tərəf hələ də üç axını bir-birindən ayıra bilir.

Sabit qalan port

Sabit qalan xarici kortejdir: sizin ünvanınız, müştərinin bağladığı yerli port, həmyaşıd ünvanı və konfiqurasiya edilmiş xidmət portu. Məhz bu korteji yoldakı firewall və ya NAT icazə verməlidir və yuxarı zolaqda çəkilişdə görünən də elə odur. Yenidən qoşulmadan və ya şəbəkə dəyişməsindən sonra dəyişən də odur, çünki müştəri başqa yerli port bağlaya bilər. Bir tunel sonsuza qədər bir sabit mənbə portu demək deyil.

Daxili portlar son nöqtələrin vecinə olan şeydir. HTTPS axını tunelin içində təyinat portu 443-ü saxlayır, halbuki xarici daşıyıcı operatorun konfiqurasiya etdiyi portda oturur. Tətbiq son nöqtələri xarici portdan heç vaxt xəbər tutmur.

Uzaq tərəfdə dekapsulyasiya nəyi dəyişir

Həmyaşıdda xarici qat çıxarılır və qalan daxili paket olur. Oradan sonra yönləndirmə və giriş siyasəti daxili təyinat və protokola tətbiq olunur. Veb server hələ də HTTPS bağlantısı alır, SSH demonu hələ də SSH alır, həlledici isə hələ də sorğu alır.

Buna görə xarici daşıyıcıya icazə verən qayda daxili xidmətə icazə verən qayda ilə eyni deyil. Birincisi yolu təsvir edir; ikincisi səlahiyyəti təsvir edir.

Xarici TCP bir axın deməkdir, bir bağlantı deyil

Xarici daşıyıcı UDP olduqda hər daxili axının taleyi müstəqildir: itirilmiş datagram özünün yenidən göndərilməsinə qədər bir ötürməyə təsir edir. Xarici daşıyıcı TCP olduqda isə bütün daxili axınlar bir etibarlı bayt axınını paylaşır.

Paylaşılan axın insanların qaçırdığı hissədir. Bərpa bir dəfə, hər şey üçün baş verir, ona görə də tək itirilmiş seqment içində multiplekslənmiş hər tətbiqin trafikini gecikdirir. Son nöqtələrdə hələ də çoxlu bağlantı, naqildə isə bir bağlantı var və başın sırada gözləməsi effekti məhz naqildə yaşayır. Dinləyən portların sayı bu barədə heç nə demir, buna görə portları saymaq tunel məhsuldarlığı haqqında düşünməyin zəif yoludur.

Öz quraşdırmanızı dəqiq təsvir edin

Maşının hər şeyi bir portdan göndərdiyini demək əvəzinə, seçilmiş daxili trafiki və onu daşıyan konkret xarici daşıyıcını adlandırın. Yerli xidmətlər, ikinci tunel və digər ünvan ailəsi bu söhbətə heç vaxt daxil olmayan axınlar yaradır. Yuxarı zolaqda çəkiliş xarici korteji göstərir; tunelin içindəki çəkiliş isə daxili olanları.

İkisini də götürün və vaxt ştamplarını yan-yana qoyun. Hansı tətbiqin hansı daxili axını yaratdığını sübut etməli olsanız, hostdakı soket cədvəli daha yaxşı alətdir, çünki portları birbaşa proseslərə bağlayır. Sonra müşahidə etdiyiniz xarici korteji və müşahidə etdiyiniz anı yazın, çünki yenidən qoşulmadan sonrakı növbəti çəkiliş qanuni olaraq başqa rəqəmlər göstərə bilər.

Əlaqəli məqalələr