پروتکل PXE: راهنمای کامل راهاندازی سیستم از طریق شبکه
Preboot eXecution Environment یا به اختصار PXE، یکی از فناوریهای پایهای و در عین حال حیاتی در زیرساختهای مدرن فناوری اطلاعات است که فرآیند راهاندازی و استقرار سیستمعامل را از طریق شبکه ممکن میسازد. این پروتکل که در اواخر دهه ۱۹۹۰ توسط Intel معرفی شد، به سرعت به استانداردی صنعتی برای نصب خودکار سیستمعامل، عیبیابی از راه دور و مدیریت متمرکز سرورها و ایستگاههای کاری تبدیل گردید. در این مقاله، به بررسی عمیق پروتکل PXE، نحوه عملکرد آن، اجزای تشکیلدهنده، کاربردها و جایگاه آن در دیتاسنترهای امروزی میپردازیم.
PXE چیست و چرا اهمیت دارد؟
در محیطهای سازمانی که دهها یا حتی صدها سرور و ایستگاه کاری باید بهطور همزمان راهاندازی و پیکربندی شوند، نصب دستی سیستمعامل از طریق DVD یا USB نهتنها زمانبر و پرهزینه است، بلکه مستعد خطاهای انسانی نیز میباشد. PXE این مشکل را با ارائه یک مکانیزم استاندارد برای بوت کردن کامپیوتر از طریق شبکه—بدون نیاز به هیچ رسانه ذخیرهسازی محلی—حل میکند.
به زبان ساده، PXE به یک کامپیوتر اجازه میدهد پیش از بارگذاری سیستمعامل، از طریق کارت شبکه خود با یک سرور مرکزی ارتباط برقرار کند، یک فایل اجرایی کوچک (Network Bootstrap Program) را دانلود نماید و سپس مراحل نصب یا راهاندازی سیستمعامل را از طریق شبکه ادامه دهد. این فرآیند کاملاً خودکار است و میتوان آن را برای استقرار همزمان روی چندین دستگاه پیکربندی کرد. PXE از پروتکلهای استاندارد شبکه شامل DHCP، TFTP و IP/UDP استفاده میکند و میتواند روی انواع شبکههای اترنت—از ۱۰ مگابیت تا ۱۰۰ گیگابیت—پیادهسازی شود.
تاریخچه و تکامل PXE
داستان PXE به اواخر دهه ۱۹۹۰ برمیگردد، زمانی که شرکت Intel به عنوان بخشی از استاندارد Wired for Management (WfM)، نسخه ۲.۰ این پروتکل را در سال ۱۹۹۸ معرفی کرد. WfM یک ابتکار صنعتی بود که هدف آن کاهش هزینه کل مالکیت (TCO) کامپیوترهای شخصی از طریق مدیریت از راه دور، بوت شبکهای و عیبیابی خودکار بود. نسخه ۲.۱ PXE که در سال ۱۹۹۹ منتشر شد، بهبودهایی در امنیت و انعطافپذیری ایجاد کرد و به سرعت توسط تولیدکنندگان BIOS—مانند Phoenix، AMI و Award—پیادهسازی گردید.
با ظهور UEFI (Unified Extensible Firmware Interface) به عنوان جانشین BIOS سنتی، پروتکل PXE نیز تکامل یافت. UEFI PXE از پروتکلهای IPv4 و IPv6 پشتیبانی میکند، امکان انتقال فایلهای بزرگتر را از طریق TFTP فراهم میسازد و با Network Stack داخلی UEFI ادغام شده است. امروزه تقریباً تمام سرورهای سازمانی، کامپیوترهای شخصی و حتی بسیاری از دستگاههای IoT از PXE پشتیبانی میکنند.

اجزای اصلی یک زیرساخت PXE
برای راهاندازی یک محیط PXE، چهار جزء اصلی مورد نیاز است که هر یک نقشی حیاتی در فرآیند بوت شبکهای ایفا میکنند:
سرور DHCP (Dynamic Host Configuration Protocol): اولین نقطه تماس کلاینت PXE با شبکه، سرور DHCP است. این سرور نهتنها یک آدرس IP به کلاینت اختصاص میدهد، بلکه اطلاعات حیاتی دیگری—شامل آدرس IP سرور TFTP و نام فایل bootstrap—را نیز از طریق گزینههای ویژه DHCP (گزینههای ۶۶ و ۶۷) در اختیار کلاینت قرار میدهد. بدون پیکربندی صحیح این گزینهها، فرآیند PXE نمیتواند آغاز شود. در شبکههای پیچیدهتر که سرور DHCP و سرور PXE روی ماشینهای جداگانه قرار دارند، معمولاً از DHCP Proxy یا IP Helper برای هدایت درخواستهای PXE به سرور مناسب استفاده میشود.
سرور TFTP (Trivial File Transfer Protocol): پس از دریافت اطلاعات از DHCP، کلاینت PXE با استفاده از پروتکل TFTP—که یک پروتکل ساده و کمحجم برای انتقال فایل است—فایل Network Bootstrap Program (معمولاً با نام pxelinux.0 یا bootmgfw.efi) را از سرور دانلود میکند. TFTP به دلیل سادگی و حجم کم، برای این مرحله اولیه ایدهآل است، اما برای انتقال فایلهای بزرگتر مانند تصاویر سیستمعامل، از پروتکلهای دیگری مانند HTTP یا NFS استفاده میشود.
Network Bootstrap Program (NBP): این فایل اجرایی کوچک، مغز متفکر فرآیند PXE است. NBP پس از بارگذاری در حافظه کلاینت، کنترل را به دست گرفته و مراحل بعدی—مانند نمایش منوی بوت، دریافت پارامترهای نصب و بارگذاری هسته سیستمعامل—را مدیریت میکند. معروفترین پیادهسازیهای NBP عبارتند از SYSLINUX/PXELINUX برای محیطهای BIOS-based و GRUB2 یا systemd-boot برای محیطهای UEFI.
سرور نصب (Installation Server): پس از بارگذاری NBP و هسته اولیه، کلاینت نیاز به دسترسی به فایلهای اصلی سیستمعامل دارد. این فایلها معمولاً روی یک سرور HTTP، NFS یا SMB قرار دارند و توسط نصبکننده سیستمعامل (مانند Kickstart برای RHEL، Preseed برای Ubuntu یا Windows Deployment Services برای ویندوز) دانلود و نصب میشوند.
فرآیند PXE Boot گامبهگام: از روشن شدن تا بارگذاری سیستمعامل
در ادامه، فرآیند کامل بوت PXE را بهصورت گامبهگام و از لحظه روشن شدن سرور تا شروع نصب سیستمعامل دنبال میکنیم. این فرآیند شامل هشت مرحله اصلی است که هر یک وابسته به موفقیت مرحله قبل میباشد:
مرحله ۱: روشن شدن و POST
وقتی سرور یا ایستگاه کاری روشن میشود، ابتدا فرآیند Power-On Self-Test (POST) اجرا میگردد. در این مرحله، سختافزارهای اصلی—پردازنده، حافظه، گذرگاهها—آزمایش میشوند و در صورت سلامت، کنترل به میانافزار (BIOS یا UEFI) واگذار میگردد.
مرحله ۲: تشخیص ترتیب بوت
میانافزار با توجه به تنظیمات Boot Order که در CMOS/UEFI ذخیره شده، تصمیم میگیرد از کدام دستگاه بوت کند. اگر “Network Boot” یا “PXE Boot” در اولویت قرار داشته باشد (یا سایر گزینهها ناموفق باشند)، فرآیند PXE آغاز میشود.
مرحله ۳: بارگذاری Universal Network Driver Interface (UNDI)
میانافزار، یک درایور شبکه عمومی به نام UNDI را از حافظه ROM کارت شبکه بارگذاری میکند. این درایور یک API استاندارد برای دسترسی به سختافزار شبکه فراهم میکند و به کد PXE اجازه میدهد بدون نیاز به درایور اختصاصی، با کارت شبکه ارتباط برقرار کند.
مرحله ۴: درخواست DHCP (DHCP Discover)
کلاینت یک بسته DHCP Discover به آدرس Broadcast (255.255.255.255) ارسال میکند. این بسته علاوه بر درخواست آدرس IP، حاوی گزینههای ویژهای است که نشان میدهد کلاینت قابلیت PXE دارد (DHCP Option 60 با مقدار “PXEClient”).
مرحله ۵: پاسخ DHCP (DHCP Offer)
سرور DHCP با یک بسته DHCP Offer پاسخ میدهد که شامل موارد زیر است: یک آدرس IP برای کلاینت، ماسک زیرشبکه، دروازه پیشفرض، آدرس IP سرور TFTP (از طریق گزینه ۶۶ یا فیلد sname در بسته DHCP)، و نام فایل bootstrap (از طریق گزینه ۶۷ یا فیلد file).
مرحله ۶: دانلود NBP از طریق TFTP
کلاینت با استفاده از اطلاعات دریافتی، یک اتصال TFTP به سرور مشخصشده برقرار کرده و فایل NBP را دانلود میکند. این فایل کوچک—معمولاً بین ۲۰ تا ۵۰ کیلوبایت—در حافظه بارگذاری شده و اجرا میشود.
مرحله ۷: اجرای NBP و بارگذاری منوی بوت
NBP اجرا شده و معمولاً یک منوی بوت نمایش میدهد که به کاربر امکان انتخاب سیستمعامل یا گزینههای عیبیابی را میدهد. در استقرارهای خودکار، این مرحله میتواند بدون دخالت کاربر انجام شود.
مرحله ۸: بارگذاری هسته و نصب سیستمعامل
پس از انتخاب گزینه مورد نظر، NBP هسته سیستمعامل (vmlinuz برای لینوکس یا bootmgr.exe برای ویندوز) و فایل initrd اولیه را از طریق TFTP یا HTTP دانلود کرده و به آنها کنترل را واگذار میکند. از این نقطه به بعد، نصبکننده سیستمعامل مسئولیت ادامه فرآیند را بر عهده دارد و فایلهای اصلی را از سرور نصب (معمولاً از طریق HTTP یا NFS) دریافت میکند.
پروتکلهای مکمل: فراتر از TFTP
اگرچه TFTP برای انتقال فایلهای اولیه مانند NBP کافی است، اما سرعت پایین و عدم پشتیبانی از احراز هویت، آن را برای انتقال فایلهای بزرگتر—مانند تصاویر سیستمعامل با حجم چند گیگابایت—نامناسب میسازد. به همین دلیل، در پیادهسازیهای مدرن PXE، از پروتکلهای مکمل نیز استفاده میشود.
| HTTP Boot | iSCSI Boot | NFS Root |
HTTP Boot: در محیطهای UEFI، پروتکل HTTP Boot جایگزینی مدرن برای TFTP است که سرعت انتقال بسیار بالاتری دارد و از احراز هویت (از طریق HTTPS) نیز پشتیبانی میکند. UEFI میتواند مستقیماً یک URL مشخصشده توسط DHCP (گزینه ۵۹) را دریافت کرده و فایلهای بوت را از طریق HTTP دانلود کند.
iSCSI Boot: نوع پیشرفتهتری از بوت شبکهای است که در آن، کلاینت بهجای دانلود فایلهای سیستمعامل، مستقیماً به یک LUN (Logical Unit Number) روی SAN متصل میشود و از آن بوت میکند. در این روش، سیستمعامل روی دیسک راه دور نصب شده و کلاینت بدون هیچ دیسک محلی (Diskless) کار میکند. iSCSI Boot نیازمند پشتیبانی سختافزاری در کارت شبکه (iSCSI HBA یا قابلیت iSCSI Boot Firmware Table) است.
NFS Root: در محیطهای لینوکس، میتوان از NFS به عنوان root filesystem استفاده کرد. در این روش، هسته سیستمعامل از طریق PXE بارگذاری میشود، اما فایلسیستم ریشه بهجای دیسک محلی، روی یک اشتراک NFS قرار دارد. این روش در کلاسترهای HPC و محیطهای Diskless رایج است.
ابزارهای پیادهسازی PXE در لینوکس و ویندوز
در محیطهای لینوکس، محبوبترین ابزار برای راهاندازی سرور PXE، مجموعه SYSLINUX/PXELINUX است که توسط H. Peter Anvin توسعه داده شده است. این مجموعه شامل یک Bootloader سبک و منعطف است که از منوهای گرافیکی، فایلهای پیکربندی سلسلهمراتبی و پروتکلهای مختلف انتقال پشتیبانی میکند. ابزار dnsmasq نیز یک گزینه سبک و محبوب است که هر سه نقش DHCP، TFTP و DNS را در یک سرویس واحد ادغام میکند و برای شبکههای کوچک تا متوسط بسیار مناسب است.
در محیطهای ویندوز، Windows Deployment Services (WDS) راهکار رسمی مایکروسافت برای استقرار PXE است. WDS با Active Directory ادغام میشود، از Multicast Deployment برای نصب همزمان روی چندین کلاینت پشتیبانی میکند و امکان استقرار تصاویر Windows Imaging Format (WIM) را فراهم میسازد. Microsoft Deployment Toolkit (MDT) نیز یک لایه اتوماسیون روی WDS اضافه میکند که امکان ایجاد دنبالههای وظایف (Task Sequences) پیچیده و سفارشیسازی کامل فرآیند نصب را فراهم میکند.
کاربردهای PXE در دیتاسنترهای مدرن
کاربرد اصلی پروتکل PXE نصب خودکار و بدون دخالت انسان سیستمعامل روی دهها سرور بهطور همزمان است. همچنین در معماریهای Diskless، سرورها بدون دیسک محلی مستقیماً از شبکه بوت میشوند. از دیگر کاربردهای آن میتوان به عیبیابی سیستمهای خراب با بوت کردن ابزارهای Live از طریق شبکه، و بهروزرسانی متمرکز Firmware و BIOS سرورها بدون نیاز به مراجعه فیزیکی اشاره کرد.
کاربردهای پروتکل PXE در دیتاسنترها
استقرار خودکار سیستمعامل
رایجترین کاربرد PXE، نصب خودکار و بدون دخالت انسان سیستمعامل روی دهها یا صدها سرور بهطور همزمان است. با ترکیب PXE و ابزارهایی مانند Kickstart (برای RHEL/CentOS)، Preseed (برای Ubuntu/Debian) یا WDS (برای ویندوز)، میتوان فرآیند نصب را کاملاً خودکار کرد. این روش نهتنها سرعت استقرار را افزایش میدهد، بلکه با حذف خطاهای انسانی، یکنواختی پیکربندی را در کل ناوگان تضمین میکند.
بهروزرسانی Firmware و BIOS
برخی از سرورهای سازمانی—از جمله HPE ProLiant—از PXE برای بهروزرسانی Firmware، BIOS و سایر قطعات سختافزاری از طریق شبکه استفاده میکنند. این قابلیت که معمولاً از طریق Intelligent Provisioning یا ابزارهای مدیریتی مانند HPE SUM (Smart Update Manager) انجام میشود، به مدیران اجازه میدهد بدون مراجعه فیزیکی به هر سرور، تمام Firmwareها را بهروز نگه دارند.
محیطهای Diskless و Thin Client
در معماری Diskless، سرورها یا ایستگاههای کاری هیچ دیسک محلی ندارند و سیستمعامل را مستقیماً از شبکه بارگذاری میکنند. این رویکرد مزایای متعددی دارد: کاهش هزینههای سختافزاری، مدیریت متمرکز سیستمعامل، افزایش امنیت (حذف خطر سرقت فیزیکی دادهها) و کاهش مصرف برق. کلاسترهای HPC، آزمایشگاههای دانشگاهی و کیوسکهای عمومی از جمله محیطهایی هستند که از این معماری بهره میبرند.
عیبیابی و بازیابی سیستم
پروتکل PXE در سیستمها امکان بوت کردن یک سیستمعامل Live (مانند Clonezilla، SystemRescue یا WinPE) را از طریق شبکه فراهم میکند، بدون آنکه نیاز به USB یا DVD یا هرگونه درایو خارجی باشد. این قابلیت برای عیبیابی سیستمهای خراب، بازیابی اطلاعات، اسکن بدافزارها (Malware) و تعمیر بوتلودر بسیار ارزشمند است.
PXE در سرورهای HPE ProLiant
در خانواده سرورهای HPE ProLiant—از جمله مدلهای پرطرفدار DL380 Gen9 و DL360 Gen10—پشتیبانی از PXE Boot بهصورت بومی در ROM کارتهای شبکه تعبیه شده است. برای فعالسازی PXE روی این سرورها، کافی است در تنظیمات System ROM (با فشردن کلید F9 هنگام بوت)، گزینه Boot Options را انتخاب کرده و Network Boot یا FlexibleLOM Port را در اولویت قرار دهید. HPE همچنین از UEFI PXE پشتیبانی میکند و در صورت نیاز میتوانید بین BIOS PXE و UEFI PXE یکی را انتخاب کنید.
ابزار HPE Intelligent Provisioning که روی مادربرد این سرورها تعبیه شده، خود از PXE برای دانلود Firmware و نصب سیستمعامل استفاده میکند. همچنین، iLO (Integrated Lights-Out) امکان مانیتورینگ فرآیند PXE Boot و عیبیابی مشکلات شبکهای را از راه دور فراهم میکند.
خرید سرورهای نو و استوک HPE
برای خرید سرور، ابتدا نیازهای پردازشی، حافظه و ذخیرهسازی خود را مشخص کنید و سپس با مقایسه مشخصات فنی و گارانتی، از قسمت زیر خرید کنید.
مشاهده مشخصات و قیمت سرورهای HPEمحدودیتها و ملاحظات امنیتی PXE
با وجود مزایای فراوان، PXE دارای محدودیتهایی نیز هست. TFTP یک پروتکل ناامن است—نه رمزنگاری دارد، نه احراز هویت—و هر کلاینتی در شبکه میتواند فایلهای NBP را درخواست کند. در محیطهای حساس، مهاجم میتواند با راهاندازی یک سرور DHCP جعلی (DHCP Spoofing)، کلاینتها را به سمت یک سرور TFTP مخرب هدایت کند و کد دلخواه خود را اجرا نماید. برای مقابله با این تهدیدات، میتوان از DHCP Snooping، Dynamic ARP Inspection (DAI) و Trusted Boot (مانند Secure Boot در UEFI) استفاده کرد.
همچنین PXE در شبکههای با پهنای باند محدود میتواند کند باشد، زیرا فایلهای NBP و هسته اولیه باید قبل از شروع فرآیند اصلی، بهطور کامل دانلود شوند. این مشکل با HTTP Boot (که سرعت بالاتری دارد و از Connection Keep-Alive پشتیبانی میکند) تا حد زیادی برطرف شده است.
فرآیند PXE Boot درست پس از POST (Power-On Self-Test) و زمانی آغاز میشود که BIOS/UEFI طبق تنظیمات Boot Order، گزینه Network Boot را انتخاب میکند. در این لحظه، کلاینت یک درخواست DHCP ویژه (با Option 60 برابر "PXEClient") به شبکه Broadcast میکند. سرور DHCP علاوه بر اختصاص IP، آدرس سرور TFTP (Option 66) و نام فایل bootstrap (Option 67) را نیز به کلاینت اعلام میکند. سپس کلاینت با استفاده از پروتکل TFTP—که پروتکلی ساده و کمحجم برای انتقال فایل است—فایل Network Bootstrap Program را دانلود کرده و اجرا میکند. این سه جزء (DHCP، TFTP و NBP) زنجیره حیاتی بوت شبکهای را تشکیل میدهند.
تفاوت اصلی در معماری میانافزار نهفته است. PXE سنتی مبتنی بر BIOS از وقفههای ۱۶ بیتی (INT 13h) و ساختار MBR استفاده میکند و فایل NBP آن معمولاً pxelinux.0 است. در مقابل، UEFI PXE از شبکه داخلی UEFI (Network Stack) بهره میبرد، از پروتکلهای IPv4 و IPv6 پشتیبانی میکند، فایلهای NBP با فرمت EFI (مانند bootx64.efi) را اجرا میکند و با Secure Boot سازگار است. این تمایز از آن جهت حیاتی است که یک سرور UEFI نمیتواند از فایل NBP مخصوص BIOS استفاده کند و بالعکس—بنابراین سرور DHCP باید بر اساس معماری کلاینت، فایل bootstrap مناسب را ارائه دهد.
HTTP Boot که در UEFI 2.5 معرفی شد، دو مزیت اصلی نسبت به TFTP دارد: نخست، سرعت انتقال بسیار بالاتر—HTTP با پشتیبانی از TCP و Connection Keep-Alive میتواند فایلهای حجیم (مانند تصاویر WIM با حجم چند گیگابایت) را با سرعتی چندین برابر TFTP منتقل کند. دوم، امنیت بیشتر—با استفاده از HTTPS میتوان فرآیند بوت را رمزنگاری و احراز هویت کرد. HTTP Boot برای استقرار سیستمعامل در دیتاسنترهای بزرگ، انتقال فایلهای ISO حجیم، و محیطهایی که تأخیر شبکه بالاست (مانند WAN) گزینه بسیار مناسبتری است. در این روش، DHCP گزینه ۵۹ (Boot URI) را به کلاینت اعلام میکند و کلاینت مستقیماً از طریق HTTP/HTTPS فایلها را دانلود میکند.
iSCSI Boot یک گام فراتر از PXE استاندارد است: در این روش، کلاینت بهجای دانلود فایلهای سیستمعامل، مستقیماً به یک LUN (Logical Unit Number) روی SAN متصل شده و از آن بوت میکند—گویی یک دیسک محلی است. این فرآیند نیازمند کارت شبکهای است که از iSCSI HBA یا iSCSI Boot Firmware Table (iBFT) پشتیبانی کند. iSCSI Boot ستون فقرات معماریهای Diskless است: سرورها هیچ دیسک محلی ندارند، سیستمعامل کاملاً روی SAN ذخیره میشود و تمام دادهها در شبکه باقی میمانند. مزایای این معماری شامل حذف هزینه هارد دیسک، مدیریت متمرکز ذخیرهسازی، افزایش امنیت فیزیکی (عدم امکان سرقت داده با دزدیدن سرور) و کاهش مصرف برق است. این رویکرد در کلاسترهای HPE ProLiant با کنترلرهای Smart Array و کارتهای FlexFabric کاملاً پشتیبانی میشود.
برای فعالسازی PXE روی DL380 Gen9، هنگام بوت سرور کلید F9 را فشار دهید تا وارد System Utilities شوید، سپس به مسیر System Configuration → BIOS/Platform Configuration (RBSU) → Boot Options بروید و گزینه FlexibleLOM Port یا Network Boot را به عنوان اولین گزینه بوت انتخاب کنید. برای عیبیابی، ابتدا چراغ NIC پنل جلویی را بررسی کنید—سبز چشمکزن یعنی شبکه فعال است و لینک برقرار. سپس از طریق iLO وارد کنسول Remote Console شوید و پیامهای بوت را ببینید. خطای PXE-E51 (No DHCP or proxyDHCP offers received) یعنی سرور DHCP در دسترس نیست یا گزینههای ۶۶/۶۷ را پیکربندی نکردهاید. خطای PXE-E32 (TFTP open timeout) یعنی فایل NBP روی سرور TFTP وجود ندارد یا مسیر آن اشتباه است. همچنین مطمئن شوید که فایل NBP با معماری سرور (BIOS یا UEFI) سازگار است—استفاده از pxelinux.0 برای سرور UEFI باعث خطا میشود.
جمعبندی
پروتکل PXE یک فناوری بالغ، قدرتمند و ضروری برای هر دیتاسنتر مدرن است. از استقرار خودکار سیستمعامل روی صدها سرور گرفته تا عیبیابی سیستمهای خراب و مدیریت متمرکز Firmware، PXE نقشی بیبدیل در سادهسازی و اتوماسیون زیرساختهای فناوری اطلاعات ایفا میکند. علیرغم ظهور فناوریهای جدیدتر مانند HTTP Boot و iSCSI Boot، هسته اصلی PXE—یعنی ایده بوت کردن یک کامپیوتر از طریق شبکه—همچنان مرتبط و پرکاربرد باقی مانده است. برای مدیران شبکه و زیرساخت، درک عمیق از نحوه عملکرد PXE، اجزای تشکیلدهنده و کاربردهای آن، نهتنها یک مهارت فنی ارزشمند، بلکه یک ضرورت حرفهای است.
- admin
- 7 بهمن 1403
- 262 بازدید



