- 리눅스 서버에서 TIME_OUT 이 많이 발생하는 시점에
아래 파라미터를 넣어주고 안정적으로 운영이 됨
| Parameter |
설정값 |
기본 |
최대 |
설명 |
| net.ipv4.tcp_tw_reuse |
1 |
0 |
|
TIME_WAIT상태의
소켓중 timestamp 보다 작은 값의 timestamp 를 갖는 소켓을 재사용 한다.
reuse 옵션을 사용 하기 위해서는 반드시 timestamps 옵션도 활성화 되어 있어야 한다.
(기본적으로 활성화 되어 있음) |
| net.ipv4.tcp_tw_recycle |
1 |
0 |
|
TIME_OUT
상태의 소켓 유지 시간이 아주 짧아집니다.
단점 : NAT환경이나 load-balancers, 패킷 드랍
발생 |
| net.ipv4.tcp_rfc1337 |
1 |
0 |
|
TIME_OUT를 유지하는
시간(단위:분) |
| net.ipv4.tcp_fin_timeout |
5 |
60 |
|
(TIME_OUT)소켓이 완전히
닫힐려면 마지막 FIN을 기다려야 하는데, 이 간격을 초단위로 설정할 수 있습니다. |
| net.ipv4.tcp_keepalive_time |
15 |
7200 |
|
동작중이지 않은 소켓 연결 끊는시간
(단위:초) |
| net.ipv4.tcp_max_syn_backlog |
4096 |
2048 |
|
TCP프로토콜에서
한 소켓이 동시에 SYN요청을 처리하기에기는 한계가 있는데
이 한계가 백로그(backlog)이다. 백로그는 연결 요청이 아직 완전히 처리되지
아니한 대기상태에 있는 큐의 길이이다. 이 백로그 큐가 꽉차게 되면 이후 들어오는
SYN요청은 무시되며 이러한 공격이 SYN
Flooding공격이다. |
| net.ipv4.tcp_no_metrics_save |
1 |
0 |
|
연결 닫기 시 메트릭 캐시 안 함 |
| net.ipv4.ip_local_port_range |
2000
65535 |
32768
60999 |
65535 |
#
netstat -atunp | grep TIME_WAIT
tcp 0 0 192.168.100.102:1024
192.168.100.101:80
TIME_WAIT -
위 빨간색을 나타내는 포트 범위 |
| net.core.somaxconn |
65535 |
128 |
|
최대
소켓 갯수 증가시키기(somaxconn = soket max connection)
참고로 SOMAXCONN은 listen 큐를 크게 하는 것은 조금
더 많은 RAM 의 비용을 지불하게 만드는 DoS 공격을 피하기위해 보다 좋은 작업이라고 합니다. |
| net.ipv4.tcp_max_tw_buckets |
1440000 |
131072 |
2000000 |
시스템이 동시에 가지고 있은 timewait 소켓의 최대 개수입니다. 이 값을
초과하면 time-wait 소켓을 즉시 파괴하고 경고를 출력합니다. 이 제한은 단순한 DoS 공격을 막기 위해서 존재할 뿐이며, 제한값을
억지로 낮춰선 안됩니다. 네트워크 상황이 기본값 이상을 필요로 한다면 도리어 (아마도 메모리 설치를 늘인 다음에) 이 값을 높여주어야
합니다. |