Yeni VPN çıxışında yeni bağlantılar, köhnə axınlar olduğu kimi qalır
Planlı boşaltma yalnız təsnif edilməmiş axınları köçürür. Bunu marşrut dəyişdirmə ilə müqayisə edin və onu işlədən işarələri, cədvəlləri və conntrack vəziyyətini görün.
İki sağlam VPN çıxışı, artıq işləyən bir uzun yükləmə və növbəti bağlantının digər tuneldən istifadə etməsi tələbi. Bunu təmin etməyin iki yolu var və onlardan yalnız biri canlı şlüz üçün təhlükəsizdir. Standart marşrutu dəyişmək hər paketi hərəkət etdirir, o cümlədən yükləməyə aid olanları. Planlı boşaltma yeni bağlantılar üçün seçimi dəyişir, izlənən axınları isə başladıqları yolda saxlayır.
Çıxışı dəyişməyin iki yolu
Marşrut dəyişdirmə bir əmrdir və saniyələr içində geri qaytarıla bilər, buna görə hadisələr zamanı istifadə olunur. O, həm də seçici deyil: mövcud yükləmənin paketləri qəflətən başqa tuneldən, başqa ictimai mənbə ünvanı və ayrı tərcümə vəziyyəti ilə çıxır.
Əgər uzaq tərəf axınları mənbə ünvanına görə izləyirsə, yükləmə sadəcə tanınmaqdan çıxa bilər. Boşaltma bunun qarşısını qərarı hər bağlantı üçün bir dəfə verib yadda saxlamaqla alır, beləliklə köhnə yükləmə bitənə qədər öz çıxışını saxlayır. Məşğuliyyətin bütün dəyəri budur: uzaq tərəf şərh etməli olduğu heç bir dəyişiklik görmür. O, artıq tanıdığı bağlantıya uyğun paketləri almağa davam edir.
Qiyməti mürəkkəblikdir: iki marşrut cədvəli, düzgün qarmaqda işləyən təsnifedici və qutudakı başqa hər şeylə əlaqələndirilməli işarələr.
Hər çıxışa öz cədvəlini verin
Hər çıxış üçün marşrut cədvəli və iki seçim üçün fərqli işarə dəyərləri və ya bitləri ayırın. Hər cədvələ yalnız ad deyil, roluna uyğun marşrutlar lazımdır və itkin hal üçün qəsdən uğursuzluq nəticəsi lazımdır. Səssizcə əsas cədvələ düşən boş cədvəl heç kimin seçmədiyi çıxışdan trafikin belə çıxmasıdır.
ip rule add fwmark 0x10/0x10 table 101
ip rule add fwmark 0x20/0x20 table 102
ip route add default via 192.0.2.1 dev wg-a table 101
ip route add default via 198.51.100.1 dev wg-b table 102Hər cədvəlin sonuna blackhole marşrutu əlavə edin ki, uyğunluq tapmayan axtarış seçmədiyiniz standarta qaçmaq əvəzinə ucadan uğursuz olsun.
Bir dəfə seçin, ilk paketdə
Bağlantı izləmə mövcud olduqdan sonra və vacib marşrut axtarışından əvvəl təsnif edin. Yeni, təsnif edilməmiş LAN bağlantısı üçün çıxışı seçin və bağlantı vəziyyətinə yazın. Sonrakı paketlərdə saxlanan dəyəri siyasət marşrutlaşdırmasının oxuduğu paket işarəsinə bərpa edin.
İncə hissə yeni sözünün nə demək olduğudur. Conntrack cavab görünməzdən əvvəl erkən paketlər və yenidən ötürmələr üçün hələ də NEW bildirə bilər, buna görə yalnız bu vəziyyətə əsaslanan təsnifedici artıq verdiyi seçimi üzərinə yaza bilər. Bir çıxış təyin etməzdən əvvəl bağlantı üçün heç bir çıxışın saxlanmadığını yoxlayın.
nftables paket və bağlantı işarələrini ayrı saxlayır və metaməlumat bələdçisi aralarındakı açıq köçürməni sənədləşdirir. Bağlantı işarəsi qaydanızın uyğunlaşdırdığı paket işarəsinə öz-özünə çevrilmir və bu, diqqətlə yazılmış təsnifedicinin heç bir təsiri olmamasının ən çox rastlanan səbəbidir.
Bərpanı nəzərdə tutduğunuz istiqamət və trafiklə məhdudlaşdırın. İnternet çıxışı işarəsini qayıdan paketlərə tətbiq etmək cavabları LAN əvəzinə çıxışa doğru göndərə bilər və simptom firewall problemi kimi görünən birtərəfli bağlantıdır. Firewall qaydasına toxunmazdan əvvəl cavab yolunu oxuyun, çünki paket marşrutlaşdırılır, sadəcə göndərənə qaytarılmır.
Boşaltmanın dörd mərhələsi
A-ya toxunmadan B-ni hazırlayın: marşrutlaşdırma, yönləndirmə, avtorizasiya, NAT və qayıdış yolu. Onun cədvəlini və seçim siyasətini şlüzün mövcud konfiqurasiya sahibi vasitəsilə quraşdırın.
Təsnifedicini dəyişdirin ki, yeni, təsnif edilməmiş bağlantılar B-ni seçsin və saxlanan seçimlər qorunsun. Atomik nftables əməliyyatı köhnə vəziyyətin təmizlənməli olduğu pəncərədən qaçınır.
A-nı axınları bitənə qədər işlək saxlayın. Onun interfeysi, cədvəli, uzaq çıxışı və NAT xəritələri həmin axınların hələ də hissəsidir və NAT qaydasını redaktə etmək artıq mövcud olan bağlamaları yenidən qurmur.
Boşaltma şərti yerinə yetdikdə A-nı çıxarın; bu, bir sakit interval deyil, bağlantı vəziyyəti və tətbiq davranışı ilə qiymətləndirilməlidir.
Boşaltmanın vəd edə bilmədiyi şeylər
Brauzer sorğusu yeni nəqliyyat bağlantısı deyil; hovuzlaşdırma sorğuları köhnə bağlantı üzərindən göndərməyə davam edir. Əksinə, UDP axını conntrack-dən qocala bilər və sonrakı paket yenidən təsnif olunur. Boşaltma izlənən axınları izləyir, tətbiqin sessiya təsəvvürünü deyil.
Əgər A axınları bitməzdən əvvəl sıradan çıxsa, saxlanan işarə onları xilas etmir. Onlar B vasitəsilə yenidən qoşulur, ya da heç qoşulmur. Planlı boşaltma orijinal yol sağlam ikən davamlılıq alır; bu, müstəqil çıxışlar arasında vəziyyət replikasiyası deyil.
Hər iki yarını yoxlayın
Dəyişiklikdən əvvəl uzunömürlü icazəli bağlantı, sonra isə həqiqətən yeni bir bağlantı başladın. Hər birinin hansı tuneldən istifadə etdiyini və uzaq tərəfin hansı ictimai mənbə ünvanını gördüyünü təsdiqləyin, sonra qayıdış trafikinin geri gəldiyini yoxlayın.
Yeni seçimin görünməsi üçün conntrack cədvəlini boşaltmayın. Bu, boşaltmanın qorumağı nəzərdə tutduğu vəziyyəti məhz məhv edir və nəzarətli miqrasiyanı təmiz görünən testlə fasiləyə çevirir.