VPN alt şəbəkəsinə port yönləndirmədə SNAT istifadə etməliyikmi?
VPN alt şəbəkəsinə port yönləndirmə sorğunu çatdırır, amma cavabı itirir. Routerdə bir seçici mənbə-NAT qaydası geri dönüş yolunu bərpa edir.
Routerin öz VPN müştərisinin arxasında duran hosta port yönləndirmə firewall problemi kimi görünən şəkildə uğursuz olur, çünki sorğu açıq şəkildə gəlir. Xidmət bağlantını qeyd edir, müştəri gözləyir və heç nə qayıtmır. Təyinat tərcüməsi öz işini gördü; itirilən hissə cavab paketidir. Routerdə bir seçici mənbə-NAT qaydası bunu düzəldir və maraqlı hissə həmin qaydanın nə qədər dar ola biləcəyini qərarlaşdırmaqdır.
Cavab niyə başqa yol tutur
Port yönləndirmə paketin hara getdiyini yenidən yazır, heç vaxt haradan gəldiyini yox. İnternet müştərisinin ünvanı tunelin hər yerində mənbə sahəsində qalır, ona görə uzaq xidmət yad birini görür və bildiyi yeganə yolla cavab verir: öz standart şlüzü vasitəsilə. Həmin şlüz qarşı tərəfdəki VPN konsentratorudur və ixtiyari ictimai ünvana geri marşrutu yoxdur.
Kanal interfeysində tutmanı izləyin və asimmetriya aydındır: sorğu paketləri ixrac istiqamətində, girişdə heç nə. Yönləndirmə zənciri axına icazə verdi və tunel onu daşıdı, yəni düşmə uzaq host artıq geri dönüş yolu seçdikdən sonra baş verir.
Etibar etmək üçün kifayət qədər dar mənbə qaydası
Routeri uzaq hostun cavab verdiyi mənbəyə çevirin. Bu quruluşda WAN ünvanı 203.0.113.24, LAN isə 192.168.88.0/24, routerin tunel ünvanı 172.20.5.1 və xidmət cavab verir 172.20.5.40:8443. Aşağıdakı qayda paketi təyinat tərcüməsindən sonra uyğunlaşdırır, buna görə ictimai ünvanı deyil, tərcümə olunmuş ünvanı adlandırır. İçində heç nə müştərinin ünvanından asılı deyil və məqsəd də elə budur.
iptables -t nat -A POSTROUTING -o tun0 -p tcp -d 172.20.5.40 --dport 8443 -j SNAT --to-source 172.20.5.1Həmin sətirdəki hər uyğunluq yenidən yazmanı bir tuneldə bir xidmətlə məhdudlaşdırmaq üçün mövcuddur. İnterfeysi və ya portu çıxarsanız, problemdən tələb olunandan daha çox trafiki yenidən yazırsınız və hədəflənmiş düzəliş beləcə növbəti şəxs üçün sirrə çevrilir.
Ümumi masquerade nə vaxt dürüst seçimdir
Router çoxlu xidməti eyni VPN alt şəbəkəsinə yönləndirirsə, hər xidmət üçün qayda heç kimin saxlamadığı siyahıya çevrilir. Tunel interfeysindən çıxan hər şeyi masquerade etmək daha sadə və proqnozlaşdırıla biləndir, bunun qarşılığında orijinal müştəri qarşı tərəfdəki hər hostdan gizlədilir. Oradakı jurnallar atribusiya üçün istifadə olunmursa bunu seçin; istifadə olunursa dar qaydanı saxlayın.
İki variant da fərqli şəkildə uğursuz olur. Çatışmayan dar qayda bir xidməti pozur; həddindən artıq çox uyğunlaşan geniş masquerade artıq işləyən trafiki, o cümlədən routerin öz ixrac bağlantılarını səssizcə yenidən yaza bilər.
Dərc etməzdən əvvəl sayğacları yoxlayın
Heç vaxt uyğunlaşmayan qaydalar paketləri sayana qədər işləyən qaydalarla eyni görünür. Hər hansı müştəri qoşulmazdan əvvəl cədvəli bayt sayğacları ilə yenidən oxuyun, sonra LAN olmayan şəbəkədən qoşulun və yenidən oxuyun. İki oxunuş təxmini fakta çevirən şeydir. Yönləndirməni yalnız ikinci oxunuş hərəkət etdikdən sonra dərc edin.
iptables -t nat -L POSTROUTING -v -n --line-numbersReal bağlantıdan sonra mənbə qaydasında sıfır sayğac uyğunluğun səhv olduğunu bildirir, adətən təyinat və ya port tərcümədən sonrakı paketə uyğun gəlmir. Sayğac artır, amma müştəri hələ də vaxt aşımına düşürsə, geri dönüş yolu düzəldilib və cavabı başqa bir şey atır, ona görə növbəti olaraq qarşı tərəfin yönləndirmə siyasətinə baxın. LAN içindən hairpin girişi ayrı problemdir və öz qaydasını tələb edir, bunun daha geniş variantını deyil.