Ikki uyali sayt, kirish portlari yo'q: ishlaydigan markaz quring
Ikkala sayt ham kiruvchi IPv4 ulanishini qabul qilmasa, ikkalasi ham yetib borish mumkin bo'lgan markazga ulanishni boshlashiga ruxsat bering. Marshrutlash, yo'naltirish va zaxira yo'l qadamlarini shu tartibda bajaring.
Uyali aloqadagi ikki sayt ikki yo'nalishda ham bir xil muammoga duch keladi: hech biri so'ralmagan IPv4 ulanishini qabul qila olmaydi, shuning uchun hech biri to'g'ridan-to'g'ri tunnelda server rolini o'ynay olmaydi. Ishlaydigan arxitektura o'rtaga yetib borish mumkin bo'lgan uchinchi tomonni qo'yadi: har bir sayt tashqariga qo'ng'iroq qiladi, o'rta esa faqat siz tasdiqlagan trafikni uzatadi. Bu o'rta siz boshqaradigan marshrutizator yoki tengdoshlarni tanishtiruvchi mahsulot bo'lishi mumkin, va bu ikkisi bir narsa emas. Quyidagi qadamlar keyingisi unga bog'liq bo'lishidan oldin har biri dalil beradigan qilib tartiblangan.
Hech bir saytga qo'ng'iroq qilib bo'lmaydi, shuning uchun ikkalasi ham tashqariga qo'ng'iroq qilishi kerak
Loyihalashdan oldin cheklovni tasdiqlang. Agar operator WAN interfeysiga xususiy manzil bersa, saytning o'z marshrutizatoridagi hech qanday port uzatish uni yetib borish mumkin qilmaydi, chunki tarjima yuqorida sodir bo'ladi. Xuddi shu liniyada umumiy IPv6 manzili bo'lishi mumkin va loyihani butunlay o'zgartiradi, shuning uchun tekshiruv ikkala oilani ham qamrab oladi. Javobni har bir sayt uchun yozib qo'ying, chunki ikkalasi bir operatorni bo'lishsa ham cheklovlari kamdan-kam bir xil bo'ladi.
Odatiy uyali holat operatorning tarjima qilingan diapazonidagi manzil va u orqali o'tadigan standart yo'lga o'xshaydi. Bu tuzatiladigan nosozlik emas; markaz mavjudligining sababi shu. Siz sayt birinchi bo'lib gapirmasdan uchinchi tomon yetib boradigan har qanday manzilni qidiryapsiz.
Oldingizdagi saytning manzil savoliga ikkita buyruq javob beradi. Ularni sayt marshrutizatorida ishga tushiring, uning orqasidagi noutbukda emas:
ip -4 addr show scope global
ip -6 addr show scope globalKim tengdoshlarni tanishtiradi va kim paketlarni tashiydi
Tanishish va tashish alohida ishlar bo'lib, mahsulotlar ko'pincha chegarani ko'rinmas qilib ularni birlashtiradi. Uchrashuv mexanizmi ikki tengdoshga nomzod yo'l topishga yordam beradi; to'g'ridan-to'g'ri yo'l bo'lmasa, rele ularning paketlarini tashiydi. Tengdoshlarni tanishtiruvchi xizmatni sotib olish sizga marshrutizator bermaydi, va bu farq loyihaga markaz kerakmi yoki yo'qmi ekanini hal qiladi.
O'tishning o'z lug'ati bor, va so'zlar rollarni tasvirlaydi, kafolatlarni emas. ICE spetsifikatsiyasi nomzodlar va ulanish tekshiruvlarini tasvirlaydi, STUN manzillar tarjimasi haqida bilishning bir usulini, TURN esa uni amalga oshiruvchi ilovalar uchun rele orqali tashishni tasvirlaydi. Bu mexanizmlarning hech biri oddiy shlyuzda ko'rinmaydi, chunki siz uni topish manziliga yo'naltirdingiz. O'tishni mahsulot qobiliyati sifatida tekshiring va sinov aksini ko'rsatmaguncha releni farz qiling.
Har bir sayt uchun bitta marshrut, tengdoshga tegishli
Markazga har bir sayt uchun bitta tunnel, har birining orqasida alohida LAN prefiksi va har bir prefiks uchun uning egasini nomlaydigan marshrut kerak. Misolda markaz 10.61.0.1, A sayti LAN 10.60.10.0/24 bilan 10.61.0.11, B sayti esa LAN 10.60.20.0/24 ga ega 10.61.0.12 hisoblanadi. Quyidagi har bir marshrut tunnel interfeysiga emas, prefiksga ega tengdoshga ishora qiladi:
ip route add 10.60.10.0/24 via 10.61.0.11 dev wg0
ip route add 10.60.20.0/24 via 10.61.0.12 dev wg0
sysctl net.ipv4.ip_forward
ip route get 10.60.20.55 from 10.60.10.77Yo'naltirish yoqilgan bo'lishi kerak, aks holda paketlar markazda to'xtaydi va sababni ko'rsatuvchi xato ham bo'lmaydi. Oxirgi buyruq haqiqiy savolga javob beradi, chunki manbani qidiruvga qo'shib, paket A sayti LAN'idan B sayti LAN'iga qaysi yo'lni olishini so'raydi. Tunnel interfeysini nomlaydigan qidiruvni dalil deb, standart yo'lga tushadiganini esa jumboq emas, yetishmayotgan marshrut deb qabul qiling. Keyin tranzitni ataylab cheklang, chunki har bir tengdosh orasida yo'naltiruvchi markaz ikki saytni tekis tarmoqqa aylantiradi va siz o'ylagan kirish siyosati amal qilmaydi.
Shifrlash qayerda tugashini ham hal qiling. Markaz tunnelning ikkala uchini ushlab tursa, o'sha mashinaning operatori va uning ish yuki ishonch va mavjudlik modeliga qo'shiladi, uning o'tkazuvchanligi yo'lning bir qismiga aylanadi.
Har bir xaritalashni operator orqali tirik tuting
Har bir sayt o'z tunnelini boshlaydi va har biri tarjima xaritalashini tirik tutishi kerak, aks holda operator uni esdan chiqaradi. Boshlovchi tomondagi tiriklik xabari bu xaritalashni qo'l berib ko'rishishlar orasida saqlaydi. Ruxsat etilgan prefikslarni markaz manzili va uzoq LAN bilan cheklang, shunda buzilgan tengdosh o'ziga tegishli bo'lmagan prefiksni talab qila olmaydi:
[Peer]
PublicKey = <hub public key>
Endpoint = 192.0.2.10:51820
AllowedIPs = 10.61.0.1/32, 10.60.20.0/24
PersistentKeepalive = 25Blokni boshqa saytda uning o'z uzoq prefiksi bilan aks ettiring va butun tunnel diapazoniga ruxsat berish istagiga qarshi turing. To'xtab, yangi manba portidan qayta boshlanadigan qo'l berib ko'rishish muddati o'tgan xaritalashning imzosi, qo'l berib ko'rishish vaqt belgilari esa bu sodir bo'lganining dalili. Operatorning vaqt chegarasidan qisqaroq oraliq muddat tugashini keyin tuzatish o'rniga oldini oladi. Operator tarjima xatti-harakatini o'zgartirsa, bu vaqtlar ham u bilan birga o'zgarishini kuting.
Ikkala yo'nalishni isbotlang, keyin tiklanishni isbotlang
Tekshiruv yo'nalishli, shuning uchun A dan B ga ping loyihaning yarmini isbotlaydi va qaytish yo'li haqida hech narsa demaydi. Markazda xuddi shu manbaa sezgir qidiruv bilan javob yo'lini tekshiring, keyin sinovni boshqa tomondan takrorlang. Yangi qo'l berib ko'rishishlar ham dalilga kiradi, chunki bir soat harakatsiz turgan tunnel eski xaritalashni sinayotgan bo'lishi mumkin:
wg show wg0 latest-handshakes
ping -c 3 10.60.20.55
traceroute -n 10.60.20.55Keyin siz xohlagan muvaffaqiyatni emas, kutgan nosozlikni sinab ko'ring. Bitta saytning liniyasini qayta ishga tushiring va tunnel ikkala uchiga ham inson qo'li tegmasdan qaytishini tasdiqlang, chunki operatoridagi har bir o'zgarishdan keyin operator talab qiladigan loyiha tugallanmagan. Asosiy yo'lni, mavjud bo'lsa IPv6 alternativasini va markaz mavjud bo'lmaganda xatti-harakatni qayd eting. Markaz endi sizning mavjudlik modelingizning bir qismi, shuning uchun buni uzilish paytida kashf qilish o'rniga yozib qo'ying.