Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

9.6. 乱数ジェネレーター (RNG) デバイス

virtio-rng は、仮想 RNG (random number generator) デバイスであり、RNG データをゲスト仮想マシンのオペレーティングシステムにフィードします。これにより、要求に応じてゲスト仮想マシンに新しいエントロピーを提供します。
RNG の使用は、キーボード、マウス、その他の入力などのデバイスがゲスト仮想マシンで十分なエントロピーを生成するのに十分でない場合に特に役立ちます。virtio-rng デバイスは、Red Hat Enterprise Linux と Windows ゲスト仮想マシンの両方で利用できます。Windows 要件のインストール手順については、注記 を参照してください。特に明記されていない限り、以下の説明は Red Hat Enterprise Linux と Windows の両方のゲスト仮想マシンを対象としています。
Linux ゲスト仮想マシンで virtio-rng が有効になっている場合、chardev はゲスト仮想マシンの /dev/hwrng/ の場所に作成されます。次に、この文字 dev を開いて読み取り、ホストの物理マシンからエントロピーをフェッチできます。ゲスト仮想マシンのアプリケーションが virtio-rng デバイスからのランダム性を透過的に使用することで利益を得るには、/dev/hwrng/ からの入力をゲスト仮想マシンのカーネルエントロピープールに中継する必要があります。これは、この場所の情報が rgnd デーモン (rng-tools 内に含まれている) と結合されている場合に実行できます。
この結合により、エントロピーがゲスト仮想マシンの /dev/random ファイルにルーティングされます。このプロセスは、Red Hat Enterprise Linux 6 ゲスト仮想マシンで手動で行います。
Red Hat Enterprise Linux 6 ゲスト仮想マシンは、以下のコマンドを実行して組み合わせます。
# rngd -b -r /dev/hwrng/ -o /dev/random/
詳細は、ここで説明するコマンドオプションの説明は、man rngd コマンドを実行します。その他の例は、手順9.11「コマンドラインツールでの virtio-rng の実装」 で virtio-rng デバイスを設定します。
注記
Windows ゲスト仮想マシンでは、ドライバー viorng をインストールする必要があります。インストールが完了すると、仮想 RNG デバイスは Microsoft が提供する CNG(手動生成)API を使用して機能します。ドライバーがインストールされると、virtrng デバイスが RNG プロバイダーのリストに表示されます。

手順9.11 コマンドラインツールでの virtio-rng の実装

  1. ゲスト仮想マシンをシャットダウンします。
  2. ターミナルウィンドウで、virsh edit domain-name コマンドを使用して、目的のゲスト仮想マシンの XML ファイルを開きます。
  3. <devices> 要素を編集して、以下の内容を追加します。
    
      ...
      <devices>
        <rng model='virtio'>
          <rate period="2000" bytes="1234"/>
          <backend model='random'>/dev/random</backend>
               <source mode='bind' service='1234'>
               <source mode='connect' host='192.0.2.1' service='1234'>
          </backend>
        </rng>
      </devices>
      ...