goo blog サービス終了のお知らせ 

rabbit51

it's since Nov.30 2005
May.29 2014, transferred from broach

Windows L2TP/IPSec VPNのスループットが低い・・・

2020-11-15 17:00:00 | ネットワーク
ヤマハNVR500 L2TP/IPSecの最大VPN回線速度計測」及び「NVR500 L2TP/IPSecの最大VPN回線速度計測 #2」からNVR500のL2TP/IPSec最大スループットは、約150Mbps(UP)/100Mbps(DOWN)。「NVR510 L2TP/IPSec 最大VPN回線速度計測」からNVR510のL2TP/IPSec最大スループットは、約700Mbps(UP)/650Mbps(DOWN)だった。
Macbook pro上のParallels Desktop for MACで稼働するWindows 10 Homeの L2TP/IPSec VPNアプリとNVR500間で最大スループットを計測してみたが、約130Mbps程度で計測値のバラツキが大きかった。より転送能力の高いNVR510でも計測してみたが同様の計測値だった。
Parallels DesktopのVirtual serverの影響と推測したが、VAIO Pro 13(VJP131B01N)上のWindows 10 Proでも同程度だった。VAIO Pro 13 dual bootのdebian 10では、700Mbps以上のスループットだったので原因を探ってみた。


(1)L2TP/IPSecシステム構成
擬似インターネット回線「172.24.00/16」を設定し、L2TP/IPSecサーバーとして「NVR510」(172.24.1.2)と「Debian10+strongSwan+xl2tpd」(172.24.1.10)を配置。L2TP/IPSecクライアントとしてDual Boot VAIO Pro 13でWindows10 Pro(172.24.1.60)とDebian 10+strongSwan+xl2tpd(172.24.1.50)。Macbook Pro(macOS Mojave)(172.24.1.70)及びmacOS上のParallels Desktopに共有ネットワーク接続(172.24.1.70)とブリッジ接続(172.24.1.80)したWindows 10 homeとした。スループット計測は、iperf3を使用し、Debian10にL2tp/IPSecサーバー上にサーバー(172.24.1.10/192.168.10.1/192.168.11.239/192.168.1.57)を稼働した。

(2)構成機器
L2TP/IPSecサーバー
NVR510 Rev. 15.01.16(Wed Mar 11 12:06:39 2020)
設定は「NVR510 L2TP/IPSec 最大VPN回線速度計測」の実環境での計測と同等
ESP: AES128/SHA(NVR5x0の暗号鍵記録が利用出来る条件を選択)
MTU/MRU=1280(default 1258でIPv4の最適値だがIPv6の最小MTUに合わせた)
L2TP Keepalive OFF(NVR510のL2TP Keepaliveは、データ通信中でもKeepalive応答しないとTimeoutで通信断するため。RFC2661/3931に準拠しない)

L2TP/IPSecサーバー(比較用)
XPS8300(Dell)
CPU: Intel Core i7 - 2600@3.4/3.8GHz
Memory: 16Gb
OS: Debian 10 (10.4)
strongSwan(5.7.2)+xl2tpd(1.3.12)+pppd(2.4.7)
iperf3(3.6)

NVR510 L2TP/IPSec VPNの暗号組合せ(cipher suite)をWindows/macOS/Linux(strongSwan/xl2tpd)で接続確認」の「(1)L2TP/IPSecサーバー」「/etc/ipsec.conf」「conn L2TP-VPN」に「IKE=aes128-sha1-modp1024」を追加

L2TP/IPSecクライアント
VAIO Pro 13
CPU: Intel Core i5 - 4210U@1.70/2.39GHz
Memory: 8Gb
OS: Windows 10 Pro(Ver. 2004-OS build 19041.572)
OS: Debian 10 (10.4)
Macbook pro(Late 2013)
CPU: Intel Core i7 - 4850HQ@2.3/3.5GHz
OS: macOS Mojave(Ver. 10.14.6)
Memory: 16Gb

CPU: 2 Cores for Windows / Intel Core i7 - 4850HQ@2.3/3.5GHz
OS: Windows 10 Home(Ver.1909-OS build 18363.1139)
  on Parallels Desktop for MAC (Ver.14.1.3-45485)
  on macOS Mojave(Ver. 10.14.6)
Memory: 2Gb

NVR510 L2TP/IPSec VPNの暗号組合せ(cipher suite)をWindows/macOS/Linux(strongSwan/xl2tpd)で接続確認」の(2)(3)(4)と同様に「IKE=aes128/sha1/DHGroup 2(modp1024)」「ESP=aes128/sha1」で接続するよう設定。

NVR510のSecondary Addressを使うと正しいNAT-Dを返さない。
Windows 10 は、AssumeUDPEncapsulationContextOnSendRule=(DWORD)2とした。

Windows 10のVPN接続デフォルトMTU=1400を1280へ変更。¥HKEY_Local_Machine¥System¥CurrentControlSet¥Services¥TCPIP¥Parameters¥Interfaces¥(GUID)¥MTU=(DWORD)0x500

(3)測定
Windows10HomeのNAPTとbridgeは、Parallels Desktopのインターフェースデバイス設定で共有(MacBook proのネットワークインターフェースをNAPT共有)接続とブリッジ接続方式を示す。ブリッジ接続の方が若干スループットが高い。ipef3計測は、1秒毎のスループット計測を60秒間行い、平均値と標準偏差を算出した。

実環境下でのスループットなので測定タイミングにより測定対象以外の通信影響を受けている。
WindowsのL2TP/IPSec通信のスループットは、maxOSやLinux+strongSwan+xl2tpdと比べて大きく低下している。

(4)パケット解析
NVR510は、LAN2インターフェースの接続するスイッチポートにミラーポートを設定し、wiresharkでキャプチャ。
Debian10+strongSwanは、tcpdumpで172.24.1.10アドレスをキャプチャ。
キャプチャ数が多くなるため、iperf3のスループット計測を1秒毎に10秒間でアップストリームとダウンストリームで計測した。

NVR510 L2TP/IPsec の暗号鍵をWireshark用にLUAスクリプトで生成する」で暗号化鍵を抽出してwiresharkに設定しパケットを復号した。このスクリプトは、VPN接続セッションの最後の「鍵」を取り出すように設計したためか、IKE Phase2の最後の部分しか復号できなかった。Windows 10のL2TP/IPSec接続は、iperf3計測中に複数回の「Rekying」が行われている。

Phase2 「Security Association」の「Lifetime」を調べてみると「LifetimeSeconds=3600」「LifetimeKillobytes=250000」「LifetimePackets=2147483647」となっている。
VPN接続時のIPSec SA情報


250Mbytesのデータ転送毎にWindows 10 clientからRekying要求が発生する。iperf3のスループット計測では、10秒間に300Mbytes程のデータ転送が発生するので1回以上のRekyingが発生する。スループットが高い程Rekyingの回数も多くなる。

(5)SAのLifeTime値変更方法を探る
HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Services¥RemoteAccess¥Parameters¥L2TP
saDataSize=(DWORD) 0x0003d090(250000) -> 0x017d7840(250000000)

変更後再起動してVPN L2TP/IPSec接続するがSAのLifetimeKillobytesに変化は無かった。
IKEv2のsaDataSize=(dword)0x01fffc00(33553408)であるが、IKeV2で接続してもIPSecのSAでLifetimeKillobytes=250000であった。


Microsoft Windows 10 IPsec VPN Client」の「3.5 Configuring the Client Lifetimes」によれば、「4.3 Configuring SA Lifetimes」「
4.3.2 Configuring Quick Mode SA Lifetimes」で設定。確認してみる。
NetIPsecQuickModeCryptoProposal
PS C:¥Windows¥System32> $QMPropo=New-NetIPsecQuickModeCryptoProposal -Encapsulation ESP -ESPHash SHA1 -Encryption AES128 -MaxKiloBytes 10000000
NetIPSecQuickModeCryptoSet
PS C:¥Windows¥System32> $QMSet=New-NetIPSecQuickModeCryptoSet -DisplayName "esp:sha1-aes128-10Gb" -Proposal $QMPropo
NetIPSecRule
PS C:¥Windows¥System32> New-NetIPSecRule -DisplayName "LifeKilobyte-Rule" -RemoteAddress any -InboundSecurity Require -OutboundSecurity Request -QuickModeCryptoSet $QMSet.Name

ローカルポリシーとして設定された。この状態でL2TP/IPSec VPN接続を行うがLifetimeKillobytesに変化なかった。

この記事を読むとL2TP/IPSec VPNは、RAS-based IPSecでRegistoryから設定する必要があると思える。
しかし、saDataSize設定が有効に働かない。
L2TP/IPSecスループットが「Rekeying」によりどの程度低下するのか確認することが出来なかった。
スループットの偏差から推定すると+-30Mbps程度と思われる。

(6)結果
Windows10のL2TP/IPSec VPNの最大スループットは、250Mbps(UP)/400Mbps(DOWN)程度であった。
macOSの700Mbps(UP)/800Mbps(DOWN)、Debian10の850Mbps(UP)/850Mbps(DOWN)と較べて50%程度のスループット。

IPv6やIPv4 over IPv6などでフレッツ光回線の実スループットが向上するとWindows L2TP/IPSecのスループットの低さが目立ってくる。。。

------------------------

 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

フレッツ光NGNのIPv6(IPoE)インターネット接続業者(VNE)とIPv6 Prefix #2

2020-09-20 22:00:00 | ネットワーク
先週金曜日(2020年9月17日)にIPv6(IPoE)インターネット接続業者(VNE)が一つ追加された
前回が2018年8月31日の更新だったので約2年ぶり



2011/01/14 12:59:13 3社VNEでPrefix/23
2013/02/04 12:14:50 3社VNEでPrefix/30に変更
2018/02/02 11:27:52 4社追加され7社VNE体制
2018/08/31 10:03:19 1社追加され8社VNE体制
2020/09/17 09:23:31 1社追加され9社VNE体制
=== NgnRouteInfo ===
0000,2020/09/17 09:23:31--
1111,2404:01a8:7e00:0000:0000:0000:0000:0000/40--東日本電信電話(NTT-EAST)(JPNIC)
1211,2404:01a8:0000:0000:0000:0000:0000:0000/32--東日本電信電話(NTT-EAST)(JPNIC)
1212,2001:0c90:0000:0000:0000:0000:0000:0000/33--東日本電信電話(NTT-EAST)(JPNIC)
1311,2408:0210:0000:0000:0000:0000:0000:0000/30--東日本電信電話(NTT-EAST)(JPNIC)
1411,2400:2410:0000:0000:0000:0000:0000:0000/30--BBIX-IPv6 ソフトバンク(APNIC)
1412,2409:0010:0000:0000:0000:0000:0000:0000/30--MF-Transix-E-1 インターネット・マルチフィード(JPNIC)
1413,240b:0010:0000:0000:0000:0000:0000:0000/30--日本ネットワークイネーヴラ(JPNIC)
1414,2404:7a80:0000:0000:0000:0000:0000:0000/30--ビッグローブ(APNIC)
1415,2405:6580:0000:0000:0000:0000:0000:0000/30--朝日ネット(JPNIC)
1416,2400:4050:0000:0000:0000:0000:0000:0000/30--NTTコミュニケーションズ(OCN)(JPNIC)
1417,2401:4d40:0000:0000:0000:0000:0000:0000/30--フリービット(JPNIC)
1418,2001:0f70:0000:0000:0000:0000:0000:0000/30--アルテリア・ネットワーク(JPNIC)
1419,240b:c0c4:0000:0000:0000:0000:0000:0000/30--RAKUTEN Mobile  Network, Inc(APNIC)


コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Transix DS-Lite 速度計測(OpenWrt on WZR-HP-G300NH)

2019-12-22 21:00:00 | ネットワーク
Buffalo WZR-HP-G300NHでOpenWrtが動作中だ。通常NVR500に設定したTransix DS-Lite接続を使用しているが、テストのためOpenWrtのTransix DS-Liteに切替、スループットを計測してみた。

回線は、フレッツ 光ネクスト ファミリー・ハイスピード(下り最大200Mbps/上り最大100Mbps)(追記:2019/12/23)
NVR500 L2TP/IPsecの最大VPN回線速度計測」の(3)でOpenWrt on WZR-HP-G300NHのルーティングスループットを参考程度に計測したが、WZR-HP-G300NHのカタログスペックも調べた。その結果と比べても妥当な速度と思える。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

China Telecom領域からのIPv6スキャンをフィルタする

2019-11-02 17:00:00 | ネットワーク
IPv6アドレスへChina Telecom領域からスキャンパケットが続いているのでフィルタした


PR-S300SEでIPv6フィルタ
公開しているWebサーバ、VPNサーバへのポートスキャンを防ぐため、「240E:00F7:4F01:000C::/64」からのパケットを拒否し、ログ記録もしない。


スッキリ!
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

フレッツ情報サイトの速度測定がリニューアルされてた

2019-11-02 16:00:00 | ネットワーク
フレッツ情報サイト内(NGN内)だけでなくインターネット接続先についても測定できるようになった


ISP選択に「ぷらら」が無い。。。
経営主体が「NTT DoCoMo」になったので、「ドコモ net」を選択するのだろうか。。。
フレッツ 光ネクスト ファミリー・ハイスピード
IPv4 200Mbp(下り)/ 100Mbps(上り)
IPv6 1GMbps(下り)/ 100Mbps(上り)
ぷらら V6エクスプレス(Transix DS-Lite)
2019年11月2日 16時
お知らせの4項のリンク先で計測


各種レポートの「フレッツ光 通信速度測定」から測定
IPv4が計測されないが。。。


何か変。。。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする