Windowsで10054接続切断エラーを回避するために
日付 | 2010/07/09 |
---|---|
ID | 76127 (英語原文参照) |
バージョン | v11 |
プラットフォーム | Windows |
Microsoftは, サーバーに対する同時TCP/IP接続キューのサイズを制限するためにセキュリティ対策を講じています。この設定はレジストリのSynAttackProtectキーに対応しており, サービスアタックを防止するために役立つ反面, 負荷の重い状況では, 正当なTCP/IP接続がサービスアタックに誤認されてしまうかもしれません。
この設定そのものは新しいものではなく, 実際, Windows XP, 2000,, NT4.0にも存在しましたが, Windows 2003までデフォルトの設定で無効になっていました。Windows 2003 SP1以降, 設定はデフォルトで有効です。
設定が有効の場合, リクエストの送信中にトランスポートレベルのエラーが発生したことを示唆するエラー10054が発生するかもしれません。
10054エラーは, SQL ServerやBizTalk Serverなど, TCP/IPを使用する他のサーバー製品でも発生することが報告されています。
http://msdn.microsoft.com/en-us/library/ms187005.aspxこの問題を回避する方法はふたつあります。
1. Windows Server 2003 SP 1およびSP2のサービス拒否攻撃検出設定を完全に無効にする。
注記:これはMicrosoftが提供する保護から意図的に外れることを意味しますので, 判断は慎重にしてください。たとえば, WANではなくVPNでデータベースを公開することにより, 本物のサービス拒否攻撃を受ける可能性を除外することができます。
関連する設定値は下記のレジストリに配置されています。
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters Value name: SynAttackProtect Value Type: REG_DWORD Valid Range: 0,1 Default: 0
保護を無効にするには, SynAttackProtectをoに設定します。
2. Windows Server 2003 SP 1およびSP2のサービス拒否攻撃検出設定のレベルを調整する。
この操作には多くの試行錯誤が求められますが, 一定レベルの保護を維持することができます。
a. SynAttackProtectレジストリキーを値が1のREG_DWORDに設定します。
http://go.microsoft.com/fwlink/?LinkId=111477b. TcpMaxHalfOpenレジストリキーを適切に設定します。
http://go.microsoft.com/fwlink/?LinkId=111478c. TcpMaxHalfOpenRetriedレジストリキーを適切に設定します。
http://go.microsoft.com/fwlink/?LinkId=111479