Shlyuz orqali e'lon qilingan xizmat internetning ko'p qismidan ishlaydi va bitta ofisdan ishlamaydi. Kimdir tunnelni tekshiradi, so'rov kelayotganini ko'radi va javob ham xuddi shu yo'ldan qaytishi kerak degan xulosaga keladi. Linux bunday ishlamaydi, tunnelni qancha tekshirmang, javob o'zgarmaydi. Javob manzil bo'yicha marshrutlanadi va o'sha bitta muvaffaqiyatsiz chaqiruvchi xost allaqachon to'g'ridan-to'g'ri yetib boradigan quyi tarmoqda o'tiradi.

Chiquvchi paketni aslida nima belgilaydi

Yadro paketning manzili uchun marshrut qidiradi, siyosat qoidalarini ustuvorlik tartibida, so'ngra mos keluvchi qoida tanlagan jadvalni ko'radi. Paket kelgan interfeys hech qanday rol o'ynamaydi, agar buni muhim qilish uchun qoida yoki belgi yozilmagan bo'lsa. Bu shu xostning marshrutlash faktidir, tunnelning nuqsoni emas.

Shuning uchun tunneldan olingan so'rov jismoniy interfeysdan chiqadigan javob keltirib chiqarishi mumkin va oqim hech bir qurilma xato haqida xabar bermasdan bir tomonlama bo'lib qoladi. Tunnel haqida xulosa chiqarishdan oldin ikkala yo'nalishni tekshiring. Noto'g'ri tomonga chiqqan javob tunnel hisoblagichlaridan yo'qoladi, shuning uchun ikki tomon biror narsa yuborilgani haqida kelisha olmaydi. Har qanday qoidaga tegishdan oldin qaysi hisoblagich o'zgarganini kuzating.

Mahalliy quyi tarmoq nima uchun g'olib bo'ladi

Mahalliy tarmoqda manzili bo'lgan xost asosiy jadvalda o'sha prefiks uchun ulangan marshrutga ega, ulangan marshrut esa to'g'ridan-to'g'ri moslikdir. Chaqiruvchi xuddi shu quyi tarmoqdan kelganda, qidiruv tunnel ko'rib chiqilishidan oldin mahalliy havolani topadi.

Aynan asimmetriya tashxisni chalkashtiradi. Kengroq internetdan kelgan chaqiruvchilar hech qanday mahalliy marshrutga mos kelmagani uchun ishlaydi, holbuki ofis prefiksini bo'lishadigan yagona chaqiruvchi muvaffaqiyatsiz bo'ladi, va kimdir sinash uchun aynan shuni ishlatadi.

Tengdoshlar qamrovi o'rnatilgan marshrutlar bilan bir xil emas

Tunnel tomonida peerning ruxsat etilgan diapazonlari tunnelga nima yuborish mumkinligini va undan qaysi manbalar qabul qilinishini tasvirlaydi. Ular mahalliy marshrutlash jadvali paketni qayerga yuborishini aytmaydi.

Agar tunnel vositasi xostga standart marshrut o'rnatsa, u aloqasiz trafikni yon zarar sifatida tunnelga tortib ketishi mumkin. Qaror o'rniga siyosat qoidasiga tegishli bo'lishi kerak bo'lgan joyda vositaning marshrut o'rnatish opsiyasi aynan shunga yo'l qo'ymaslik uchun mavjud va manzillar, kalitlar hamda oxirgi nuqta sozlamalari avvalgidek qoladi. Qulaylik uchun qo'shilgan standart marshrut xostning o'z mahalliy tarmog'ini yo'qotishining keng tarqalgan usuli.

Jadvalni manba manzili bo'yicha tanlang

Manbaga asoslangan qoida xizmat manzilidan kelgan javoblarni standarti tunnel bo'lgan xususiy jadvalga yuboradi, qolgan hamma narsa asosiy jadvaldan foydalanishda davom etadi. Mahalliy ishlatilmaydigan jadval va ustuvorlik raqamlarini tanlang va biror narsa kiritishdan oldin mavjud qoidalarni o'qing. Saqlangan faylni emas, jonli qoidalarni o'qing, chunki qayta yuklashdan keyin ikkisi farq qilishi mumkin.

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 unreachable

Oxirgi satr mavjud bo'lmagan marshrutni mahalliy havolaga qaytish o'rniga ko'rinadigan tarzda muvaffaqiyatsiz qiladi. Manba xostga haqiqatan ajratilgan bo'lishi kerak va oddiy mahalliy hamda asosiy qidiruvlar avvalgi o'rinlarida qolishi kerak. Qoida jadvalni manba bo'yicha tanlaydi; u jadvallar orasida prefiks uzunliklarini taqqoslamaydi.

Avval yo'lni, keyin xizmatni tasdiqlang

Tutib olishdan taxmin qilish o'rniga yadrodan nima qilishini so'rang, xizmat manzilini manba tanlagichi sifatida ishlatib. Bu yerda to'g'ri javob butun paket izini tejaydi.

ip -6 route get 2001:db8:bb::30 from 2001:db8:aa::20

Chiqish tunnelni nomlashi kerak. Keyin tegilmagan manbani sinab ko'ring va u hali ham mahalliy havoladan foydalanishini tasdiqlang, shunda o'zgarish bitta manzil bilan cheklangan bo'lsin. Kengroq tanlagich asl shikoyat haqida hech narsani isbotlamaydi.

Bu nimani tuzatmaydi

Shlyuzdagi yo'naltirish, xavfsizlik devori qoidalari va ICMPv6 xatti-harakatini avvalgidek qoldiring, chunki manba marshruti ularning hech birini almashtirmaydi. Yo'q Packet Too Big xabari qaysi jadval qidiruvda yutsa ham katta javoblarni buzadi. Marshrutlash qoidalarini qo'shishdan oldin buni tuzating, aks holda alomat o'zgarishdan keyin ham qoladi.

Ulardan birontasini qo'llashdan oldin e'lon qilish modelini tasdiqlang. O'z backend ulanishini ochadigan teskari proksi o'z manbasini taqdim etadi va chaqiruvchini saqlamaydi, shuning uchun bu nuqson bunday dizaynda yuzaga kelmaydi. Qoidani u yerda qo'llash hech narsani hal qilmaydigan va asl sababni yashiradigan marshrutlash istisnosini qo'shadi.

Nihoyat, qoida raqamlari va jadvalni xostning konfiguratsiyani boshqarish tizimiga yozing. Qo'lda qo'shilgan siyosat qoidasi keyingi qayta qurishda yo'qoladi va ofis chaqiruvchisi xuddi shu shikoyat bilan qaytib keladi.

O'xshash maqolalar