سوئیچ اترنت هوشمند برای سیاره زمین

سوئیچ اترنت هوشمند برای سیاره زمین
"شما می توانید یک راه حل (حل یک مشکل) را به روش های مختلف ایجاد کنید، اما گران ترین و/یا محبوب ترین روش همیشه موثرترین نیست!"

مقدمه

حدود سه سال پیش، در فرآیند توسعه یک مدل از راه دور برای بازیابی اطلاعات فاجعه، با یک مانع روبرو شدم که بلافاصله متوجه نشدم - فقدان اطلاعات در مورد راه حل های اصلی جدید برای مجازی سازی شبکه در منابع اجتماعی. 

الگوریتم برای مدل توسعه یافته به صورت زیر برنامه ریزی شد: 

  1. کاربر راه دوری که با من تماس گرفته است، رایانه‌اش زمانی از بوت شدن امتناع کرد و پیام «دیسک سیستم شناسایی نشد/فرمت نشده» را نمایش می‌دهد، آن را با استفاده از USB life بارگیری می‌کند. 
  2. در طول فرآیند بوت، سیستم به طور خودکار به یک شبکه محلی امن و خصوصی متصل می شود که علاوه بر خود شامل ایستگاه کاری مدیر، در این مورد یک لپ تاپ و یک گره NAS است. 
  3. سپس من متصل می شوم - یا برای احیای پارتیشن های دیسک، یا برای استخراج داده ها از آنجا.

در ابتدا، من این مدل را با استفاده از یک سرور VPN بر روی یک روتر محلی در یک شبکه تحت کنترل خود پیاده‌سازی کردم، سپس روی یک VDS اجاره‌ای. اما، همانطور که اغلب اتفاق می‌افتد و طبق قانون اول چیشولم، اگر باران ببارد، شبکه ارائه‌دهنده اینترنت از کار می‌افتد، سپس اختلافات بین نهادهای تجاری باعث می‌شود که ارائه‌دهنده خدمات «انرژی» خود را از دست بدهد...

بنابراین، تصمیم گرفتم ابتدا الزامات اساسی را که ابزار لازم باید برآورده کند، تدوین کنم. اولین مورد تمرکززدایی است. ثانیا با توجه به اینکه من چندین یو اس بی لایف از این دست دارم، هر کدام یک شبکه ایزوله جداگانه دارند. خب، ثالثا، اتصال سریع به شبکه دستگاه های مختلف و مدیریت ساده آنها، از جمله در صورتی که لپ تاپ من نیز قربانی قانون ذکر شده در بالا شود.

بر این اساس و با صرف دو ماه و نیم روی تحقیقات عملی چندین گزینه نه چندان مناسب، با خطر و ریسک خودم تصمیم گرفتم ابزار دیگری را از یک استارتاپ ناشناخته در آن زمان به نام ZeroTier امتحان کنم. که بعداً هرگز پشیمان نشدم.

در این تعطیلات سال نو، در تلاش برای درک اینکه آیا وضعیت محتوا از آن لحظه به یاد ماندنی تغییر کرده است یا خیر، یک ممیزی انتخابی برای در دسترس بودن مقالات در این موضوع با استفاده از Habr به عنوان منبع انجام دادم. برای پرس و جو "ZeroTier" در نتایج جستجو فقط سه مقاله وجود دارد که به آن اشاره می کند، و نه یک مقاله با حداقل توضیح مختصر. و این در حالی است که در میان آنها ترجمه مقاله ای وجود دارد که توسط خود بنیانگذار ZeroTier، Inc. - آدام ایریمنکو.

نتایج ناامیدکننده بود و مرا بر آن داشت تا درباره ZeroTier با جزئیات بیشتری صحبت کنم، و «جویندگان» مدرن را از رفتن به همان مسیری که من انتخاب کردم نجات داد.

پس تو چی هستی؟

توسعه دهنده ZeroTier را به عنوان یک سوئیچ اترنت هوشمند برای سیاره زمین قرار می دهد. 

«این یک هایپروایزر شبکه توزیع شده است که بر روی یک شبکه همتا به همتا (P2P) جهانی امن از نظر رمزنگاری ساخته شده است. ابزاری شبیه به سوئیچ SDN شرکتی که برای سازماندهی شبکه‌های مجازی بر روی شبکه‌های فیزیکی، چه محلی و چه جهانی، با قابلیت اتصال تقریباً به هر برنامه یا دستگاهی طراحی شده است.»

این بیشتر یک توضیح بازاریابی است، اکنون در مورد ویژگی های تکنولوژیکی.

▍ هسته: 

ZeroTier Network Hypervisor یک موتور مجازی سازی شبکه مستقل است که یک شبکه اترنت مشابه VXLAN را در بالای یک شبکه همتا به همتا (P2P) رمزگذاری شده جهانی تقلید می کند.

پروتکل های مورد استفاده در ZeroTier اصلی هستند، اگرچه از نظر ظاهری شبیه به VXLAN و IPSec هستند و از دو لایه مفهومی مجزا، اما نزدیک به هم تشکیل شده اند: VL1 و VL2.

پیوند به مستندات

▍VL1 یک لایه انتقال همتا به همتا (P2P) است که نوعی "کابل مجازی" است.

"یک مرکز داده جهانی به یک "کمد جهانی" کابل کشی نیاز دارد."

در شبکه‌های معمولی، L1 (لایه 1 OSI) به کابل‌ها یا رادیوهای بی‌سیم واقعی که داده‌ها را حمل می‌کنند و تراشه‌های دستگاه فرستنده گیرنده فیزیکی که آن را تعدیل و کاهش می‌دهند، اطلاق می‌شود. VL1 یک شبکه همتا به همتا (P2P) است که همین کار را انجام می دهد و از رمزگذاری، احراز هویت و سایر ترفندهای شبکه برای سازماندهی کابل های مجازی در صورت نیاز استفاده می کند.

علاوه بر این، این کار را به صورت خودکار، سریع و بدون دخالت کاربر که یک گره ZeroTier جدید راه اندازی می کند، انجام می دهد.

برای رسیدن به این هدف، VL1 مشابه سیستم نام دامنه سازماندهی شده است. در قلب شبکه، گروهی از سرورهای ریشه بسیار در دسترس قرار دارند که نقش آنها شبیه به سرورهای نام ریشه DNS است. در حال حاضر، سرورهای ریشه اصلی (سیاره ای) تحت کنترل توسعه دهنده هستند - ZeroTier, Inc. و به صورت رایگان ارائه می شود. 

با این حال، امکان ایجاد سرورهای ریشه سفارشی (luns) وجود دارد که به شما امکان می دهد:

  • کاهش وابستگی به زیرساخت ZeroTier، Inc. پیوند به مستندات
  • افزایش بهره وری با به حداقل رساندن تاخیرها؛ 
  • در صورت قطع شدن اتصال اینترنت به کار عادی خود ادامه دهید.

در ابتدا، گره ها بدون اتصال مستقیم به یکدیگر راه اندازی می شوند. 

هر Peer در VL1 دارای یک آدرس ZeroTier 40 بیتی (10 هگزادسیمال) منحصر به فرد است که بر خلاف آدرس های IP، یک شناسه رمزگذاری شده است که حاوی اطلاعات مسیریابی نیست. این آدرس از قسمت عمومی جفت کلید عمومی/خصوصی محاسبه می شود. آدرس، کلید عمومی و کلید خصوصی یک گره با هم هویت آن را تشکیل می دهند.

Member ID: df56c5621c  
            |
            ZeroTier address of node

در مورد رمزگذاری، این دلیلی برای مقاله جداگانه است.

پیوند به مستندات

برای برقراری ارتباط، همتایان ابتدا بسته‌ها را به درخت سرورهای ریشه ارسال می‌کنند و همانطور که این بسته‌ها در شبکه حرکت می‌کنند، ایجاد تصادفی کانال‌های فوروارد در طول مسیر را آغاز می‌کنند. درخت دائماً در تلاش است "خود به خود فرو بریزد" تا خود را برای نقشه مسیری که ذخیره می کند بهینه کند.

مکانیسم برقراری ارتباط همتا به همتا به شرح زیر است:

سوئیچ اترنت هوشمند برای سیاره زمین

  1. گره A می خواهد یک بسته را به گره B بفرستد، اما از آنجایی که مسیر مستقیم را نمی داند، آن را به سمت بالا به Node R (ماه، سرور اصلی کاربر) می فرستد.
  2. اگر گره R ارتباط مستقیمی با گره B داشته باشد، بسته را به آنجا ارسال می کند. در غیر این صورت، بسته را قبل از رسیدن به ریشه های سیاره ای به سمت بالا می فرستد.ریشه های سیاره ای در مورد همه گره ها می دانند، بنابراین بسته در صورت آنلاین بودن در نهایت به گره B می رسد.
  3. گره R همچنین پیامی به نام "rendezvous" را به گره A ارسال می کند که حاوی نکاتی در مورد اینکه چگونه می تواند به گره B برسد. در همین حال، سرور ریشه که بسته را به گره B ارسال می کند، یک "rendezvous" ارسال می کند و به آن اطلاع می دهد که چگونه می تواند به گره B برسد. رسیدن به گره A.
  4. گره‌های A و B پیام‌های قرار ملاقات خود را دریافت می‌کنند و سعی می‌کنند پیام‌های آزمایشی را برای یکدیگر ارسال کنند تا هرگونه NAT یا فایروال‌های حالتی را که در طول مسیر با آنها مواجه می‌شوند، نقض کنند. اگر این کار کرد، یک اتصال مستقیم برقرار می شود و بسته ها دیگر به عقب و جلو نمی روند.

اگر اتصال مستقیم برقرار نشود، ارتباط از طریق رله ادامه خواهد یافت و تلاش برای اتصال مستقیم تا حصول نتیجه موفقیت آمیز ادامه خواهد یافت. 

VL1 همچنین دارای ویژگی‌های دیگری برای ایجاد اتصال مستقیم است، از جمله کشف همتایان LAN، پیش‌بینی پورت برای پیمایش متقارن IPv4 NAT، و نگاشت پورت صریح با استفاده از uPnP و/یا NAT-PMP در صورت موجود بودن در شبکه محلی فیزیکی محلی.

→ پیوند به مستندات

▍VL2 یک پروتکل مجازی سازی شبکه اترنت مانند VXLAN با توابع مدیریت SDN است. محیط ارتباطی آشنا برای سیستم عامل و برنامه های کاربردی ...

برخلاف VL1، ایجاد شبکه‌های VL2 (VLAN) و اتصال گره‌ها به آن‌ها و همچنین مدیریت آن‌ها، مستلزم مشارکت مستقیم کاربر است. او می تواند این کار را با استفاده از کنترلر شبکه انجام دهد. در اصل، این یک گره معمولی ZeroTier است، که در آن عملکردهای کنترلر به دو صورت کنترل می شوند: یا به طور مستقیم، با تغییر فایل ها، یا، همانطور که توسعه دهنده قویاً توصیه می کند، با استفاده از یک API منتشر شده. 

این روش مدیریت شبکه‌های مجازی ZeroTier برای افراد عادی چندان راحت نیست، بنابراین چندین رابط کاربری گرافیکی وجود دارد:
 

  • یکی از توسعه‌دهنده ZeroTier، به‌عنوان راه‌حل عمومی ابری SaaS با چهار طرح اشتراک، از جمله رایگان، اما محدود در تعداد دستگاه‌های مدیریت‌شده و سطح پشتیبانی، موجود است.
  • دومی از یک توسعه‌دهنده مستقل است که از نظر عملکرد تا حدودی ساده شده است، اما به عنوان یک راه‌حل منبع باز خصوصی برای استفاده در محل یا منابع ابری موجود است.

VL2 در بالای VL1 پیاده سازی شده و توسط آن منتقل می شود. با این حال، رمزگذاری و تأیید اعتبار نقطه پایانی VL1 را به ارث می برد و همچنین از کلیدهای نامتقارن خود برای امضا و تأیید اعتبار استفاده می کند. VL1 به شما امکان می دهد VL2 را بدون نگرانی در مورد توپولوژی شبکه فیزیکی موجود پیاده سازی کنید. یعنی مشکلات اتصال و بازده مسیریابی مشکلات VL1 هستند. درک این نکته مهم است که هیچ ارتباطی بین شبکه های مجازی VL2 و مسیرهای VL1 وجود ندارد. مشابه مالتی پلکس شدن VLAN در یک شبکه LAN سیمی، دو گره که چندین عضویت شبکه را به اشتراک می گذارند، همچنان تنها یک مسیر VL1 (کابل مجازی) بین خود دارند.

هر شبکه VL2 (VLAN) با یک آدرس شبکه ZeroTier 64 بیتی (16 هگزادسیمال) شناسایی می شود که شامل آدرس ZeroTier 40 بیتی کنترلر و یک عدد 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) به عنوان یک گروه چندپخشی تلقی می شود که همه شرکت کنندگان در آن مشترک می شوند. در صورت عدم نیاز می توان آن را در سطح شبکه غیرفعال کرد تا ترافیک را کاهش دهد. 

ZeroTier یک سوئیچ اترنت واقعی را شبیه سازی می کند. این واقعیت به ما اجازه می دهد که انجام دهیم ترکیب شبکه های مجازی ایجاد شده با سایر شبکه های اترنت (LAN سیمی، وای فای، صفحه پشتی مجازی و غیره) در سطح پیوند داده - با استفاده از یک پل اترنت معمولی.

برای ایفای نقش به عنوان یک پل، کنترل کننده شبکه باید یک میزبان را به عنوان آن تعیین کند. این طرح به دلایل امنیتی پیاده سازی شده است، زیرا میزبان های معمولی شبکه مجاز به ارسال ترافیک از منبعی غیر از آدرس MAC خود نیستند. گره هایی که به عنوان پل تعیین می شوند نیز از حالت خاصی از الگوریتم چندپخشی استفاده می کنند که در هنگام اشتراک های گروهی و تکرار تمام ترافیک پخش و درخواست های ARP با آنها به صورت تهاجمی و هدفمند تر تعامل می کند. 

سوئیچ همچنین قابلیت ایجاد شبکه های عمومی و ad-hoc، مکانیزم QoS و ویرایشگر قوانین شبکه را دارد.

▍گره:

ZeroTier One سرویسی است که روی لپ‌تاپ‌ها، رایانه‌های رومیزی، سرورها، ماشین‌های مجازی و کانتینرها اجرا می‌شود و اتصالات را به یک شبکه مجازی از طریق یک پورت شبکه مجازی، شبیه به سرویس گیرنده VPN، فراهم می‌کند. 

پس از نصب و راه اندازی سرویس، می توانید با استفاده از آدرس های 16 رقمی به شبکه های مجازی متصل شوید. هر شبکه به عنوان یک پورت شبکه مجازی روی سیستم ظاهر می شود که درست مانند یک پورت اترنت معمولی عمل می کند.

ZeroTier One در حال حاضر برای سیستم عامل ها و سیستم های زیر در دسترس است.

سیستم عامل:

  • ویندوز مایکروسافت - نصب کننده MSI x86/x64
  • از MacOS - نصب کننده PKG
  • اپل در iOS - اپ استور
  • آندروید - فروشگاه Play
  • لینـوکــس - DEB/RPM
  • FreeBSD - بسته FreeBSD

ناس:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

دیگران:

  • کارگر بارانداز - فایل داکر
  • OpenWRT - بندر جامعه
  • تعبیه برنامه - SDK (libzt)

برای خلاصه کردن همه موارد فوق، باید توجه داشته باشم که ZeroTier یک ابزار عالی و سریع برای ترکیب منابع فیزیکی، مجازی یا ابری شما در یک شبکه محلی مشترک با قابلیت تقسیم آن به VLAN و عدم وجود یک نقطه خرابی است. .

این برای بخش تئوری در قالب مقاله اول در مورد ZeroTier برای Habr است - احتمالاً همین! در مقاله بعدی، من قصد دارم در عمل ایجاد یک زیرساخت شبکه مجازی مبتنی بر ZeroTier را نشان دهم، که در آن یک VDS با یک قالب GUI منبع باز خصوصی به عنوان یک کنترل کننده شبکه استفاده خواهد شد. 

خوانندگان عزیز! آیا از فناوری ZeroTier در پروژه های خود استفاده می کنید؟ اگر نه، از چه ابزارهایی برای شبکه کردن منابع خود استفاده می کنید؟

سوئیچ اترنت هوشمند برای سیاره زمین

منبع: www.habr.com

اضافه کردن نظر