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

フィルターを使って特定のデバイスをリダイレクトの対象から外すには、フィルタープロパティーを -device usb-redir に渡します。フィルタープロパティーはフィルタールールで構成される文字列を取ります。ルールの形式は次の通りです。
<class>:<vendor>:<product>:<version>:<allow>
-1 を使用すると、特定フィールドで任意の値を受け入れるように指定できます。| を区切りに使用することにより、同じコマンドラインで複数のルールを使用することができます。

重要

デバイスがルールフィルターのいずれにも一致しない場合、これをリダイレクトすることができません。

例10.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-manager を使ってゲスト仮想マシンに接続します。
  5. メニュー内の Redirect USB Service をクリックします。これにより、「Some USB devices are blocked by host policy」というメッセージが生成されます。OK をクリックして確認し、続行します。
    フィルターが適用されます。
  6. フィルターよるキャプチャーが正しく動作するよう USB デバイスの製造元と製品を確認し、USB リダイレクトが可能になるよう、ゲスト仮想マシンのドメイン XML に次の変更を加えます。
       <redirfilter>
          <usbdev class='0x08' vendor='0x0951' product='0x1625' version='2.0' allow='yes'/>
          <usbdev allow='no'/>
        </redirfilter>
  7. ゲスト仮想マシンを再起動し、virt-viewer を使ってゲスト仮想マシンに接続します。USB デバイスがトラフィックをゲスト仮想マシンにリダイレクトするようになります。