というわけで気まぐれ技術のお話です。めちゃ真面目な記事というよりは備忘録も兼ねた適当な記事です。
少し前にPICO4セットを購入し普段のVRは無線で行うようになりました。そして気になりました。
「実家(愛媛)から大阪のPCにワイヤレスで接続してSteamVR出来るんじゃね?」と
というわけで以下の要件で接続してみます。
・接続にはALVRを使用する。
・拠点間の通信はFW間のIPsec VPNを使用する。
愛媛と大阪の家はFortiGateでIPsec VPNのトンネルを張っています。そのためPICO4本体にVPN接続の機能が無くとも、愛媛-大阪間で通信ができる想定です。
簡単なネットワーク構成図です。VLANだのサーバだのいらないものは省いています。
普段は大阪拠点の「メインPC - FortiGate 60F - FortiAP 431F - PICO4U」で接続しています。
今回は「メインPC - FortiGate 60F =IPsec VPN= FortiGate 50E - FortiAP 221E - PICO4U」で接続します。
とりあえず拠点間のVPNを張っているFortiGate同士でPingを打ってみると20msほどでした。
PICO4でワイヤレス接続をしているとき負荷にもよりますがトータルの遅延は100㎳ほどとなっており、そこに20msほど増える想定です。
PICO4 Connectを利用した接続はマルチキャストで機器を検出しているためIPsecトンネルを通りません。IPを直指定する項目も無いためALVRを使用します。
(これは愚痴ですが最近のソフトウェアは初心者が変に触らないようにか、それに伴うサポートの軽減か、テスト項目・脆弱性の削減か不明ですが、何でもかんでも項目を隠したり機能的に無くしたりどんどん不便になってる気がします。Windows11のインストールでネット接続必須なのにスタティックIP設定がGUI上に無いとか・・)
ではやってみましょう
初めに任意の方法で大阪拠点のPCを起動します。私はWOLで起動します。
最初は普通のRDPでリモート接続し、ALVRとSteamVRを起動しましたが、RDPが異常に重くなりまともに操作できなくなりました。
そのためChromeリモートデスクトップ接続に切り替え対処しました。
ALVRにてデバイスのIPを指定します。
試してみると普段ワイヤレス接続している設定ではConnection Success > error を繰り返し接続できなかっため以下のようにかなり解像度を落とし、BitrateModeをAdaptiveにしました。
BitrateMode Constantで35Mbpsほどでも動きましたが、顔を動かすと頻繁にブロックノイズが走り体験としてはあまりよくなかったです。
結果画質は悪いものの映像と音声の遅延は普段のVRとほぼ変わらず、十数人いるSuroomでもいつも通りの体験となりました。
もう少しいろいろ試してみたかったのですがパソコンが持病で応答しなくなったので取り敢えずそこまでの即応性が必要とされないVRChatぐらいは出来るということがわかりました。
その際と帰って同一設定でVRChatした時の各種情報は以下のようになっておりました。
←拠点間VR 無線VR→
十数人人がいるインスタンスと一人のインスタンスなのでFPSの違いは単純なPCの処理速度の問題です。
Transport latencyは拠点間のレイテンシ(約20ms)がそのまま反映されており、同一空間内でVRしているときはMaximum decoder latencyの30msまでビットレートが底上げされていますね。
みんそく(https://minsoku.net/)を使用して※計測したところ愛媛のインバウンドは300Mbps、大阪のアウトバウンドは500Mbpsほどなので7~12Mbpsほどしか出ていなかったのはかなり遅いですが、恐らくFortiGate 50EのIPsec VPNスループットが90Mbpsしかないからかも・・もしくはTotal latencyが極端に大きくならないように制限されたとか・・?
※本当はiperfでの計測も行う予定でしたが失念しておりました。
愛媛拠点側のFWを更改した暁には再チャレンジしてみたいですね
(あともしかしたらGIPを指定してVIPでもいけるかも・・?と今思いついた。)
なんにせよ10Mbpsほどの低速通信でも(画質に目をつぶれば)PCVRが出来ることがわかりました。
「旅行してるけどゲーミングノートPCなんて持ってないしPICO4本体で出来ることも限られているしどうしようかな~・・あっそういえばこんなこともあろうかと家のルータとVPN接続できる機器持ってきてたんだった!よかった~!」
って時にお試しください。