ipmitool [-c|-h|-v|-V] -I lan -H <hostname>
[-p <port>]
[-U <username>]
[-A <authtype>]
[-L <privlvl>]
[-a|-E|-P|-f <password>]
[-o <oemtype>]
<command>
ipmitool [-c|-h|-v|-V] -I lanplus -H <hostname>
[-p <port>]
[-U <username>]
[-L <privlvl>]
[-a|-E|-P|-f <password>]
[-o <oemtype>]
[-C <ciphersuite>]
<command>
このプログラムを使用すると、ローカルシステム(カーネルデバイスドライバ経由)またはリモートシステム(IPMI v1.5およびIPMI v2.0を使用)のIntelligent Platform Management Interface(IPMI)機能を管理できる。 IPMI機能には、フィールド交換可能ユニット(FRU:Field Replaceable Unit)情報の出力、LANの設定、センサーの読み取り、リモートサーバの電源制御などがある。
ローカルシステムインタフェースのIPMI管理では、互換性のあるIPMIカーネルドライバをインストールして設定する必要がある。Linuxでは、このドライバはOpenIPMIと呼ばれ、標準的なディストリビューションに含まれている。Solarisでは、このドライバはBMCと呼ばれ、Solaris 10に含まれている。リモートシステムの管理では、IPMI-over-LANインタフェースを有効にして設定する必要がある。各システムの個別の要件によっては、システムインタフェース経由でipmitoolを使用して、LANインタフェースを有効にできる場合がある。
パスワード方式を指定しない場合は、パスワードの入力を求めるプロンプトが表示される。プロンプトでパスワードを入力しないと、リモートサーバのパスワードはデフォルトでNULLになる。
IPMI LANインタフェースを有効にする前に、いくつかのセキュリティの問題を考慮する必要がある。リモートマシンからは、システムの電源の状態を制御できるだけでなく、特定のプラットフォーム情報を収集することもできる。脆弱性を減らすために、IPMI LANインタフェースは「信頼された」環境でのみ有効にすることを強く推奨する。これはシステムのセキュリティが問題にならないか、専用のセキュアな「管理ネットワーク」がある環境のことである。
また、パスワードを設定せずにリモートアクセス用のIPMIを有効にしないこと、およびパスワードをそのシステムの他のパスワードと同じにしないことを強く推奨する。
IPMIv1.5 lanインタフェースを使用してリモートマシンでIPMIパスワードを変更すると、新しいパスワードがネットワーク上を平文で送信される。これを盗み見され、リモートシステムへの攻撃に使われる可能性がある。このため、IPMIパスワードの管理はIPMIv2.0 lanplusインタフェースまたはローカルマシンのシステムインタフェース経由でのみ行うことを推奨する。
IPMI v1.5では、パスワードの長さは最大16文字である。16文字を超えるパスワードは切り捨てられる。
IPMI v2.0では、パスワードの長さは最大20文字である。この長さを超えるパスワードは切り捨てられる。
ipmitool help Commands: raw Send a RAW IPMI request and print response lan Configure LAN Channels chassis Get chassis status and set power state event Send pre-defined events to MC mc Management Controller status and global enables sdr Print Sensor Data Repository entries and readings sensor Print detailed sensor information fru Print built-in FRU and scan SDR for FRU locators sel Print System Event Log (SEL) pef Configure Platform Event Filtering (PEF) sol Configure IPMIv2.0 Serial-over-LAN isol Configure IPMIv1.5 Serial-over-LAN user Configure Management Controller users channel Configure Management Controller channels session Print session information exec Run list of commands from file set Set runtime variable for shell and exec
ipmitool chassis help
ipmitool chassis power help |
(参考日本語訳) ipmitool help コマンド: raw RAW IPMIリクエストを送出し、レスポンスを 表示する。 lan LANチャネルを設定する。 chassis シャーシ(本体)の状態の取得と電源の制御 を行う。 event マネージメントコントローラに事前設定の イベントを送出する。 mc マネージメントコントローラ自体の状態の表示 と変更を行う。 sdr センサーデータレコード(SDR)の情報を照会 する。 sensor センサーの情報を表示する。 fru フィールド交換可能ユニット(FRU)の情報の 表示と、センサーデータレコード(SDR)から FRUロケータの抽出を行う。 sel システムイベントログ(SEL)を表示する。 pef プラットフォームイベントフィルタ(PEF)を 設定する。 sol IPMIv2.0のSerial-over-LANを設定する。 isol IPMIv1.5のSerial-over-LANを設定する。 user マネージメントコントローラのユーザーを設定 する。 channel マネージメントコントローラのチャネルを設定 する。 session セッション情報を表示する。 exec ファイルからコマンド群を読み込んで実行する。 set シェルとexecコマンド用の環境変数をセットする。
ipmitool chassis help
ipmitool chassis power help |
BMCにウォームリセットまたはコールドリセットの実行を指示する。
BMCハードウェアに関する情報を表示する。デバイスのリビジョン、ファームウェアのリビジョン、サポートされるIPMIのバージョン、製造元ID、追加のデバイスサポートの情報などが表示される。
BMCで現在有効になっているオプションのリストを表示する。
指定したoptionを有効または無効にする。IPMI仕様に従って、このコマンドはシステムインタフェース経由でのみサポートされる。現在サポートされているoptionの値は次のとおり。
受信メッセージキュー割り込み
イベントメッセージバッファフル割り込み
イベントメッセージバッファ
システムイベントログ
OEM定義のオプション0
OEM定義のオプション1
OEM定義のオプション2
指定した特権レベルで、選択したチャネルの認証機能に関する情報を表示する。
選択したチャネルに関する情報を表示する。チャネルを指定しない場合は、現在使用しているチャネルに関する情報が表示される。
ipmitool channel info
Channel 0xf info:
Channel Medium Type : System Interface
Channel Protocol Type : KCS
Session Support : session-less
Active Session Count : 0
Protocol Vendor ID : 7154
指定したチャネル番号で、指定したユーザIDをデフォルトに設定する。それ以降にこのチャネルを使用すると、ユーザは指定したユーザIDで暗黙的に識別される。
指定したチャネルで、指定したユーザIDのユーザアクセス情報を設定する。
指定したチャネルで、指定したアプリケーション(ipmiまたはsol)に対してサポートされている暗号スイートのリストを表示する。
本体および電源周りの詳細な状態に関する情報を表示する。
Power-On Hours(通電時間)カウンタを取得する。
前面パネルの識別用ライトを制御する。デフォルトは15である。 ライトをオフにするには0を使用する。
前回システムが再起動された原因をサーバ本体に照会する。
停電が起きた場合の電源ポリシーを設定する。
サポートされているポリシーを表示する。
電源が復旧したらオンにする。
電源が復旧したら以前の状態に戻す。
電源の復旧後もオフのままにする。
制御コマンドを実行し、電源の状態を表示および変更する。
現在のサーバ本体の電源の状態を表示する。
サーバ本体の電源を入れる。
サーバ本体の電源を落とし、ソフトオフ状態(S4/S5状態)にする。警告:このコマンドでは、システムの電源が落ちる前にオペレーティングシステムのクリーンシャットダウンが実行されない。
1秒以上の電源オフの間隔を設定する。サーバ本体の電源がS4/S5状態の場合は何も処理が行われないが、先に電源の状態をチェックし、システム電源がオンになっているか、S4/S5よりも低いスリープ状態になっている場合にのみpower cycleコマンドを実行することを推奨する。
ハードリセットを実行する。
診断割り込み(NMI)をプロセッサに直接送る。
ACPI経由でOSのソフトシャットダウンを実行する。これにはさまざまな方法があるが、一般には過熱をシミュレートするか、電源ボタンの押下をシミュレートする。このソフト電源を機能させるには、オペレーティングシステムでACPIをサポートしていること、および何らかのデーモンでイベントを監視していることが必要である。
次回再起動するときに、システムが別の起動デバイスから起動するように指定する。
PXE起動
BIOSのデフォルトの起動デバイスから起動
セーフモードを指定して、BIOSのデフォルトの起動デバイスから起動
診断パーティションから起動
CD/DVDから起動
起動してBIOSセットアップを開く
定義済みのイベントをシステムイベントログ(SEL:System Event Log)に送る。BMCのシステムイベントログコンポーネントの機能をテストする手段として、次のイベントが用意されている(event nコマンドを実行するたびにエントリが追加される)。
現在サポートされているnの値は次のとおり。
1 Temperature(温度):Upper Critical(重大な状態の上限):Going High(上昇中)
2 Voltage Threshold(電圧のしきい値):Lower Critical(重大な状態の下限):Going Low(下降中)
3 Memory(メモリ):Correctable ECC Error Detected(修正可能なECCエラーを検出)
注意:これらの定義済みのイベントは、有効なセンサー番号に正しく関連付けられないため、システムによっては"正確な"SELレコードが得られないことがある。しかし、SELが正常に動作しているかどうかを確認するには十分である。
filenameで指定したイベントログレコードをシステムイベントログに追加する。
ファイル内の各行の書式は次のとおり。
<{EvM Revision} {Sensor Type} {Sensor Num} {Event Dir/Type} {Event Data 0} {Event Data 1} {Event Data 2}>[# COMMENT]
注意:Event Dir/Typeフィールドは、上位ビット(7ビット)のイベントカテゴリーと下位7ビットのイベントタイプでエンコードされる。
例:
0x4 0x2 0x60 0x1 0x52 0x0 0x0 # Voltage threshold:Lower Critical:Going Low
ipmitoolコマンドをfilenameから実行する。コマンドは1行に1つずつ記述する。コマンドの構文については、このmanpageの「コマンド」セクションを参照。各行の末尾に、'#'記号で区切ってオプションのコメントを追加することができる。
2行から成るコマンドファイルの例:
sdr list # SDRレコードのリストを取得
sel list # SELレコードのリストを取得
すべてのフィールド交換可能ユニット(FRU:Field Replaceable Unit)のインベントリデータを読み取り、シリアル番号、パーツ番号、アセットタグや、サーバ本体、ボードまたは製品を表す短い文字列などの情報を抽出する。
raw I2CコマンドをMaster Write-Read IPMIコマンドと共に実行できる。
IPMI v1.5 Serial-over-LANのボーレートをセットアップする。
指定したチャネルの現在の設定を出力する。
指定したチャネルに、指定したパラメータを設定する。有効なパラメータは次のとおり。
このチャネルのIPアドレスを設定する。
このチャネルのネットマスクを設定する。
このチャネルのMACアドレスを設定する。
デフォルトゲートウェイのIPアドレスを設定する。
デフォルトゲートウェイのMACアドレスを設定する。
バックアップゲートウェイのIPアドレスを設定する。
バックアップゲートウェイのMACアドレスを設定する。
NULLユーザのパスワードを設定する。
SNMPコミュニティ文字列を設定する。
ユーザID 1のユーザアクセスモードを有効にする(指定したチャネルのユーザIDに関する情報を表示するには、'user'コマンドを実行する)。
LANチャネルアクセスモードを設定する。
発信元IPアドレスを次のように設定する。
none 指定なし
static 手動で設定した静的IPアドレス
dhcp DHCPを実行するBMCによって取得されたアドレス
bios BIOSまたはシステムソフトウェアによって読み込まれたアドレス
BMCによって生成されるARP応答を設定する。
BMCによって生成されるGratuitous ARPを設定する。
BMCによって生成されるGratuitous ARPの間隔を設定する。
指定した認証レベルに有効な認証タイプを設定する。
レベル:callback、user、operator、admin
タイプ:none、md2、md5、password、oem
暗号スイート番号を、それを使用できる最大の特権レベルと相互に関連付ける。こうすることで、暗号スイートを特定の特権レベルを持つユーザに制限し、たとえば管理者には通常ユーザよりも強力な暗号スイートの使用を義務付けることができる。
privlistの書式は次のようになる。それぞれの文字が特権レベルを表し、文字の位置が暗号スイート番号を表す。たとえば、最初の文字は暗号スイート1を表し(暗号スイート0は予約されている)、2番目の文字は暗号スイート2を表す。それ以降の文字も同様である。 privlistの長さは15文字でなければならない。
privlistで使われる文字と、その文字に対応する特権レベルは次のとおり。
X 暗号スイートを使用しない
c CALLBACKレベル
u USERレベル
o OPERATORレベル
a ADMINレベル
O OEMレベル
したがって、暗号スイート1の最大限の特権をUSERに、暗号スイート2の最大限の特権をADMINに設定する場合は、次のようなコマンドを実行する。
ipmitool -I interface lan set channel cipher_privs uaXXXXXXXXXXXXX
BMCに照会し、プラットフォームイベントフィルタ(PEF:Platform Event Filter)でサポートされる機能に関する情報を出力する。
現在のPEFの状態(BMCによって処理された最後のSELエントリなど)を出力する。
PEFポリシーテーブルのエントリのリストを表示する。各ポリシーのエントリでは、警告の送信先が定義される。ポリシーセットはテーブルのエントリの集合である。PEF警告アクションはポリシーセットを参照する。
PEFテーブルのエントリのリストを表示する。各PEFエントリでは、センサーイベントがアクションに関連付けられる。PEFがアクティブになっている場合、プラットフォームイベントが発生するたびにBMCはこのテーブルを調べて、イベントに一致するエントリと、実行可能なアクションがないかどうかを確認する。アクションは優先順に実行される(重大度が高いものから実行される)。
raw IPMI コマンドを実行できる。たとえば、rawコマンドでPOHカウンタを照会するには、次のように入力する。
ipmitool -v raw 0x0 0xf
RAW REQ (netfn=0x0 cmd=0xf data_len=0)
RAW RSP (5 bytes)
3c 72 0c 00 00
BMCにセンサーデータレコード(SDR:Sensor Data Record)の情報を照会する。
SDRを読み取り、指定したタイプのセンサー情報を抽出する。次に、各センサーに照会し、センサーの名前、読み取り値、および状態を出力する。
すべてのSDRレコード(センサーおよびロケータ)
完全なセンサーレコード
コンパクトなセンサーレコード
イベントのみのセンサーレコード
管理コントローラロケータレコード
FRUロケータレコード
汎用SDRレコード
エンティティに関連付けられているすべてのセンサーを表示する。詳細オプション('-v')を指定した'sdr list'コマンドを実行し、ターゲットシステムで有効なエンティティIDのリストを取得する。すべてのエンティティIDのリストは、IPMI仕様に記載されている。
raw SDRデータをファイルにダンプする。
注意:SELクロックを設定する必要がある場合は、SELのエントリ時刻が'Pre-Init Time-stamp'と表示される。'sel time get'コマンドと'sel time set <time string>'コマンドを実行し、SELクロックを正確に設定されていなければならない。
システムイベントログ(SEL)とその内容に関する情報をBMCに照会する。
SELの内容を消去する。元に戻すことはできないので注意が必要である。
このコマンドを引数なしで実行すると、SELの内容全体が表示される。
SEL内の最初の(最も古い)count個のエントリを表示する。countを0にすると、すべてのエントリが表示される。
SEL内の最後の(最も新しい)count個のエントリを表示する。countを0にすると、すべてのエントリが表示される。
1つのイベントを削除する。
SELクロックの現在の時刻を表示する。
SELクロックを設定する。設定後のSELのエントリでは、このコマンドで設定した時刻が使用される。<time string>は"MM/DD/YYYY HH:MM:SS"の形式で指定する。時間は24時間形式で指定することに注意。時刻を設定する前に、SELを消去することを推奨する。
センサーとしきい値のリストをワイドテーブル形式で表示する。
名前で指定したセンサーの情報を出力する。
特定のセンサーのしきい値を設定できる。センサーは名前で指定する。
指定したセッションに関する情報を取得する。セッションは、ID、ハンドル番号、またはアクティブ状態で指定する。すべてのセッションを指定する場合は、キーワード'all'を使用する。
指定したチャネルのSerial-Over-LAN設定に関する情報を取得する。チャネルを指定しない場合は、現在使用しているチャネルのSOL設定データが表示される。
Serial Over Lanのパラメータを設定する。チャネルを指定しない場合は、現在使用しているチャネルのSOL設定データが表示される。設定パラメータの更新は、set-in-progressパラメータの更新があるまで自動的に抑制される。
ipmitoolがSerial Over LANモードになり、lanplusインタフェースの使用時にのみ利用できるようになる。BMCに対してRMCP+接続が行われ、端末がrawモードに設定され、ユーザ入力はリモートサーバのシリアルコンソールに送信される。終了時には、SOLペイロードモードが非アクティブ化され、端末の設定はリセットされる。
SOLセッションを制御するために、次のような特別なエスケープシーケンスが用意されている。
BMCのSerial Over LANモードを非アクティブ化する。Serial Over LANモードを終了すると、このコマンドが自動的にBMCに送信される。ただし、SOLモードが予期せず終了した場合には、BMCの状態をリセットするためにこのコマンドが必要になることがある。
ユーザIDの最大数、有効になっているユーザの数、定義されている固定名の数など、ユーザID情報の要約を表示する。
定義されているすべてのユーザIDに関するユーザ情報のリストを表示する。
指定したユーザIDに関連付けられているユーザ名を設定する。
指定したユーザIDのパスワードを設定する。パスワードを指定しないと、パスワードは消去される(NULLパスワードに設定される)。管理者レベルのアカウントからパスワードを削除するときは注意が必要である。
指定したユーザIDによるBMCへのアクセスを無効にする。
指定したユーザIDによるBMCへのアクセスを有効にする。
パスワードが16バイトと20バイトのどちらで格納されているかを確認する。
注意:LANインタフェースがどのチャネルにあるかを確認するには、'channel info channel'コマンドを実行する。
ipmitoolのopenインタフェースでは、OpenIPMIカーネルデバイスドライバを利用する。このドライバは、最近のすべての2.4カーネルおよびすべての2.6カーネルに含まれており、新しいLinuxディストリビューションのカーネルには含まれているはずである。また、さまざまなカーネルのバージョンに対応するIPMIドライバカーネルパッチもOpenIPMIのホームページから入手できる。
必要なカーネルモジュールは、2.4カーネルと2.6カーネルで異なる。2.4ベースのカーネルでipmitoolを使用するには、次のカーネルモジュールを読み込む必要がある。
2.6ベースのカーネルでipmitoolを使用するには、次のカーネルモジュールを読み込む必要がある。
必要なモジュールを読み込んだら、/dev/ipmi0に動的なキャラクタデバイスのエントリを作成する。devfsまたはudevを使用するシステムでは、これは/dev/ipmi/0になる。
デバイスノードを作成するには、まず/proc/devicesを調べてipmidevエントリをチェックし、カーネルによって割り当てられている動的メジャー番号を確認する。通常、最初の動的デバイスのメジャー番号は254、最初のシステムインタフェースのマイナー番号は0になるので、次のように入力してデバイスのエントリを作成する。
mknod /dev/ipmi0 c 254 0
ipmitoolには、起動時にこの処理を自動的に実行するサンプルの初期化スクリプトが用意されている。
ipmitoolでOpenIPMIデバイスインタフェースを使用するには、コマンドラインで次のように指定する。
ipmitoolのbmcインタフェースでは、Solaris 10以降に含まれるbmcデバイスドライバを利用する。ipmitoolでこのインタフェースを使用するには、コマンドラインで次のように指定する。<pp> ipmitool -I bmc <command>
bmcドライバには次のファイルが関連付けられている。
ipmitoolのlipmiインタフェースでは、Solaris 9のIPMIカーネルデバイスドライバを利用する。Solaris 10では、これがbmcインタフェースに置き換わっている。 ipmitoolでこのインタフェースを使用するには、コマンドラインで次のように指定する。
ipmitool -I lipmi <expression>
ipmitoolのlanインタフェースは、IPv4のUDPを使用して、イーサネットLAN接続経由でBMCと通信する。UDPデータグラムは、IPMIセッションヘッダとRMCPヘッダを持つIPMI要求/応答メッセージを含むようにフォーマットされる。
IPMI-over-LANでは、RMCP(Remote Control Protocol) Version 1を使用して、OS起動前およびOS不在の管理をサポートする。RMCPは、UDPデータグラムを使ってポート623に配信される要求-応答プロトコルである。
lanインタフェースは、認証されたマルチセッション接続である。BMCに配信されるメッセージは、単純なパスワード/キーまたはMD5メッセージダイジェストアルゴリズムを使用するチャレンジ/レスポンスプロトコルで認証できる(はずである)。 ipmitoolは管理者特権レベルで接続を試みる。サーバ本体の電源機能を実行するには、この特権レベルが必要だからである。
ipmitoolでlanインタフェースを使用するには、次のように-I lanオプションを指定する。
ipmitool -I lan -H <hostname> [-U <username>] [-P <password>] <command>
ipmitoolでlanインタフェースを使用する場合は、コマンドラインでホスト名を指定する必要がある。パスワードフィールドは省略可能である。コマンドラインでパスワードを指定しないと、ipmitoolは認証なしで接続を試みる。パスワードを指定した場合、BMCでサポートされていればMD5認証が使用され、サポートされていなければ単純なパスワード/キーが使用される。ただし、コマンドラインオプションで指定されている場合は、その設定が優先される。
lanインタフェースと同様に、lanplusインタフェースはIPv4のUDPを使用して、イーサネットLAN接続経由でBMCと通信する。違いは、lanplusインタフェースではIPMI v2.0仕様で定義されているRMCP+プロトコルが使われることである。RMCP+では、改良された認証およびデータ整合性チェックのほか、暗号化や、複数タイプのペイロードの伝達が可能である。汎用Serial Over LANのサポートにはRMCP+が必要なので、ipmitool sol activateコマンドを実行するにはlanplusインタフェースを使用する必要がある。
RMCP+セッションの確立には、RAKP(Remote Authenticated Key-Exchange Protocol)と呼ばれる対称型のチャレンジ/レスポンスプロトコルが使用される。このプロトコルでは、さまざまなオプションのネゴシエーションが可能である。ipmitoolでは、まだユーザがすべてのオプションの値を指定することはできない。デフォルトでは、v2.0仕様で必須と指定されている最も明白な設定になる。認証および整合性チェックのHMACSはSHA1を使って生成され、暗号化はAES-CBC-128を使って実行される。 ロールレベルのログインはまだサポートされていない。
暗号化機能を実行し、lanplusインタフェースをサポートするには、ipmitoolをOpenSSLライブラリにリンクする必要がある。必要なパッケージが見つからない場合は、コンパイルもサポートもされない。
ipmitoolでlanplusインタフェースを使用するには、次のように-I lanplusオプションを指定する。
ipmitool -I lanplus -H <hostname> [-U <username>] [-P <password>] <command>
ipmitoolでlanplusインタフェースを使用する場合は、コマンドラインでホスト名を指定する必要がある。-Aおよび-C以外のコマンドラインオプションはlanインタフェースと同じである。
-Cオプションでは、IPMIv2.0仕様の表22-19にある暗号スイートIDに基づいて、lanplusセッションに使用する認証、整合性チェック、および暗号化のアルゴリズムを指定できる。デフォルトの暗号スイートは3で、この場合はRAKP-HMAC-SHA1認証、HMAC-SHA1-96整合性チェック、およびAES-CBC-128暗号化のアルゴリズムが指定される。
> ipmitool -I lan -H 1.2.3.4 -f passfile sdr list
Baseboard 1.25V | 1.24 Volts | ok
Baseboard 2.5V | 2.49 Volts | ok
Baseboard 3.3V | 3.32 Volts | ok
> ipmitool -I lan -H 1.2.3.4 -f passfile sensor get "Baseboard 1.25V"
Locating sensor record...
Sensor ID :Baseboard 1.25V (0x10)
Sensor Type (Analog) :Voltage
Sensor Reading :1.245 (+/- 0.039) Volts
Status :ok
Lower Non-Recoverable :na
Lower Critical : 1.078
Lower Non-Critical : 1.107
Upper Non-Critical : 1.382
Upper Critical : 1.431
Upper Non-Recoverable :na
> ipmitool -I lan -H 1.2.3.4 -f passfile chassis power status
Chassis Power is on
> ipmitool -I lan -H 1.2.3.4 -f passfile chassis power on
Chassis Power Control:Up/On