OS 별 TCP Recommend Parameter for WebtoB/JEUS 2014. 11. 26
목차 1. AIX... 3 1.1 TCP_KEEPINIT... 3 1.2 TCP_KEEPIDLE... 3 1.3 TCP_KEEPINTVL... 4 1.4 TCP_KEEPCNT... 4 1.5 TCP_TIMEWAIT... 4 1.6 CLEAN_PARTIAL_CONNS... 4 2. HP... 5 2.1 TCP_KEEPALIVE_INTERVAL... 5 2.2 TCP_IP_ABORT_ INTERVAL... 5 2.3 TCP_KEEPALIVE _KILL... 5 2.4 TCP_TIME_WAIT_INTERVAL... 6 2.5 TCP_SYN_RCVD_MAX... 6 3. Solaris... 6 3.1 TCP_KEEPALIVE_INTERVAL... 6 3.2 TCP_IP_ABORT_INTERVAL... 7 3.3 TCP_TIME_WAIT_INTERVAL... 7 3.4 TCP_CONN_REQ_MAX_Q and TCP_CONN_REQ_MAX_Q0... 7 4. Linux... 8 4.1 TCP_KEEPALIVE_TIME... 8 4.2 TCP_KEEPALIVE_INTERVAL... 8 4.3 TCP_KEEPALIVE_PROBES... 8 4.4 TCP_FIN_TIMEOUT... 9 4.5 TCP_SYNCOOKIES... 9 5. Windows... 9 5.1 KEEPALIVETIME... 9 5.2 KEEPALIVEINTERVAL... 10 5.3 TCPMAXDATARETRANMISSION... 10 5.4 TCPTIMEDWAITDELAY... 10 2
TCP Recommend Parameter JEUS/WebtoB 를운영할경우종종네트워크장애에의해이미연결이끊어진 TCP 커넥션에요청후, 응답을대기 하면서 hang 걸리거나, 이미닫힌소켓에대한정리시간, SYN attack 관련파라메터에 대해안내하고있습니다. 해당값은사이트특성에대해고려된값이아니기때문에실제적용하기전 OS 담당자와확인이필요합니다. 1. AIX 값을영구적으로변경하려면 no 명령을 /etc/rc.net 에추가 현재설정값확인은 no o 파라메터만입력하면설정값확인가능 1.1 TCP_KEEPINIT TCP 초기연결에대한제한시간 no -o tcp_keepinit=40 150(1/2 초 ) 40(1/2 초 ) 1.2 TCP_KEEPIDLE 해당시간동안 TCPConnection 에대해트래픽이없으면 TCP_KEEPINTVL 간격으로 TCP_KEEPCNT 수만큼확인 Packet 을보냄 no -o tcp_keepidle=600 14400(1/2 초 ) 600 (1/2 초 ) 3
1.3 TCP_KEEPINTVL Connection 의유효성을확인하기위해전송되는 Packet 사이의간격을지정 no -o tcp_keepintvl=10 150(1/2 초 ) 10(1/2 초 ) 1.4 TCP_KEEPCNT TCP_KEEPINTVL Packet 을보내는수 no -o tcp_keepcnt=8 8 5 1.5 TCP_TIMEWAIT TCP/IP 가닫힌연결을해제하고해당자원을다시사용하기전에경과해야하는시간 1에서 5까지설정가능하며, 1증가시마다 15초씩대기시간증가 no -o tcp_timewait =1 1 1 1.6 CLEAN_PARTIAL_CONNS Client 에서악의적으로많은수의 syn packet 을날리고서버의 SYN/ACK 을무시할경우,clean_partial_connsno 를 1로변경해주기적으로 entry를비워줌으로써정상적인 client 의 request 를받을수있게합니다. no -o clean_partial_conns=1 0 1 4
2. HP 확인 ndd get, 설정 ndd set 을통해확인가능합니다. 2.1 TCP_KEEPALIVE_INTERVAL TCP Connection 에대해 tcp_keepalive_interval 시간동안사용되지않을경우해당 Connection 의유효성을확인하기위해 Probe packet 을보냅니다. ndd -set /dev/tcp tcp_keepalive_interval 300000 7200000 ms 300000 ms 2.2 TCP_IP_ABORT_ INTERVAL Probe packet 에대한응답최대대기시간하는시간. tcp_time_wait_interval 값보다크게지정해야합니다. ndd -set /dev/tcp tcp_ip_abort_interval 600000 600000 ms 600000 ms 2.3 TCP_KEEPALIVE _KILL 제거하기전에프로브할최대횟수를판별합니다. ndd -set /dev/tcp tcp_keepalives_kill 5000 1 1 5
2.4 TCP_TIME_WAIT_INTERVAL TIME_WAIT 상태에서 TCP 끝점이지속되는시간길이입니다. ndd -set /dev/tcp tcp_time_wait_interval 30000 60000 ms 30000 ms 2.5 TCP_SYN_RCVD_MAX TCP 의 SYN attack 을방어할수있도록제어함 SYN packet 을 (netstat -an 에서 SYN_RECV 부분 ) 보관하는 table space 에해당하고, 여기를거쳐서각 socket 별로 listen queue 에들어갑니다. ndd -set /dev/tcp tcp_syn_rcvd_max 1024 500 1024 이상 3. Solaris 확인 /usr/sbin/ndd get, 설정 /usr/sbin/ndd set 을통해확인가능합니다. 3.1 TCP_KEEPALIVE_INTERVAL tcp_keepalive_interval 에설정된시간이지나면 Probe packet 이보 내지고 Client 가이에응답이없으면접속을해제합니다. /usr/sbin/ndd -set /dev/tcp tcp_keepalive_interval 300000 7200000 ms 300000 ms 6
3.2 TCP_IP_ABORT_INTERVAL tcp_keepalive_interval 에의해 probe packet 을보낸후 tcp_ip_abort_interval 시간동안응답이없으면 Connection 이종료됩니다. /usr/sbin/ndd -set /dev/tcp tcp_ip_abort_interval 60000 480000 ms 60000 ms 3.3 TCP_TIME_WAIT_INTERVAL 커넥션이종료됐을때 TIME_WAIT 상태로머물게되는시간을설 정 /usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 30000 240000ms 30000ms 3.4 TCP_CONN_REQ_MAX_Q and TCP_CONN_REQ_MAX_Q0 tcp_conn_req_max_q: TCP 커넥션최대대기개수 tcp_conn_req_max_q0: 3-way handshake 가끝나지않은것을포함한최대대기개수 /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q 1024 /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q0 2048 tcp tcp_conn_req_max_q 1024 tcp tcp_conn_req_max_q0 2048 7
4. Linux Linux 의경우 /proc/sys/net/ipv4 or sysctl 를통해값을변경할수있다. 영구적으로값을적용하기위해서는 /etc/sysctl.conf 에등록해야합니다. Sysctl a 를통해현재설정된 kernel parameter 를확인가능합니다. 4.1 TCP_KEEPALIVE_TIME 설정된시간동안 TCP Connection 이사용되지않으면 Probe packet 을보내 Connection 이유효한지확인 echo 300 > /proc/sys/net/ipv4/tcp_keepalive_time 7200 sec 300 sec 4.2 TCP_KEEPALIVE_INTERVAL Probe packet 을상대방에게보내는간격으로 TCP_KEEPALIVE_PROBES 시간동안응답이없다면해당 Connection 은종료됩니다. echo 15 > /proc/sys/net/ipv4/tcp_keepalive_intvl 75 sec 15 sec 4.3 TCP_KEEPALIVE_PROBES Connection 의유효성을판단하기위해 Probe packet 을보내는수 echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes 9 5 8
4.4 TCP_FIN_TIMEOUT 커넥션이종료됐을때 TIME_WAIT 상태로머물게되는시간설정 echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout 240 sec 30 sec 4.5 TCP_SYNCOOKIES DOS 공격중의하나인 SYN flooding 공격을막아주도록 On으로변경 echo 1 > /proc/sys/net/ipv4/tcp_syncookies 1 5. Windows 5.1 KEEPALIVETIME 설정된시간동안 TCP Connection 이사용되지않으면 Probe packet 을보내 Connection 이유효한지확인 - regedit 명령을시작 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 레지스트리하위키를탐색한후이름이 KeepAliveTime 인새 REG_DWORD 값을작성하거나설정. - 시스템을중지한후다시시작 7200000 ms 300000 ms 9
5.2 KEEPALIVEINTERVAL Probe packet 을보내는빈도를결정. packet 전송수가 TcpMaxDataRetransmissions 의값을초과할경우연결이중단. - regedit 명령을시작하여 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 레지스트리하위키를탐색한후이름이 KeepAliveTime 인새 REG_DWORD 값을작성하거나설정. - 시스템을중지한후다시시작 1000 ms 1000 ms 5.3 TCPMAXDATARETRANMISSION 수신확인되지않은 Probe packet 재전송하는횟수를결정. - regedit 명령을시작하여 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 레지스트리하위키를탐색한후이름이 TcpMaxDataRetransmissions 인새 REG_DWORD 값을작성하거나설정. - 시스템을중지한후다시시작 5 5 5.4 TCPTIMEDWAITDELAY 커넥션이종료됐을때 TIME_WAIT 상태로머물게되는시간을설정 - regedit 명령을시작하여 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters 레지스트리하위키를탐색후 TcpTimedWaitDelay 인새 REG_DWORD 값을작성 - 값은 10진수 30(16 진수 0x0000001e) 으로설정. 이값은대기시간을 30초로설정 - 시스템을중지한후다시시작 0xF0( 대기시간을 240 초 (4 분 ) 로설정합니다.) 대기시간을 30 초로설정하는최소값인 0x1E. 10
Copyright 2014 TmaxSoft Co., Ltd. All Rights Reserved. Trademarks Tmax, WebtoB, WebT, JEUS, ProFrame, SysMaster and OpenFrame are registered trademarks of TmaxSoft Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. Contact Information TmaxSoft can be contacted at the following addresses to arrange for a consulting team to visit your company and discuss your options. Korea TmaxSoft Co., Ltd 5, Hwangsaeul-ro 329beon-gil, Bundang-gu, Seongnam-si, Gyeonggi-do. South Korea Tel: +82-31-8018-1000 Fax: +82-31-8018-1115 Email: info@tmax.co.kr Web (Korean): http://www.tmaxsoft.com Technical Support: http://technet.tmaxsoft.com USA TmaxSoft, Inc. 560 Sylvan Avenue Englewood Cliffs, NJ 07632. U.S.A Tel: +1-201-567-8266 Fax: +1-201-567-7339 Email: info@tmaxsoft.com Web (English): http://www.tmaxsoft.com Russia Tmax Russia L.L.C. Grand Setun Plaza, No A204 Gorbunova st.2, Moscow, 121596 Tel: +7(495)970-01-35 Email: info.rus@tmaxsoft.com Web (Russian): http://ru.tmaxsoft.com Singapore Tmax Singapore Pte. Ltd. 430 Lorong 6, Toa Payoh #10-02, OrangeTee Building. Singapore 319402 Tel: +65-6259-7223 Email: info.sg@tmaxsoft.com United Kingdom TmaxSoft UK Ltd. Surrey House, Suite 221, 34 Eden Street, Kingston-Upon- Thames, KT1 1ER United Kingdom Tel: + 44-(0)20-8481-3776 Email: info.uk@tmaxsoft.com Web (English): http:/www.tmaxsoft.com Japan TmaxSoft Japan Co., Ltd. 5F Sanko Bldg, 3-12-16 Mita, Minato-Ku, Tokyo, 108-0073 Japan Tel: +81-3-5765-2550 Fax: +81-3-5765-2567 Email: info.jp@tmaxsoft.com Web (Japanese): http://www.tmaxsoft.co.jp China TmaxSoft China Co., Ltd. Beijing Silver Tower, RM 1508, 2 North Rd Dong San Huan, Chaoyang District, Beijing, China, 100027. China Tel: +86-10-6410-6145~8 Fax: +86-10-6410-6144 Email: info.cn@tmaxsoft.com Web (Chinese): http://www.tmaxsoft.com.cn Brazil TmaxSoft Brazil Avenida Copacabana, 177-3 andar 18 do Forte Empresarial, Alphaville - Barueri, Sao Paulo, SP-Brasil CEP 06472-001 Email: contato.brasil@tmaxsoft.com TD-JSTN-D1126001 11