ãã®åé¡ã¯ãã€ã³ã¿ãŒã·ã¹ãã ãºã®Cachéããã³EnsembleããŒã¿ããŒã¹ã·ã¹ãã ã«åºã¥ãGUIããã³ã¿ãŒããã«ãœãªã¥ãŒã·ã§ã³ã ãã§ãªããäžè¬çã«TCP / IPãä»ããã¯ã©ã€ã¢ã³ã/ãµãŒããŒçžäºäœçšã§ãäžè¬çã§ãã éåžžãã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã§è§£æ±ºãããã®ã¯ãç¹å¥ãªçš®é¡ã®ç©ºã®ã¡ãã»ãŒãžãå®æçã«äº€æããããšã§ããããã¯ãã¢ããªã±ãŒã·ã§ã³ããçããŠãããããšã瀺ãããã ãã®ãã®ã§ãã
以äžã¯ãããã°ã©ãã³ã°ãªãã§ãã®åé¡ã解決ããæ¹æ³ã§ãã
åé¡ã®åå
åé¡ã®åå ã¯ãTCP / IPãããã³ã«ã®æ§è³ªã«ãããŸãã éåžžãTCP / IPã»ãã·ã§ã³ã®ãœãŒã¹ãšãã®åä¿¡è ã¯ç°ãªããããã¯ãŒã¯äžã«ãããã»ãã·ã§ã³ã®ãã¹ã«ã¯è€æ°ã®ã«ãŒã¿ãŒããããŸãã éåžžããã®ãã¡ã®å°ãªããšã1ã€ãNATã¢ãã¬ã¹å€æãå®è¡ããŸãã ã«ãŒã¿ãŒã®ãªãœãŒã¹ã¯åžžã«å¶éãããŠãããããäžéšã®ãªãœãŒã¹ã¯ãããã»ãã·ã§ã³ããNATããŒãã«ãã¯ãªãŒã³ã¢ããããŸãã ç¹å®ã®æéééã§ãã±ãããéä¿¡ãããªãã£ãå Žåãã»ãã·ã§ã³ã¯ããããããšã¿ãªãããŸãïŒã¯ãªãŒãã³ã°ééãšåŒã³ãŸãããïŒã ãããã£ãŠãããµã€ã¬ã³ããã»ãã·ã§ã³ã¯ãããããã»ãã·ã§ã³ãšééããããNATããŒãã«ããåé€ãããå¯èœæ§ããããŸãã åæã«ãéä¿¡å ã«ãåä¿¡è ã«ãéç¥ãããïŒãç宀ã®åé¡ã§ã¯ãªããïŒãã©ã¡ããã»ãã·ã§ã³ããŸã ãçããŠãããããšã確信ããŠããŸãïŒçºçæã«ã¯ã©ã€ã¢ã³ããŸãã¯ãµãŒããŒã§å®è¡ããããšã«ãããnetstatã³ãã³ãã§ç°¡åã«ç¢ºèªã§ããŸãïŒãšã©ãŒããã ã[OK]ãã¯ãªãã¯ããåïŒã ãšã©ãŒã¡ãã»ãŒãžãåãåã£ããŠãŒã¶ãŒã[OK]ãã¯ãªãã¯ãããšãã¯ã©ã€ã¢ã³ãã¯ã»ãã·ã§ã³ã®äžæã«ã€ããŠåŠç¿ããŸãã ãããããã»ãã·ã§ã³ãOSãèªèãããšããµãŒããŒããã»ã¹ã¯çµäºããŸãã
å€ãã®ã«ãŒã¿ãŒã®ã¯ãªãŒãã³ã°ééïŒå°ãªããšããã©ãã·ã¥Linux 2.4 / iptablesã®å ŽåïŒã¯çŽ10åã§ããããšãå®éšçã«ç¢ºç«ãããŠããŸãã ããŒã¿ãã±ãããéä¿¡ãããªãå Žåã§ããTCPã»ãã·ã§ã³ãèªåçã«ã¢ã¯ãã£ãç¶æ ãç¶æããããã«ããŸãã
ææ¡ããããœãªã¥ãŒã·ã§ã³
OSã¬ãã«ã§ã¯ãåæãããTCPæ¥ç¶ã®æ€åºã¯ãtcp_keepaliveã¡ã«ããºã [1]ã®åäœãå¶åŸ¡ãã次ã®ã«ãŒãã«ãã©ã¡ãŒã¿ãŒã«ãã£ãŠå¶åŸ¡ãããŸãã
⢠tcp_keepalive_time-ããŒã¿ãå«ãæåŸã®ãã±ãããéä¿¡ããæç¹ããã®æéééã ãã®æéãéãããšãæ¥ç¶ã«ã¯æ€èšŒãå¿ èŠãšããŒã¯ãããŸãã æ€èšŒã®éå§åŸããã©ã¡ãŒã¿ãŒã¯äœ¿çšãããŸããã
⢠tcp_keepalive_intvl-ãã¹ããã±ããã®ééïŒtcp_keepalive_timeã®æéãåããåŸã«éä¿¡ãéå§ãããŸãïŒã
⢠tcp_keepalive_probes-æªç¢ºèªã®ãã¹ããã±ããã®æ°ã ãã®ã«ãŠã³ã¿ãŒã䜿ãæããããåŸãæ¥ç¶ã¯åæããããšèŠãªãããŸãã
tcp_keepaliveã¡ã«ããºã ã«ã¯äºéã®ç®çããããšèšããããåŸãŸããïŒååç©ã®æŽ»æ§ã人çºçã«ç¶æããããšãšãå£ããïŒãããããããŒããªãŒãã³ãïŒååç©ãæ€åºããããšã®äž¡æ¹ã«äœ¿çšã§ããŸãã ãã®èšäºã§ã¯äž»ã«æåã®ã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠèª¬æããŸããã2çªç®ã®ã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠã¯ããããããã®ãããã¯ã«é¢ãã次ã®èšäºã§èª¬æããŸãã
TCPæ¥ç¶ã§tcp_keepaliveã¡ã«ããºã ãæå¹ã«ããã«ã¯ã2ã€ã®æ¡ä»¶ãå¿ èŠã§ãã
â¢OSã¬ãã«ã®ãµããŒãã 幞ããªããšã«ãWindowsãšLinuxã®äž¡æ¹ã§å©çšã§ããŸãã
â¢æ¥ç¶ã®äžæ¹ã®ç«¯ã§ãSO_KEEPALIVEãã©ã¡ãŒã¿ãŒã䜿çšããŠãœã±ãããéãå¿ èŠããããŸãã å€æããããã«ãCachéãµãŒãã¹ã¯ãã®ãã©ã¡ãŒã¿ãŒã䜿çšããŠãœã±ãããéããOpenSSHãµãŒãã¹ã§ãåãããšãç°¡åã«è¡ãããšãã§ããŸãã
æåã®ãã©ã¡ãŒã¿ãŒïŒ tcp_keepalive_time ïŒã¯ãéã¢ã¯ãã£ããªæ¥ç¶ãïŒãã©ãã£ãã¯ã®äžè¶³ãšãã芳ç¹ããïŒãã§ãã¯ãããé »åºŠã«äŸåãããããæãéèŠã§ãã WindowsãšLinuxã®äž¡æ¹ã®ããã©ã«ãå€ã¯2æéïŒ7200ç§ïŒã§ãã äŒæ©ããã£ãåŸã®é掻åã®å žåçãªæéã¯çŽ10åã§ãã ãããã£ãŠããã©ã¡ãŒã¿å€ã5åã«èšå®ããããšããå§ãããŸããããã«ãããéå°ãªãã©ãã£ãã¯ã§ãããã¯ãŒã¯ãéè² è·ã«ããããšãªããTCPã»ãã·ã§ã³ã®ã¢ã¯ãã£ããã£ã人çºçã«ç¶æã§ããŸãïŒ5åã¯5ç§ã§ã¯ãããŸããïŒã
WindowsãµãŒããŒã§ã®tcp_keepaliveãªãã·ã§ã³ã®èšå®
ãµãŒããŒã«å¯Ÿãã管çè æš©éãå¿ èŠã§ãã ã¬ãžã¹ããªããŒ
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ãã©ã¡ãŒã¿ãŒ
300000ïŒ10é²æ°ïŒã®å€ãæã€KeepAliveTimeãšããååã®DWORDãã©ã¡ãŒã¿ãŒãäœæããŸãã ãã©ã¡ãŒã¿ãŒã¯ããªç§åäœã§èšå®ããããããææ¡ãããŠããå€ã¯5åã§ãã 次ã«ãCachéãåæ¢ãããµãŒããŒãåèµ·åããŸãã
ä»ã®2ã€ã®tcp_keepaliveãã©ã¡ãŒã¿ãŒã«ã€ããŠã¯ãWindowsã§ã®ããã©ã«ãã¯æ¬¡ã®ãšããã§ãã
KeepAliveInterval
ããŒïŒTcpip \ãã©ã¡ãŒã¿ãŒ
å€ã®ã¿ã€ãïŒREG_DWORD âããªç§åäœã®æé
æå¹ç¯å²ïŒ0â0xFFFFFFFE
ããã©ã«ãïŒ1000ïŒ1ç§ïŒ
KeepAliveProbes
ãã®ãããªãã©ã¡ãŒã¿ãŒïŒæªç¢ºèªã®ãã¹ããã±ããã®æ°ãèšå®ããïŒã¯ãã¬ãžã¹ããªã«ååšããŸããã [2]ã«ãããšãWindows 2000 / XP / 2003ã§ã¯ããã®å質ã§TcpMaxDataRetransmissionãã©ã¡ãŒã¿ãŒã®å€ïŒããã©ã«ãã¯5ïŒã䜿çšããããã以éã®ããŒãžã§ã³ã§ã¯[3] -10ã®åºå®å€ã䜿çšãããŸãã 7200 x 300ïŒã2çªç®ã®ããã©ã«ããä¿æããŠãWindows 2008ãµãŒããŒã¯1 * 10 + 300 = 310ç§åŸã«TCPæ¥ç¶ã®åæã«ã€ããŠåŠç¿ããŸãã
LinuxãµãŒããŒã§ã®tcp_keepaliveãªãã·ã§ã³ã®èšå®
ãµãŒããŒãåèµ·åããã«ãå€åºå ã§ãã©ã¡ãŒã¿ãŒå€ãå€æŽã§ããŸãã ã«ãŒããšããŠãã°ã€ã³ããå®è¡ããŸãïŒ
echo 300 > /proc/sys/net/ipv4/tcp_keepalive_time
å¯èœãªãµãŒããŒã®åèµ·åã«é¢ããŠå€æŽãæ°žç¶çã«ããã«ã¯ãã«ãŒãã«ãã©ã¡ãŒã¿ãŒãã¡ã€ã«/etc/sysctl.confãç·šéããããã«è¡ãè¿œå ããã®ãæãç°¡åãªæ¹æ³ã§ãïŒ2ã€ã®æ¹ãè¯ãïŒïŒ
# help to prevent disconnects net.ipv4.tcp_keepalive_time = 300
Windowsãšã¯ç°ãªãããã©ã¡ãŒã¿ãŒå€ã¯ç§åäœã§èšå®ãããããšã«æ³šæããŠãã ããã
ä»ã®2ã€ã®tcp_keepaliveãã©ã¡ãŒã¿ãŒã«ã€ããŠã¯ãLinuxã§ã®ããã©ã«ãã¯æ¬¡ã®ãšããã§ãã
net.ipv4.tcp_keepalive_intvl = 75 net.ipv4.tcp_keepalive_probes = 9
æåã®ãã©ã¡ãŒã¿ãŒã®å€ïŒ7200ãã300ïŒã®ã¿ãå€æŽããä»ã®2ã€ã®ããã©ã«ããä¿æããå ŽåãLinuxãµãŒããŒã¯75 * 9 + 300 = 975ç§åŸã«åæã«ã€ããŠã®ã¿åŠç¿ããŸãã
CachéDBMSæ§æã§ã®TCPKeepAliveãã©ã¡ãŒã¿ã®èšå®
ããŒãžã§ã³2008.2以éãCachéfor Windowsããã³Linuxãã©ãããã©ãŒã ã§ã¯ããœã±ããã¬ãã«ã§tcp_keepalive_timeãèšå®ã§ããŸããããã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®èšå®ã®å€æŽãåé¿ã§ãããã䟿å©ã§ãã ãã ãããçŽç²ãªåœ¢ã§ããã®æ©èœã¯ãäž»ã«ç¬ç«ãããœã±ãããµãŒããŒéçºè ã®ã¿ãé¢å¿ãæã£ãŠããŸãã 幞ããªããšã«ã[SQL]ã»ã¯ã·ã§ã³ã®TCPKeepAlive = næ§æãã©ã¡ãŒã¿ãŒãè¿œå ãããŸããããã®ãã©ã¡ãŒã¿ãŒã¯ãã·ã¹ãã 管çããŒã¿ã«ããŒãžã®[æ§æ]> [äžè¬SQLèšå®]ããç·šéã§ããŸã ã ããã©ã«ãå€ã¯300ç§ã§ãïŒå»åž«ã泚æããå€ïŒã ãã©ã¡ãŒã¿ã®å¹æã¯ãSQLã ãã§ãªãããæ³åã®ãšãããïŒ Service_Bindingsã«ãã£ãŠæäŸãããCachéãžã®æ¥ç¶ã«ãæ¡åŒµãããŸãã ãããã«ã¯ãç¹ã«CacheActiveX.Factoryãä»ãããªããžã§ã¯ãã¢ã¯ã»ã¹ãå«ãŸãããããã¢ããªã±ãŒã·ã§ã³ããã®ãããã³ã«ããã©ã³ã¹ããŒããšããŠäœ¿çšã§ããå Žåã¯ããã®æ©äŒãéããªãã§ãã ããã
OpenSSHãµãŒããŒæ§æã§ã®ããŒãã¢ã©ã€ãèšå®ã®èšå®
SSH [4]ã䜿çšããå ŽåïŒã·ã§ã«ã¢ãŒããŸãã¯GUIã¢ããªã±ãŒã·ã§ã³ã®ãã©ã³ã¹ããŒããšããŠïŒã...ãããããOpenSSHãµãŒãã¹ïŒå°ãªããšãããŒãžã§ã³5.xã§ïŒãè¡ããããããã«ãŒãã«æ§æã§ååã§ãã -defaultã¯ããã©ã¡ãŒã¿ãŒSO_KEEPALIVEã§ãœã±ãããéããŸãã
念ã®ãããæ§æãã¡ã€ã«/ etc / ssh / sshd_configã確èªããå¿ èŠããããŸãã ãã®äžã®è¡ãèŠã€ãã
#TCPKeepAlive yes
èŠã€ãã£ãå Žåãããã©ã«ãã®ãã©ã¡ãŒã¿ãŒå€ã¯ã³ã¡ã³ã圢åŒã§æäŸããããããäœãããå¿ èŠã¯ãããŸããã
SSH v.2ãããã³ã«ã«ã¯ãããšãã°ãOpenSSHãµãŒãã¹èšå®ClientAliveIntervalããã³ClientAliveCountMaxãæ§æãããªã©ãã»ãã·ã§ã³ã¢ã¯ãã£ããã£ãç£èŠãã代æ¿æ段ããããŸãã
ãããã®ãã©ã¡ãŒã¿ãŒã䜿çšãããšãTCPKeepAliveãšã¯ç°ãªããKeepAliveèŠæ±ã¯å®å šãªSSHãã£ãã«ãä»ããŠéä¿¡ããã眮æã§ããŸããã KeepAliveãã±ãããåæããŠDoSæ»æãçµç¹åããå±éºããã[5] ãåŸæ¥ã®TCPKeepAliveã¡ã«ããºã ããã代æ¿ããŒã«ãå®å šã§ããããšãèªããªããã°ãªããŸããã
ã¿ã€ã ã¢ãŠããç§åäœã§èšå®ããŸãããã®åŸãã¯ã©ã€ã¢ã³ãããæ å ±ãåä¿¡ãããªãå Žåãsshdã¯å®å šãªãã£ãã«ãä»ããŠå¿çèŠæ±ãéä¿¡ããŸãã ããã©ã«ãå€ã¯0ã§ããããã¯ããã®ãããªèŠæ±ãã¯ã©ã€ã¢ã³ãã«éä¿¡ãããªãããšãæå³ããŸããClientAliveInterval 0
ã¯ã©ã€ã¢ã³ããžã®å¿çãåä¿¡ããã«sshdã«ãã£ãŠéä¿¡ã§ããã¯ã©ã€ã¢ã³ããžã®èŠæ±ã®æ°ãèšå®ããŸãã å¶éã«éãããšãsshdã¯ã¯ã©ã€ã¢ã³ããšã®æ¥ç¶ãåæããã»ãã·ã§ã³ãçµäºããŸãã ããã©ã«ãå€ã¯3ã§ããClientAliveIntervalãã©ã¡ãŒã¿ãŒã60ã«èšå®ããClientAliveCountMaxãå€æŽããªãå ŽåãçŽ180ç§åŸã«å¿çããªãsshã¯ã©ã€ã¢ã³ããåæãããŸãã ãã®å Žåãèšå®ããŠTCP KeepAliveã¡ã«ããºã ãç¡å¹ã«ããŸãClientAliveCountMax 3
TCPKeepAlive no
åžžã«æ©èœããŸããïŒ
説æãããã¢ãããŒããå¹æçã§ãªããããã¯ãŒã¯åé¡ã®ã«ããŽãªããããŸãã
ãã®ãã¡ã®1ã€ã¯ããããã¯ãŒã¯ãµãŒãã¹ã®å質ãäœãããã«ãéä¿¡ãçæéã§ç©ççã«æ¶ããå Žåã«çºçããŸãã ã»ãã·ã§ã³ãã¢ã€ãã«ç¶æ ã§ãã¯ã©ã€ã¢ã³ããŸãã¯ãµãŒããŒãäºãã«äœããéä¿¡ããããšããåã«æ¥ç¶ãäžæçã«å€±ããã埩å ãããå Žåããããã¯äœããéç¥ããããTCPã»ãã·ã§ã³ã¯ä¿åãããŸãã TCPKeepAliveã®å®æçãªãã§ãã¯ã®å Žåãæ¥ç¶ãäžæçã«å€±ããããšããµãŒããŒãã¯ã©ã€ã¢ã³ãã«æ¥ç¶ããå¯èœæ§ãé«ããªããTCPæ¥ç¶ã匷å¶çã«åæãããå¯èœæ§ããããŸãã ãã®ç¶æ³ã§ã¯ãäžæçãªãããã¯ãŒã¯ã®åé¡ãèªåçã«è§£æ±ºãããããšãæåŸ ããŠãæ倧åè©Šè¡åæ°10ã§KeepAliveIntervalãµãŒããŒã60ã75ç§ïŒWindowsã®ããã©ã«ãã¯1ç§ïŒã«å¢ããããšãã§ããŸãã 確ãã«ãåéä¿¡ã®æéãé·ããããšã
KeepAliveTime +ïŒKeepAliveInterval *åè©Šè¡åæ°ïŒ> 10å
TCPã»ãã·ã§ã³ã¯ããã¹ãŠã®åªåã«ãããããããããããããšééããããNATããŒãã«ããã¯ãªã¢ãããå¯èœæ§ããããŸãã
åé¡ã®å¥ã®ã«ããŽãªã¯ãKeepAliveãå«ããã±ããã茻茳äžã«å€±ãããå¯èœæ§ãããå Žåã«äœ¿çšãããã«ãŒã¿ãŒãéä¿¡ãã£ãã«ã®åž¯åå¹ ãäžååã§ããããšã«é¢é£ããŠããŸãã ã«ãŒã¿ãŒã®å Žåããã®ãããªåé¡ã¯ãã¡ãŒã ãŠã§ã¢ãå€æŽããããšã§è§£æ±ºãããå ŽåããããŸãïŒããšãã°ãAcorp ADSL XXXXãç¡å¹ã«ããã®ã«åœ¹ç«ã¡ãŸããïŒãææªã®å Žåã¯ãããå¹ççãªã¢ãã«ã«çœ®ãæããŸãã ãçããããéä¿¡ãã£ãã«ã®å Žåãããããæ¡åŒµãã以å€ã«ããããšã¯ãããŸããã
ãããã«
ææ¡ãããã¢ãããŒãã«ãããTCP / IPã»ãã·ã§ã³ã®ã¢ã¯ãã£ããã£ã人çºçã«ç¶æããããšãã§ããŸããçŸåšãã¢ããªã±ãŒã·ã§ã³ã³ãŒããå€æŽããããšãªããã·ã¹ãã ã¬ãã«ã§ã®ã¿ããŒã¿ãéä¿¡ããŸãã çŸåšãCachéfor UNIXïŒRed Hat Enterprise Linux 5 for x86-64ïŒ2010.1.4ïŒBuild 803ïŒãCachéfor WindowsïŒx86-64ïŒ2010.1.4ïŒBuild 803ïŒãªã©ã§ãã¹ããããæ£åžžã«äœ¿çšãããŠããŸããã以éã®ããŒãžã§ã³ã
ãããã¯ãŒã¯æ¥ç¶ãç©ççã«å®å®ããŠããå Žåã«å¹æçã«æ©èœããéã¢ã¯ãã£ããªã»ãã·ã§ã³ãäžæããããšã«å ããŠãä»ã®ãããã¯ãŒã¯ã®åé¡ããªãããšãèªèããŠãã ããã
ã¢ã°ã¬ãã·ããªç°å¢ïŒãªã¢ãŒãã¢ã¯ã»ã¹ãåæ£ã·ã¹ãã ãªã©ïŒã«ã¢ããªã±ãŒã·ã§ã³ããããã€ããå Žåã¯ãTCPã¬ãã«ã§ã¯ãªããããé«ãã¬ãã«ã®å®å šãªãããã³ã«ã®ã¬ãã«ã§KeepAliveãå®è£ ããããšãæ€èšããŠãã ããã SSHã¯è¯ãåè£ã§ãã
æåŠ
[1]ãã¡ããªã»ããµãã TCPããŒãã¢ã©ã€ãHOWTO
[2] Windows Server 2003ã§ãµãŒãã¹æåŠæ»æã«å¯ŸããŠTCP / IPã¹ã¿ãã¯ã匷åããæ¹æ³
[3] Microsoft Windows Vistaããã³Windows Server 2008ã®TCP / IPã¬ãžã¹ããªå€
[4]ã·ã¹ãã ããã¥ã¢ã«ã衚瀺ããããã®å¯Ÿè©±åã·ã¹ãã ïŒmansïŒ
[5] OpenSSHïŒsshdã®ã€ã³ã¹ããŒã«ãšæ§æ