IPMI-RAW(8) دستورهای سیستمی IPMI-RAW(8)

ipmi-raw - اجرای دستورات خام IPMI

ipmi-raw [OPTION...] [<lun> <netfn> COMMAND-HEX-BYTES...]

Ipmi-raw برای اجرای دستورات IPMI با استفاده از مقادیر هگزادسیمال (hex) به کار می‌رود. مقادیر هگز را می‌توان در خط فرمان، از طریق یک فایل با استفاده از گزینه --file یا در صورت عدم تعیین هیچ‌یک از موارد قبلی، از طریق ورودی استاندارد (stdin) وارد کرد.

در ادامه، گزینه‌های عمومی IPMI، گزینه‌های اختصاصی ابزار، اطلاعات عیب‌یابی، اطلاعات راهکارهای دور زدن مشکلات، مثال‌ها و مشکلات شناخته‌شده فهرست شده‌اند. برای آشنایی عمومی با FreeIPMI لطفاً به freeipmi(7) مراجعه کنید.

گزینه‌های زیر گزینه‌های عمومی برای پیکربندی ارتباط IPMI و اجرای دستورات کلی ابزار هستند.

مشخص کردن نوع درایور برای استفاده به جای انتخاب خودکار. درایورهای خارج از باند (out-of-band) موجود در حال حاضر LAN و LAN_2_0 هستند که به ترتیب IPMI 1.5 و IPMI 2.0 را اجرا می‌کنند. درایورهای درون‌باند (in-band) موجود در حال حاضر عبارتند از KCS، SSIF، OPENIPMI، SUNBMC و INTELDCMI.
عدم پویش و شناسایی خودکار دستگاه‌های درون‌باند IPMI برای تنظیمات پیش‌فرض.
مشخص کردن آدرس درایور درون‌باند برای استفاده به جای مقدار شناسایی‌شده. DRIVER-ADDRESS برای مقادیر هگزادسیمال باید با پیشوند «0x» و برای مقادیر هشت‌هشتی (octal) با «0» مشخص شود.
مشخص کردن مسیر فایل دستگاه درایور درون‌باند برای استفاده به جای مسیر شناسایی‌شده.
مشخص کردن فاصله رجیستر درایور درون‌باند به جای مقدار شناسایی‌شده. آرگومان بر حسب بایت است (مثلاً فاصله رجیستر ۳۲ بیتی = ۴).
مشخص کردن شماره کانال مقصد در درایور درون‌باند برای ارسال درخواست‌های IPMI به آن.
مشخص کردن نشانی اسلیو (slave) مقصد در درایور درون‌باند برای ارسال درخواست‌های IPMI به آن.
مشخص کردن میزبان(های) راه دور برای برقراری ارتباط. چند نام میزبان را می‌توان با کاما از هم جدا کرد یا در قالب محدوده مشخص نمود؛ بخش «پشتیبانی از محدوده میزبان (HOSTRANGED SUPPORT)» را در ادامه ببینید. پورت اختیاری را می‌توان با هر میزبان مشخص کرد که ممکن است در فوروارد پورت یا شرایط مشابه مفید باشد. اگر آدرس و پورت IPv6 مشخص می‌کنید، از قالب [ADDRESS]:PORT استفاده کنید.
مشخص کردن نام کاربری برای احراز هویت با میزبان راه دور. اگر مشخص نشود، نام کاربری تهی (ناشناس) فرض می‌شود. سطح دسترسی کاربری مورد نیاز به دستورات خام اجراشده بستگی دارد.
مشخص کردن گذرواژه برای احراز هویت با میزبان راه دور. اگر مشخص نشود، گذرواژه تهی فرض می‌شود. حداکثر طول گذرواژه برای IPMI 1.5 برابر ۱۶ کاراکتر و برای IPMI 2.0 برابر ۲۰ کاراکتر است.
درخواست تعاملی گذرواژه برای جلوگیری از احتمال نمایش آن در فهرست فرآیندها.
مشخص کردن کلید K_g متعلق به BMC برای احراز هویت با میزبان راه دور در IPMI 2.0. اگر مشخص نشود، کلید تهی فرض می‌شود. برای وارد کردن کلید در قالب هگزادسیمال، رشته را با «0x» آغاز کنید. برای نمونه، کلید «abc» می‌تواند با رشته «abc» یا رشته «0x616263» وارد شود.
درخواست تعاملی k-g برای جلوگیری از احتمال نمایش آن در فهرست فرآیندها.
مهلت زمانی نشست را بر حسب میلی‌ثانیه مشخص می‌کند. در صورت عدم تعیین، به‌طور پیش‌فرض 20000 میلی‌ثانیه (۲۰ ثانیه) است.
مهلت زمانی ارسال مجدد بسته را بر حسب میلی‌ثانیه مشخص می‌کند. در صورت عدم تعیین، به‌طور پیش‌فرض 1000 میلی‌ثانیه (۱ ثانیه) است. مهلت ارسال مجدد نمی‌تواند بزرگتر از مهلت زمانی نشست باشد.
نوع احراز هویت IPMI 1.5 را برای استفاده مشخص می‌کند. انواع احراز هویت در دسترس در حال حاضر عبارتند از NONE، STRAIGHT_PASSWORD_KEY، MD2 و MD5. در صورت عدم تعیین، به‌طور پیش‌فرض MD5 است.
شناسه مجموعه‌رمز (Cipher Suite ID) در IPMI 2.0 را برای استفاده مشخص می‌کند. شناسه مجموعه‌رمز مجموعه‌ای از الگوریتم‌های احراز هویت، یکپارچگی و محرمانگی را برای استفاده در ارتباطات IPMI 2.0 تعیین می‌کند. الگوریتم احراز هویت الگوریتم مورد استفاده برای برپایی نشست، الگوریتم یکپارچگی الگوریتم مورد استفاده برای امضای بسته‌های نشست و الگوریتم محرمانگی الگوریتم مورد استفاده برای رمزنگاری داده‌ها (payload) را مشخص می‌کند. در صورت عدم تعیین، پیش‌فرض شناسه مجموعه‌رمز 3 است. شناسه‌های مجموعه‌رمز زیر در حال حاضر پشتیبانی می‌شوند:

0 - الگوریتم احراز هویت = None؛ الگوریتم یکپارچگی = None؛ الگوریتم محرمانگی = None

1 - الگوریتم احراز هویت = HMAC-SHA1؛ الگوریتم یکپارچگی = None؛ الگوریتم محرمانگی = None

2 - الگوریتم احراز هویت = HMAC-SHA1؛ الگوریتم یکپارچگی = HMAC-SHA1-96؛ الگوریتم محرمانگی = None

3 - الگوریتم احراز هویت = HMAC-SHA1؛ الگوریتم یکپارچگی = HMAC-SHA1-96؛ الگوریتم محرمانگی = AES-CBC-128

6 - الگوریتم احراز هویت = HMAC-MD5؛ الگوریتم یکپارچگی = None؛ الگوریتم محرمانگی = None

7 - الگوریتم احراز هویت = HMAC-MD5؛ الگوریتم یکپارچگی = HMAC-MD5-128؛ الگوریتم محرمانگی = None

8 - الگوریتم احراز هویت = HMAC-MD5؛ الگوریتم یکپارچگی = HMAC-MD5-128؛ الگوریتم محرمانگی = AES-CBC-128

11 - الگوریتم احراز هویت = HMAC-MD5؛ الگوریتم یکپارچگی = MD5-128؛ الگوریتم محرمانگی = None

12 - الگوریتم احراز هویت = HMAC-MD5؛ الگوریتم یکپارچگی = MD5-128؛ الگوریتم محرمانگی = AES-CBC-128

15 - الگوریتم احراز هویت = HMAC-SHA256؛ الگوریتم یکپارچگی = None؛ الگوریتم محرمانگی = None

16 - الگوریتم احراز هویت = HMAC-SHA256؛ الگوریتم یکپارچگی = HMAC_SHA256_128؛ الگوریتم محرمانگی = None

17 - الگوریتم احراز هویت = HMAC-SHA256؛ الگوریتم یکپارچگی = HMAC_SHA256_128؛ الگوریتم محرمانگی = AES-CBC-128

مشخص کردن سطح دسترسی مورد استفاده. سطوح دسترسی در دسترس در حال حاضر عبارتند از USER، OPERATOR و ADMIN. در صورت عدم تعیین، پیش‌فرض ADMIN است.
مشخص کردن یک فایل پیکربندی جایگزین.
مشخص کردن راهکارهای دور زدن مشکلات عدم تطابق سازندگان با استاندارد. چندین راهکار را می‌توان با جدا کردن توسط کاما مشخص کرد. پرچم ویژه "none" در خط فرمان نشان‌دهنده عدم استفاده از هرگونه راهکار دور زدن خواهد بود (برای بازنویسی مقادیر پیش‌فرض پیکربندی‌شده مفید است). برای فهرستی از راهکارهای موجود به بخش «راهکارهای دور زدن مشکلات (WORKAROUNDS)» در ادامه مراجعه کنید.
فعال‌سازی اشکال‌زدایی (debugging).
-?, --help
نمایش پیام راهنما و خروج.
نمایش پیام نحوه استفاده و خروج.
نمایش نسخه برنامه و خروج.

گزینه‌های زیر مختص ipmi-raw هستند.

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

گزینه‌های زیر خروجی محدوده میزبان را مدیریت می‌کنند. برای اطلاعات تکمیلی در مورد محدوده‌های میزبان، بخش «پشتیبانی از محدوده میزبان (HOSTRANGED SUPPORT)» را در ادامه ببینید.

بافر کردن خروجی محدوده میزبان. برای هر گره، خروجی استاندارد تا زمانی که عملیات IPMI آن گره کامل شود بافر می‌شود. هنگام مشخص کردن این گزینه، ممکن است داده‌ها کندتر به کاربر نمایش داده شوند، زیرا کل عملیات IPMI باید پیش از خروجی دادن هرگونه داده کامل شود. برای اطلاعات بیشتر بخش «پشتیبانی از محدوده میزبان (HOSTRANGED SUPPORT)» را در ادامه ببینید.
تجمیع خروجی محدوده میزبان. خروجی استاندارد کامل از تمام گره‌های مشخص‌شده تجمیع می‌شود تا گره‌های دارای خروجی یکسان دو بار خروجی داده نشوند. یک سرآیند گره‌های دارای خروجی یکسان را همراه با خروجی تجمیع‌شده فهرست می‌کند. با تعیین این گزینه، تا زمانی که عملیات IPMI در تمام گره‌ها کامل نشود، هیچ خروجی دیده نمی‌شود. اگر کاربر زودتر برنامه را متوقف کند، تمام خروجی‌های تجمیع‌شده تا آن لحظه نمایش داده می‌شوند. برای اطلاعات بیشتر بخش «پشتیبانی از محدوده میزبان (HOSTRANGED SUPPORT)» را در ادامه ببینید.
مشخص کردن ضریب انتشار (fanout) برای چند میزبان. از یک الگوریتم «پنجره لغزان» (یا fanout) برای ارتباط موازی IPMI استفاده می‌شود تا گره‌های کندتر یا منقضی‌شده مانع ارتباط موازی نشوند. حداکثر تعداد ریسه‌ها (threads) که همزمان در دسترس هستند با مقدار fanout محدود می‌شود. مقدار پیش‌فرض ۶۴ است.
حذف میزبان‌هایی که توسط ipmidetect شناسایی‌نشده تشخیص داده شده‌اند. این تلاش برای رفع مشکل رایج انقضای زمان اجرای محدوده میزبان به دلیل خارج شدن چندین گره از سرویس‌دهی در یک خوشه بزرگ است. دیمن ipmidetectd باید روی گره اجراکننده دستور در حال اجرا باشد.
همواره نام میزبان به عنوان پیشوند در خروجی درج می‌شود، حتی اگر تنها یک میزبان مشخص شده باشد یا ارتباط به صورت درون‌باند باشد. این گزینه عمدتاً برای مقاصد اسکریپت‌نویسی مفید است. در صورت مشخص شدن همراه با گزینه -C این گزینه نادیده گرفته خواهد شد.

می‌توان چندین میزبان را به صورت فهرستی صریح از میزبان‌ها با کاما یا به عنوان محدوده‌ای از نام میزبان‌ها به شکل کلی زیر وارد کرد: prefix[n-m,l-k,...] که در آن n < m و l < k و غیره است. این قالب نباید با کلاس‌های کاراکتر در عبارات منظم (که با [] نیز مشخص می‌شوند) اشتباه گرفته شود. برای مثال، foo[19] نمایانگر foo1 یا foo9 نیست، بلکه نشان‌دهنده یک محدوده تک‌مقداری تخریب‌شده یعنی foo19 است.

این نحو محدوده صرفاً جهت تسهیل کار در خوشه‌هایی با قرارداد نام‌گذاری prefixNN طراحی شده است و تعیین محدوده‌ها الزامی تلقی نمی‌شود؛ فهرست foo1,foo9 را می‌توان دقیقاً به همین شکل یا با محدوده foo[1,9] مشخص کرد.

چند نمونه از کاربرد محدوده‌ها در زیر آورده شده است:

foo[01-05] به جای foo01,foo02,foo03,foo04,foo05
foo[7,9-10] به جای foo7,foo9,foo10
foo[0-3] به جای foo0,foo1,foo2,foo3

یادآوری می‌شود که برخی از پوسته‌ها براکت‌ها ([ و ]) را برای تطبیق الگو (pattern matching) تفسیر می‌کنند. بسته به پوسته شما، ممکن است لازم باشد فهرست‌های دامنه‌ای را درون گیومه قرار دهید.

هنگامی که چندین میزبان توسط کاربر مشخص می‌شود، برای هر میزبان نخی به صورت موازی تا سقف ظرفیت انشعاب (fanout) پیکربندی‌شده (که با گزینه -F قابل تنظیم است) اجرا خواهد شد. این کار امکان برقراری ارتباط با تعداد زیادی از گره‌ها را بسیار سریع‌تر از حالت ترتیبی فراهم می‌سازد.

به طور پیش‌فرض، خروجی استاندارد از هر گره مشخص‌شده با نام میزبان در ابتدای هر خط نمایش داده می‌شود. اگرچه این خروجی در بسیاری از شرایط خوانا است، اما در برخی شرایط دیگر ممکن است خواندن آن دشوار باشد؛ به عنوان مثال خروجی‌های چندین گره ممکن است با یکدیگر مخلوط شوند. برای تغییر این رفتار پیش‌فرض می‌توان از گزینه‌های -B و -C استفاده کرد.

هنگامی که میزبان "localhost" مشخص شود، ارتباط IPMI درون باند (in-band) استفاده خواهد شد. این قابلیت به کاربر اجازه می‌دهد تا localhost را نیز در خروجی میزبان‌های دامنه‌ای وارد کند.

در اغلب موارد، مشکلات IPMI ناشی از اشکالات پیکربندی است.

مشکلات IPMI روی شبکه (LAN) معمولاً به دلیل پیکربندی نادرست BMC دستگاه راه دور رخ می‌دهد. اطمینان حاصل کنید که موارد زیر در BMC دستگاه راه دور به درستی پیکربندی شده باشند: آدرس IP، آدرس MAC، ماسک زیرشبکه، نام کاربری، فعال بودن کاربر، سطح دسترسی کاربر، گذرواژه، سطح دسترسی LAN، فعال بودن LAN و نوع (انواع) احراز هویت مجاز. برای اتصالات IPMI 2.0، بررسی کنید که سطوح دسترسی مجموعه رمزنگاری (cipher suite) و کلید K_g به درستی پیکربندی شده باشند. برای بررسی یا تغییر این تنظیمات می‌توان از ابزار ipmi-config(8) استفاده کرد.

مشکلات IPMI درون باند (in-band) معمولاً به دلیل پیکربندی نادرست درایورها یا BMCهای غیر استاندارد رخ می‌دهد.

علاوه بر نکات عیب‌یابی زیر، لطفاً به بخش «راهکارهای دور زدن مشکلات (WORKAROUNDS)» در ادامه نیز مراجعه کنید تا در صورت وجود باگ‌های شناخته‌شده مربوط به تولیدکنندگان خاص، از راهکارهای آن‌ها مطلع شوید.

در زیر بسیاری از خطاهای رایج آورده شده است. برای دریافت پشتیبانی تکمیلی، لطفاً به فهرست پستی <freeipmi-users@gnu.org> ایمیل ارسال کنید.

"username invalid" - نام کاربری وارد شده (یا در صورت عدم ورود، نام کاربری NULL) روی ماشین راه دور در دسترس نیست. همچنین ممکن است پیکربندی نام کاربری در BMC راه دور نادرست باشد.

"password invalid" - گذرواژه وارد شده (یا در صورت عدم ورود، گذرواژه NULL) صحیح نیست. همچنین ممکن است گذرواژه کاربر به درستی در BMC راه دور تنظیم نشده باشد.

"password verification timeout" - مهلت تایید گذرواژه به پایان رسیده است. خطای "password invalid" (توضیح داده شده در بالا) یا یک "session timeout" عمومی (توضیح داده شده در زیر) رخ داده است. در این مرحله از پروتکل نمی‌توان تشخیص داد کدام مورد اتفاق افتاده است.

"k_g invalid" - کلید K_g وارد شده (یا کلید NULL در صورت عدم ورود) صحیح نیست. همچنین ممکن است کلید K_g در BMC راه دور به درستی پیکربندی نشده باشد.

"privilege level insufficient" - یک دستور IPMI نیازمند سطح دسترسی کاربری بالاتری نسبت به سطح احراز هویت‌شده فعلی است. لطفاً با سطح دسترسی بالاتری احراز هویت کنید. این کار ممکن است مستلزم احراز هویت با کاربر دیگری باشد که حداکثر سطح دسترسی بالاتری دارد.

"privilege level cannot be obtained for this user" - سطح دسترسی که قصد احراز هویت با آن را دارید بالاتر از حداکثر سطح مجاز برای این کاربر است. لطفاً با دسترسی پایین‌تری تلاش کنید. همچنین ممکن است حداکثر سطح دسترسی مجاز کاربر در BMC راه دور به درستی تنظیم نشده باشد.

"authentication type unavailable for attempted privilege level" - نوع احراز هویتی که می‌خواهید با آن متصل شوید برای این سطح دسترسی در دسترس نیست. لطفاً با نوع احراز هویت یا سطح دسترسی دیگری تلاش کنید. همچنین ممکن است انواع احراز هویت مجاز در BMC به درستی پیکربندی نشده باشند.

"cipher suite id unavailable" - شناسه مجموعه رمزنگاری (cipher suite id) مورد نظر شما روی BMC راه دور در دسترس نیست. لطفاً با یک شناسه دیگر تلاش کنید. همچنین ممکن است شناسه‌های مجاز مجموعه رمزنگاری در BMC به درستی تنظیم نشده باشند.

"ipmi 2.0 unavailable" - پروتکل IPMI 2.0 روی ماشین راه دور شناسایی نشد. لطفاً از IPMI 1.5 استفاده کنید.

"connection timeout" - برقراری ارتباط اولیه IPMI با شکست مواجه شد. خطاهای بالقوه متعددی ممکن است رخ داده باشد، از جمله نام میزبان نامعتبر، عدم امکان تحلیل آدرس IP، غیرفعال بودن IPMI روی سرور مقصد، خرابی اتصال شبکه و غیره. لطفاً پیکربندی و اتصال را بررسی کنید.

"session timeout" - نشست IPMI منقضی شده است. لطفاً مجدداً متصل شوید. اگر این خطا مکرراً رخ می‌دهد، می‌توانید مهلت زمانی ارسال مجدد (retransmission timeout) را افزایش دهید. برخی از BMCهای راه دور به طور قابل توجهی کندتر از بقیه هستند.

"device not found" - دستگاه مشخص‌شده یافت نشد. لطفاً پیکربندی یا ورودی‌ها را بررسی کرده و دوباره تلاش کنید.

"driver timeout" - زمان ارتباط با درایور یا دستگاه به پایان رسید. لطفاً دوباره تلاش کنید.

"message timeout" - زمان ارسال پیام به درایور یا دستگاه به پایان رسید. لطفاً دوباره امتحان کنید.

"BMC busy" - در حال حاضر BMC مشغول است. ممکن است در حال پردازش اطلاعات باشد یا نشست‌های همزمان زیادی برای مدیریت داشته باشد. لطفاً صبر کرده و مجدداً تلاش کنید.

"could not find inband device" - دستگاه درون باند یافت نشد. لطفاً پیکربندی را بررسی کنید یا دستگاه و درایور خاصی را در خط فرمان مشخص نمایید.

"driver timeout" - درایور درون باند هنگام برقراری ارتباط با BMC محلی یا پردازنده سرویس با مهلت زمانی مواجه شد. BMC یا پردازنده سرویس ممکن است مشغول یا در بدترین حالت، از کار افتاده باشد.

"internal IPMI error" - خطای داخلی IPMI رخ داده است که FreeIPMI نحوه مدیریت آن را نمی‌داند. لطفاً برای گزارش مشکل به <freeipmi-users@gnu.org> ایمیل ارسال کنید.

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

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

اگر فکر می‌کنید سخت‌افزار شما مشکل انطباق دیگری دارد که نیازمند پیاده‌سازی راهکار دور زدن است، لطفاً با نگهدارندگان FreeIPMI از طریق <freeipmi-users@gnu.org> یا <freeipmi-devel@gnu.org> تماس بگیرید.

assumeio - این فلگ فرض می‌کند که رابط‌های درون باند به جای نقشه‌برداری در حافظه (memory-mapped)، با ورودی/خروجی سیستم (I/O) ارتباط برقرار می‌کنند. این فلگ برای دور زدن مشکل سیستم‌هایی که آدرس‌های پایه نامعتبر گزارش می‌دهند کاربرد دارد. کاربرانی که با این مشکل مواجه می‌شوند ممکن است خطاهای "device not supported" یا "could not find inband device" را ببینند. این مشکل روی HP ProLiant DL145 G1 مشاهده شده است.

spinpoll - این فلگ به برخی درایورهای درون باند (به ویژه درایور KCS) اعلام می‌کند که به جای به خواب بردن فرآیند، هنگام نظرسنجی (polling) در حلقه منتظر بماند (spin). این کار ممکن است زمان اجرای ابزار را به طور چشمگیری بهبود بخشد، زیرا دانه‌بندی زمان‌بند سیستم‌عامل ممکن است بسیار بزرگ‌تر از زمان لازم برای انجام یک تبادل پیام IPMI باشد. با این حال با چرخش در حلقه، سیستم شما ممکن است به دلیل تعویض نکردن زمینه به فرآیندهای دیگر، کارهای مفید کمتری انجام دهد.

authcap - این فلگ بررسی‌های اولیه مربوط به قابلیت‌های نام کاربری، قابلیت‌های احراز هویت و پشتیبانی از K_g را نادیده می‌گیرد و اجازه می‌دهد احراز هویت IPMI با موفقیت انجام شود. این گزینه چندین مشکل را که در آن‌ها سیستم راه دور قابلیت‌های نام کاربری، احراز هویت یا وضعیت K_g را به درستی گزارش نمی‌کند دور می‌زند. کاربرانی که با این مشکل روبرو می‌شوند ممکن است خطاهای "username invalid"، "authentication type unavailable for attempted privilege level" یا "k_g invalid" را مشاهده کنند. این مشکل روی Asus P5M2/P5MT-R/RS162-E4/RX4، Intel SR1520ML/X38ML و Sun Fire 2200/4150/4450 با ELOM مشاهده شده است.

nochecksumcheck - این فلگ به FreeIPMI دستور می‌دهد که مجموع مقابله‌ای (checksum) بازگردانده شده از پاسخ‌های دستورات IPMI را بررسی نکند. این گزینه برای سیستم‌هایی کاربرد دارد که به دلیل خطاهای پیاده‌سازی، مجموع مقابله‌ای نامعتبر برمی‌گردانند اما بسته در غیر این صورت معتبر است. به کاربران در مورد استفاده از این گزینه هشدار داده می‌شود، زیرا اعتبارسنجی یکپارچگی بسته‌ها را در چندین حالت حذف می‌کند؛ با این حال در اکثر موارد مشکلی ایجاد نخواهد کرد. کاربرانی که با این مشکل مواجه می‌شوند ممکن است خطاهای "connection timeout"، "session timeout" یا "password verification timeout" را مشاهده کنند. در اتصالات IPMI 1.5 ممکن است راهکار "noauthcodecheck" نیز مورد نیاز باشد. این مشکل روی Supermicro X9SCM-iiF، Supermicro X9DRi-F و Supermicro X9DRFR مشاهده شده است.

idzero - این فلگ اجازه می‌دهد شناسه‌های نشست خالی توسط کلاینت پذیرفته شوند. این گزینه برای دور زدن نشست‌های IPMI است که شناسه‌های خالی به کلاینت گزارش می‌دهند. کاربرانی که با این مشکل مواجه می‌شوند ممکن است خطای "session timeout" را ببینند. این مشکل روی Tyan S2882 با BMC مدل M3289 مشاهده شده است.

unexpectedauth - این فلگ به کدهای احراز هویت غیر تهی غیرمنتظره اجازه می‌دهد که گویی مورد انتظار بوده‌اند بررسی شوند. این گزینه مشکلی را حل می‌کند که در آن بسته‌ها حاوی داده‌های احراز هویت غیر تهی هستند، در حالی که به دلیل غیرفعال بودن احراز هویت به ازای هر پیام، باید تهی باشند. کاربرانی که با این مشکل مواجه می‌شوند ممکن است خطای "session timeout" را مشاهده کنند. این مشکل روی Dell PowerEdge 2850 و SC1425 مشاهده شده و در سفت‌افزارهای جدیدتر رفع شده است.

forcepermsg - این فلگ صرف‌نظر از اعلان سیستم راه دور، استفاده از احراز هویت به ازای هر پیام را اجباری می‌کند. این گزینه مشکلی را دور می‌زند که در آن احراز هویت به ازای پیام در سیستم راه دور به عنوان غیرفعال اعلان شده است، اما در واقع برای پروتکل الزامی است. کاربرانی که با این مشکل مواجه می‌شوند ممکن است خطای "session timeout" را ببینند. این مشکل روی IBM eServer 325 مشاهده شده است.

endianseq - این فلگ جهت ترتیب بایت‌ها (endianness) در شماره‌های توالی نشست را معکوس می‌کند تا نشست بتواند به درستی ادامه یابد. این گزینه برای دور زدن شماره‌های توالی نشست در IPMI 1.5 که دارای ترتیب بایت نادرست هستند کاربرد دارد. کاربرانی که با این مشکل مواجه می‌شوند ممکن است خطای "session timeout" را ببینند. این مشکل روی برخی از سیستم‌های Sun ILOM 1.0/2.0 (بسته به ترتیب بایت پردازنده سرویس) مشاهده شده است.

noauthcodecheck - این فلگ به FreeIPMI دستور می‌دهد کدهای احراز هویت بازگردانده شده از پاسخ‌های دستورات IPMI 1.5 را بررسی نکند. این گزینه سیستم‌هایی را که به دلیل خطاهای درهم‌سازی یا پیاده‌سازی کدهای احراز هویت نامعتبر برمی‌گردانند دور می‌زند. به کاربران در مورد استفاده از این گزینه هشدار داده می‌شود، زیرا بررسی اعتبارسنجی بسته را غیرفعال می‌سازد. با این حال در اکثر سازمان‌ها بعید است مشکل امنیتی ایجاد کند. کاربرانی که با این مشکل مواجه می‌شوند ممکن است خطاهای "connection timeout"، "session timeout" یا "password verification timeout" را ببینند. این مشکل روی Xyratex FB-H8-SRAY، Intel Windmill، Quanta Winterfell و Wiwynn Windmill مشاهده شده است.

intel20 - این فلگ چندین مشکل احراز هویت IPMI 2.0 در سیستم‌های اینتل را دور می‌زند. این مشکلات شامل فاصله‌گذاری نام‌های کاربری (padding) و کوتاه شدن گذرواژه در صورت استفاده از الگوریتم HMAC-MD5-128 است. کاربرانی که با این مشکل مواجه می‌شوند ممکن است خطاهای "username invalid"، "password invalid" یا "k_g invalid" را مشاهده کنند. این مشکل روی Intel SE7520AF2 همراه با ماژول مدیریت سرور اینتل (Professional Edition) مشاهده شده است.

supermicro20 - این فلگ چندین مشکل احراز هویت IPMI 2.0 در مادربردهای سوپرمایکرو دارای سفت‌افزار Peppercon IPMI را دور می‌زند. این موارد شامل مدیریت کدهای احراز هویت با طول نامعتبر است. کاربرانی که با این مشکل مواجه می‌شوند ممکن است خطای "password invalid" را ببینند. این مشکل روی Supermicro H8QME با کارت دختر SIMSO مشاهده شده و در سفت‌افزارهای جدیدتر برطرف شده است.

sun20 - این فلگ چندین مشکل احراز هویت IPMI 2.0 در سیستم‌های سان را دور می‌زند. این مشکلات شامل کلیدهای هش با طول نامعتبر، کلیدهای به صورت نامناسب هش‌شده و رکوردهای نامعتبر مجموعه رمزنگاری است. کاربرانی که با این مشکل مواجه می‌شوند ممکن است خطاهای "password invalid" یا "bmc error" را ببینند. این مشکل روی Sun Fire 4100/4200/4500 با ILOM مشاهده شده است. این راهکار به طور خودکار شامل راهکار "opensesspriv" نیز می‌شود.

opensesspriv - این فلگ پروتکل اتصال IPMI 2.0 در FreeIPMI را کمی تغییر می‌دهد تا الگوریتم هش نامعتبر مورد استفاده توسط سیستم راه دور را دور بزند. در این حالت سطح دسترسی ارسال‌شده در مرحله Open Session از اتصال IPMI 2.0 برای هش کردن کلیدها به جای سطح دسترسی ارسال‌شده در مرحله اتصال RAKP1 استفاده می‌شود. کاربرانی که با این مشکل روبرو می‌شوند ممکن است خطاهای "password invalid"، "k_g invalid"، "bad rmcpplus status code" یا "privilege level cannot be obtained for this user" را ببینند. این مشکل روی Sun Fire 4100/4200/4500 با ILOM، Inventec 5441/Dell Xanadu II، Supermicro X8DTH، Supermicro X8DTG، Intel S5500WBV/Penguin Relion 700، Intel S2600JF/Appro 512X، Quanta QSSC-S4R/Appro GB812X-CN، Dell C5220 و شبیه‌ساز نرم‌افزاری OpenIPMI BMC مشاهده شده است. این راهکار به طور خودکار همراه با راهکار "sun20" فعال می‌شود.

integritycheckvalue - این فلگ مقدار نامعتبر بررسی یکپارچگی (integrity check value) را در حین برقراری نشست IPMI 2.0 هنگام استفاده از شناسه مجموعه رمزنگاری 0 دور می‌زند. طول مقدار بررسی یکپارچگی باید 0 باشد، با این حال مادربرد راه دور با یک فیلد غیر خالی پاسخ می‌دهد. کاربرانی که با این مشکل روبرو می‌شوند ممکن است خطای "k_g invalid" را ببینند. این مشکل روی Supermicro X8DTG، Supermicro X8DTU، Intel S5500WBV/Penguin Relion 700 و Intel S2600JF/Appro 512X مشاهده شده است.

عدم پشتیبانی از IPMI 1.5 - مشخص شده است که برخی از مادربردهایی که از IPMI 2.0 پشتیبانی می‌کنند، از IPMI 1.5 پشتیبانی نمی‌کنند. کاربرانی که با این مشکل مواجه می‌شوند ممکن است خطاهای "ipmi 2.0 unavailable" یا "connection timeout" را مشاهده کنند. این مشکل را می‌توان با استفاده از IPMI 2.0 به جای IPMI 1.5 با تعیین گزینه --driver-type=LAN_2_0 دور زد. این مشکل روی تعدادی از مادربردهای HP و Supermicro مشاهده شده است.

# ipmi-raw 0 6 01

اجرای دستور 0x01 با LUN 0x0 و NETFN 0x06 روی ماشین محلی.

# ipmi-raw -h ahost -u myusername -p mypassword 0 6 01

اجرای دستور 0x01 با LUN 0x0 و NETFN 0x06 روی ماشین راه دور با استفاده از IPMI از طریق شبکه (IPMI over LAN).

# ipmi-raw -h mycluster[0-127] -u myusername -p mypassword 0 6 01

اجرای دستور 0x01 با LUN 0x0 و NETFN 0x06 در سرتاسر یک خوشه با استفاده از IPMI از طریق شبکه (IPMI over LAN).

# ipmi-raw

خواندن LUN، NETFN، دستور و داده‌های درخواست از ورودی استاندارد.

# ipmi-raw -f command-file

خواندن LUN/FN، دستور و داده‌های درخواست از فایل داده‌شده به جای ورودی استاندارد.

# ipmi-raw < command-file

خواندن LUN، NETFN، دستور و داده‌های درخواست از فایل به عنوان ورودی استاندارد.

در صورت اجرای موفقیت‌آمیز، وضعیت خروج 0 است. در صورت بروز خطا، وضعیت خروج 1 خواهد بود.

اگر چندین میزبان برای برقراری ارتباط مشخص شده باشند، وضعیت خروج تنها در صورتی 0 است که تمام اهداف با موفقیت اجرا شوند؛ در غیر این صورت وضعیت خروج 1 خواهد بود.

در سیستم‌عامل‌های قدیمی‌تر، اگر نام کاربری، گذرواژه و سایر اطلاعات حساس امنیتی را در خط فرمان وارد کنید، این اطلاعات ممکن است توسط سایر کاربران هنگام استفاده از ابزارهایی مانند دستور ps(1) یا بررسی سیستم فایل /proc مشاهده شود. عموماً وارد کردن اطلاعات گذرواژه با گزینه‌هایی مانند -P یا -K امن‌تر است. پیکربندی اطلاعات مرتبط با امنیت در فایل پیکربندی FreeIPMI نیز روش مناسبی برای مخفی کردن این اطلاعات خواهد بود.

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

گزارش باگ‌ها را به <freeipmi-users@gnu.org> یا <freeipmi-devel@gnu.org> ارسال کنید.

حق نشر © 2005-2015 FreeIPMI Core Team

این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط پروانه عمومی همگانی گنو (GPL) که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخه ۳ پروانه و چه (به انتخاب خودتان) هر نسخه بعدی، بازتوزیع کرده یا تغییر دهید.

freeipmi.conf(5), freeipmi(7), ipmi-config(8), ipmi-oem(8)

http://www.gnu.org/software/freeipmi

2026-08-27 IPMI Raw version 1.6.19