AllowedIPs — bu marshrutlash ro'yxati, xavfsizlik devori qoidasi emas
U chiquvchi trafik uchun peer tanlaydi va kiruvchi manbalarni tekshiradi. Bu kirish ro'yxati emas, marshrutlarni boshqarishni o'chirish bo'lingan tunnelni tuzatmaydi.
Ko'pchilik AllowedIPs maydonini ruxsatlar ro'yxati deb o'qiydi, ya'ni peer bilan ulanishi mumkin bo'lgan manzillar to'plami, tunnel uchun yozilgan xavfsizlik devori qoidasiga o'xshash. Unday emas. Bu maydon ikki yo'nalishda ishlaydigan marshrutlash jadvali: chiquvchi paket uchun peer tanlaydi va kiruvchi paketning manbasini tekshiradi. Uni kirish ro'yxati deb o'qish hech kim so'ramagan trafikni marshrutlaydigan konfiguratsiyalarni keltirib chiqaradi.
Bitta maydon, ikki o'quvchi: chiqish tanlovi va manba tekshiruvi
Mijozda prefikslar qaysi manzillar o'sha peerga borishini va qaysilari oddiy tarmoqda qolishini belgilaydi. Shuning uchun 0.0.0.0/0 uchun yozuv har bir IPv4 manzilni qamrab oladi va shuning uchun to'liq tunnel profilini import qilish oddiy brauzerni uzoq mashina orqali yuboradi. Tor yozuvlar buning aksini qiladi: faqat siz ro'yxatga olgan tarmoqlarni marshrutlaydi, qolganini o'z joyida qoldiradi. WireGuard hujjatlaridagi kriptokalyut marshrutlash bo'limi ikkala vazifani bir joyda aytadi: chiquvchi peer tanlovi va kiruvchi manbani tekshirish.
Serverda xuddi shu maydon har bir peer qaysi manba manzillaridan foydalanishi mumkinligini tavsiflaydi. Bu paket filtri emas, kriptografik tekshiruv: ichki manbasi peer ro'yxatiga mos kelmaydigan paket xostning biron bir xavfsizlik devori uni ko'rishidan oldin WireGuard ichida tashlab yuboriladi. Ikkala vazifa bitta ro'yxatni bo'lishadi va aynan shuning uchun boshqa joydan ko'chirilgan ro'yxat siz hisobga olmagan joyda noto'g'ri ishlaydi.
Mijoz bloki bu chalkashlikning ko'p qismi boshlanadigan joy. Bo'lingan tunnel uzoq tarmoqlarni nomlaydi, to'liq tunnel esa xuddi shu maydonning standart prefiksli ko'rinishi:
[Peer]
# split tunnel: only these networks
AllowedIPs = 10.77.0.0/24, 192.168.30.0/24
[Peer]
# full tunnel: everything, both families
AllowedIPs = 0.0.0.0/0, ::/0
Ikkala shakl ham o'z-o'zidan to'liq va ular qadamlar emas, alternativalar. Birinchisi tunnel orqali faqat o'sha ikki tarmoqni yuboradi; ikkinchisi har bir manzilni yuboradi va ::/0 yozuvi IPv4 standartiga IPv6 qo'shadi. Qaysi birini tanlasangiz ham, wg-quick marshrutlarni o'rnatishni boshlaganda o'sha prefikslar o'sha peer uchun butun marshrutlash qarori bo'ladi.
Hubga boshqa ro'yxat kerak
Hub har bir mijozning tunnel manzilini xost prefiksi sifatida ro'yxatga oladi, shuningdek o'sha mijozning orqasida haqiqatan turgan har qanday tarmoqni. Bir mijozning keng ro'yxatini har bir hub peerga ko'chirish hubga ko'plab peerlar bir xil manzillarni manba sifatida ishlatishi mumkinligini aytadi va bu manzillar rejasi emas. Endpoint maydoni butunlay boshqa qatlamga tegishli: u peerning tashqi manzili va portini nomlaydi, hech qachon tunnel ichidagi manzilni emas.
[Peer]
# laptop: tunnel address 10.77.0.2, office LAN behind it
AllowedIPs = 10.77.0.2/32, 192.168.30.0/24
Xost prefiksi tunnel manzilini olib yuradi, tarmoq prefiksi esa mijozning orqasidagi narsani olib yuradi va ikkalasi ham kerak. Xost prefiksisiz hub mijozning o'z trafigini qaytara olmaydi, tarmoq prefiksisiz esa uning orqasidagi LAN yetib bo'lmaydigan bo'lib qoladi; orqasida hech narsa yo'q peer faqat xost prefiksini oladi.
Marshrutlarni o'rnatishni chetlab o'tish bo'shliq qoldiradi
wg-quick, interfeysni konfiguratsiya faylidan ko'taradigan yordamchi, o'sha ishning qismi sifatida interfeys manzillari va marshrutlarni o'rnatadi. Table = off ni sozlash yordamchiga marshrut ishini chetlab o'tishni aytadi, bu o'rinbosarlarni o'rnatmaydi va xususiy tarmoqni yetib boradigan qilmaydi. Avtomatik marshrutlar ishni allaqachon qilsa, kerakli prefikslarni nomlash yanada aniq konfiguratsiya. Marshrutlarni boshqarishni o'chirib, o'rinbosarni yozmaslik dizayn emas, bu kamchilik.
Asosiy wg vositasi boshqacha ishlaydi: u interfeysni sozlaydi va marshrutlarga hech qachon tegmaydi, shuning uchun uning ustiga to'g'ridan-to'g'ri qurilgan o'rnatish o'z marshrut buyruqlariga muhtoj. Bir vosita uchun yozilgan ko'rsatmalar boshqasi bilan bajarilganda noto'g'ri ko'rinishi mumkin. Muvaffaqiyatli ping ham zaif dalil, chunki u kerakli har bir dastur yo'lini emas, faqat bitta yo'lni sinaydi.
DNS va IPv6 alohida hal qilinadi
Tunnel e'lon qiladigan DNS server manzilini tekshiring va tanlangan prefikslar orqali o'sha manzilga marshrut borligiga ishonch hosil qiling. Resolver sozlamasi resolverni yetib boradigan qilmaydi va tunnelni toraytirish u yerga boradigan marshrutni jimgina olib tashlashi mumkin. IPv6 ni ham alohida ko'zdan kechiring, chunki to'g'ri IPv4 bo'linishi hali ham jismoniy bog'lanishga ishora qiladigan IPv6 standart marshruti haqida hech narsa demaydi. Bitta peer blokini tahrirlaganda uchta alohida qaror bir vaqtda o'zgarishi mumkin.
Keyin ma'lum boshlang'ich konfiguratsiyadan bitta xususiy resurs va bitta oddiy veb-saytni oching. Agar resurs javob bersa va brauzer hali ham mahalliy ulanish orqali chiqsa, bo'linish siz so'ragan ishni qiladi. Agar brauzer ayni damda buzilsa, tunnel standart marshrutni oldi va prefikslar ro'yxati ko'rish kerak bo'lgan joy.