Siz net.ipv4.conf.default.forwarding=1 ni o‘rnatdingiz, VPN ni qayta ishga tushirdingiz, ammo tunnel hali ham shlyuz yo‘naltirishi kerak bo‘lgan paketlarni tashlaydi. Fayldagi sozlama to‘g‘ri ko‘rinadi va interfeys hali ham yo‘naltirish o‘chirilganini bildiradi. Hech narsa buzilmagan: siz kelgusi interfeyslar meros oladigan qiymatni o‘zgartirdingiz, tirik tunnel ishlatadigan qiymatni emas.

Buni tunnelga egalik qiluvchi xostda, tunnel haqiqatan mavjud bo‘lgan tarmoq namespace ida ko‘rib chiqing. Konteyner yoki tarmoq namespace i interfeysni ushlab turishi mumkin, xost esa boshqa raqamlarni ko‘rsatadi.

Uch qiymatni birga o‘qing

Shlyuz bo‘ylab amal qiluvchi kalitni, yangi interfeyslar uchun shablonni va sizni qiziqtirgan interfeysni solishtirishdan boshlang. tun0 o‘rniga haqiqiy kiruvchi interfeysni qo‘ying va qaytish interfeysini ham o‘qing, chunki yo‘naltirish paket yetib keladigan nuqtada baholanadi.

sysctl net.ipv4.ip_forward
sysctl net.ipv4.conf.default.forwarding
sysctl net.ipv4.conf.tun0.forwarding

Odatiy natija — ip_forward = 0, default.forwarding = 1 va tun0.forwarding = 0. Birinchi ikkitasi xostning roli borasida kelishmaydi, uchinchisi esa interfeys aslida nima qilayotganini ko‘rsatadi. Bu kombinatsiya hech qachon router sifatida sozlanmagan, faqat shablon qiymati berilgan xostga mos keladi. Uch raqam bir-biriga zid emas; ular uch xil savolga javob beradi. Shablon qiymatini yozish ham xostning rolini hal qilmaydi.

Nega aynan global kalit harakatlanadi

net.ipv4.ip_forward shlyuz bo‘ylab boshqaruvdir. Uni o‘zgartirish xuddi shu operatsiyaning bir qismi sifatida har bir interfeys uchun yo‘naltirish sozlamalarini yangilaydi, shuning uchun bitta yozuv mavjud tunnelni yo‘naltirishni boshlashga majbur qilishi mumkin. default.forwarding faqat keyin ishga tushiriladigan interfeyslarni ekadi, shuning uchun allaqachon mavjud bo‘lgan tunnel tug‘ilgan qiymatini saqlab qoladi.

Yadro hujjatlari ip_forward ni bog‘liq sabab bilan alohida deb belgilaydi: uni o‘zgartirish bir qator boshqa IPv4 parametrlarini xost yoki router standart qiymatlariga qaytaradi. Bu uni to‘mtoq asbobga aylantiradi. Uni shlyuz rolini o‘rnatish doirasida bir marta sozlash yaxshi; uni nosozliklarni tuzatish hiylasi sifatida qayta-qayta almashtirish to‘g‘rilashga vaqt sarflagan konfiguratsiyangizni jimgina qayta yozishi mumkin.

Har bir interfeys uchun qiymatlar ham sababsiz emas. Qasddan boshqariladigan shlyuz hech qachon yo‘naltirmasligi kerak bo‘lgan interfeysda yo‘naltirishni o‘chirilgan holda ushlab turishi mumkin, xost boshqa joyda yo‘naltirsada. Shuning uchun tirik interfeysni o‘qish muhim va shuning uchun faqat global qiymat to‘liq javob emas. Bunday istisnoni qasddan qabul qilingan qaror deb o‘qing va bu interfeys nega boshqacha ekanini yozib qo‘ying. Aks holda keyingi muhandis uni xayrixohlik bilan "tuzatadi".

Sozlamani to‘g‘ri joyda doimiy qiling

Muvaffaqiyatli bir martalik sysctl -w yadro qiymatni qabul qilishini isbotlaydi. U qayta ishga tushirishdan keyin saqlanmaydi va qayta ulanganda interfeys konfiguratsiyasi haqidagi o‘z tasavvurini qaytadan qo‘llaydigan tarmoq menejeridan keyin ham saqlanmaydi. Shlyuz rolini sysctl konfiguratsiya fayliga yoki xostga egalik qiluvchi tarmoq menejeriga qo‘ying, so‘ngra uni qo‘llaydigan xizmatni qayta ishga tushiring.

Tunellarda tartib muhim. Agar menejer interfeysni yuklash paytida yaratib, yo‘naltirishni keyinroq qo‘llasa, interfeys eski standartni meros olishi mumkin. Tunnelni qaytadan yaratadigan xizmat qayta ishga tushirilishi ham yaratilish hodisasidir va unit sog‘lom ko‘ringanda buni o‘tkazib yuborish oson. Faqat faylning yakuniy mazmunini emas, ketma-ketlikni tekshiring.

VPN qayta ulangandan keyin va yana qayta ishga tushirilgandan keyin o‘sha uch qiymatni qayta o‘qing. Yangi yaratilgan tunnel yangi interfeys, yangi interfeys esa yaratilish paytida amal qiladigan standartni oladi. Agar raqamlar bu hodisalar orasida o‘zgarsa, konfiguratsiyani siz hali aniqlamagan narsa qo‘llamoqda.

Buni noto‘g‘ri asbob bilan tuzatmang

Yo‘naltirish buzilgandek ko‘ringanda, firewall ni tozalash yoki masquerading qo‘shish istagi paydo bo‘ladi. Ikkalasi ham yo‘naltirish kalitini hal qilmaydi. Yo‘naltirish holati, yo‘naltirish ruxsati, manzilga marshrut va qaytish yo‘li — to‘rtta alohida talab, va faqat birinchisi sysctl.

To‘g‘ri oqim bilan ham sinab ko‘ring. Shlyuzning o‘zida qilingan so‘rov yo‘naltirishni umuman mashq qildirmaydi; bu mahalliy hosil qilingan trafik. Savol VPN mijozi yoki LAN xostidan kelgan paket qabul qilinib, oldinga yo‘naltiriladimi — shuning uchun sinov shlyuz orqasidan boshlanishi kerak.

IPv6 holatini alohida tuting

Bu yerda hamma narsa IPv4. IPv6 yo‘naltirishi, router e’lonlari va accept_ra xatti-harakatining o‘z boshqaruvi bor, va ipv4 yo‘lini ipv6 sozlamasiga ko‘chirish ishonchli ko‘rinadigan, ammo foydali hech narsa qilmaydigan fayl yaratadi. Ikki stackli shlyuz ikkala to‘plamni ham qasddan sozlashi kerak.

Oxirgi tekshiruv: qiymatlar mos kelgandan keyin tunnel marshruti manzil uchun tanlanishini va javob yo‘li mavjudligini tasdiqlang. Marshrutsiz interfeysda yoqilgan yo‘naltirish baribir qora tuynuk bo‘lib qoladi va bu nosozlik mijoz tomondan bir xil ko‘rinadi.

O'xshash maqolalar