Soketdə heç nə sorğunun hansı interfeysdən keçdiyini xatırlamır, buna görə tam tunel VPN standart marşrutu WAN-a aid cavabı tuta bilər. Xidmət daxil olan interfeysi görməzlikdən gəlmir; Linux lokal yaradılmış cavabı təyinat və mənbə siyasətinə görə marşrutlaşdırır. Mənbə əsaslı qayda yalnız xidmətin cavablarını tam WAN cədvəli ilə göndərə və adi çıxışı tuneldə saxlaya bilər. Cavab səhv yolla çıxdığı halda port açıq qalır, buna görə simptom birtərəfli görünür.

Yanlış təsəvvür: cavablar gəldikləri interfeysi izləyir

eth0 üzərində gələn paketin eth0 ilə çıxması məntiqli görünür. Vəziyyətsiz paket filtrləri belə yazıla bilər və giriş tərəfindəki tcpdump sorğunu tam gözlənilən yerdə göstərir. Marşrutlaşdırma hostun özünün yaratdığı trafik üçün belə işləmir.

Xidmət bağlantını qəbul etdikdən sonra onun cavabı yeni, lokal yaradılmış paketdir. Nüvə cavabın təyinatı və mənbəyi üçün marşrut qaydalarına baxır və VPN-in standart marşrutu tamamilə etibarlı cavabdır. Soketdə heç nə sorğunun hansı interfeysdən keçdiyini xatırlamır.

Buna görə simptom birtərəfli görünür: sorğular gəlir, cavablar yox olur. Buna görə də giriş portu üçün firewall qaydası əlavə etmək heç nəyi dəyişmir. Paket içəri yolda bloklanmır; çıxış yolunda başqa yerə yönləndirilir. Cavabı mənbə üzrə axtarışla izləyin və sapma görünəcək.

Nüvənin həqiqətən marşrutlaşdırdığı: mənbə ünvanı

Sizə lazım olan tutacaq xidmətin cavablar üçün istifadə etdiyi lokal ünvandır. eth0 ünvanı nümunəvi 192.0.2.10/24 və şlüzü 192.0.2.1 olan hostda bu ünvan interfeysdə mövcuddur. Bulud VM-də açıq ünvan yuxarıda çevrilə və qonaqda olmaya bilər, ona görə hostun həqiqətən saxladığı ünvandan istifadə edin.

Cədvəl nömrəsi və ya qayda prioriteti ayırmadan əvvəl cari vəziyyəti yoxlayın. Mövcud siyasət qaydaları yenisini kölgədə qoya bilər və eyni nömrəli köhnə cədvəl artıq əlaqəsiz marşrutlar daşıya bilər:

ip -4 addr show dev eth0
ip -4 rule show
ip -4 route show table all

Sonra mənbəyə görə cədvəl seçin. Qayda artıq 192.0.2.10 daşıyan cavablara uyğun gəlir, bu da istisna etmək istədiyiniz lokal sonlanan trafikdir. Yönləndirilən trafik və digər lokal ünvanlardan gələn paketlər uyğun gəlmir.

Yarım standart deyil, tam qayıdış cədvəli qurun

Yalnız standart marşrutu olan cədvəl kifayət etmir. Nüvə hələ də şlüzü həll etməlidir və bu həll eyni cədvəldə qoşulmuş prefiksi tələb edir. Bu prefiksi olmayan cədvəl standart marşrutu düzgün görünsə də şlüz həllində uğursuz olur. İkisini də əlavə edin, sonra mənbə qaydasını cədvələ yönəldin:

ip -4 route add table 100 192.0.2.0/24 dev eth0 src 192.0.2.10
ip -4 route add table 100 default via 192.0.2.1 dev eth0
ip -4 rule add priority 1000 from 192.0.2.10/32 lookup 100

Nümunəni kopyalamaq əvəzinə real prefiks və şlüzdən istifadə edin. On-link şlüzlə /32 kimi konfiqurasiya edilmiş bulud interfeysi fərqli qoşulmuş marşrut tələb edir və səhv prefiksdən qurulmuş cədvəl ilk atlamada uğursuz olur. src atributu həmin marşrut üçün üstünlük verilən mənbəni göstərir; mənbə qaydasını əvəz etmir.

Sıra da vacibdir. Aşağı prioritet nömrəsi olan geniş qayda əvvəl qiymətləndirilir, ona görə mənbə qaydasına bu trafiki əsas cədvələ qaytaracaq hər hansı qaydadan əvvəl çatmaq lazımdır. Prioritetləri əlavə etdikdən sonra ip rule show ilə yoxlayın, yalnız açılışda deyil.

Mənbə üzrə axtarışla yoxlayın

Nüvədən xidmət ünvanından test təyinatını marşrutlaşdırmasını xahiş edin. Cavab tuneli deyil, eth0 və WAN şlüzünü göstərməlidir:

ip -4 route get 198.51.100.25 from 192.0.2.10

Sonra yeni avtorizə edilmiş bağlantı yaradın və hər iki istiqaməti izləyin. Düzgün cədvəli seçən, lakin canlı bağlantı hələ də uğursuz olan axtarış cədvələ deyil, tərs yol filtrləməsinə və ya firewall qaydasına işarə edir. Bir şeyi qlobal söndürməzdən əvvəl bu nəzarətləri yoxlayın.

Yekun marşrutları və qaydayı interfeysə sahib şəbəkə menecerinin altına qoyun. Ünvan dəyişiklikləri, DHCP yenilənməsi və VPN yenidən qoşulmaları bütün nüvə vəziyyətini yenidən yazır və əl ilə əlavə edilmiş qayda növbəti hadisədən sonra yox olur və ya köhnəlmiş şlüzə işarə edir.

Bu istisna harada bitir

Qayda bir mənbə ünvanından lokal sonlanan trafiki istisna edir. Docker tərəfindən yayımlanan portları, DNAT-ı və host vasitəsilə yönləndirilən xidmətləri əhatə etmir, çünki bu paketlər yönləndirmə trafiki kimi marşrutlaşdırılır və hostun lokal mənbəyini heç vaxt eyni şəkildə daşımır. Belə dizaynlar adətən girişdə qoyulan işarə və həmin işarəyə uyğun qayda tələb edir.

O, həm də hostun açıq ünvanını interfeysdə göstərmir. Yuxarıdakı NAT həmin ünvana sahib olduqda, cavab hələ də o NAT-ın gözlədiyi yolla çıxmalıdır, buna görə WAN cədvəli təxmin edilən açıq aralığı deyil, ilkin şlüzü və prefiksi əks etdirməlidir.

İstisnanı cədvəl nömrəsi, qayda prioriteti və dəqiq mənbə ünvanı ilə sənədləşdirin. VPN-də və ya interfeysdə növbəti dəyişiklik onu səssizcə poza bilər və üç dəyəri adlandıran qeyd simptomu müştəri hesabatından yenidən kəşf etməkdən daha sürətli yoxlanılır.

Əgər mənbə üzrə axtarış keçdikdən sonra xidmət hələ də səhv yolda cavab verirsə, canlı soketin mənbə ünvanını qaydadakı ünvanla müqayisə edin. Wildcard ünvana bağlanmış xidmət sizin sınaqdan keçirdiyiniz ünvandan fərqli mənbə seçə bilər və bu uyğunsuzluq qalan boşluqdur.

Əlaqəli məqalələr