| BMC-DEVICE(8) | System Commands | BMC-DEVICE(8) |
نام (NAME)
bmc-device - ابزار بررسی و کنترل وضعیت کنترلکننده مدیریت برد اصلی (BMC)
خلاصه دستور (SYNOPSIS)
bmc-device [گزینهها...]
توضیحات (DESCRIPTION)
دستور bmc-device از مجموعهای از دستورات IPMI برای انجام عملکردهای پیشرفتهی BMC پشتیبانی میکند. این ابزار اساساً برای اشکالزدایی در زمان توسعه، بازیابی از خطای BMC، دریافت اطلاعات فنی دقیق و سایر اهداف پیشرفته به کار میرود. اغلب کاربران IPMI نیازی به استفاده از این ابزار نخواهند داشت. برخی از دستورات bmc-device روی تمام مادربوردها پشتیبانی نمیشوند.
در ادامه، گزینههای عمومی IPMI، گزینههای اختصاصی ابزار، اطلاعات عیبیابی، راهکارهای دور زدن مشکلات، مثالها و مسائل شناختهشده آورده شدهاند. برای آشنایی عمومی با FreeIPMI لطفاً به freeipmi(7) مراجعه کنید.
گزینههای عمومی (GENERAL OPTIONS)
گزینههای زیر گزینههای عمومی برای پیکربندی ارتباطات IPMI و اجرای دستورات کلی ابزار هستند.
- -D IPMIDRIVER, --driver-type=IPMIDRIVER
- نوع درایور مورد استفاده را به جای انتخاب خودکار مشخص میکند. درایورهای خارج از باند (out-of-band) که در حال حاضر در دسترس هستند LAN و LAN_2_0 میباشند که به ترتیب IPMI 1.5 و IPMI 2.0 را اجرا میکنند. درایورهای درون باند (in-band) که در حال حاضر در دسترس هستند عبارتند از KCS، SSIF، OPENIPMI، SUNBMC و INTELDCMI.
- --disable-auto-probe
- دستگاههای IPMI درون باند را برای یافتن تنظیمات پیشفرض کاوش (probe) نمیکند.
- --driver-address=DRIVER-ADDRESS
- آدرس درایور درون باند را برای استفاده به جای مقدار کاوششده مشخص میکند. DRIVER-ADDRESS باید برای مقادیر هگزادسیمال با "0x" و برای مقادیر اکتال با '0' پیشوندگذاری شود.
- --driver-device=DEVICE
- مسیر دستگاه درایور درون باند را برای استفاده به جای مسیر کاوششده مشخص میکند.
- --register-spacing=REGISTER-SPACING
- فاصلهگذاری رجیسترهای درایور درون باند را به جای مقدار کاوششده مشخص میکند. آرگومان بر حسب بایت است (یعنی فاصلهگذاری رجیستر ۳۲ بیتی = ۴).
- --target-channel-number=CHANNEL-NUMBER
- شماره کانال هدف درایور درون باند را برای ارسال درخواستهای IPMI مشخص میکند.
- --target-slave-address=SLAVE-ADDRESS
- آدرس وابسته (slave) هدف درایور درون باند را برای ارسال درخواستهای IPMI مشخص میکند.
- -h IPMIHOST1,IPMIHOST2,..., --hostname=IPMIHOST1[:PORT],IPMIHOST2[:PORT],...
- میزبان(های) راه دور را برای برقراری ارتباط مشخص میکند. چندین نام میزبان را میتوان با کاما جدا کرد یا در قالب محدوده مشخص نمود؛ به «پشتیبانی از محدوده میزبان» در زیر مراجعه کنید. یک پورت اختیاری را میتوان برای هر میزبان مشخص کرد که ممکن است در هدایت پورت (port forwarding) یا شرایط مشابه مفید باشد. اگر آدرس و پورت IPv6 مشخص میکنید، از قالب [ADDRESS]:PORT استفاده کنید.
- -u USERNAME, --username=USERNAME
- نام کاربری مورد استفاده هنگام احراز هویت با میزبان راه دور را مشخص میکند. در صورت عدم تعیین، یک نام کاربری تهی (یعنی ناشناس) در نظر گرفته میشود. کاربر برای کارکرد کامل این ابزار باید حداقل از امتیازات USER برخوردار باشد.
- -p PASSWORD, --password=PASSWORD
- گذرواژه مورد استفاده هنگام احراز هویت با میزبان راه دور را مشخص میکند. در صورت عدم تعیین، یک گذرواژه تهی در نظر گرفته میشود. حداکثر طول گذرواژه برای IPMI 1.5 برابر ۱۶ و برای IPMI 2.0 برابر ۲۰ است.
- -P, --password-prompt
- درخواست گذرواژه در خط فرمان برای جلوگیری از احتمال ثبت و نمایش آن در لیست پردازشها.
- -k K_G, --k-g=K_G
- کلید K_g متعلق به BMC را برای احراز هویت با میزبان راه دور در IPMI 2.0 مشخص میکند. در صورت عدم تعیین، یک کلید تهی در نظر گرفته میشود. برای وارد کردن کلید در قالب هگزادسیمال، رشته را با '0x' پیشوندگذاری کنید؛ برای مثال، کلید 'abc' را میتوان با رشته 'abc' یا رشته '0x616263' وارد کرد.
- -K, --k-g-prompt
- درخواست برای دریافت k-g جهت جلوگیری از احتمال ثبت و نمایش آن در لیست پردازشها.
- --session-timeout=MILLISECONDS
- مهلت زمانی نشست را بر حسب میلیثانیه مشخص میکند. در صورت عدم تعیین، بهطور پیشفرض 20000 میلیثانیه (۲۰ ثانیه) است.
- --retransmission-timeout=MILLISECONDS
- مهلت زمانی ارسال مجدد بسته را بر حسب میلیثانیه مشخص میکند. در صورت عدم تعیین، بهطور پیشفرض 1000 میلیثانیه (۱ ثانیه) است. مهلت ارسال مجدد نمیتواند بزرگتر از مهلت زمانی نشست باشد.
- -a AUTHENTICATION-TYPE, --authentication-type=AUTHENTICATION-TYPE
- نوع احراز هویت IPMI 1.5 را برای استفاده مشخص میکند. انواع احراز هویت در دسترس در حال حاضر عبارتند از NONE، STRAIGHT_PASSWORD_KEY، MD2 و MD5. در صورت عدم تعیین، بهطور پیشفرض MD5 است.
- -I CIPHER-SUITE-ID, --cipher-suite-id=CIPHER-SUITE-ID
- شناسه
مجموعهرمز
(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
- -l PRIVILEGE-LEVEL, --privilege-level=PRIVILEGE-LEVEL
- سطح دسترسی مورد استفاده را مشخص میکند. سطوح دسترسی در دسترس در حال حاضر عبارتند از USER، OPERATOR و ADMIN. در صورت عدم تعیین، بهطور پیشفرض ADMIN است.
- --config-file=FILE
- یک فایل پیکربندی جایگزین را مشخص میکند.
- -W WORKAROUNDS, --workaround-flags=WORKAROUNDS
- راهکارهای دور زدن مشکلات انطباق با سازندگان را مشخص میکند. چندین راهکار را میتوان با کاما جدا کرد. پرچم ویژه "none" در خط فرمان نشاندهنده عدم استفاده از هیچ راهکاری است (میتواند برای لغو مقادیر پیشفرض پیکربندیشده مفید باشد). برای مشاهده لیست راهکارهای در دسترس، به بخش «راهکارهای دور زدن مشکلات» در زیر مراجعه کنید.
- --debug
- اشکالزدایی را فعال میکند.
- -?, --help
- لیست راهنما را نمایش میدهد و خارج میشود.
- --usage
- پیام نحوه استفاده را نمایش میدهد و خارج میشود.
- -V, --version
- نسخه برنامه را نمایش میدهد و خارج میشود.
گزینههای BMC-DEVICE (BMC-DEVICE OPTIONS)
گزینههای زیر مختص bmc-device هستند.
- --cold-reset
- راهاندازی مجدد سرد (cold reset) را انجام میدهد.
- --warm-reset
- راهاندازی مجدد گرم (warm reset) را انجام میدهد.
- --get-self-test-results
- نتایج خودآزمایی BMC را نمایش میدهد.
- --get-acpi-power-state
- وضعیت توان سیستم و دستگاه ACPI را دریافت میکند.
- --set-acpi-power-state
- وضعیت توان ACPI را تنظیم میکند. برای استفاده از گزینههای --set-acpi-system-power-state و --set-acpi-device-power-state که در زیر فهرست شدهاند، باید حتماً مشخص شود.
- --set-acpi-system-power-state=SYSTEM_POWER_STATE
- وضعیت توان سیستم ACPI را تنظیم میکند. مقادیر مجاز عبارتند از: S0_G0، S1، S2، S3، S4، S5_G2، S4_S5، G3، SLEEPING، G1_SLEEPING، OVERRIDE، LEGACY_ON، LEGACY_OFF، UNKNOWN. همراه با گزینه --set-acpi-power-state استفاده میشود.
- --set-acpi-device-power-state=DEVICE_POWER_STATE
- وضعیت توان دستگاه ACPI را تنظیم میکند. مقادیر مجاز عبارتند از: D0، D1، D2، D3، UNKNOWN. همراه با گزینه --set-acpi-power-state استفاده میشود.
- --get-lan-statistics
- آمار IP، UDP و RMCP را دریافت میکند.
- --clear-lan-statistics
- آمار IP، UDP و RMCP را پاک میکند.
- --rearm-sensor="<record_id> [<assertion_bitmask> <deassertion_bitmask>]"
- مسلحسازی مجدد (re-arm) یک حسگر. مسلحسازی مجدد حسگر به دستگاه داخلی اطلاع میدهد که مقدار خواندهشده حسگر و رویدادها را بازنشانی کرده و دوباره ارزیابی کند. اکثر حسگرها به طور خودکار مجدداً مسلح میشوند، با این حال موارد نادری نیازمند مسلحسازی مجدد دستی هستند. این گزینه همچنین ممکن است برای بازنشانی خوانش حسگر یا رویدادی که به دلیل خطای داخلی سختافزار یا سفتافزار متوقف (گیر) کرده است مفید باشد. اگر assertion_bitmask و deassertion_bitmask مشخص شوند، فقط رویدادهای خاص مجدداً مسلح خواهند شد. در صورت عدم تعیین، تمام رویدادهای ممکن مجدداً مسلح میشوند. این دستور نیازمند بارگذاری SDR است.
- --get-sdr-repository-time
- زمان مخزن SDR را دریافت میکند.
- --set-sdr-repository-time=TIME
- زمان مخزن SDR را تنظیم میکند. قالب ورودی = "MM/DD/YYYY - HH:MM:SS" است. توجه داشته باشید که ساعت در قالب ۲۴ ساعته وارد میشود. متناوباً، میتوان زمان محلی سیستم را با "now" مشخص کرد.
- --get-sel-time
- زمان SEL را دریافت میکند.
- --set-sel-time=TIME
- زمان SEL را تنظیم میکند. قالب ورودی = "MM/DD/YYYY - HH:MM:SS" است. توجه داشته باشید که ساعت در قالب ۲۴ ساعته وارد میشود. متناوباً، میتوان زمان محلی سیستم را با "now" مشخص کرد.
- --get-sel-time-utc-offset
- اختلاف زمانی UTC را برای زمان SEL دریافت میکند.
- --set-sel-time-utc-offset=MINUTES
- اختلاف زمانی UTC را برای زمان SEL تنظیم میکند. ورودی بر حسب اختلاف دقایق با زمان UTC است که از -1440 تا 1440 دقیقه متغیر است. مقدار حالت خاص "none" را میتوان مشخص کرد تا هیچ اختلاف زمانی با UTC تعیین نشود.
- --platform-event="[generator_id] <event_message_format_version> <sensor_type> <sensor_number> <event_type> <event_direction> <event_data1> <event_data2> <event_data3>"
- به BMC دستور میدهد تا دادههای رویداد مشخصشده را پردازش کند. معمولاً این دادهها در ثبت وقایع سیستم (SEL) ثبت میشوند، اما بسته به پیادهسازی ممکن است توسط سایر زیرسیستمها مانند پالایش رویداد بستر (PEF) پردازش شوند. کلمات کلیدی assertion یا deassertion را میتوان برای event_direction استفاده کرد، یا میتوان مقادیر عددی را به جای آنها به کار برد. مقدار event_message_format_version برای IPMI 1.0 برابر 0x03 و برای IPMI 1.5 برابر 0x04 است. مقدار generator_id بالا اختیاری است، اما در صورت تولید رویداد از طریق یک رابط سیستمی (یعنی درون باند) الزامی است. در صورت تولید رویداد از طریق رابط سیستمی، محدوده شناسه سازنده نرمافزار مدیریت سیستم از 0x41 تا 6Fh است.
- --set-sensor-reading-and-event-status="<sensor_number> <sensor_reading> <sensor_reading_operation> <assertion_bitmask> <assertion_bitmask_operation> <deassertion_bitmask> <deassertion_bitmask_operation> <event_data1> <event_data2> <event_data3> <event_data_operation>"
- به BMC دستور میدهد تا خوانش حسگر و/یا وضعیت رویداد را تنظیم کند. نحوه نوشتن فیلدهای مختلف به مجموعهای از دستورالعملهای عملیاتی مشخصشده بستگی دارد. sensor_reading را میتوان به ترتیب با عملیاتهای write و nochange نوشت یا بدون تغییر باقی گذاشت. برای assertion_bitmask و deassertion_bitmask، بیتهای 0 ماسک بیت میتوانند بیتهای وضعیت را پاک کنند، بیتهای 1 ماسک بیت میتوانند بیتهای وضعیت را تنظیم کنند، کل ماسک بیت میتواند به عنوان وضعیت نوشته شود، یا وضعیت میتواند بدون تغییر باقی بماند که به ترتیب با عملیاتهای clear0bits، set1bits، write و nochange انجام میشود. بایت event_data1 میتواند به طور کامل نوشته شود، بدون افست رویداد (بیتهای 3:0) نوشته شود، یا از طریق عملیاتهای write، nooffsetwrite یا nochange بدون تغییر باقی بماند.
- --get-mca-auxiliary-log-status
- اطلاعات وضعیت گزارش کمکی معماری بررسی ماشین (MCA) را دریافت میکند.
- --get-ssif-interface-capabilities
- قابلیتهای رابط SSIF را دریافت میکند.
- --get-kcs-interface-capabilities
- قابلیتهای رابط KCS را دریافت میکند.
- --get-bt-interface-capabilities
- قابلیتهای رابط BT را دریافت میکند.
- --get-bmc-global-enables
- موارد فعال سراسری BMC (BMC Global Enables) را دریافت میکند.
- --set-system-firmware-version=STRING
- نسخه سفتافزار سیستم را تنظیم میکند.
- --set-system-name=STRING
- نام سیستم را تنظیم میکند.
- --set-primary-operating-system-name=STRING
- نام سیستمعامل اصلی را تنظیم میکند.
- --set-operating-system-name=STRING
- نام سیستمعامل را تنظیم میکند.
- --set-present-os-version-number=STRING
- شماره نسخه فعلی سیستمعامل را تنظیم میکند.
- --set-bmc-url=STRING
- نشانی اینترنتی (URL) متعلق به BMC را تنظیم میکند.
- --set-base-os-hypervisor-url=STRING
- نشانی اینترنتی (URL) سیستمعامل پایه/هایپروایزر را تنظیم میکند.
- --read-fru=FILENAME
- محتویات یک شناسه دستگاه FRU را خوانده و آن را در فایل مشخصشده ذخیره میکند. نیازمند تنظیم شناسه دستگاه از طریق --device-id است.
- --write-fru=FILENAME
- محتویات فایل مشخصشده را در یک شناسه دستگاه FRU مینویسد. نیازمند تنظیم شناسه دستگاه از طریق --device-id است. اگر --verbose مشخص شده باشد، درصد پیشرفت نیز نمایش داده خواهد شد.
- --device-id=IDNUM
- یک شناسه دستگاه FRU خاص را مشخص میکند. برای استفاده با --read-fru و --write-fru.
- --verbose
- میزان جزئیات را در خروجی افزایش میدهد.
گزینههای حافظه پنهان SDR (SDR CACHE OPTIONS)
این ابزار برای عملکرد کلی به دسترسی به حافظه پنهان مخزن دادههای حسگر (SDR) نیاز دارد. بهطور پیشفرض، دادههای SDR دانلود شده و روی دستگاه محلی ذخیره میشوند. گزینههای زیر برای حافظه پنهان SDR اعمال میشوند.
- --flush-cache
- تخلیه نسخه ذخیرهشده از حافظه پنهان مخزن دادههای حسگر (SDR). SDR معمولاً برای دسترسی سریعتر بعدی ذخیره میشود. با این حال، اگر SDR در یک سیستم بهروز شده باشد، ممکن است نیاز به تخلیه و بازتولید داشته باشد.
- --quiet-cache
- اطلاعات مربوط به ایجاد/حذف حافظه پنهان را در خروجی نمایش نمیدهد. ممکن است در اسکریپتنویسی مفید باشد.
- --sdr-cache-recreate
- اگر حافظه پنهان SDR قدیمی یا نامعتبر باشد، به طور خودکار حافظه پنهان مخزن دادههای حسگر (SDR) را دوباره ایجاد میکند. این گزینه ممکن است برای اهداف اسکریپتنویسی مفید باشد.
- --sdr-cache-file=FILE
- یک فایل حافظه پنهان مخزن دادههای حسگر (SDR) خاص را برای ذخیره یا خواندن مشخص میکند. اگر این گزینه هنگام تعیین چندین میزبان استفاده شود، همان فایل حافظه پنهان SDR برای همه میزبانها استفاده خواهد شد.
- --sdr-cache-directory=DIRECTORY
- یک دایرکتوری جایگزین برای حافظههای پنهان مخزن دادههای حسگر (SDR) جهت ذخیرهسازی یا خواندن مشخص میکند. در صورت عدم تعیین، بهطور پیشفرض به دایرکتوری خانگی (home) تنظیم میشود.
گزینههای زمان (TIME OPTIONS)
طبق تعریف IPMI، تمام زمانها و برچسبهای زمانی IPMI در زمان محلی (localtime) ذخیره میشوند. با این حال، در بسیاری از شرایط، برچسبهای زمانی در زمان محلی ذخیره نخواهند شد. اینکه آیا یک سیستم واقعاً برچسبهای زمانی را در زمان محلی ذخیره کرده است یا خیر، به عوامل زیادی مانند سازنده، BIOS و سیستمعامل بستگی دارد. گزینههای زیر به کاربر اجازه میدهند تفسیر برچسبهای زمانی ذخیرهشده و نحوه خروجی دادن آنها را تنظیم کند.
- --utc-to-localtime
- فرض میکند که تمام زمانها به وقت UTC گزارش شدهاند و زمان را قبل از نمایش در خروجی به وقت محلی تبدیل میکند.
- --localtime-to-utc
- تمام برچسبهای زمانی وقت محلی را قبل از نمایش در خروجی به UTC تبدیل میکند.
- --utc-offset=SECONDS
- یک اختلاف زمانی خاص با UTC را بر حسب ثانیه برای اضافه شدن به برچسبهای زمانی مشخص میکند. مقدار میتواند از -86400 تا 86400 ثانیه متغیر باشد. پیشفرض 0 است.
گزینههای محدوده میزبان (HOSTRANGED OPTIONS)
گزینههای زیر خروجی مبتنی بر محدوده میزبان را دستکاری میکنند. برای اطلاعات بیشتر در مورد محدودههای میزبان به بخش «پشتیبانی از محدوده میزبان» در زیر مراجعه کنید.
- -B, --buffer-output
- بافر کردن خروجی محدوده میزبان. برای هر گره، خروجی استاندارد را تا زمانی که گره عملیات IPMI خود را به پایان برساند بافر میکند. هنگام تعیین این گزینه، ممکن است به نظر برسد که دادهها با سرعت کمتری برای کاربر نمایش داده میشوند زیرا کل عملیات IPMI باید قبل از نمایش هرگونه داده به پایان برسد. برای اطلاعات بیشتر به «پشتیبانی از محدوده میزبان» در زیر مراجعه کنید.
- -C, --consolidate-output
- تجمیع خروجی محدوده میزبان. خروجی استاندارد کامل از هر گره مشخصشده تجمیع میشود تا گرههایی با خروجی یکسان دو بار خروجی ندهند. یک هدر، گرههایی با خروجی تجمیعشده را لیست میکند. هنگامی که این گزینه مشخص شود، تا زمانی که عملیات IPMI برای تمام گرهها به پایان نرسد، هیچ خروجی دیده نمیشود. اگر کاربر زودتر از برنامه خارج شود، تمام خروجیهای تجمیعشده فعلی تخلیه خواهند شد. برای اطلاعات بیشتر به «پشتیبانی از محدوده میزبان» در زیر مراجعه کنید.
- -F NUM, --fanout=NUM
- میزان انشعاب موازی (fanout) برای چند میزبان را مشخص میکند. از یک الگوریتم «پنجره کشویی» (یا fanout) برای ارتباط موازی IPMI استفاده میشود تا گرههای کندتر یا منقضیشده مانع ارتباط موازی نشوند. حداکثر تعداد رشتههای در دسترس به صورت همزمان توسط fanout محدود میشود. پیشفرض 64 است.
- -E, --eliminate
- حذف میزبانهایی که توسط ipmidetect به عنوان شناسایینشده تشخیص داده شدهاند. این کار تلاش میکند مشکل رایج وقفه زمانی در اجرای محدوده میزبان را به دلیل خارج شدن چندین گره از سرویس در یک کلاستر بزرگ برطرف کند. دیمن ipmidetectd باید روی گرهای که دستور را اجرا میکند در حال اجرا باشد.
- --always-prefix
- همیشه پیشوند را به خروجی اضافه میکند، حتی اگر تنها یک میزبان مشخص شده باشد یا ارتباط به صورت درون باند باشد. این گزینه در درجه اول برای اهداف اسکریپتنویسی مفید است. اگر این گزینه همراه با گزینه -C مشخص شود، نادیده گرفته خواهد شد.
پشتیبانی از محدوده میزبان (HOSTRANGED SUPPORT)
چندین میزبان را میتوان به عنوان یک لیست صریح از میزبانهای جدا شده با کاما، یا به عنوان محدودهای از نامهای میزبان در قالب عمومی prefix[n-m,l-k,...] وارد کرد که در آن n < m و l < k و غیره است. قالب دوم نباید با کلاسهای کاراکتری عبارات باقاعده (که با [] نیز مشخص میشوند) اشتباه گرفته شود. برای مثال، foo[19] نشاندهنده foo1 یا foo9 نیست، بلکه نشاندهنده یک محدوده تکمقداری است: foo19.
این نحو محدوده صرفاً به عنوان یک سهولت در کلاسترهایی با قرارداد نامگذاری prefixNN در نظر گرفته شده است و مشخص کردن محدودهها نباید ضروری تلقی شود؛ لیست foo1,foo9 را میتوان به همین شکل یا با محدوده foo[1,9] مشخص کرد.
چند نمونه از کاربرد محدوده در ادامه آمده است:
foo[01-05] instead of foo01,foo02,foo03,foo04,foo05 foo[7,9-10] instead of foo7,foo9,foo10 foo[0-3] instead of foo0,foo1,foo2,foo3
به عنوان یادآوری برای خواننده، برخی از پوستهها براکتها ([ و ]) را برای تطبیق الگو تفسیر میکنند. بسته به پوسته شما، ممکن است لازم باشد لیستهای دارای محدوده را داخل علامت نقلقول قرار دهید.
هنگامی که چندین میزبان توسط کاربر مشخص شوند، به ازای هر میزبان تا سقف مقدار fanout پیکربندیشده (که از طریق گزینه -F قابل تنظیم است)، یک رشته به صورت موازی اجرا خواهد شد. این ویژگی امکان برقراری ارتباط با تعداد زیادی از گرهها را بسیار سریعتر از زمانی که به صورت ترتیبی انجام شود، فراهم میسازد.
بهطور پیشفرض، خروجی استاندارد از هر گره مشخصشده به همراه نام میزبان در ابتدای هر خط نمایش داده میشود. اگرچه این خروجی در بسیاری از شرایط خواناست، اما ممکن است در شرایط دیگر خواندن آن دشوار باشد؛ برای مثال، خروجی چند گره ممکن است با هم مخلوط شود. از گزینههای -B و -C میتوان برای تغییر این مقدار پیشفرض استفاده کرد.
هنگامی که میزبان "localhost" مشخص شود، ارتباط درون باند IPMI استفاده خواهد شد. این کار به کاربر اجازه میدهد لوکالهاست را نیز به خروجی محدوده میزبان اضافه کند.
عیبیابی عمومی (GENERAL TROUBLESHOOTING)
در اغلب موارد، مشکلات IPMI به دلیل مشکلات پیکربندی رخ میدهند.
مشکلات IPMI بر روی LAN ناشی از پیکربندی نادرست BMC ماشین راه دور است. مجدداً بررسی کنید تا مطمئن شوید موارد زیر به درستی در BMC ماشین راه دور پیکربندی شدهاند: آدرس IP، آدرس MAC، ماسک زیرشبکه (subnet mask)، نام کاربری، فعالبودن کاربر، سطح دسترسی کاربر، گذرواژه، دسترسی LAN، فعالبودن LAN و نوع/انواع احراز هویت مجاز. برای اتصالات IPMI 2.0، مجدداً بررسی کنید تا مطمئن شوید دسترسی(های) مجموعهرمز و کلید K_g به درستی پیکربندی شدهاند. ابزار ipmi-config(8) میتواند برای بررسی و/یا تغییر این تنظیمات پیکربندی مورد استفاده قرار گیرد.
مشکلات IPMI درون باند معمولاً ناشی از درایورهای نادرست پیکربندیشده یا BMCهای غیراستاندارد است.
علاوه بر نکات عیبیابی زیر، لطفاً بخش «راهکارهای دور زدن مشکلات» در زیر را نیز بررسی کنید تا ببینید آیا اشکالات خاصی مربوط به سازندگان کشف و دور زده شده است یا خیر.
در زیر بسیاری از مشکلات رایج برای پیامهای خطا فهرست شدهاند. برای پشتیبانی بیشتر، لطفاً به لیست پستی <freeipmi-users@gnu.org> ایمیل ارسال کنید.
"username invalid" - نام کاربری وارد شده (یا یک نام کاربری NULL در صورت عدم ورود نام کاربری) در ماشین راه دور در دسترس نیست. همچنین ممکن است پیکربندی نام کاربری در BMC راه دور نادرست باشد.
"password invalid" - گذرواژه وارد شده (یا یک گذرواژه NULL در صورت عدم ورود گذرواژه) صحیح نیست. همچنین ممکن است گذرواژه کاربر در BMC راه دور به درستی پیکربندی نشده باشد.
"password verification timeout" - مهلت زمانی اعتبارسنجی گذرواژه به پایان رسیده است. یک خطای "password invalid" (شرح داده شده در بالا) یا یک خطای عمومی "session timeout" (شرح داده شده در زیر) رخ داده است. در این نقطه از پروتکل نمیتوان تشخیص داد که کدام یک رخ داده است.
"k_g invalid" - کلید K_g وارد شده (یا یک کلید K_g تهی در صورت عدم ورود کلید) صحیح نیست. همچنین ممکن است کلید 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" - شناسه مجموعهرمز که میخواهید با آن احراز هویت کنید در BMC راه دور در دسترس نیست. لطفاً دوباره با یک شناسه مجموعهرمز جایگزین امتحان کنید. همچنین ممکن است شناسههای مجموعهرمز موجود در BMC راه دور به درستی پیکربندی نشده باشند.
"ipmi 2.0 unavailable" - فناوری IPMI 2.0 در دستگاه راه دور یافت نشد. لطفاً در عوض از IPMI 1.5 استفاده کنید.
"connection timeout" - ارتباط اولیه IPMI ناموفق بود. تعدادی خطای بالقوه امکانپذیر است، از جمله نام میزبان نامعتبر مشخصشده، عدم امکان تفکیک آدرس IP متعلق به IPMI، فعال نبودن IPMI روی سرور راه دور، نامناسب بودن اتصال شبکه و غیره. لطفاً پیکربندی و اتصال را بررسی کنید.
"session timeout" - مهلت زمانی نشست IPMI به پایان رسیده است. لطفاً دوباره متصل شوید. اگر این خطا زیاد رخ میدهد، ممکن است تمایل داشته باشید مهلت زمانی ارسال مجدد را افزایش دهید. برخی از BMCهای راه دور بسیار کندتر از بقیه هستند.
"device not found" - دستگاه مشخصشده پیدا نشد. لطفاً پیکربندی یا ورودیها را بررسی کرده و دوباره امتحان کنید.
"driver timeout" - ارتباط با درایور یا دستگاه با وقفه زمانی مواجه شد. لطفاً دوباره امتحان کنید.
"message timeout" - ارتباط با درایور یا دستگاه با وقفه زمانی مواجه شد. لطفاً دوباره امتحان کنید.
"BMC busy" - در حال حاضر BMC مشغول است. ممکن است در حال پردازش اطلاعات باشد یا نشستهای همزمان زیادی برای مدیریت داشته باشد. لطفاً صبر کنید و دوباره امتحان کنید.
"could not find inband device" - دستگاه درون باند پیدا نشد. لطفاً پیکربندی را بررسی کنید یا دستگاه یا درایور خاصی را در خط فرمان مشخص نمایید.
"driver timeout" - درایور درون باند هنگام برقراری ارتباط با BMC محلی یا پردازنده خدمات دچار وقفه زمانی شد. BMC یا پردازنده خدمات ممکن است مشغول باشد یا (در بدترین حالت) احتمالاً کار نکند.
راهکارهای دور زدن مشکلات (WORKAROUNDS)
با توجه به اینکه سازندگان متعددی راهکارهای IPMI خود را پیادهسازی میکنند، سازندگان مختلف ممکن است پروتکلهای IPMI خود را به صورت نادرست پیادهسازی کرده باشند. موارد زیر تعدادی از راهکارهای دور زدن موجود در حال حاضر را برای مدیریت مشکلات عدم انطباق کشفشده شرح میدهند. در صورت امکان، راهکارها به گونهای پیادهسازی شدهاند که برای کاربر شفاف باشند. با این حال، برخی از آنها مستلزم این خواهند بود که کاربر از طریق گزینه -W مشخص کند که از یک راهکار استفاده شود.
سختافزار فهرستشده در زیر ممکن است تنها نشاندهنده سختافزاری باشد که مشکل در آن کشف شده است. نسخههای جدیدتر سختافزار ممکن است مشکلات ذکر شده در زیر را برطرف کرده باشند. ماشینهای مشابه از سازندگان ممکن است مشکلات یکسانی را نشان دهند یا ندهند. سازندگان مختلف ممکن است سفتافزار خود را از یک توسعهدهنده سفتافزار IPMI مشترک مجوزدهی کنند، بنابراین ممکن است ارزش داشته باشد که راهکارهای فهرستشده در زیر را حتی اگر مادربورد شما فهرست نشده است، امتحان کنید.
اگر فکر میکنید سختافزار شما مشکل انطباق اضافی دارد که نیاز به پیادهسازی یک راهکار دور زدن دارد، لطفاً با نگهدارندگان 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). این امر ممکن است زمان اجرای واقعی (wall clock) ابزارها را به میزان قابل توجهی بهبود بخشد، زیرا دانهبندی (granularity) زمانبند سیستمعامل ممکن است بسیار بزرگتر از زمان لازم برای انجام یک تراکنش پیام 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 میگوید که مجموعهای مقابلهای (checksums) برگشتی از پاسخهای دستورات 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 را بررسی نکند. این گزینه مشکل سیستمهایی را دور میزند که به دلیل خطاهای درهمسازی (hashing) یا پیادهسازی، کدهای احراز هویت نامعتبر برمیگردانند. به کاربران در مورد استفاده از این گزینه هشدار داده میشود، زیرا بررسی احراز هویت را که اعتبار یک بسته را تأیید میکند حذف میکند. با این حال، در بیشتر سازمانها بعید است که این یک مشکل امنیتی باشد. کسانی که با این مشکل مواجه میشوند ممکن است خطاهای "connection timeout"، "session timeout" یا "password verification timeout" را مشاهده کنند. مشکل در Xyratex FB-H8-SRAY، Intel Windmill، Quanta Winterfell و Wiwynn Windmill مشاهده شده است.
intel20 - این پرچم راهکار چندین مشکل احراز هویت Intel IPMI 2.0 را دور میزند. مشکلات تحت پوشش شامل پدگذاری نامهای کاربری و کوتاه کردن گذرواژه در صورتی است که الگوریتم احراز هویت HMAC-MD5-128 باشد. کسانی که با این مشکل مواجه میشوند ممکن است خطاهای "username invalid"، "password invalid" یا "k_g invalid" را مشاهده کنند. مشکل در Intel SE7520AF2 با ماژول مدیریت سرور اینتل (نسخه حرفهای) مشاهده شده است.
supermicro20 - این پرچم راهکار چندین مشکل احراز هویت Supermicro IPMI 2.0 را در مادربوردهای دارای سفتافزار Peppercon IPMI دور میزند. مشکلات تحت پوشش شامل مدیریت کدهای احراز هویت با طول نامعتبر است. کسانی که با این مشکل مواجه میشوند ممکن است خطاهای "password invalid" را مشاهده کنند. مشکل در Supermicro H8QME با کارت دختر SIMSO مشاهده شده است. رفع این مشکل در سفتافزارهای جدیدتر تأیید شده است.
sun20 - این پرچم راهکار چندین مشکل احراز هویت Sun 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 و BMC نرمافزاری OpenIPMI مشاهده شده است. این راهکار بهطور خودکار با راهکار "sun20" فعال میشود.
integritycheckvalue - این پرچم راهکار مقدار نامعتبر بررسی یکپارچگی را در هنگام برقراری نشست IPMI 2.0 در زمان استفاده از شناسه مجموعهرمز 0 دور میزند. مقدار بررسی یکپارچگی باید طول 0 داشته باشد، با این حال مادربورد راه دور با یک فیلد غیرخالی پاسخ میدهد. کسانی که با این مشکل مواجه میشوند ممکن است خطاهای "k_g invalid" را مشاهده کنند. مشکل در Supermicro X8DTG، Supermicro X8DTU، Intel S5500WBV/Penguin Relion 700 و Intel S2600JF/Appro 512X مشاهده شده است.
assumemaxsdrrecordcount - این پرچم راهکار به فرآیند خواندن SDR اطلاع میدهد تا پس از خوانده شدن تعداد مشخصی از حداکثر رکوردهای SDR، خواندن را متوقف کند. این گزینه مشکل سیستمهایی را که توابع خواندن SDR را به اشتباه پیادهسازی کردهاند دور میزند. کسانی که با این مشکل مواجه میشوند ممکن است خطاهای "SDR record count invalid" را مشاهده کنند. مشکل در یک مادربورد نامشخص اینسپر (Inspur) مشاهده شده است.
عدم پشتیبانی از 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 مشاهده شده است.
مثالها (EXAMPLES)
# bmc-device --cold-reset
انجام راهاندازی مجدد سرد (cold reset).
# bmc-device -h ahost -u myusername -p mypassword --cold-reset
انجام راهاندازی مجدد سرد روی یک ماشین راه دور با استفاده از IPMI بر روی LAN.
# bmc-device -h mycluster[0-127] -u myusername -p mypassword --cold-reset
انجام راهاندازی مجدد سرد در سراسر یک کلاستر با استفاده از IPMI بر روی LAN.
عیبیابی (DIAGNOSTICS)
در صورت اجرای موفقیتآمیز، وضعیت خروج 0 است. در صورت بروز خطا، وضعیت خروج 1 است.
اگر چندین میزبان برای برقراری ارتباط مشخص شده باشند، وضعیت خروج 0 است اگر و تنها اگر همه اهداف با موفقیت اجرا شوند. در غیر این صورت وضعیت خروج 1 است.
مسائل شناختهشده (KNOWN ISSUES)
در سیستمعاملهای قدیمیتر، اگر نام کاربری، گذرواژه و سایر اطلاعات بالقوه مرتبط با امنیت را در خط فرمان وارد کنید، این اطلاعات ممکن است توسط سایر کاربران در هنگام استفاده از ابزارهایی مانند دستور ps(1) یا بررسی سیستم فایل /proc کشف شود. به طور کلی امنتر است که اطلاعات گذرواژه را با گزینههایی مانند گزینههای -P یا -K وارد کنید. پیکربندی اطلاعات مرتبط با امنیت در فایل پیکربندی FreeIPMI نیز روش مناسبی برای پنهان کردن این اطلاعات خواهد بود.
به منظور جلوگیری از حملات brute force، برخی از BMCها پس از چند خطای متوالی احراز هویت از راه دور، موقتاً قفل میشوند ("lock up"). ممکن است لازم باشد مدتی صبر کنید تا این قفل موقت برطرف شود و بتوانید دوباره احراز هویت کنید.
گزارش باگها (REPORTING BUGS)
گزارش اشکالات به <freeipmi-users@gnu.org> یا <freeipmi-devel@gnu.org>.
حق نشر (COPYRIGHT)
Copyright © 2008-2015 FreeIPMI Core Team.
این برنامه یک نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU GPL) که توسط بنیاد نرمافزارهای آزاد منتشر شده است، چه نسخه ۳ مجوز و چه (به انتخاب خودتان) هر نسخه بعدی، بازتوزیع کرده و/یا تغییر دهید.
همچنین ببینید (SEE ALSO)
freeipmi.conf(5), freeipmi(7)
| 2026-08-27 | bmc-device 1.6.19 |