11.4. デバイスのリダイレクトに制限を設ける

リダイレクトからの特定のデバイスをフィルター処理するには、フィルタープロパティーを -device usb-redir に渡します。フィルタープロパティーはフィルタールールで構成される文字列を取ります。ルールの形式は以下の通りです。
<class>:<vendor>:<product>:<version>:<allow>
特定フィールドのいずれの値も受け入れるようにするには、-1 の値を使用します。「|」をセパレーターとして使用すると同一コマンドラインで複数のルールを使用することができます。デバイスがフィルタールールに一致しない場合、リダイレクトは許可されません。

例11.1 Windows ゲスト仮想マシンでのリダイレクト制限

  1. Windows 7 ゲスト仮想マシンを用意します。
  2. 次のコードの抜粋をゲスト仮想マシンの XML ファイルに追加します。
        <redirdev bus='usb' type='spicevmc'>
          <alias name='redir0'/>
          <address type='usb' bus='0' port='3'/>
        </redirdev>
        <redirfilter>
          <usbdev class='0x08' vendor='0x1234' product='0xBEEF' version='2.0' allow='yes'/>
          <usbdev class='-1' vendor='-1' product='-1' version='-1' allow='no'/>
        </redirfilter>
  3. ゲスト仮想マシンを起動し、次のコマンドを実行して設定の変更を確認します。
    # ps -ef | grep $guest_name
    -device usb-redir,chardev=charredir0,id=redir0,/
    filter=0x08:0x1234:0xBEEF:0x0200:1|-1:-1:-1:-1:0,bus=usb.0,port=3
  4. USB デバイスをホスト物理マシンに挿入し、virt-viewer を使ってゲスト仮想マシンに接続します。
  5. メニュー内の USB デバイスの選択 をクリックします。「Some USB devices are blocked by host policy (ホストのポリシーによりブロックされているデバイスがあります)」というようなメッセージが生成されます。確認の OK をクリックし、続行します。
    フィルターが適用されます。
  6. フィルターよるキャプチャーが正しく動作するよう USB デバイスの製造元と製品を確認し、次にホスト物理マシンのドメイン XML に次の変更を加えて USBリダイレクトを許可します。
       <redirfilter>
          <usbdev class='0x08' vendor='0x0951' product='0x1625' version='2.0' allow='yes'/>
          <usbdev allow='no'/>
        </redirfilter>
  7. ゲスト仮想マシンを再起動し、virt-viewer を使ってゲスト仮想マシンに接続します。USB デバイスがトラフィックをゲスト仮想マシンにリダイレクトするようになります。