rabbit51

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

NVR510 L2TP/IPSecのl2tp keepalive機能がRFC2661/3931に準じていない事による振舞い

2020-12-17 08:30:00 | NVR510
Wireless端末からのL2TP/IPSec接続で「意図しない回線切断」が発生した時に「L2TP Keepalive機能」が有効に働く。
RFC2661/RFC3931では、
RFC2661
5.5 Keepalive (Hello)
This is accomplished by injecting Hello control messages after a specified period of time has elapsed since
the last data or control message was received on a tunnel. 

RFC3931
4.4.  Keepalive (Hello)
This is accomplished by injecting Hello control messages after a period of time has elapsed since the last data message or control message was received on an L2TP session or control connection, respectively.
と定義されている。
Controlメッセージの送受が無くても「データ通信」が行われていれば、「Keepalive」が維持されると理解できる。

ヤマハNVR500のL2TP/IPSecサーバーへMacbook pro(macOS Mojave)を接続して「iperf3スループット計測」を行なった。この時問題はなかった。NVR510のL2TP/IPSecサーバーで「iperf3スループット計測」を行うと、開始後約80秒後程で切断されてしまう。
Debian10+strongSwan+xl2tpdのVPNクライアント接続では、「iperf3スループット計測」と無関係に60秒ほどで切断される。
Windows10のVPN接続では、切断される事がない。

「意図しない切断」時にNVR510のsyslogを確認すると「l2tp keepalive」のタイムアウトが発生していた。

Windows10、macOS Mojave、Debian10+strongSwan+xl2tpdとNVR510およびDebian10のL2TP/IPSecサーバー間でのL2TPKeepaliveの動作を調べてみた。


Macbook pro(macOS Mojave)は、NVR510からのL2TP Keepaliveメッセージに応答を返すが、約600Mbps以上のデータ転送が行われているとKeepalive応答が無くなる。NVR500では、152Mbps(Up)/109Mbps(Down)とスループット値が低いためKeepalive応答がある。

Debian10+strongSwan+xl2tpdでは、データ通信が開始されるとKeepalive応答が無くなる。また、60秒毎にKeepaliveメッセージを送信する。NVR510とNVR500は、Keepalive応答しない。

Windows10は、L2TP/IPSecの最大スループット値が210Mbps(Up)/401Mbps(Down)でKeepalive応答を返す。

対応策
NVR510のL2TP/IPSecサーバー設定に下記対策を行う。

Windows10クライアント対象
➡️特に無し

macOS(Mojave)クライアント対象
➡️「l2tp keepalive use off」とする。「L2TP Keepalive」機能が使えない。

Debian10+strongSwan+xl2tpdクライアント対象
➡️「l2tp keepalive use off」とする。「L2TP Keepalive」機能が使えない。
NVR510がKeepaliveメッセージに応答しない(l2tp keepalive use onでも応答しない)ためxl2tpdのKeepaliveメッセージを止める必要がある。
xl2tpdの設定では、Keepaliveメッセージを停止できないので、VPN接続後に、VPN接続先に定期的pingを行いデータ通信を確保する。xl2tpdは、データ通信があれば、keepaliveメッセージを送出しない。

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

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