مجازیسازی شبکه
جواب کوتاه
مجازیسازی (Virtualization) یعنی ساختن رایانه، سوییچ، روتر یا فایروال با نرمافزار، روی یک سختافزار واقعی. نرمافزاری به نام هایپروایزر چند ماشین مجازی را روی یک سرور اجرا میکند؛ ماشینها با کارت شبکهی مجازی به یک سوییچ مجازی وصل میشوند. در NFV، کارکردهای شبکه مثل فایروال و پخش بار هم نرمافزارند. VXLAN شبکهی لایهی ۲ را از روی شبکهی IP به دیتاسنترهای دیگر میبرد.
نام
مجازیسازی به انگلیسی Virtualization است: ساختن چیزی با نرمافزار که پیشتر سختافزار جدایی بود. یک رایانهی واقعی با نرمافزار چند رایانه میشود؛ و یک شبکه، با نرمافزار، چند شبکه. «مجازیسازی شبکه» یعنی همین کار برای شبکه: سوییچ، روتر، فایروال و خود شبکه، به شکل نرمافزار.
در درس ابر دیدید سرور ابری و سرور مجازی هر دو ماشین مجازیاند. این درس میگوید این ماشینها و شبکههایشان چطور ساخته میشوند.
پنج کلمه
- هایپروایزر (hypervisor)نرمافزاری که ماشینهای مجازی را میسازد و اجرا میکند و به هر کدام سهمش را از سختافزار میدهد.
- میزبان و مهمانرایانهی واقعی میزبان (host) است؛ هر ماشین مجازی روی آن، مهمان (guest).
- ماشین مجازی (VM)رایانهای که با نرمافزار ساخته شده؛ سیستمعامل و برنامههای خودش را دارد، مثل یک رایانهی جدا.
- کارت شبکهی مجازی (VNIC)کارت شبکهای که با نرمافزار ساخته شده و ماشین مجازی را به سوییچ مجازی وصل میکند.
- NFVکارکردهای شبکه، مثل روتر و فایروال، به شکل نرمافزار روی سرورهای معمولی، بهجای دستگاه ویژه.
گوشی هوشمند
روزی چراغقوه، ماشینحساب، رادیو، دوربین و نقشه هر کدام چیز جدایی بودند. امروز همه برنامههایی روی یک گوشیاند. سیستم گوشی به هر برنامه سهمش را از حافظه و باتری میدهد و نمیگذارد برنامهها کار هم را خراب کنند.
مجازیسازی همین کار را با رایانهها و دستگاههای شبکه میکند. سرور واقعی گوشی است، ماشینهای مجازی برنامهها، و هایپروایزر همان سیستمی که به هر کدام سهمش را میدهد.
یک سرور بهجای چند دستگاه
هایپروایزر ماشینهای مجازی را میسازد و اجرا میکند. رایانهی واقعی «میزبان» است و هر ماشین مجازی «مهمان». روی یک سرور میشود همزمان چند سیستمعامل گوناگون داشت، هر کدام با کار خودش.
هایپروایزر نوع ۱ و ۲
هایپروایزرها دو نوعاند. این دستهبندی را رابرت گلدبرگ در ۱۹۷۳ گذاشت. فرقشان در این است که هایپروایزر کجا مینشیند:
مرز این دو همیشه روشن نیست؛ بعضی سیستمعاملها با یک بخش اضافه، خودشان هایپروایزر نوع ۱ میشوند.
ماشین مجازی و کانتینر
یک راه دیگر هم هست: کانتینر. ماشین مجازی یک رایانهی کامل است، با سیستمعامل خودش. کانتینرها سبکترند: همه روی یک سیستمعاملاند و هستهی آن را با هم قسمت میکنند؛ هر کدام فقط برنامه و چیزهای لازمش را دارد.
شبکه درون یک سرور
ماشینهای مجازی یک سرور هم باید با هم و با بیرون حرف بزنند. پس درون سرور یک شبکه با نرمافزار ساخته میشود: هر ماشین مجازی یک کارت شبکهی مجازی (VNIC) دارد، و این کارتها به یک سوییچ مجازی وصلاند که کار سوییچ واقعی را با نرمافزار میکند. سوییچ مجازی از راه کارت شبکهی واقعی سرور به شبکهی بیرون میرسد.
به این، مجازیسازی «درونی» میگویند. مجازیسازی «بیرونی» برعکس است: چند شبکه یا بخشی از آنها را یک شبکهی مجازی میکند، مثل VLAN. توسعهدهندهها هم با مجازیسازی شبکه، نرمافزارشان را در یک شبکهی شبیهسازیشده میآزمایند.
NFV: روتر و فایروال نرمافزاری
NFV کوتاهشدهی Network Function Virtualization است: «مجازیسازی کارکردهای شبکه». پیشتر هر کارکرد شبکه، مثل روتر، فایروال، پخش بار یا تشخیص نفوذ، یک دستگاه سختافزاری ویژه بود. در NFV، هر کارکرد یک «کارکرد شبکهی مجازی» (VNF) است: نرمافزاری در یک ماشین مجازی یا کانتینر، روی سرورهای معمولی بازار، یا در ابر.
سودش این است که شبکه انعطافپذیر میشود: خدمت تازه زودتر راه میافتد، و هزینهی خرید و نگهداری دستگاهها بسیار کم میشود؛ و دیگر به سختافزار یک سازندهی خاص بسته نیستید. NFV در اکتبر ۲۰۱۲ با مقالهی گروهی از گردانندههای مخابرات آغاز شد. یک قدم آنطرفتر، SDN است که کنترل کل شبکه را به نرمافزار میسپارد؛ درس خودش را در ایستگاه «کار با تجهیزات و خودکارسازی» دارد.
VXLAN: شبکهی لایهی ۲، از روی IP
VLAN یک شمارهی ۱۲ بیتی دارد، پس روی یک شبکه حداکثر ۴۰۹۴ شبکهی جدا میشود ساخت. برای ابری با هزاران مشتری، این کم است. VXLAN (Virtual Extensible LAN) شمارهی ۲۴ بیتی دارد، یعنی حدود ۱۶ میلیون شبکه.
کارش این است: هر قاب اترنت لایهی ۲ را درون یک بستهی UDP میگذارد (پورت پیشفرض ۴۷۸۹) و از روی شبکهی IP میفرستد؛ مثل نامهای که درون پاکت دیگری گذاشتهاند؛ همان کپسولهسازی که پیشتر دیدید. پس دو ماشین مجازی در دو دیتاسنتر دور از هم، میتوانند در یک شبکهی لایهی ۲ باشند. دو سر این تونل VTEP نام دارند و میتوانند در هایپروایزر یا یک سوییچ واقعی باشند.
چرا مجازیسازی
- دستگاه کمتر: یک سرور کار چند دستگاه را میکند؛ مثل گوشیای که جای پنج دستگاه را گرفت.
- زودتر: ماشین یا شبکهی تازه را با نرمافزار میسازید، نه با خریدن و نصب کردن دستگاه.
- هزینهی کمتر: سرور مجازی از سرور فیزیکی هماندازه ارزانتر است، و NFV هزینهی دستگاههای ویژه را کم میکند.
- پایهی ابر: ابر با هایپروایزر ماشینهای مجازی را اجرا میکند و با شبکهی مجازی، مشتریها را از هم جدا نگه میدارد.
یک هزینه هم دارد: چون سختافزار مشترک است، اگر ماشین دیگری روی همان سرور پرکار باشد، ماشین شما ممکن است کندتر شود.
روشن کردن مجازیسازی در رایانهی خودتان
پردازندههای رایانههای امروزی از ۲۰۰۵ و ۲۰۰۶ پشتیبانی سختافزاری از مجازیسازی دارند. ولی در بعضی رایانهها، این ویژگی باید اول در تنظیمات BIOS روشن شود تا برنامههای مجازیسازی بتوانند از آن استفاده کنند:
کمی تاریخ
مجازیسازی تازه نیست. نخستین هایپروایزرها در دههی ۱۹۶۰ برای رایانههای بزرگ ساخته شدند، و یکی از آنها از ژانویهی ۱۹۶۷ به کار افتاد. کلمهی «هایپروایزر» حدود ۱۹۷۰ پیدا شد: از «supervisor» (نام قدیمی هستهی سیستمعامل)، یعنی «ناظرِ ناظرها». VXLAN در ۲۰۱۴ در RFC 7348 نوشته شد.
سه اشتباه
- «ماشین مجازی همان شبیهساز است.»ماشین مجازی بیشتر دستورها را روی خود سختافزار اجرا میکند؛ هایپروایزر فقط سهم هر کدام را میدهد و جدا نگهشان میدارد.
- «ماشینهای مجازی روی یک سرور هیچ اثری روی هم ندارند.»سختافزار مشترک است؛ کارایی هر ماشین گاهی به بار ماشینهای دیگر روی همان سختافزار بستگی دارد.
- «شبکهی مجازی یعنی شبکهی واقعی نیست.»شبکهی مجازی همان کارهای شبکه را میکند، فقط با نرمافزار ساخته شده؛ زیرش هنوز کابل و سوییچ واقعی هست.
جمعبندی. آنچه از این درس با خودتان میبرید.
- هایپروایزر ماشینهای مجازی را روی یک سختافزار میسازد و اجرا میکند.
- نوع ۱ مستقیم روی سختافزار؛ نوع ۲ روی یک سیستمعامل معمولی.
- ماشین مجازی سیستمعامل خودش را دارد؛ کانتینرها یک هسته را قسمت میکنند.
- درون یک سرور، کارت شبکهی مجازی و سوییچ مجازی شبکه را میسازند.
- NFV: روتر، فایروال و پخش بار به شکل نرمافزار روی سرور معمولی.
- VXLAN: قاب لایهی ۲ درون UDP؛ حدود ۱۶ میلیون شبکه بهجای ۴۰۹۴.
خودتان را بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را میبینید: چند درست، چند نادرست.