Peer-ning AllowedIPs maydoniga 0.0.0.0/0, ::/0 yozish hamma eslab qoladigan qadam bo‘lib, u faqat peer qanday trafikni tashishi mumkinligini hal qiladi. Bu prefikslar hech qanday marshrut yaratmaydi, narigi tomonda hech narsani uzatmaydi va har bir ilovaning rezolverini avvalgi joyida qoldiradi. To‘liq tunnel haqiqatan ham to‘liq bo‘lishi uchun to‘rtta alohida narsa bir vaqtning o‘zida to‘g‘ri bo‘lishi kerak va ularni quyidagi tartibda tekshirgan ma’qul, chunki keyingi tekshiruv avvalgisini qutqara olmaydi. Quyidagi har bir tekshiruv mashinadan o‘qish mumkin bo‘lgan fakt, qo‘llangan deb umid qiladigan sozlama emas.

Peer prefiksi nimani tanlaydi va nimani tanlamaydi

AllowedIPs bir vaqtning o‘zida tanlovchi va ruxsat beruvchidir. U mahalliy tomonga qaysi manzillar bu peer-ga yuborilishi mumkinligini, qabul qiluvchi tomonga esa bu peer qaysi manba manzillarini ko‘rsatishi mumkinligini aytadi. Butun ish shu. Bu tavsifda hech narsa hostda marshrut yaratmaydi, uzoq tomonda uzatishni yoqmaydi va nomlarni hal qilishga tegmaydi.

Shuning uchun konfiguratsiya to‘liq ko‘rinishi va bo‘lingan tunnel kabi harakat qilishi mumkin. Prefiks peer hamma narsani qabul qiladi deydi; hostning marshrut jadvali u yerga haqiqatda nima yetib borishini, shlyuz esa biror narsa chiqadimi-yo‘qmi ekanini hal qiladi. Bu uch qarorning hech biri peer bo‘limida yashamaydi.

Mijozni marshrutlash, faqat peer ro‘yxatini emas

Masalan, wg-quick kabi menejerlar hostning marshrut jadvalini sizning o‘rningizga dasturlaydi, shuning uchun ikkita bir xil konfiguratsiya fayli interfeys qanday ko‘tarilganiga qarab boshqacha harakat qiladi. Minimal profil bir nafasda o‘qish uchun yetarlicha qisqa:

[Interface]
Address = 10.8.0.2/32
DNS = 10.8.0.1

[Peer]
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = vpn.example.net:51820

Ishni ikkita tafsilot ko‘taradi. Address maydoni mijoz o‘ziniki deb hisoblaydigan subnet emas, bitta host prefiksi, va aynan menejer standart AllowedIPs’ni haqiqiy standart marshrutga aylantiradi. Xuddi shu faylni ip link va wg setconf bilan ko‘taring va hech qanday marshrut ko‘rinmaydi, bu buzilgan tunnelga o‘xshaydi, aslida esa marshrutlash qadami tashlab ketilgan sog‘lom tunnel. wg-quick qo‘llanmasi marshrutlashni va bu menejerlar qo‘shadigan Table xatti-harakatni hujjatlashtiradi.

Faylni emas, natijani o‘qing: ip route get 1.1.1.1 tunnel interfeysini nomlashi kerak, va wg show harakatlanuvchi uzatish hisoblagichi bilan yaqin handshake haqida xabar berishi kerak. Marshrutsiz handshake menejer hech qachon ishlamaganini bildiradi va profilni qayta tahrirlash buni tuzatmaydi. Interfeysni foydalanuvchi qanday ishga tushirsa, shunday ishga tushiring, aks holda test joylashtirish o‘rniga sizning shellingizni o‘lchaydi.

Oxirgi nuqtani tunneldan tashqarida saqlash

To‘liq tunnel mavjud bo‘lish uchun gaplashishi kerak bo‘lgan manzilni ham qo‘shib, har bir manzilni ushlaydi. Menejerlar buni oxirgi nuqta uchun asl shlyuz orqali host marshrutini qo‘shish bilan hal qiladi, shuning uchun to‘g‘ri konfiguratsiyada deyarli har doim bitta ataylab qilingan istisno bo‘ladi. Konfiguratsiyaning yarmini menejer bilan, qolganini qo‘lda qo‘llash bu istisno yo‘qolishining odatiy yo‘lidir.

Agar oxirgi nuqta bir nechta manzilga yoki siz tashimaydigan oilaga hal bo‘ladigan host nomi bo‘lsa, istisno yomon qariydi va odatiy ko‘ringan qayta ulanishdan keyin tunnel ishlamay qolishi mumkin. Oxirgi nuqtani o‘zingiz nazorat qiladigan manzilga mahkamlang yoki menejer uni qayta baholashini tasdiqlang va har bir tarmoq o‘zgarishidan keyin host marshrutini qayta o‘qing.

Xuddi shu mexanizm to‘liq tunnel va ushlab qoluvchi portal nima uchun urishishini tushuntiradi. Portal sizning tunnelingiz endi ushlayotgan trafikni to‘sishni kutadi, shuning uchun mehmonxona va aeroport tarmoqlarida tunnelni portalga kirgandan keyin ko‘tarasiz, hech qachon undan oldin emas.

Shlyuzda uzatish va qaytish yo‘li

Shlyuzda tashiyotgan oilangiz uchun uzatishni yoqing, tarjima qilganda forward zanjiriga ikki yo‘nalishda ruxsat bering va qaytish yo‘lini manbaga xos qidiruv bilan tasdiqlang. Bularning hech biri muvaffaqiyatli handshakedan kelib chiqmaydi, chunki handshake faqat ikki peer UDP almashishi mumkinligini isbotlaydi. Dekapsulyatsiya qilingan paketga keyin nima bo‘lishi haqida hech narsa demaydi.

sysctl net.ipv4.ip_forward net.ipv6.conf.all.forwarding
ip route get 1.1.1.1 from 10.8.0.2

Qidiruv mijozda emas, shlyuzda bajariladi, aks holda boshqa marshrut jadvalini o‘qiysiz. Agar u noto‘g‘ri interfeysni nomlasa yoki marshrut yo‘qligini bildirsa, mijoz tomonidagi hech qanday o‘zgarish internetdan chiqish yaratmaydi. Shlyuz chiqishda mijoz manzillarini tarjima qilganda javob shu tarjima holatiga bog‘liq, shuning uchun qoida oqimning faqat chiqish yo‘nalishi uchun emas, ikki yo‘nalishi uchun ham bo‘lishi kerak.

DNS va xatolik holati, alohida tekshirilgan

Protokolning o‘zi hech bir ilovaning rezolverini sozlamaydi. wg-quick distributivning rezolver integratsiyasi orqali DNS qatorini qo‘llaydi, o‘z stekiga ega konteynerlar va brauzerlar buni e’tiborsiz qoldirishi mumkin, shuning uchun tunnel paketlarni mukammal tashiyotganda ham nom ishlamay qolishi mumkin. Manzil o‘rniga host nomi bilan sinab ko‘ring va profildagi server javob berdi deb o‘ylash o‘rniga qaysi server javob berganini yozib qo‘ying.

Manzil oilalari alohida javobga ega alohida testdir. v4 standart marshruti biror ilovaning v6 ulanishi nima qilishini aytmaydi va ikkinchi oilani jimgina oqizadigan tunnel baland ovozda ishlamay qoladiganidan yomonroq. Har bir oila orqali nom so‘rang, har bir so‘rov ishlatgan interfeysni o‘qing va tarjima hisoblagichlarini oldin va keyin tekshiring, chunki hech narsaga to‘g‘ri kelmaydigan qoida yo‘q qoida bilan bir xil ko‘rinadi.

Nihoyat, tunnel to‘xtaganda xohlagan holatingizni sinab ko‘ring. To‘liq tunnel o‘zi da’vo qiladigan trafik uchun yopiq holda ishlamay qolishi kerak: agar interfeys tushib qolsa va ilovalar jismoniy bog‘lanish orqali jimgina davom etsa, dizayn qo‘shimcha qadamli bo‘lingan tunneldir. Ko‘zda tutilgan xatolik xatti-harakatini yozing, uni ataylab tekshiring va to‘rtta javobni qayd etib yakunlang — qaysi menejer interfeysni ko‘taradi, qaysi marshrut standartni tashiydi, shlyuzda kim uzatadi va tarjima qiladi, va qaysi rezolver javob beradi.

O'xshash maqolalar