Har bir mayoq istalgan xostga boshqa har bir sherigi haqida ayta oladi, faqat mayoqning o'zi qayerda ekanligini hisobga olmaganda. Overlay paydo bo'lishidan oldin nimadir ma'lum bo'lishi kerak, Nebula esa o'sha narsani bitta kichik xaritaga joylaydi. Xarita overlay identifikatorini oddiy tarmoqda ishlaydigan manzil bilan juftlaydi. Keyinchalik o'rganilgan hamma narsa shu juftlikning to'g'ri bo'lishiga bog'liq.

Ikki vazifali ikki manzil

Har bir Nebula xostida qurilma tarmoqlar orasida harakatlanayotganda ham o'zgarmas overlay manzili bor. Bu manzil sertifikatlar, xavfsizlik devori qoidalari va sheriklik munosabatlari ishlatadigan identifikator, va yolg'iz o'zi hech qayerga marshrutlamaydi. Yetib boriladigan oxirgi nuqta boshqa narsa: pastki tarmoqdagi xost nomi yoki manzil va UDP porti, va mashina joyini o'zgartirganda u o'zgaradi. Statik xarita ikkalasi orasidagi bog'lanish.

Xaritaga faqat sovuq chaqirilishi kerak bo'lgan xostlar kiradi, bu odatda mayoqlar va ehtimol bitta relayni bildiradi. Ro'yxatni qisqa saqlash dizayn maqsadi, chunki har bir qo'lda yozilgan yozuv kimdir saqlashi kerak bo'lgan faktga aylanadi. Ikki manzil turini chalkashtirish odatiy konfiguratsiya xatosi: mayoqlar ro'yxatiga qo'yilgan ommaviy manzil aniqlashni boshlamaydi.

Identifikator identifikator kutilgan joyga boradi. Yetib borish imkoniyati xaritaga boradi.

static_host_map:
  "10.42.0.1": ["lighthouse-01.example.net:4242"]

lighthouse:
  am_lighthouse: false
  hosts:
    - "10.42.0.1"

Xarita yozuvining tuzilishi

Kalit — qo'shtirnoq ichida satr sifatida yozilgan overlay manzili, qiymat esa oxirgi nuqtalar ro'yxati, shuning uchun bitta identifikatorning bir nechta kirish nuqtasi bo'lishi mumkin. Har bir oxirgi nuqta xost va portni olib yuradi, port esa qarshi tomon haqiqatan tinglayotgan narsaga mos kelishi kerak. Nebulaning standart qiymati UDP 4242, bu boshlang'ich nuqta, sizning joylashtirishingiz haqida va'da emas.

Mayoqning ichkariga kirish yo'li bir nechta bo'lsa, bir nechta oxirgi nuqta foydali, masalan ommaviy manzil va o'sha segmentdagi xostlar uchun shaxsiy manzil. Mijoz ularni tartib bilan sinab ko'radi, shuning uchun eng ishonchlini birinchi qo'y. IPv6 uchun portni qo'shishdan oldin manzilni kvadrat qavs ichiga oling; xato qilish noto'g'ri satrni ko'rsatadigan tahlil xatosini beradi.

Noto'g'ri port xato o'rniga sukunat beradi, chunki UDPda rad etadigan qo'l siqish yo'q. Shuning uchun yozuv formatini Nebula static_host_map ma'lumotnomasi bilan tekshirish arziydi, xotira bilan emas. Ma'lumotnoma oxirgi nuqtalar ro'yxatlari va DNS yangilash xatti-harakatini ham qamrab oladi.

Yuklash overlaydan oldin ishlashi kerak

Xaritadagi DNS nomi har qanday tunnel paydo bo'lishidan oldin xostda mavjud bo'lgan hal qiluvchi orqali hal qilinishi kerak, ya'ni oddiy tizim hal qiluvchisi. Buni o'sha mashinadan, yuklash vaqtida, overlay to'xtatilgan holda sinab ko'ring. Faqat overlayning o'z DNSi orqali hal qilinadigan nom overlayni yuklay olmaydi. Xuddi shu sinov marshrutga ham tegishli: overlayga ruxsat beradigan, lekin birinchi UDP almashinuviga bermaydigan xavfsizlik devori qoidasi birinchi paketni bloklaydi.

Portni ochiq deb taxmin qilish o'rniga UDP asbobi bilan tekshiring. Yo'ldagi har qanday port yo'naltirish to'g'ri ichki xostga qaratilganini va qaytish yo'li borligini tasdiqlang. Agar xost nomi bir nechta manzilga hal bo'lsa, har birini sinab ko'ring, chunki mijoz siz hech qachon tekshirmagan manzilni tanlashi mumkin.

Statik yozuvlar to'g'ridan-to'g'ri chaqiriladi va hech qachon mayoqdan maslahat so'ramaydi. Shuning uchun bu yerdagi nosozlik hech qanday sheriksiz oddiy kutish muddati kabi ko'rinadi.

Birinchi qo'l siqishdan keyin nima bo'ladi

Xost mayoqqa yetib borgach, qo'shimcha qo'lda yozuvlarsiz sheriklar va ularning yetib boriladigan manzillari haqida bilib oladi. Oxirgi ulanishdan keyin ko'chgan xostlar o'sha kanal orqali topiladigan bo'ladi. Bu qo'lda yozilgan xaritani kichik saqlashning mukofoti.

Xostlar o'zlarining qo'shimcha yetib boriladigan manzillarini ham e'lon qilishlari mumkin, shu tarzda ma'lum ommaviy manzil ortidagi sherik boshqalarga uni topishga yordam beradi. Bu e'lonlar o'rganiladi, statik xaritaga yozilmaydi.

DNS nomlari sifatida yozilgan oxirgi nuqtalar uchun yangilash xatti-harakati muhim, chunki hal qilingan manzil jarayon davom etayotganda o'zgarishi mumkin. Nebula sozlamalari bu qidiruvlar qanday amalga oshishini, qaysi hal qiluvchi ishlatilishini ham boshqaradi, shuning uchun tizim standartini taxmin qilish o'rniga ularni o'qing. Tunnel ko'tarilganda hal qiluvchisi o'zgaradigan xostda noto'g'ri sozlama ishlayotgan yuklashni sessiya o'rtasida hal qilinishini to'xtatadigan nomga aylantirishi mumkin. Qidiruvni barqaror hal qiluvchiga bog'lash ko'pincha ishonchli overlay va uzilib turadigan overlay o'rtasidagi farq.

Aniqlash ishlayotganda va bitta sherik ishlamaganda

Agar mayoqlar yetib boriladigan bo'lsa va ko'pchilik sheriklar ulansa, yuklash muammo emas. Qolgan juftlik yo bir-biriga foydali yo'l topa olmaydi, yo yetib borishdan yuqorida muvaffaqiyatsiz bo'ladi. Mayoq manzilining yana bir yozilishini qo'shish ikkala holatning hech birini tuzatmaydi.

Boshqa hamma narsa tayanadigan xaritani tahrirlashdan oldin juftlikni tekshiring. Xarita o'zgarishi har bir xostni bezovta qiladi, shuning uchun u eng oxirgi tegishli narsa, birinchi emas.

Bir xil organning sertifikatlaridan boshlang, chunki rad etilgan qo'l siqish uzoqdan yetib bo'lmaydigan sherikka o'xshab ko'rinishi mumkin. Keyin juftlik to'g'ridan-to'g'ri yo'l qura oladimi va to'g'ridan-to'g'ri trafikni rad etadigan tarmoqlar uchun relay sozlanganmi, tekshiring. Relay bitta sakrash va bitta bog'liqlik qo'shadi, lekin bu qo'llab-quvvatlanadigan javob, va juftlik yo'lini tuzatish aniqlashni tuzatishdan boshqa ish.

O'xshash maqolalar