Cavab tuneldən deyil, LAN-dan çıxır: niyə və necə
Tuneldən gələn sorğu cavabın da eyni yolla çıxacağı demək deyil. Linux təyinatı yoxlayır və adətən yerli alt şəbəkə qalib gəlir.
Şlüz vasitəsilə yayımlanan xidmət internetin böyük hissəsindən işləyir və bir ofisdən uğursuz olur. Kimsə tuneli yoxlayır, sorğunun gəldiyini görür və cavabın eyni yolla geri qayıtdığı qənaətinə gəlir. Linux belə işləmir və tuneli nə qədər yoxlasanız da cavab dəyişməyəcək. Cavab təyinat üzrə marşrutlaşdırılır və həmin uğursuz zəng edən hostun artıq birbaşa çatdığı alt şəbəkədə oturur.
Çıxan paketi əslində nə müəyyən edir
Nüvə paketin təyinatı üçün marşrut axtarır, siyasət qaydalarına prioritet sırası ilə, sonra uyğun qaydanın seçdiyi cədvələ baxır. Paketin gəldiyi interfeys, əgər bunu vacib etmək üçün qayda və ya işarə yazılmayıbsa, heç bir rol oynamır. Bu, tuneldə qüsur deyil, bu hostla bağlı marşrut faktıdır.
Buna görə tuneldən alınan sorğu fiziki interfeysdən çıxan cavab yarada bilər və axın heç bir cihaz xəta bildirmədən birtərəfli olur. Tunel barədə nəticə çıxarmazdan əvvəl hər iki istiqaməti yoxlayın. Səhv istiqamətə çıxan cavab tunel sayğaclarından yox olur, buna görə iki tərəf nəyinsə göndərilib-göndərilmədiyi barədə razılaşmır. Qaydaya toxunmazdan əvvəl hansı sayğacın dəyişdiyinə diqqət yetirin.
Yerli alt şəbəkə niyə qalib gəlir
Yerli şəbəkədə ünvanı olan host əsas cədvəldə həmin prefiks üçün qoşulmuş marşruta malikdir və qoşulmuş marşrut birbaşa uyğunluqdur. Zəng edən həmin alt şəbəkədən gəldikdə, axtarış tunelə baxılmazdan əvvəl yerli keçidi tapır.
Diaqnostikanı çaşdıran məhz bu asimmetriyadır. Geniş internetdən gələn zəng edənlər işləyir, çünki heç bir yerli marşruta uyğun gəlmirlər, ofis prefiksini paylaşan yeganə zəng edən isə uğursuz olur və bu, kimsənin sınaq üçün istifadə etdiyi zəng edəndir.
Peer əhatəsi quraşdırılmış marşrutlarla eyni deyil
Tunel tərəfində peer-in icazə verilən aralıqları tunelə nəyin göndərilə biləcəyini və ondan hansı mənbələrin qəbul edildiyini təsvir edir. Onlar yerli marşrut cədvəlinin paketi hara göndərəcəyi barədə heç nə demir.
Tunel aləti hostda defolt marşrut quraşdırırsa, əlaqəsiz trafiki əlavə ziyan kimi tunelə çəkə bilər. Qərarı bunun əvəzinə siyasət qaydası verməlidirsə, alətin marşrut quraşdırma seçimi məhz bunun qarşısını almaq üçün mövcuddur və ünvanlar, açarlar və endpoint parametrləri olduğu kimi qalır. Rahatlıq üçün əlavə edilmiş defolt marşrut hostun öz yerli şəbəkəsini itirməsinin geniş yayılmış yoludur.
Cədvəli mənbə ünvanına görə seçin
Mənbəyə əsaslanan qayda xidmət ünvanından gələn cavabları defoltu tunel olan xüsusi cədvələ göndərir, qalan hər şey isə əsas cədvəldən istifadə etməyə davam edir. Yerli olaraq istifadə edilməyən cədvəl və prioritet nömrələri seçin və bir şey daxil etməzdən əvvəl mövcud qaydaları oxuyun. Saxlanmış faylı deyil, canlı qaydaları oxuyun, çünki yenidən başlatmadan sonra ikisi fərqlənə bilər.
ip -6 route add default dev wg0 table 200
ip -6 rule add priority 32000 from 2001:db8:aa::20/128 lookup 200
ip -6 rule add priority 32001 from 2001:db8:aa::20/128 unreachableSon sətir çatışmayan marşrutun yerli keçidə qayıtmaq əvəzinə görünən şəkildə uğursuz olmasına səbəb olur. Mənbə həqiqətən hosta təyin edilməlidir və adi yerli və əsas axtarışlar öz əvvəlki mövqelərində qalmalıdır. Qayda cədvəli mənbəyə görə seçir; cədvəllər arasında prefiks uzunluqlarını müqayisə etmir.
Əvvəlcə yolu, sonra xidməti təsdiqləyin
Tutma əsasında nəticə çıxarmaq əvəzinə nüvədən soruşun ki, nə edərdi, mənbə seçicisi kimi xidmət ünvanını istifadə edərək. Burada səhv cavab bütöv bir paket izinə qənaət edir.
ip -6 route get 2001:db8:bb::30 from 2001:db8:aa::20Çıxış tunelin adını çəkməlidir. Sonra toxunmadığınız bir mənbəni sınayın və onun hələ də yerli keçiddən istifadə etdiyini təsdiqləyin ki, dəyişiklik bir ünvanla məhdud qalsın. Daha geniş seçici ilkin şikayət barədə heç nə sübut etməzdi.
Bunun düzəltmədiyi şeylər
Yönləndirməni, firewall qaydalarını və şlüzdəki ICMPv6 davranışını olduğu kimi saxlayın, çünki mənbə marşrutu onların heç birini əvəz etmir. Çatışmayan Packet Too Big mesajı hansı cədvəlin axtarışda qalib gəlməsindən asılı olmayaraq böyük cavabları yenə pozur. Marşrut qaydaları əlavə etməzdən əvvəl bunu düzəldin, əks halda simptom dəyişiklikdən sonra da qalacaq.
Bunlardan hər hansı birini tətbiq etməzdən əvvəl yayım modelini təsdiqləyin. Öz backend bağlantısını açan əks proxy öz mənbəyini təqdim edir və zəng edəni qorumur, ona görə bu qüsur həmin dizaynda baş verə bilməz. Qaydanı orada tətbiq etmək heç nə həll etməyən və əsl səbəbi gizlədən marşrut istisnası əlavə edərdi.
Nəhayət, qayda nömrələrini və cədvəli hostun konfiqurasiya idarəetməsinə yazın. Əl ilə əlavə edilmiş siyasət qaydası növbəti yenidən qurmada yox olur və ofis zəng edəni eyni şikayətlə qayıdır.