VPN CLIENTの接続状況画面のプロトコル情報について

SoftEther VPN に関するご質問はこのフォーラムにお気軽にご投稿ください。
Post Reply
hiura
Posts: 98
Joined: Wed Mar 10, 2021 1:56 am

VPN CLIENTの接続状況画面のプロトコル情報について

Post by hiura » Thu Dec 16, 2021 4:36 am

VPN CLIENTの接続状況画面のプロトコル情報について

VPN CLIENTの接続状況画面のプロトコル詳細のRUDP, RUDP_Bulkの意味がわかりません。何をするプロトコルなのでしょうか?。
(接続設定アイコンをダブルクリック時)

物理通信に使用中のプロトコル: VPN over UDP with NAT-T (IPv4)
プロトコル詳細: IPv4 RUDP RUDP_Bulk_Ver=2 UDPAccel_Ver=2 ChachaPoly_OpenSSL_UDPAccel_MSS=1309

cedar
Site Admin
Posts: 1837
Joined: Sat Mar 09, 2013 5:37 am

Re: VPN CLIENTの接続状況画面のプロトコル情報について

Post by cedar » Thu Dec 16, 2021 8:45 am

RUDP は、SoftEther VPN 内部で使用されている独自のプロトコルの一つで、UDP でしか通信が行えない状況で鍵交換などの信頼性が必要な通信を行うために、UDP 上に信頼性のあるストリーム通信を行う層(L5)を構築するもののようです。

hiura
Posts: 98
Joined: Wed Mar 10, 2021 1:56 am

Re: VPN CLIENTの接続状況画面のプロトコル情報について

Post by hiura » Thu Dec 16, 2021 10:18 am

層(L5)のプロトコルであること納得しました。

教えていただいた内容と同じ内容の個人日記が見つかりました。R(Reliable)の意味もわかりました。
https://softether.hatenadiary.org/entry/20121128/p2

いっぽう、新しい手法では「Reliable UDP」(内部名称) という UDP トンネルプロトコルが実装されています。
このトンネルプロトコルは UDP パケットで構成されますが、実際にはその中に TCP と類似したストリームが流れるようになっています。
TCP と同様に確認応答やシーケンス番号などの仕組みもあり、パケットロスが発生した場合でもストリームがおかしくなることはありません。
このストリームの中に SSL (TLS v1) を流してします。ユーザー認証や暗号化などに必要なセキュリティ通信の確立は SSL に任せてあります。
つまり、この部分は SSL over UDP のようなものです。

hiura
Posts: 98
Joined: Wed Mar 10, 2021 1:56 am

Re: VPN CLIENTの接続状況画面のプロトコル情報について

Post by hiura » Fri Dec 17, 2021 3:45 am

使用中のプロトコルが「VPN over UDP with NAT-T (IPv4)」の場合のケースです。

プロトコル詳細には
UDP高速化機能を有効にすると「UDPAccel_Ver=2 ChachaPoly_OpenSSL_UDPAccel_MSS=1309」が表示されますが、無効にすると削除されます。
NAT-Tでは認証と鍵交換を含めたすべての通信を UDP/IPで行うようですが、有効/無効で何が違うのでしょうか?。
単純に、高速化機能とはUDPを使う通信(TCPより高速)と理解していましたが。高速化するための特別なプロトコルが実装されているようにも見えます。

以下はIPV4でのVPN接続時のプロトコル例です。

ケース1:UDP高速化機能を有効
物理通信に使用中のプロトコル: VPN over UDP with NAT-T (IPv4)
プロトコル詳細: IPv4 RUDP RUDP_Bulk_Ver=2 UDPAccel_Ver=2 ChachaPoly_OpenSSL_UDPAccel_MSS=1309
高速化機能を使用中:はい

ケース2:UDP高速化機能を無効
物理通信に使用中のプロトコル: VPN over UDP with NAT-T (IPv4)
プロトコル詳細: IPv4 RUDP RUDP_Bulk_Ver=2
高速化機能を使用中:いいえ
Last edited by hiura on Wed Dec 22, 2021 4:25 am, edited 1 time in total.

hiura
Posts: 98
Joined: Wed Mar 10, 2021 1:56 am

Re: VPN CLIENTの接続状況画面のプロトコル情報について

Post by hiura » Mon Dec 20, 2021 2:22 pm

ケース1では、「高速化機能を使用中」が「はい」となり、ケース2では、「高速化機能を使用中」が「いいえ」となります。

「高速化機能を使用中」が「はい」 の時のパケットのデータの通信プロトコルは「UDPAccel_Ver=2」であると推測しますが、
「高速化機能を使用中」が「いいえ」の時のパケットのデータの通信プロトコルは「RUDP_Bulk_Ver=2」(ストリーム通信)になるのでしょうか?。

cedar
Site Admin
Posts: 1837
Joined: Sat Mar 09, 2013 5:37 am

Re: VPN CLIENTの接続状況画面のプロトコル情報について

Post by cedar » Tue Dec 21, 2021 4:42 am

UDP 高速化機能は、通信制御用のものとは別の UDP のサブチャネルを使って信頼性を犠牲にして通信速度の向上を期待するもののようです。
一方 RUDP バルクモード転送は、NAT-T で接続した際に、UDP で構成されたメインチャネルでパケットの伝送を行うモードのようです。
機能的には、いずれも UDP でパケットデータを転送する機能を持っているので似たようなものですが、位置づけが違うのではないかという気がします。

hiura
Posts: 98
Joined: Wed Mar 10, 2021 1:56 am

Re: VPN CLIENTの接続状況画面のプロトコル情報について

Post by hiura » Mon Dec 27, 2021 2:55 pm

>>UDP 高速化機能は、通信制御用のものとは別の UDP のサブチャネルを使って信頼性を犠牲にして通信速度の向上を期待するもののようです。
一方 RUDP バルクモード転送は、NAT-T で接続した際に、UDP で構成されたメインチャネルでパケットの伝送を行うモードのようです。

RUDP バルクモード転送とは複数チャネルを使用するのでしょうか?。WIRESHARKでパケットキャプチャすると、NAT-TではUDPを複数使って転送しているように見えます。
ケース1の場合はUDPチャンネル3つ(黄色蛍光ペン箇所)はパケットがカウントアップされる。緑蛍光ペン箇所は最初だけ通信して、あとはカウントアップされない。
ケース2の場合はUDPチャンネル2つ(黄色蛍光ペン箇所)はパケットがカウントアップされる。

テスト構成
ルータのLAN側に接続している同一PCにVPN CLIENTとVPN SERVER両アプリをインストールし、
VPN CLIENTからVPN SERVER(ルータのWAN側IPアドレス)へ接続しています。
PCのIPアドレスは192.168.0.6です。

WIRESHARK CAPTURE
ケース1:
NO1_NAT-T高速化機能使用中はい_UDP色付2.jpg
ケース2:
NO2_NAT-T高速化機能使用中いいえ_UDP色付2.jpg
You do not have the required permissions to view the files attached to this post.

cedar
Site Admin
Posts: 1837
Joined: Sat Mar 09, 2013 5:37 am

Re: VPN CLIENTの接続状況画面のプロトコル情報について

Post by cedar » Mon Dec 27, 2021 8:20 pm

NATルータがヘアピンNATに対応した特別なものでない場合、同一グローバルIPアドレス内でのNAT-T接続はうまく機能しないと思います。
また、サーバーとクライアントが同一ホストであることを検出すると、特別な処理が行われるルーチンがあるようなので、テストは別グローバルIPを持ったPCで行うことをお勧めします。

Post Reply