Dəstək mövzusu “simmetrik NAT, VPN burada işləməyəcək” hökmü ilə bitir, sonra müştəri heç bir səbəb olmadan üç dəfə yenidən quraşdırılır. Etiket zərər verir, çünki heç kimin vermədiyi suala cavab verir. Sabit serverə bayıra qoşulan müştəri ilk paketi göndərdiyi anda xəritələmə yaradır və cavabın geri qayıtmasına demək olar ki, hər şəbəkənin tətbiq etdiyi qaydalar çərçivəsində icazə verilir. Son nöqtədən asılı xəritələmənin həqiqətən çətinləşdirdiyi şey iki bərabərin eyni vaxtda bir-birinə çatmağa çalışmasıdır və bu, başqa bir sınaqdır.

Bir etiketin arxasında iki sual gizlənir

Birinci sual budur: bu şəbəkənin arxasındakı host məlum ictimai ünvana və porta sessiya aça bilərmi. Tunel müştərisi üçün bu normal haldır və cavab demək olar ki, həmişə bəlidir. Marşrutlaşdırıcı daxili mənbəyi qeyd edir, xarici port ayırır və cavabın keçməsinə icazə verir, çünki o, içəridən başlamış sessiyaya aiddir.

İkinci sual budur: müxtəlif şəbəkələrin arxasındakı iki host ortaq yol tapa və ortada server olmadan bir-birinə göndərə bilərmi. Bu, hər şəbəkənin həmin xarici portları necə ayırmasından asılıdır və xəritələmə davranışının əhəmiyyətli olduğu yeganə yer budur.

İkisini qarışdırmaq klassik səhv diaqnozu doğurur: bərabər-bərabər funksiyası uğursuz olur, kimsə NAT növü sınağı aparır, ən pis kateqoriyanı görür və adi tunelin də işləyə bilməyəcəyi qənaətinə gəlir. Uğursuz olan heç vaxt tunel deyildi.

Xəritələmə və filtrləmə ayrı xassələrdir

RFC terminologiyası satıcıların istifadə etdiyi adlardan daha dəqiqdir və onu bilete köçürməyə dəyər, çünki mübahisələri həll edir. Xəritələmə xarici portun necə ayrıldığıdır. Filtrləmə hansı gələn paketlərin keçməsinə icazə verildiyidir. Şəbəkə birində sərt, digərində sərbəst ola bilər və bərabər-bərabər protokolunun sağ qalmalı olduğu kombinasiya elə budur.

BehaviourWhat it meansEffect on a direct peer path
Endpoint-independent mappingOne external port for every destinationDiscovery works if the port is advertised
Address-dependent mappingNew port per remote addressWorks only if both sides probe the same pair
Address-and-port-dependentNew port per remote address and portUsually needs a relay

Üçüncü sətir əksər istehlakçı marşrutlaşdırıcılarının və mobil operatorların simmetrik dedikdə nəzərdə tutduğu şeydir. Qeyd edin ki, etiket yalnız ayırmaya aiddir. Belə xəritələmə və sərbəst filtrləmə olan şəbəkə hələ də təzəcə ayırdığı porta gələn paketləri qəbul edə bilər, buna görə dəlik açma bəzilərində uğur qazanır, digərlərində uğursuz olur.

Filtrləmənin öz üç halı və hər biri üçün öz adı var. “simmetrik NAT” yazmaq, halbuki “ünvana və porta bağlı filtrləmə” nəzərdə tutulur, növbəti adamı təlimatın səhv fəslinə göndərir. İkisi sınaqda fərqli davranır, ona görə də səhv nəzəri deyil.

Xəritələməni adlandırmaq əvəzinə ölçün

Ayrılmış portu nəzarət etdiyiniz istənilən UDP xidmətinin server tərəfindən birbaşa müşahidə edə bilərsiniz. İctimai hostda tutmağa başlayın, müştəridən göndərin və paketin gəldiyi mənbə portunu oxuyun:

sudo tcpdump -ni eth0 -c 10 'udp port 51820'
sudo wg show wg0 endpoints
sudo conntrack -L -p udp --dport 51820

Son nöqtə sətri üçün ən faydalısıdır, çünki WireGuard hər bərabər üçün son aldığı ünvanı və portu qeyd edir. Həmin portu müştərinin istifadə etdiyini düşündüyü portla müqayisə edin. Hər hansı çevirmə baş verdikdə onlar fərqlənəcək və əsas sual dəyərin sabit qalıb-qalmamasıdır.

Müşahidəni ikinci hədəf portuna və ya ikinci serverə qarşı təkrarlayın və yenidən müqayisə edin. Əgər xarici port hədəfə görə dəyişirsə, xəritələmə ünvana və porta bağlıdır. Əgər eyni qalırsa, şəbəkə sizə bir xəritələmə verir və kəşfin şansı olur.

STUN əsaslı alətlər eyni təsnifatı bir addımda bildirir və şəbəkə ictimai STUN serverinə çıxan UDP-yə icazə verdikdə onlardan istifadə etmək olar. İcazə vermədikdə yuxarıdakı tutma üsulu hələ də işləyir və artıq nəzarət etdiyiniz hostdan başqa heç nə tələb etmir.

Nasazlığa uyğun düzəliş seçin

Uğursuz funksiya bərabər-bərabərdirsə, dəstəklənən cavablar ötürücü, hər iki bərabərin çata bildiyi görüş xidməti və ya fərqli topologiyadır. TURN məhz bunun üçün mövcuddur və öz ötürücüsünü təqdim edən məhsul bəzi şəbəkələrin düşmən olacağını gözlədiyini bildirir.

Uğursuz funksiya adi tuneldirsə, xəritələmə davranışı sizin probleminiz deyil və yuxarıdakıların heç biri tətbiq olunmur. Müştərinin həqiqətən göndərdiyini, serverin paketi gördüyünü və cavabın geri gəldiyini yoxlayın. Bu ardıcıllıq üç müşahidədir və marşrutlaşdırıcının NAT kateqoriyası haqqında heç nə bilməyi tələb etmir.

İşləməyən şey nəsə qoşulana qədər yerli port dəyişikliklərini səpələməkdir. Müştərinin mənbə portunu dəyişmək şəbəkənin xəritələmələri necə ayırmasına təsir etmir. Beşinci cəhddə təsadüfi uğur yalançı müsbətdir və aylarla düzəliş kimi sitat gətiriləcək.

Hökmü deyil, arxitekturanı qeyd edin

Faydalı qeyd hansı protokolun, sessiyanın hansı istiqamətdə başladığını, yolda ötürücünün olub-olmadığını və naqildə nə müşahidə edildiyini bildirir. “simmetrik NAT, işləmir” yararsızdır, çünki eyni zamanda tunel barədə yanlışdır və bərabər yolu barədə məlumatsızdır.

Ölçülmüş port sabitliyini və filtrləmə davranışını sınaqdan keçirdinizsə, onları da əlavə edin. Bu iki fakt başqasına bütün araşdırmanı təkrarlamadan yeni funksiyanın həmin şəbəkədə işləyib-işləməyəcəyini proqnozlaşdırmağa imkan verir. Həm də hər yardım səhifəsində bir az fərqli məna daşıyan satıcı kateqoriyasından daha yaxşı köhnəlir.

Nəhayət, yazarkən RFC 4787 terminologiyasını əlinizdə saxlayın. Dəqiq terminlərdən istifadə bir cümləyə başa gəlir və növbəti oxucunun eyni səhv diaqnozu təkrarlamasının qarşısını alır, qeydi yazmağın bütün mənası da budur.

Əlaqəli məqalələr