VPNクライアントがVPN接続エラー時にファイルディスクリプタを消費している
Posted: Fri Apr 04, 2014 6:56 am
お世話になります。
下記のような現象が発生していますので報告します。
VPNクライアント単独で、VPNサーバに接続できない状態のときの現象です。
(通信がサーバまで到達しないとか、ログイン接続エラーになるとか)
クライアント設定で、再接続間隔は15秒、無限に再接続を試行するにしています。
システム上のリソースを観察していると、UDPでファイルディスクリプタの使用量が上昇していくようです。
現象を顕著にするために、VPN接続設定を50個ほど作成して、すべて接続エラーの状態のままにすると、
システムによると思いますが、5時間ほどでファイルディスクリプタの上限に達して、
システムへのログインや各種コマンドの動作でエラーや無応答が発生します。
VPNクライアントがUDPで接続を試行して、そのタイムアウト時にファイルディスクリプタを解放していないように思えます。
●VPN起動前の最初の情報
[]# netstat -uanp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 172.16.100.1:137 0.0.0.0:* 11732/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 11732/nmbd
udp 0 0 172.16.100.1:138 0.0.0.0:* 11732/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 11732/nmbd
udp 0 0 0.0.0.0:161 0.0.0.0:* 4066/snmpd
●VPN起動後、エラー
[root@nsk51003 etc]# netstat -uanp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:47744 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:56192 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:50048 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:59904 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:58497 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:55809 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:39553 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:37889 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:37761 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:57474 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:45954 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:59778 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:40450 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:37891 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:39683 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:42627 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:39939 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:56324 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:57988 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:35332 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:43652 0.0.0.0:* 28934/vpnclient
(省略)...
●VPN起動後、接続エラーがつづくと、どんどん増加していく。
[]# date
Fri Apr 4 15:44:17 JST 2014
[]# netstat -uanp | grep vpnclient | wc
1114 6684 121426
[]# date
Fri Apr 4 15:44:21 JST 2014
[]# netstat -uanp | grep vpnclient | wc
1162 6972 126658
[]# date
Fri Apr 4 15:44:34 JST 2014
[]# netstat -uanp | grep vpnclient | wc
1205 7230 131345
[]# date
Fri Apr 4 15:44:39 JST 2014
[]# netstat -uanp | grep vpnclient | wc
1218 7308 132762
[]# date
Fri Apr 4 15:49:49 JST 2014
[]# netstat -uanp | grep vpnclient | wc
2440 14640 265960
-----------------------
1. オペレーティングシステムの名前および CPU ビット
CentOS release 4.3 (Final) 32 bit
CentOS release 5.5 (Final) 32 bit
4. SoftEther VPN のビルド番号
5. どの SoftEther VPN のコンポーネントを使用していますか?
softether-vpnclient-v4.06-9435-beta-2014.03.26-linux-x86-32bit.tar.gz (4.66 MB)
6. VPN サーバーとインターネットとの間に NAT やファイアウォールデバイスはありますか?
(もし NAT またはファイアウォールがある場合、VPN サーバーの TCP リスナポートに対して TCP ポートを開く必要があります。)
VPNクライアント単独状態での現象
7. SecureNAT 機能を使用していますか?
いいえ
下記のような現象が発生していますので報告します。
VPNクライアント単独で、VPNサーバに接続できない状態のときの現象です。
(通信がサーバまで到達しないとか、ログイン接続エラーになるとか)
クライアント設定で、再接続間隔は15秒、無限に再接続を試行するにしています。
システム上のリソースを観察していると、UDPでファイルディスクリプタの使用量が上昇していくようです。
現象を顕著にするために、VPN接続設定を50個ほど作成して、すべて接続エラーの状態のままにすると、
システムによると思いますが、5時間ほどでファイルディスクリプタの上限に達して、
システムへのログインや各種コマンドの動作でエラーや無応答が発生します。
VPNクライアントがUDPで接続を試行して、そのタイムアウト時にファイルディスクリプタを解放していないように思えます。
●VPN起動前の最初の情報
[]# netstat -uanp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 172.16.100.1:137 0.0.0.0:* 11732/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 11732/nmbd
udp 0 0 172.16.100.1:138 0.0.0.0:* 11732/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 11732/nmbd
udp 0 0 0.0.0.0:161 0.0.0.0:* 4066/snmpd
●VPN起動後、エラー
[root@nsk51003 etc]# netstat -uanp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:47744 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:56192 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:50048 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:59904 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:58497 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:55809 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:39553 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:37889 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:37761 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:57474 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:45954 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:59778 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:40450 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:37891 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:39683 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:42627 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:39939 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:56324 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:57988 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:35332 0.0.0.0:* 28934/vpnclient
udp 0 0 0.0.0.0:43652 0.0.0.0:* 28934/vpnclient
(省略)...
●VPN起動後、接続エラーがつづくと、どんどん増加していく。
[]# date
Fri Apr 4 15:44:17 JST 2014
[]# netstat -uanp | grep vpnclient | wc
1114 6684 121426
[]# date
Fri Apr 4 15:44:21 JST 2014
[]# netstat -uanp | grep vpnclient | wc
1162 6972 126658
[]# date
Fri Apr 4 15:44:34 JST 2014
[]# netstat -uanp | grep vpnclient | wc
1205 7230 131345
[]# date
Fri Apr 4 15:44:39 JST 2014
[]# netstat -uanp | grep vpnclient | wc
1218 7308 132762
[]# date
Fri Apr 4 15:49:49 JST 2014
[]# netstat -uanp | grep vpnclient | wc
2440 14640 265960
-----------------------
1. オペレーティングシステムの名前および CPU ビット
CentOS release 4.3 (Final) 32 bit
CentOS release 5.5 (Final) 32 bit
4. SoftEther VPN のビルド番号
5. どの SoftEther VPN のコンポーネントを使用していますか?
softether-vpnclient-v4.06-9435-beta-2014.03.26-linux-x86-32bit.tar.gz (4.66 MB)
6. VPN サーバーとインターネットとの間に NAT やファイアウォールデバイスはありますか?
(もし NAT またはファイアウォールがある場合、VPN サーバーの TCP リスナポートに対して TCP ポートを開く必要があります。)
VPNクライアント単独状態での現象
7. SecureNAT 機能を使用していますか?
いいえ