🖱

ロジクールのFlow機能とHyper-V仮想NICの互換性

2021/12/19に公開

私はロジクールのFlow機能を愛用しているのですが、Hyper-Vとの互換性で少しハマったので対処法をメモに残します。

そもそもロジクールのFlow機能とは

ご存じない方のためにこの機能を簡単に説明します。

ロジクールのマウスはPC3台まで接続を登録して接続先を切り替えながら共有できます。Flow機能では画面の端にマウスポインターを移動すると別のPCに接続が切り替わり、まるで単一PCをマルチディスプレーで使っているような感覚で使えて便利です。(Flow機能を使わない場合はマウスに付いている物理的なボタンを押して接続先を切り替えます)

また、リモートデスクトップのように、複数PC間でクリップボードを共有して文字列をコピペしたり、ファイルのコピペもできます。

このあたりの説明は公式サイトの動画やAsciiの記事を見たほうが早いかもしれないのでリンクを貼っておきます。

https://www.logicool.co.jp/ja-jp/product/options?page=flow-multi-device-control
https://ascii.jp/elem/000/001/497/1497389/

Flow機能の動作要件

Flow機能を使うためには

  1. Logicool Optionsという同社が無償で提供するソフトをインストールする必要があります。(MacとWindowsに対応、Linux版は未リリース)
  2. Flow機能を使うPCはすべて同じサブネット上にいる必要があります。(そして物理NICが必要、Hyper-Vの仮想NICは非対応です)

私のFlow機能の利用環境

去年から私も自宅勤務なのですが、会社支給のノートPCと外部モニターをつないで仕事をしています。そして、この外部モニターにはHDMI切り替え機を介して個人所有のデスクトップPCにも接続しています。

基本的にキーボード、外部モニター、マウスは会社支給のノートPCと接続しておき、デスクトップPCにはリモートデスクトップで必要な時に画面にアクセスするのですが、たまに上手くつながらない時など直接デスクトップPCを操作しようとするときに地味に楽です。「たまにしか使わないならマウスの物理ボタンを押すのでもいいじゃん」と突っ込まれたらそれまでなのですが(汗)

ちなみにキーボードもBluetoothで3台まで接続を切り替えられるものを使っています。

問題: Hyper-Vの仮想NICと互換性がない

このFlow機能なのですが、Hyper-Vの仮想NICには対応していないようです。Hyper-Vを有効化して仮想マシン化されたWindows上で外部と通信できるNICが仮想NICだけになった時点でFlowが機能しなくなります。以下、順を追って説明します。

WindowsでHyper-Vを有効にすると元々のホスト環境はHyper-Vにホストされる仮想マシンになります。(MSFT用語ではルート/親パーティションと呼ぶようです。参考までリンクを貼っておきます)そしてNICは元々のものがそのままの名称で仮想マシンとしてのWindowsに割り当てられている状態です。

https://docs.microsoft.com/ja-jp/biztalk/technical-guides/appendix-b-hyper-v-architecture-and-feature-overview

Hyper-V環境でも仮想マシン用に仮想スイッチが必要になりますが、元々のホスト環境で使っていたNICを仮想スイッチに割り当てると、仮想マシンとなったWindowsと共有するか否かが選べます。(スクリーンショットの赤枠部分。また、ここではSLOT1 Port1のNICを選び、仮想スイッチ名をX710-T4L#1と命名しています。)

共有を許可しない場合

この場合は、単にそのNICが仮想マシンとなったWindowsから使用できなくなります。Hyper-V Extensible Virtual Switchにチェックが付き、TCP/IPv4からチェックが外れてます。この場合、他に利用可能なNICがないと仮想マシンとなったWindowsは通信ができなくなります。この時点でFlow機能も使えなくなるし、そもそも通信ができないのは困りますね。

共有を許可した場合

この場合はvEthernet(X710-T4L#1)という仮想NICが新たに作成され、IPアドレスなどを引き継ぎます。この場合は仮想マシンとなったWindowsは通信ができます。

しかし、Flow機能はこの仮想NICに対応していないため、マウスを共有したい他のPCと通信ができなくなりFlow機能が使えなくなってしまいます。

どうすれば良いか

Flow機能はHyper-Vの仮想NICに対応していないので、有線・無線を問わず物理NICを残しておいてあげれば良いわけです。なので対処方法としては、

  1. 物理NICに複数ポートある場合、仮想スイッチに使っていないポートをWindowsで使う。今回の環境であればSLOT1 Port2~4ですね。(このNICは4ポートのモデルです)
  2. NICが複数ある場合(WiFiと有線など)、片方を仮想スイッチに、もう一方をWindowsで使う。ちなみに仮想スイッチには有線がおすすめです。Hyper-VでWiFiを仮想スイッチに使うとすごく遅くて実用に耐えません。
  3. Hyper-Vの内部ネットワーク用仮想スイッチを作成して物理NICのインターネット接続を共有する。内部スイッチはそのままだと物理サーバ外のネットワークと通信できませんが、物理NICからインターネット共有することでNAT接続を形成できます。

    なお、NAT越しに仮想マシンにアクセスするのはポートフォワードなどが必要になり不便に感じる場合もあると思います。ということで、ブリッジを物理NIC(SLOT1 Port1)と仮想NIC(vEthernet(X710-T4L#1))で作成しましたが作成段階でエラーが発生し、後付けでエラー回避して無事稼働し始めたように見えても仮想マシンではネットワークが使えない状態でした。

ということで、私の場合は複数ポートを持つNICが何枚か刺さっているのですが、とりあえずWindowsはWiFiでインターネットに接続し、有線をWindowsとは共有せずにHyper-Vの外部ネットワーク用仮想スイッチに割り当てる構成にすることでFlow機能も無事に使えています。めでたし。

おわりに

少しハマったのと日本語・英語ともにほとんど情報がなかったのでメモに残しておきます。ニッチな話題ですしこのメモの需要はほぼ無さそうとは思いますが、このメモがもしお役に立てたなら幸いです。

GitHubで編集を提案

Discussion