Tunel qalxıb, handshake hər iki dəqiqədə bir baş verir və o biri tərəfdə məhz bir ünvan cavab verir. Pirin tunel ünvanına pinqlər işləyir; onun arxasında heç nə işləmir. Kimsə interfeys konfiqurasiyasını oxuyur, host prefiksi görür və maskanın səhv olduğu qənaətinə gəlir. Onu /24-ə genişlətmək pinqi bir müddət düzəldir, sonra başqa bir şeyi pozur. Prefiks heç vaxt səbəb olmayıb və çatışmayan marşrut maskanın idarə etdiyi marşrut deyil.

İnterfeys prefiksi əslində nə yaradır

Linux-da interfeysə ünvan təyin etmək həmin prefiks üçün qoşulmuş marşrut yaradır. Host prefiksi təyin etsəniz, qoşulmuş marşrut bir ünvanı əhatə edir. /24 təyin etsəniz, 256 ünvanı əhatə edir və onların hər biri artıq həmin bağlantı üzərindən əlçatan sayılır.

ip -4 addr show dev wg0
ip -4 route show dev wg0
ip route get 10.80.7.1

Host prefiksi nöqtədən nöqtəyə tunel üçün tamamilə normal seçimdir, çünki o biri ucda məhz bir pir var. Üçüncü əmr istifadəçinin sualına cavab verir: nüvənin həmin təyinat üçün hansı interfeysdən istifadə edəcəyini deyir və heç bir marşrut uyğun gəlmirsə, heç bir faydalı şey göstərmir.

Semptomun bütün izahı budur. Bir ünvan cavab verir, çünki onun üçün qoşulmuş marşrut var, ya da pirin icazəli siyahısı təsadüfən onu ehtiva edir. Qalan hər şeyin marşrutu yoxdur və WireGuard ümumiyyətlə işə qarışmadan əvvəl atılır. Tunel bütün bu müddətdə sağlamdır, buna görə handshake sayğacı yenə də arxayınlaşdırıcı görünür.

AllowedIPs bir ad altında iki qaydadır

WireGuard-ın hər pir üçün icazəli siyahısı eyni anda iki iş görür və konfiqurasiya sintaksisi onları bir kimi göstərir. Girişdə pirin hansı mənbə ünvanlarını təqdim edə biləcəyinə icazə verir. Çıxışda ən dəqiq uyğunluğu taparaq paketin hansı pirə göndəriləcəyini seçir.

Bu işlərin heç biri marşrutlaşdırma deyil. Nüvə paketin tunel interfeysinə aid olduğuna WireGuard ona baxmadan əvvəl qərar verməlidir və bu qərar marşrutlaşdırma cədvəlindən gəlir. Geniş icazəli siyahısı olan pir qeydi özü marşrut quraşdırmır.

Buna görə konfiqurasiya tam görünə bilər, amma asimmetrik davrana bilər. Müştəri qarşı tərəfə marşrut olduğu üçün göndərir, cavablar isə heç vaxt gəlmir, çünki qarşı tərəfin icazəli siyahısı müştərinin mənbəyinə icazə vermir və ya qarşı tərəfin geri dönüş yolu yoxdur. Hər iki istiqamət ayrı qərarlardır, ayrı nasazlıq rejimləri ilə. Hansını sınaqdan keçirdiyinizi yazmaq diaqnozun yarısıdır.

Marşrut haradan gəlir

Əgər wg-quick istifadə edirsinizsə, marşrutlar hər pirin icazəli siyahısından sizin üçün yaradılır, əgər Table = off təyin edib idarəetməni özünüz ələ almamısınızsa. Bu, alətin sənədləşdirdiyi davranışdır və açıq marşrut direktivləri olmayan konfiqurasiyanın yenə də işləməsinin səbəbi budur.

sudo wg show wg0 allowed-ips
ip route show | grep wg0
sudo wg-quick strip wg0

İcazəli siyahını faktiki mövcud olan marşrutlarla müqayisə edin. Bütün alt şəbəkəyə icazə verib, lakin yalnız host marşrutu yaradan pir — köməkçinin heç vaxt işə düşmədiyini və ya interfeysi birbaşa wg və ip ilə idarə etdiyinizi bildirir, bu halda sizin üçün heç nə marşrut yaratmır.

Onu əl ilə idarə etdikdə, marşrut bir sətirdir və forması açıqdır: təyinat interfeysdən keçir, şlüz yoxdur, çünki bağlantı nöqtədən nöqtəyədir. Onu əlavə etmək pis prefiks üçün yan keçid deyil; bu, marşrutlaşdırmanı qəsdən öz üzərinə götürmüş dizaynın çatışmayan yarısıdır.

Daha geniş prefiks pir qeydini əlavə etmir

Cəlbedici düzəliş ünvanı /24-ə dəyişməkdir ki, qoşulmuş marşrut serverin lokal şəbəkəsini əhatə etsin. İşləyirmiş kimi görünür və işləyirmiş kimi görünməsinin səbəbi qoşulmuş marşrutun indi uyğun gəlməsidir, WireGuard-ın yeni bir şey öyrənməsi deyil.

Həm də siz bütün aralığı həmin bağlantı üzərindən birbaşa əlçatan elan etdiniz, o cümlədən başqa pirlərə və ya əslində serverin arxasında olan lokal şəbəkəyə aid ünvanlar. Həmin ünvanlara trafik indi tunelə daxil olur və onun o biri tərəfdən çıxıb-çıxmayacağı serverin öz marşrutlaşdırmasından və icazəli siyahılarından asılıdır.

Kriptoqrafik tərəf heç bir halda təsirlənmir. WireGuard pir seçmək üçün təyinatı əhatə edən icazəli siyahı qeydinə hələ də ehtiyac duyur, qarşı tərəf isə sizin mənbəyinizi əhatə edən qeydə onu qəbul etmək üçün hələ də ehtiyac duyur. Daha geniş interfeys prefiksi heç birini verə bilməz.

Nəyisə dəyişməzdən əvvəl hər iki istiqaməti təsdiqləyin

İki ucu ayrı-ayrı işləyin və hər birinin nə dediyini yazın. Müştəridə marşrut və pir qeydi; serverdə güzgü təsviri üstəgəl öz geri dönüş yolu:

ip route get 192.168.70.20
sudo wg show wg0 allowed-ips
sudo wg show wg0 latest-handshakes
sudo tcpdump -ni wg0 -c 10

Tutma istiqamətlə bağlı mübahisələri həll edən şeydir. Əgər çıxan paketlər tunel interfeysində görünürsə və server heç nə qeyd etmirsə, uzaq uc onları rədd edir, adətən mənbəyiniz onun icazəli siyahısından kənarda olduğu üçün. Əgər ümumiyyətlə heç nə görünmürsə, marşrut yoxdur və ya başqa yerə yönəlib.

Sonra daha dar ucu düzəldin. Server tərəfində müştəri ünvanınız üçün icazəli siyahı qeydi və müştəri tərəfində təyinat alt şəbəkəsi üçün qeyd normal formadır və interfeys prefiksinə toxunmur. Prefiksi yalnız ünvan planı həmin bağlantıda həqiqətən ortaq alt şəbəkə istəyirsə genişlədin və bunu sazlama addımı deyil, plan dəyişikliyi kimi edin.

Əlaqəli məqalələr