Дэлхий гаригт зориулсан ухаалаг Ethernet шилжүүлэгч

Дэлхий гаригт зориулсан ухаалаг Ethernet шилжүүлэгч
"Та шийдлийг (асуудлыг шийдвэрлэх) хэд хэдэн аргаар бий болгож чадна, гэхдээ хамгийн үнэтэй ба/эсвэл түгээмэл арга нь үргэлж хамгийн үр дүнтэй байдаггүй!"

Оршил

Гурав орчим жилийн өмнө, гамшгийн мэдээллийг сэргээх алсын зайн загварыг боловсруулах явцад би тэр даруй анзаарагдаагүй нэг саадтай тулгарсан - олон нийтийн эх сурвалж дахь сүлжээний виртуалчлалын шинэ шийдлүүдийн талаархи мэдээлэл дутмаг. 

Боловсруулсан загварт зориулсан алгоритмыг дараах байдлаар төлөвлөв. 

  1. Надтай холбогдож, компьютер нь ачаалахаас татгалзаж, "системийн диск илрээгүй/форматлагдаагүй" гэсэн мессежийг харуулсан алсын хэрэглэгч үүнийг life USB ашиглан ачаалдаг. 
  2. Ачаалах явцад систем нь аюулгүй хувийн дотоод сүлжээнд автоматаар холбогддог бөгөөд үүнд администраторын ажлын станц, энэ тохиолдолд зөөврийн компьютер, NAS зангилаа багтдаг. 
  3. Дараа нь би холбодог - дискний хуваалтыг сэргээх эсвэл тэндээс өгөгдөл гаргаж авах.

Эхэндээ би энэ загварыг өөрийн хяналтан дор байгаа сүлжээн дэх дотоод чиглүүлэгч дээр, дараа нь түрээсэлсэн VDS дээр VPN сервер ашиглан хэрэгжүүлсэн. Гэвч Чишолмын анхны хуулийн дагуу бороо орвол интернетийн үйлчилгээ үзүүлэгчийн сүлжээ тасарч, аж ахуйн нэгжүүдийн хоорондын маргаанаас үүдэн үйлчилгээ үзүүлэгчийн “эрч хүч” алдагдана...

Тиймээс би эхлээд шаардлагатай хэрэгсэл нь хангасан байх ёстой үндсэн шаардлагыг томъёолохоор шийдсэн. Эхнийх нь төвлөрлийг сааруулах явдал юм. Хоёрдугаарт, надад ийм амьдралтай хэд хэдэн USB байгаа тул тус бүр нь тусдаа тусгаарлагдсан сүлжээтэй байдаг. Гуравдугаарт, янз бүрийн төхөөрөмжүүдийн сүлжээнд хурдан холбогдож, тэдгээрийн энгийн удирдлага, тэр дундаа миний зөөврийн компьютер дээр дурдсан хуулийн хохирогч болсон тохиолдолд.

Үүний үндсэн дээр хоёр сар хагасын турш тийм ч тохиромжгүй хэд хэдэн хувилбарын практик судалгаанд зарцуулсаны эцэст би эрсдэл, эрсдэлд орж, тэр үед надад мэдэгдээгүй ZeroTier нэртэй стартапын өөр хэрэгслийг туршиж үзэхээр шийдсэн. Дараа нь би хэзээ ч харамсаагүй.

Эдгээр шинэ жилийн баярын үеэр, тэр мартагдашгүй мөчөөс хойш агуулгын нөхцөл байдал өөрчлөгдсөн эсэхийг ойлгохыг хичээж, би Хабрыг эх сурвалж болгон ашиглан энэ сэдвээр нийтлэлүүд байгаа эсэхэд сонгон шалгалт хийсэн. Хайлтын үр дүнд "ZeroTier" асуулгын хувьд энэ тухай дурдсан гурван нийтлэл байгаа бөгөөд дор хаяж товч тайлбартай нэг ч нийтлэл байдаггүй. Энэ нь тэдний дунд ZeroTier, Inc.-ийг үүсгэн байгуулагчийн бичсэн нийтлэлийн орчуулга байдаг ч гэсэн. - Адам Ерыменко.

Үр дүн нь урам хугарсан бөгөөд намайг ZeroTier-ийн талаар илүү дэлгэрэнгүй ярьж эхлэхэд түлхэц болж, орчин үеийн "хайлчдыг" миний сонгосон замаар явахаас аварсан.

Тэгэхээр чи юу вэ?

Хөгжүүлэгч нь ZeroTier-ийг Дэлхий гаригт зориулсан ухаалаг Ethernet шилжүүлэгч гэж үздэг. 

“Энэ бол криптографийн хувьд аюулгүй дэлхийн peer-to-peer (P2P) сүлжээн дээр бүтээгдсэн тархсан сүлжээний гипервизор юм. Байгууллагын SDN шилжүүлэгчтэй төстэй хэрэгсэл нь виртуал сүлжээг дотоод болон дэлхийн аль алинд нь физик сүлжээгээр зохион байгуулахад зориулагдсан бөгөөд бараг ямар ч програм эсвэл төхөөрөмжийг холбох чадвартай."

Энэ бол маркетингийн тодорхойлолт, одоо технологийн онцлогуудын тухай юм.

▍Цөм: 

ZeroTier Network Hypervisor нь дэлхийн шифрлэгдсэн peer-to-peer (P2P) сүлжээн дээр VXLAN-тай төстэй Ethernet сүлжээг дуурайдаг бие даасан сүлжээний виртуалчлалын хөдөлгүүр юм.

ZeroTier-д ашигласан протоколууд нь VXLAN болон IPSec-тэй төстэй харагдах боловч VL1 ба VL2 гэсэн хоёр концепцийн хувьд тусдаа, гэхдээ хоорондоо нягт холбоотой давхаргаас бүрддэг боловч анхных юм.

Баримт бичгийн холбоос

▍VL1 нь нэг төрлийн "виртуал кабель"-ийн үндсэн үе тэнгийн (P2P) тээврийн давхарга юм.

"Дэлхийн мэдээллийн төв нь "дэлхийн шүүгээ" кабелийг шаарддаг."

Уламжлалт сүлжээн дэх L1 (OSI Layer 1) нь өгөгдөл дамжуулах бодит кабель эсвэл утасгүй радио, түүнийг модуляцлах, задлах физик дамжуулагч төхөөрөмжийн чипийг хэлнэ. VL1 бол шаардлагатай бол виртуал кабелийг зохион байгуулахын тулд шифрлэлт, нэвтрэлт танилт болон бусад сүлжээний заль мэхийг ашиглан ижил үйлдлийг гүйцэтгэдэг peer-to-peer (P2P) сүлжээ юм.

Нэмж дурдахад, энэ нь шинэ ZeroTier зангилаа эхлүүлж буй хэрэглэгчийн оролцоогүйгээр автоматаар, хурдан бөгөөд үүнийг хийдэг.

Үүнд хүрэхийн тулд VL1 нь домэйн нэрийн системтэй адил зохион байгуулагдсан. Сүлжээний гол цөм нь DNS root нэрийн сервертэй адил үүрэг гүйцэтгэх өндөр боломжтой root серверүүдийн бүлэг юм. Одоогийн байдлаар үндсэн (гараг гарагийн) эх серверүүд хөгжүүлэгчийн хяналтанд байдаг - ZeroTier, Inc. бөгөөд үнэ төлбөргүй үйлчилгээ үзүүлдэг. 

Гэсэн хэдий ч, та дараах боломжийг олгодог захиалгат root сервер (luns) үүсгэх боломжтой.

  • ZeroTier, Inc-ийн дэд бүтцээс хараат байдлыг багасгах; Баримт бичгийн холбоос
  • саатлыг багасгах замаар бүтээмжийг нэмэгдүүлэх; 
  • Интернэт холболт тасарсан тохиолдолд хэвийн ажиллана.

Эхний ээлжинд зангилаанууд хоорондоо шууд холболтгүйгээр нээгддэг. 

VL1 дээрх үе тэнгийнхэн бүр өвөрмөц 40 бит (10 арван арван арван) ZeroTier хаягтай бөгөөд энэ нь IP хаягуудаас ялгаатай нь чиглүүлэлтийн мэдээлэл агуулаагүй шифрлэгдсэн танигч юм. Энэ хаягийг нийтийн/хувийн түлхүүрийн хосын нийтийн хэсгээс тооцоолно. Зангилааны хаяг, нийтийн түлхүүр, хувийн түлхүүр нь хамтдаа түүний таних тэмдэгийг бүрдүүлдэг.

Member ID: df56c5621c  
            |
            ZeroTier address of node

Шифрлэлтийн хувьд энэ нь тусдаа нийтлэл гаргах шалтгаан юм.

Баримт бичгийн холбоос

Харилцаа холбоо тогтоохын тулд үе тэнгийнхэн эхлээд пакетуудыг эх серверийн мод руу "дээшээ" илгээдэг бөгөөд эдгээр пакетууд сүлжээгээр дамжин өнгөрөхдөө замдаа дамжих сувгуудыг санамсаргүй үүсгэж эхэлдэг. Мод нь хадгалсан маршрутын газрын зургийг оновчтой болгохын тулд "өөрөө нурах" гэж байнга оролддог.

Үе тэнгийнхэн хоорондын холболтыг бий болгох механизм нь дараах байдалтай байна.

Дэлхий гаригт зориулсан ухаалаг Ethernet шилжүүлэгч

  1. А зангилаа В зангилаа руу пакет илгээхийг хүсч байгаа боловч шууд замыг мэдэхгүй тул үүнийг R Node руу (сар, хэрэглэгчийн үндсэн сервер) илгээдэг.
  2. Хэрэв R зангилаа В зангилаатай шууд холбогдож байвал пакетыг тэнд дамжуулдаг. Үгүй бол энэ нь гаригийн язгуурт хүрэхээс өмнө пакетыг дээд урсгал руу илгээдэг. Гаригийн үндэс нь бүх зангилааны талаар мэддэг тул хэрэв энэ пакет онлайн байвал В цэгт хүрнэ.
  3. R зангилаа нь В зангилаа руу хэрхэн хүрч болох талаарх зөвлөмжийг агуулсан "хурал" гэж нэрлэгддэг мессежийг илгээдэг. Үүний зэрэгцээ, пакетийг В зангилаа руу дамжуулдаг эх сервер нь "хурал" илгээдэг. зангилаа А хүрэх.
  4. А ба В зангилаанууд уулзалтын мессежийг хүлээн авч, замд тааралдсан NAT эсвэл төлөвтэй галт ханыг зөрчих гэж оролдохын тулд бие биедээ туршилтын мессеж илгээхийг оролддог. Хэрэв энэ нь ажиллавал шууд холболт үүсч, пакетууд нааш цааш явахаа болино.

Хэрэв шууд холболт хийх боломжгүй бол харилцаа холбоо релейгээр үргэлжлэх бөгөөд амжилттай үр дүнд хүрэх хүртэл шууд холболт хийх оролдлого үргэлжилнэ. 

VL1 нь мөн LAN үе тэнгийн илрүүлэлт, тэгш хэмт IPv4 NAT-ийг дамжих портын таамаглал, локал физик LAN дээр байгаа бол uPnP ба/эсвэл NAT-PMP ашиглан тодорхой портын зураглал хийх зэрэг шууд холболтыг бий болгох бусад функцуудтай.

→ Баримт бичгийн холбоос

▍VL2 нь SDN удирдлагын функц бүхий VXLAN-тай төстэй Ethernet сүлжээний виртуалчлалын протокол юм. Үйлдлийн систем болон хэрэглээний танил харилцааны орчин...

VL1-ээс ялгаатай нь VL2 сүлжээ (VLAN) үүсгэх, тэдгээрт зангилаа холбох, түүнчлэн тэдгээрийг удирдахад хэрэглэгчийн шууд оролцоо шаардлагатай. Тэр үүнийг сүлжээний хянагч ашиглан хийж чадна. Үндсэндээ энэ нь ердийн ZeroTier зангилаа бөгөөд хянагчийн функцийг хоёр аргаар удирддаг: шууд, файлуудыг өөрчлөх эсвэл хөгжүүлэгчийн зөвлөж буйгаар нийтлэгдсэн API ашиглан. 

ZeroTier виртуал сүлжээг удирдах энэ арга нь энгийн хүний ​​хувьд тийм ч тохиромжтой биш тул хэд хэдэн GUI байдаг:
 

  • Хөгжүүлэгчийн ZeroTier-ийн нэг нь үнэ төлбөргүй боловч удирддаг төхөөрөмжүүдийн тоо, дэмжлэгийн түвшинд хязгаарлагдмал дөрвөн захиалгын төлөвлөгөө бүхий нийтийн үүлэн SaaS шийдэл хэлбэрээр ашиглах боломжтой.
  • Хоёр дахь нь бие даасан хөгжүүлэгчийнх бөгөөд үйл ажиллагааны хувьд зарим талаар хялбаршуулсан боловч газар дээр нь эсвэл үүлэн нөөц дээр ашиглах хувийн нээлттэй эхийн шийдэл хэлбэрээр ашиглах боломжтой.

VL2 нь VL1 дээр хэрэгжиж, түүгээр тээвэрлэгддэг. Гэсэн хэдий ч энэ нь VL1 төгсгөлийн цэгийн шифрлэлт, баталгаажуулалтыг өвлөн авахаас гадна итгэмжлэлд гарын үсэг зурах, баталгаажуулахын тулд тэгш хэмт бус түлхүүрүүдийг ашигладаг. VL1 нь одоо байгаа физик сүлжээний топологийн талаар санаа зовохгүйгээр VL2-г хэрэгжүүлэх боломжийг олгодог. Өөрөөр хэлбэл, холболт болон чиглүүлэлтийн үр ашигтай холбоотой асуудлууд нь VL1-ийн асуудал юм. VL2 виртуал сүлжээ болон VL1 замуудын хооронд ямар ч холболт байхгүй гэдгийг ойлгох нь чухал юм. Утастай LAN дахь VLAN мультиплексийн нэгэн адил олон сүлжээний гишүүнчлэлийг хуваалцдаг хоёр зангилаа хооронд нь зөвхөн нэг VL1 (виртуал кабель) зам байх болно.

VL2 сүлжээ (VLAN) бүрийг 64 битийн (16 арван арван) ZeroTier сүлжээний хаягаар тодорхойлдог бөгөөд энэ нь хянагчийн 40 битийн ZeroTier хаяг болон тухайн хянагчийн үүсгэсэн сүлжээг тодорхойлох 24 битийн дугаарыг агуулсан байдаг.

Network ID: 8056c2e21c123456
            |         |
            |         Network number on controller
            |
            ZeroTier address of controller

Зангилаа нь сүлжээнд нэгдэх эсвэл сүлжээний тохиргоог шинэчлэх хүсэлт гаргах үед сүлжээний хянагч руу сүлжээний тохиргооны хүсэлтийн мессежийг (VL1-ээр) илгээдэг. Дараа нь хянагч зангилааны VL1 хаягийг сүлжээнээс олж, түүнд тохирох гэрчилгээ, итгэмжлэл, тохиргооны мэдээллийг илгээдэг. VL2 виртуал сүлжээний үүднээс авч үзвэл VL1 ZeroTier хаягуудыг дэлхийн асар том виртуал шилжүүлэгч дээрх портын дугаар гэж үзэж болно.

Сүлжээний хянагчдаас тухайн сүлжээний гишүүн зангилаанд олгосон бүх итгэмжлэлүүд нь хянагчийн нууц түлхүүрээр гарын үсэг зурсан бөгөөд сүлжээний бүх оролцогчид үүнийг шалгах боломжтой. Итгэмжлэх жуух бичгүүд нь хянагчаас үүсгэсэн цагийн тэмдэгтэй бөгөөд хостын дотоод системийн цаг руу хандах шаардлагагүйгээр харьцангуй харьцуулах боломжийг олгодог. 

Итгэмжлэх жуух бичгийг зөвхөн эзэмшигчдэд нь олгодог бөгөөд дараа нь сүлжээний бусад зангилаатай холбогдохыг хүссэн үе тэнгийнхэн рүү илгээдэг. Энэ нь зангилаанууд дээр их хэмжээний итгэмжлэлийг кэш хийх эсвэл сүлжээний хянагчтай байнга холбоо барих шаардлагагүйгээр сүлжээг асар том хэмжээтэй болгох боломжийг олгодог.

ZeroTier сүлжээнүүд нь энгийн нийтлэх/захиалах системээр дамжуулан олон дамжуулалт түгээлтийг дэмждэг.

Баримт бичгийн холбоос

Зангилаа нь тодорхой түгээлтийн бүлгийн олон дамжуулалтыг хүлээн авахыг хүсэх үед тухайн бүлэгт гишүүнчлэлээ харилцаж буй сүлжээний бусад гишүүд болон сүлжээний хянагчтай сурталчилдаг. Зангилаа нь олон дамжуулалт илгээхийг хүсэх үед сүүлийн үеийн нийтлэлүүдийн кэш рүү нэгэн зэрэг нэвтэрч, үе үе нэмэлт нийтлэлүүдийг хүсэх болно.

Нэвтрүүлгийг (Ethernet ff: ff: ff: ff: ff: ff: ff) бүх оролцогчид бүртгүүлдэг олон дамжуулалтын бүлэг гэж үздэг. Шаардлагагүй бол урсгалыг багасгахын тулд сүлжээний түвшинд үүнийг идэвхгүй болгож болно. 

ZeroTier нь жинхэнэ Ethernet шилжүүлэгчийг дуурайдаг. Энэ баримт нь бидэнд хэрэгжүүлэх боломжийг олгодог үүсгэсэн виртуал сүлжээг бусад Ethernet сүлжээнүүдтэй (утастай LAN, WiFi, виртуал арын самбар гэх мэт) өгөгдлийн холбоосын түвшинд нэгтгэх - ердийн Ethernet гүүр ашиглан.

Гүүрний үүрэг гүйцэтгэхийн тулд сүлжээний хянагч нь хостыг ийм байдлаар зааж өгөх ёстой. Энгийн сүлжээний хостууд MAC хаягаас өөр эх сурвалжаас траффик илгээхийг хориглодог тул энэ схемийг аюулгүй байдлын үүднээс хэрэгжүүлдэг. Гүүрээр томилогдсон зангилаанууд нь олон дамжуулалтын алгоритмын тусгай горимыг ашигладаг бөгөөд энэ нь бүлгийн захиалга, бүх өргөн нэвтрүүлгийн траффик болон ARP хүсэлтийг хуулбарлах үед тэдэнтэй илүү түрэмгий, чиглэсэн харилцдаг. 

Мөн шилжүүлэгч нь нийтийн болон түр сүлжээ, QoS механизм, сүлжээний дүрмийн засварлагч үүсгэх чадвартай.

▍ Зангилаа:

ZeroTier One зөөврийн компьютер, ширээний компьютер, сервер, виртуал машин, контейнер дээр ажилладаг үйлчилгээ бөгөөд VPN клиенттэй адил виртуал сүлжээний портоор дамжуулан виртуал сүлжээнд холбогдох боломжийг олгодог. 

Үйлчилгээг суулгаж, эхлүүлсний дараа та виртуал сүлжээнд тэдгээрийн 16 оронтой хаягийг ашиглан холбогдох боломжтой. Сүлжээ бүр нь ердийн Ethernet порт шиг ажилладаг систем дээрх виртуал сүлжээний порт мэт харагдана.

ZeroTier One-ийг одоогоор дараах үйлдлийн систем болон системд ашиглах боломжтой.

Үйлдлийн систем:

  • Microsoft Windows - MSI суулгагч x86/x64
  • MacOS - PKG суулгагч
  • Apple-ийн Тагийн - App Store
  • Android - Тоглоомын дэлгүүр
  • Linux - DEB/RPM
  • FreeBSD-ийн - FreeBSD багц

ҮНЭ:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

Бусад:

  • Docker - докер файл
  • OpenWRT програм - олон нийтийн порт
  • Апп оруулах - SDK (libzt)

Дээр дурдсан бүх зүйлийг нэгтгэн дүгнэхэд ZeroTier нь таны физик, виртуал эсвэл үүлэн нөөцийг нийтлэг дотоод сүлжээнд нэгтгэх, VLAN-д хуваах чадвартай, нэг доголдолгүй байх маш сайн, хурдан хэрэгсэл гэдгийг би тэмдэглэх болно. .

Энэ бол Habr-д зориулсан ZeroTier-ийн тухай анхны нийтлэлийн форматын онолын хэсэг юм - энэ нь магадгүй бүх зүйл юм! Дараагийн өгүүллээр би хувийн нээлттэй эхийн GUI загвар бүхий VDS-ийг сүлжээний хянагч болгон ашиглах ZeroTier дээр суурилсан виртуал сүлжээний дэд бүтцийг бий болгохыг практикт харуулахаар төлөвлөж байна. 

Эрхэм уншигчид! Та төсөлдөө ZeroTier технологийг ашигладаг уу? Хэрэв тийм биш бол та нөөцөө холбоход ямар хэрэгслийг ашигладаг вэ?

Дэлхий гаригт зориулсан ухаалаг Ethernet шилжүүлэгч

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх