İşləyən sayt-sayt tunelinə ikinci alt şəbəkə əlavə etmək bir dizaynda beş dəqiqə, digərində günortadan sonranın çoxunu alır. Tunel adlandırdığınız prefikslər üçün marşrutlar quraşdırdıqda siz marşrut əlavə edirsiniz və trafik onu izləyir. Bir sabit seçici cütü razılaşdırdıqda isə yeni prefiks hər iki tərəf uyğun cüt barədə razılaşana qədər qorunmaz qalır. Üç şey hansı halda olduğunuzu müəyyən edir: hər tərəfin konfiqurasiyasının həqiqətən nə təsvir etdiyi, razılaşdırılan trafikin ən kiçik uyğun cütə daralıb-daralmaması və yeni aralıq üçün qayıdış yolunun kimə aid olması.

Status etiketini deyil, nüvəni oxuyun

Bağlı olduğunu bildirən tunel ən azı bir uşaq assosiasiyası quraşdırmışdır, amma mütləq sizin düşündüyünüz deyil. Linuxda nüvə tətbiq olunanı göstərir: ip xfrm policy seçici cütlərini sadalayır, swanctl --list-sas (və ya köhnə ipsec statusall) tərəflərin nə razılaşdırdığını, hər istiqamətdə trafik seçiciləri də daxil olmaqla göstərir. Yeni prefiks heç birində görünmürsə, konfiqurasiya faylı nə deyirsə də, o qorunmaz.

Bunu marşrut cədvəli ilə müqayisə edin. Marşrut əsaslı qurmada tunel cihazı qorunan prefikslər üçün növbəti hopdur. Siyasət əsaslı qurmada isə çox vaxt uzaq alt şəbəkə üçün xüsusi marşrut olmur, yalnız default marşrut olur, çünki trafiki cədvəl deyil, siyasət seçir.

Siyasət əsaslı tunellər: hər iki tərəf yeni prefiksi sadalamalıdır

strongSwan dilində seçici uşaq konfiqurasiyası altında local_ts və remote_ts içində yaşayır; bunlar leftsubnet və rightsubnet-nin varisləridir. Yeni prefiks hər iki tərəfdə güzgü kimi görünməlidir: A saytının lokal adlandırdığını B saytı uzaq adlandırır. Uyğunsuzluq nadir hallarda təmiz xəta verir. Tərəflər kəsişməyə qədər daralır, köhnə prefiks işləməyə davam edir, yalnız yenisi səssizcə uğursuz olur.

swanctl --load-conns
swanctl --initiate --child <child-name>
swanctl --list-sas
ip xfrm policy

pfSense və ya OPNsense-də bu, yeni lokal alt şəbəkəni yeni uzaq alt şəbəkə ilə cütləşdirən ikinci Phase 2 girişi və sonra tətbiq deməkdir. Köhnə girişi saxlayın; onu əvəz etmək orijinal alt şəbəkəni əlavə etmək əvəzinə köçürür. Mövcud Phase 2 artıq 0.0.0.0/0 kimi superneti və ya ümumiləşdirilmiş aralığı əhatə edirsə, yanına daha dar giriş əlavə etməyin: üst-üstə düşən seçicilər rəqabət edən siyasətlər qurur və qiymətləndirmə sırası qalibi müəyyən edir.

IKEv1 hər alt şəbəkə cütünü öz Phase 2-si edir və hər mübadilədə bir cüt götürən tərəf qalanı atır. IKEv2 bir uşaqda bir neçə seçici cütü daşıya bilər, ancaq hər iki tətbiq qəbul edərsə. swanctl --list-sas-dan gələn siyahı həqiqətdir; yazdığınız isə tələbdir.

Marşrut əsaslı tunellər: marşrut siyasətdir

XFRM interfeysi və ya VTI cihazı trafiki marşrut cədvəlinə uyğun daşıyır. Yeni prefiksi hər iki saytda cihaza yönəldirsiniz və interfeysin transformasiyasına bağlanmış vəziyyət tətbiq olunur. Sinxronlaşdırılacaq seçici cütü yoxdur, buna görə bu dizayn alt şəbəkələr çoxaldıqca daha yaxşı miqyaslanır. strongSwan yönləndirmə bələdçisi bunun nüvə tərəfini ətraflı izah edir.

ip route add 192.168.60.0/24 dev xfrm0
ip route get 192.168.60.10

WireGuard eyni fikri daha da irəli aparır. AllowedIPs eyni zamanda kripto icazə siyahısıdır və wg-quick vasitəsilə marşrut cədvəli girişidir. Prefiksi yalnız bir tərəfə əlavə etsəniz əl sıxışması, gedən paketlər və sükut alarsınız, çünki uzaq tərəf mənbəyi öz icazə siyahısında olmayan paketləri atır. wg set forması bütün siyahını əvəz edir, ona görə əvvəl işləyən prefiksləri yenidən yazın, yoxsa onları kəsirsiniz:

wg set wg0 peer <PUBKEY> allowed-ips 192.168.10.0/24,192.168.60.0/24
ip route add 192.168.60.0/24 dev wg0

wg-quick yerinə wg set istifadə etmisinizsə, bu ikinci əmr məcburidir. Nüvə yeni icazə siyahısını dərhal qəbul edir, amma heç nə ona marşrut əlavə etmir, ona görə lokal yaradılan trafik hələ də default şlüz vasitəsilə çıxır. Bu, yeni WireGuard alt şəbəkəsinin noutbukdan deyil, tunel hostundan işləməsinin ən çox yayılmış səbəbidir.

Qayıdış yolu tuneldən daha tez-tez uğursuz olur

Yeni uzaq alt şəbəkədəki hostlar cavabları VPN şlüzü vasitəsilə geri göndərməlidir. Həmin şlüz onların default marşrutlaşdırıcısı olmadıqda cavab LAN marşrutlaşdırıcısına gedir, o da onu ya atır, ya da şəxsi mənbə ünvanı ilə internetə ötürür. Şlüzdən deyil, uzaq tərəfdəki hostdan sınaq keçirin: Linuxda ip route get 10.30.20.15 və ya PowerShell-də Find-NetRoute -RemoteIPAddress 10.30.20.15 hostun həqiqətən istifadə edəcəyi növbəti hopu göstərir. Cavab tunel son nöqtəsi deyilsə, orada yeni prefiks üçün statik marşrut əlavə edin.

Qayıdış marşrutu olmayan saytda mənbə NAT qanuni alternativdir və bir çox hub-and-spoke qurulumu hər serverə toxunmaqdan bununla yayınır. Onu hədəf tərəfin şlüzündə yeni prefiksə də tətbiq edin:

iptables -t nat -A POSTROUTING -s 10.30.20.0/24 -d 192.168.60.0/24 -j MASQUERADE

Xərc realdır. Uzaq jurnallar fərdi mənbə ünvanlarını göstərməyi dayandırır və orijinal alt şəbəkəyə bağlanmış firewall qaydaları şlüz üçün bir qaydada birləşir. Bunu marşrut çatışmadığı üçün deyil, qəsdən seçin.

Firewall qayıdış yolunun digər yarısıdır. Zona əsaslı cihazlar mövcud tunel interfeysinin zonasını avtomatik yeni alt şəbəkəyə uzatmır və köhnə prefiksə yazılmış qayda uyğun gəlməyəcək. IPsec-i günahlandırmadan əvvəl yeni alt şəbəkəni zonaya və ya hər iki istiqamətdə qayda cütünə əlavə edin.

Üç sualla qərar verin, sonra trafiklə yoxlayın

Qısa versiya: tərəf konfiqurasiyası prefiksləri adlandırır (siyasət əsaslı), yoxsa trafik interfeysə marşrutlanır (marşrut əsaslı)? Hər iki uc yeni prefiksi sadalayırmı? Yeni alt şəbəkədən orijinal mənbə aralığına qayıdış yolu varmı?

Tunnel styleWhere the prefix goesWhat breaks if you skip it
Policy-based IPsecSelector pair on both peersOld subnets work, the new one fails with no clear error
Route-based XFRM or VTIRoute into the device on both sitesPackets routed but not transformed, or the state never matches
WireGuardAllowedIPs on both peers plus a routeHandshake succeeds, replies are dropped
Overlapping supernetAdjust the existing entry insteadA shadowed policy wins or loses by evaluation order

Yoxlama çox dəyişikliyin çox erkən bağlandığı yerdir. Şlüzdən ping az şey sübut edir, çünki şlüz özündən mənbələnir və çox vaxt hostdan fərqli siyasətə uyğun gəlir. Yeni alt şəbəkədəki hostdan ping atın, sonra dəyişikliyə səbəb olan tətbiqi işə salın və status ikonasına deyil, sayğaclara baxın.

tcpdump -ni any host 192.168.60.10 and (esp or udp port 4500)
ip xfrm state
wg show

Siyasət əsaslı tuneldə ip xfrm state sayğacları hər iki istiqamətdə artmalıdır; düz sayğaclar paketin marşrutlandığını amma seçilmədiyini bildirir. WireGuard-da wg show hər tərəf üzrə ötürməni göstərir və sıfır alınan baytla əl sıxışması uzaq tərəfin icazə siyahısına və ya qayıdış marşrutuna işarə edir.

Prefiksi, tərəf tərəfindəki seçicini və ya marşrutu, qayıdış yolu qərarını və firewall girişini tunel inventarının qalanı ilə birlikdə qeyd edərək bitirin. Sonra bir şlüzü yenidən başladın və yenidən sınayın: əl ilə əlavə edilmiş marşrut yox olur və növbəti şəxs bunu yenidən kəşf etməməlidir.

Əlaqəli məqalələr