Wireless端末からのL2TP/IPSec接続で「意図しない回線切断」が発生した時に「L2TP Keepalive機能」が有効に働く。
RFC2661/RFC3931では、と定義されている。
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メッセージを送出しない。
---------------
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メッセージを送出しない。
---------------