본문 바로가기
  • Vetheuil in Summer
Tech/TCP IP

TCP 커널 파라메터

by 눈꽃산행 2023. 8. 29.

리눅스 서버에서 TIME_OUT 이 많이 발생하는 시점에

/etc/sysctl.conf 파일 수정 후 sysctl -p 명령어로 적용해주시면됩니다.

 

sysclt -a

# 설정값 확인 ~~~

 

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    32768  최대 65535

# netstat  -atunp | grep TIME_WAIT  

65535 60999 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 공격을 막기 위해서 존재할 뿐이며, 제한값을 억지로 낮춰선 안됩니다. 네트워크 상황이 기본값 이상을 필요로 한다면 도리어 (아마도 메모리 설치를 늘인 다음에) 이 값을 높여주어야 합니다.

'Tech > TCP IP' 카테고리의 다른 글

Traffic QoS  (0) 2024.05.02
WireShark TLS(DH 키교환) 복호화는 거의 어렵다.....  (1) 2024.01.23
TCP Time-Wait & TCP Port number reused  (0) 2021.09.02
TCP DUMP  (0) 2020.03.26
SSL Handshake ( SNI 프로파일 )  (0) 2019.09.26