Tunnel ko’tarilgan, handshake har ikki daqiqada sodir bo’ladi va narigi tomonda aynan bitta manzil javob beradi. Peerning tunnel manziliga pinglar ishlaydi; uning orqasida hech narsa ishlamaydi. Kimdir interfeys konfiguratsiyasini o’qib, xost prefiksini ko’radi va maska noto’g’ri deb xulosa qiladi. Uni /24 ga kengaytirish pingni bir muddat tuzatadi, keyin boshqa narsani buzadi. Prefiks hech qachon sabab bo’lmagan va yetishmayotgan marshrut maska boshqaradigan marshrut emas.

Interfeys prefiksi aslida nima yaratadi

Linuxda interfeysga manzil berish shu prefiks uchun ulangan marshrut yaratadi. Xost prefiksini bersangiz, ulangan marshrut bitta manzilni qamrab oladi. /24 bersangiz, u 256 manzilni qamrab oladi va ularning har biri endi shu bog’lanish orqali yetib boriladigan deb hisoblanadi.

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

Xost prefiksi nuqtadan nuqtaga tunnel uchun mutlaqo odatiy tanlov, chunki narigi uchida aynan bitta peer bor. Uchinchi buyruq foydalanuvchining savoliga javob beradi: yadro shu manzil uchun qaysi interfeysdan foydalanishini aytadi va hech qanday marshrut mos kelmasa, foydali hech narsa ko’rsatmaydi.

Bu simptomning to’liq izohi. Bitta manzil javob beradi, chunki uning uchun ulangan marshrut bor yoki peerning ruxsat etilgan ro’yxati uni tasodifan o’z ichiga oladi. Qolgan hamma narsaning marshruti yo’q va WireGuard umuman aralashishidan oldin tashlab yuboriladi. Tunnel butun vaqt davomida sog’lom, shuning uchun handshake hisoblagichi hamon ishonchli ko’rinadi.

AllowedIPs — bitta nom ostida ikkita qoida

WireGuardning har bir peer uchun ruxsat etilgan ro’yxati bir vaqtda ikkita ish qiladi va konfiguratsiya sintaksisi ularni bitta ko’rinishga keltiradi. Kirishda peer qanday manba manzillarini taqdim eta olishini ruxsat etadi. Chiqishda eng aniq moslikni topib, paket qaysi peerga yuborilishini tanlaydi.

Bu ishlarning hech biri marshrutlash emas. Yadro paket tunnel interfeysiga tegishli ekanini WireGuard unga qarashidan oldin hal qilishi kerak va bu qaror marshrutlash jadvalidan keladi. Keng ruxsat etilgan ro’yxatli peer yozuvi o’zi marshrut o’rnatmaydi.

Shuning uchun konfiguratsiya to’liq ko’rinib, assimetrik harakat qilishi mumkin. Mijoz marshrut borligi uchun narigi tomonga yuboradi, javoblar esa hech qachon yetib kelmaydi, chunki narigi tomonning ruxsat etilgan ro’yxati mijozning manbasini ruxsat etmaydi yoki narigi tomonning qaytish yo’li yo’q. Ikkala yo’nalish ham alohida qarorlar, alohida nosozlik rejimlari bilan. Qaysinisini sinab ko’rayotganingizni yozish diagnostikaning yarmi.

Marshrut qayerdan keladi

Agar wg-quick ishlatsangiz, marshrutlar har bir peerning ruxsat etilgan ro’yxatidan siz uchun yaratiladi, agar Table = off ni o’rnatib, boshqaruvni o’zingiz olmagan bo’lsangiz. Bu vosita hujjatlashtirgan xatti-harakat va aniq marshrut direktivalarisiz konfiguratsiya hamon ishlashining sababi shu.

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

Ruxsat etilgan ro’yxatni haqiqatda mavjud marshrutlar bilan solishtiring. Butun quyi tarmoqqa ruxsat berib, lekin faqat xost marshrutini yaratgan peer — yordamchi hech qachon ishga tushmaganini yoki interfeysni to’g’ridan-to’g’ri wg va ip bilan boshqarayotganingizni bildiradi, u holda siz uchun hech narsa marshrut yaratmaydi.

Uni qo’lda boshqarsangiz, marshrut bitta satr va uning shakli aniq: manzil interfeys orqali, shlyuzsiz, chunki bog’lanish nuqtadan nuqtaga. Uni qo’shish yomon prefiks uchun aylanma yo’l emas; bu marshrutlashni ongli ravishda o’z zimmasiga olgan loyihaning yetishmayotgan yarmi.

Kengroq prefiks peer yozuvini qo’shmaydi

Vasvasali tuzatish — manzilni /24 ga o’zgartirib, ulangan marshrut serverning mahalliy tarmog’ini qamrab olishi. Ishlayotgandek ko’rinadi va ishlayotgandek ko’rinishining sababi ulangan marshrut endi mos kelishi, WireGuard yangi narsa o’rganganligi emas.

Bundan tashqari siz butun diapazonni shu bog’lanish orqali bevosita yetib boriladigan deb e’lon qildingiz, jumladan boshqa peerlarga yoki aslida serverning orqasidagi mahalliy tarmoqqa tegishli manzillar. Bu manzillarga trafik endi tunnelga kiradi va uning narigi tomondan chiqishi serverning o’z marshrutlashi va ruxsat etilgan ro’yxatlariga bog’liq.

Kriptografik tomon hech qanday holatda ta’sirlanmaydi. WireGuard peer tanlash uchun manzilni qamrab oluvchi ruxsat etilgan ro’yxat yozuviga hali ham muhtoj, narigi tomon esa manbangizni qamrab oluvchi yozuvga uni qabul qilish uchun hali ham muhtoj. Kengroq interfeys prefiksi ikkalasini ham bera olmaydi.

Biror narsani o’zgartirishdan oldin ikkala yo’nalishni tasdiqlang

Ikki uchni alohida ko’rib chiqing va har biri nima deyishini yozing. Mijozda marshrut va peer yozuvi; serverda oyna tasviri va uning o’z qaytish yo’li:

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

Tutib olish yo’nalish haqidagi bahslarni hal qiladigan narsa. Agar chiquvchi paketlar tunnel interfeysida paydo bo’lib, server hech narsa yozmasa, uzoq uch ularni rad etadi, odatda manbangiz uning ruxsat etilgan ro’yxatidan tashqarida bo’lgani uchun. Agar umuman hech narsa paydo bo’lmasa, marshrut yetishmaydi yoki boshqa joyga ishora qiladi.

Keyin tor uchni tuzating. Server tomonida mijoz manzilingiz uchun ruxsat etilgan ro’yxat yozuvi va mijoz tomonida maqsad quyi tarmoq uchun yozuv odatiy shakl va interfeys prefiksiga tegmaydi. Prefiksni faqat manzil rejasi shu bog’lanishda haqiqatan umumiy quyi tarmoqni xohlasa kengaytiring va buni nosozliklarni tuzatish qadami emas, reja o’zgarishi sifatida qiling.

O'xshash maqolalar