You cannot see this page without javascript.

메뉴 건너뛰기

WHKorea

1. sysctl 이란?
sysctl 명령은 커널 변수의 값을 제어하여 시스템을 최적화할 수 있는 명령이다. sysctl은 시스템의
/proc/sys 디렉토리밑에 있는 커널 매개변수를 제어한다. 이 디렉토리 밑으로 존재하는 디렉토리를
구분하는 '/'는 sysctl 명령이용시에는 '.'으로 대체한다.

2. 일반적인 커널 매개변수의 변경법
(1) 설명: 일반적으로 커널 매개변수를 변경하려면 /proc 디렉토리밑에 있는 항목들을 vi편집기를
          이용하여 값을 변경하거나 echo명령을 이용하여 값을 변경한다.
(2) 예: ping에 응답하지 않도록 설정해보자.
   1) ping과 관련된 파일: /proc/sys/net/ipv4/icmp_echo_ignore_all 이라는 파일이다.
   2) 값 확인
     [root@www root]# cat /proc/sys/net/ipv4/icmp_echo_ignore_all
     0
      => 현재 이 파일의 값이 0이다. 파일이름을 해석해보면 icmp 패킷에 대한 응답을 전부 무시할
        것이냐는 뜻인데 값이 0(no)이다. 즉 ping에 대한 응답을 하겠다는 뜻이다. ping에 응답을
        하지 않으려면 이 값을 1로 바꾸어주면 된다.
   3) 값 변경
     [root@www root]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
     [root@www root]# cat /proc/sys/net/ipv4/icmp_echo_ignore_all
     1
      => 앞으로 ping에 응답하지 않는다.

3. sysctl 명령어
(1) 설명: /proc 디렉토리밑에 있는 항목들을 직접 편집하거나 echo 명령을 사용하는 것이외에
          sysctl명령을 이용하여 설정할 수 있다.
(2) 사용법
   sysctl option [파일명 or 파일명=값 등]
(3) option
   -a : 현재 커널 매개변수와 값을 보여준다.
   -p : sysctl 환경변수파일(기본값은 /etc/sysctl.conf)의 설정상태를 보여준다.
   -n : 특정키에 대한 값을 보여준다.
   -w variable=value : 변수에 값을 설정한다.
   -A : 테이블형태로 설정가능한 파라미터를 보여준다. -a와 같다.
(4) 사용예
   1) [root@www root]# sysctl  -a
      ------생략----------
      net.ipv4.route.min_delay = 2
      net.ipv4.icmp_ignore_bogus_error_responses = 0
      net.ipv4.icmp_echo_ignore_broadcasts = 0
      net.ipv4.icmp_echo_ignore_all = 1
      ------생략-----------
     => 현재 설정된 커널 매개변수와 값을 출력해준다.
   2) [root@www root]# sysctl -p /etc/sysctl.conf
      net.ipv4.ip_forward = 0
      net.ipv4.conf.default.rp_filter = 1
      kernel.sysrq = 0
      kernel.core_uses_pid = 1
       => 해당파일(/etc/sysctl.conf)에 대한 설정상태를 보여준다. 여기서는 기본값과 같으므로
         -p옵션다음에 /etc/sysctl.conf를 생략해도 결과는 같게 나온다.
   3) [root@www root]# sysctl -n net.ipv4.icmp_echo_ignore_all
      1
       => /proc/sys/net/ipv4/icmp_echo_ignore_all파일의 값을 보여준다.
   4) [root@www root]# sysctl -w net.ipv4.icmp_echo_ignore_all=0
      net.ipv4.icmp_echo_ignore_all = 0
       => /proc/sys/net/ipv4/icmp_echo_ignore_all 파일의 값을 0으로 한다.
(5) 참고: 커널매개변수 변경시 vi를 사용하든지, echo명령을 사용하던지, sysctl명령을 사용하던지
          재부팅하면 값이 초기화된다. 그러므로 계속적으로 값을 반영시키려면 /etc/sysctl.conf
          파일에 등록하면 된다. 물론 쉽게 /etc/rc.d/rc.local파일에 등록해도 된다.

4. 주요항목분석
(1) /proc/sys/net/ipv4/icmp_echo_ignore_all
   1) 설명: ping에 의한 응답을 하지 않게 할 수 있다.
   2) 사용법
     sysctl -w net.ipv4.icmp_echo_ignore_all=1
     echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
(2) /proc/sys/net/ipv4/tcp_syncookies
   1) 설명: SYN Flooding 공격을 막을 때 유용한 항목으로 SYN패킷의 도착빈도가 일정한 횟수보다
           많을 때 해당 요청을 허용하지 않을 때 사용한다.
   2) 사용법
     sysctl -w net.ipv4.tcp_syncookies=1
     echo 1 > /proc/sys/net/ipv4/tcp_syscookies
   3) 참고: SYN FLOODING 공격
     TCP 프로토콜에서 두 시스템이 연결이 되려면 클라이언트에서 서버로 연결을 하기위해서 "연결
    을 요청합니다."라는 의미의 SYN패킷을 보낸다. 서버는 이것에 대한 응답으로 SYN/ACK패킷을
    클라이언트에게 보내고, 클라이언트는 서버에게 ACK패킷을 보냄으로서 연결이 된다. 이것을 3
    WAY HANDSHAKING이라고 부른다. SYN Flooding 공격은 이 3 Way Handshaking의 약점을 이용한다.
    공격 시나리오는 다음과 같다.
      ㄱ. 존재하지 않는 IP주소를 소스 어드레스로 사용하여 SYN패킷을 Target에 전송한다.
      ㄴ. Target은 SYN/ACK패킷을 보내고 SYN_RCVD상태로 전환한다.
      ㄷ. ACK로 응답하는 시스템이 없으므로 Target은 일정시간동안 계속 패킷을 보내고, SYN_RCVD
        상태에서 대기한다.
      ㄹ. 공격자는 target의 TCP Connection pool이 꽉차게 되므로 새로운 커넥션을 형성하지 못하
         게 된다.
(3) /proc/sys/net/ipv4/tcp_max_syn_backlog=1024
   1) 설명: TCP프로토콜에서 한 소켓이 동시에 SYN요청을 처리하기에기는 한계가 있는데 이 한계가
           백로그(backlog)이다. 백로그는 연결 요청이 아직 완전히 처리되지 아니한 대기상태에
           있는 큐의 길이이다. 이 백로그 큐가 꽉차게 되면 이후 들어오는 SYN요청은 무시되며
           이러한 공격이 위에서 말한 SYN Flooding공격이다. 그러나, 백로그를 무조건 늘리는 것이
           꼭 좋은 것만은 아니다. 또한 1024이상으로 설정하려면 커널소스를 수정해야 한다.
   2) 사용법
     echo 1024 > /proc/sys/net/ipv4/tcp_max_syn_backlog
     sysctl -w net.ipv4.tcp_max_syn_backlog=1024
(4) /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
   1) 설명: 브로드캐스트 주소에 ping을 쏘는 것을 막는다. smurf공격을 막을 수 있다. 이 공격을
           막기 위해서 값을 1로 한다.
   2) 사용법
      sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
      echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
   3) 참고: Smurf 공격
     과거 유행했던 DoS 공격의 한 방법으로 공격자가 Source IP Address를 Target으로 위장하여
    네트워크로 ICMP echo request를 보내어 Target이 정상적으로 서비스를 할 수 없도록 만드는
    기법이다.
(5) /proc/sys/net/ipv4/conf/all/accept_source_route
   1) 설명: 라우팅과 라우팅 프로토콜은 몇가지 문제점을 생성해 내는데 목적지의 경로에 대한
           세부적인 내용을 담고 있는 IP 소스 라우팅은 목적지 호스트에서도 같은 경로를 따라
           반응을 해야 한다는 문제점이 있다. 크래커가 특정 네트워크에 소스 라우팅 패킷을 보낼
           수 있다면 돌아오는 반응을 가로채서 상대방의 호스트와 신뢰받은 호스트처럼 속일 수
           있게된다. 이 기능을 사용하지 못하게 값을 0으로 한다.
   2) 사용법
     echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
     sysctl -w  net.ipv4.conf.all.accept_source_route=0
(6) /proc/sys/net/ipv4/conf/all/rp_fiter
   1) 설명: IPv4는 인증 매카니즘을 가지고 있지 않기 때문에 Source IP Address를 조작할 수 있다.
           rp_filter는 패킷이 들어오는 인터페이스와 나가는 인터페이스가 같은 지를 검사한다.
           값을 1로 하면 된다.
   2) 사용법
     echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
     sysctl -w net.ipv4.conf.all.rp_filter=1
   3) 참고: Spoofed IP 패킷
    ㄱ. 외부에서 오는 패킷이 사설 IP인 경우
    ㄴ. 들어오는 인터페이스와 나가는 인터페이스가 다른 경우
    ㄷ. IANA(Internet Assigned Numbers Authority, 인터넷 할당 번호 관리 기관)에서 예약한 IP
       Address가 로컬 IP인 경우
    ㄹ. 로컬에서 나가는 패킷의 Source IP Address가 로컬 IP가 아닌 경우
(7) /proc/sys/net/ipv4/conf/all/log_martians
   1) 설명: 이 파일은 스푸핑 패킷과 redirect된 패킷의 기록을 남길 지 여부를 지정하는 파일이다.
           기본값은 '0'으로 기록을 남기지 않는다. 값을 '1'로 바꾸면 패킷을 기록한다.
   2) 사용예
     echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
     sysctl -w net.ipv4.conf.all.log_martians=1
(8) /proc/sys/net/ipv4/tcp_fin_timeout
   1) 설명: 이 파일은 TCP 세션 종료후에 얼마나 세션연결을 유지하고 있을지를 초단위로 값으로
           설정되어 있는 파일이다. 기본값은 60초이다. telnet이나 ftp등을 이용하여 서버에 접속
           하다가 예기치 못한 상태에서 연결이 종료되는 경우가 있다. 이런 경우에 TCP 세션의
           연결 상태 지속여부를 결정하는 값이다. 10-20초 정도로 설정해도 무방하다.
   2) 사용법
     echo 20 > /proc/sys/net/ipv4/tcp_fin_timeout
     sysctl -w  net.ipv4.tcp_fin_timeout=20
(9) /proc/sys/net/ipv4/tcp_keepalive_time
   1) 설명: TCP 연결상태를 계속 유지시키기 위한 시간 설정이다. 기본 초단위로 7200, 즉 2시간이
           기본값이다. 20-30분정도로 설정하는 것도 서버의 자원을 효율적으로 이용한다는 측면에
           서 매우 유익하다.
   2) 사용법
     echo 1800 > /proc/sys/net/ipv4/tcp_fin_timeout
     sysctl -w  net.ipv4.tcp_keepalive_time=1800
(10) /proc/sys/net/ipv4/ip_forward
   1) 설명: 인터넷 공유나 IP 마스커레이드등 하나의 서버에서 IP를 공유하여 포워딩을 가능하게
           할 것인지 여부를 지정하는 파일이다. 기본값은 '0'으로 포워딩이 불가능하다. 포워딩
           이 가능하게 하려면 값을 '1'로 지정한다.
   2) 사용법
     echo 1 > /proc/sys/net/ipv4/ip_forward
     sysctl -w  net.ipv4.ip_forward=1
(11) /proc/sys/net/ipv4/ip_local_port_range
   1) 설명: 서버내의 TCP와 UDP에서 사용할 수 있는 포트범위의 값을 지정하고 있는 파일이다.
   2) 사용법
     echo 32768   61000 > /proc/sys/net/ipv4/ip_local_port_range
     sysctl -w net.ipv4.ip_local_port_range='32767   60999'
(12) /proc/sys/net/ipv4/tcp_timestamps
   1) 설명: 이 값은 외부에서 서버의 날짜정보를 확인가능하게 할 것인지를 지정하고 있는 파일이
           다. 기본값은 '1'로 외부에서 날짜정보확인이 가능하다. 날짜정보를 확인 불가하게 하려
           면 값은 '0'으로 바꾼다.
   2) 사용법
     echo 0 > /proc/sys/net/ipv4/tcp_timestamps
     sysclt -w net.ipv4.tcp_timestamps=0
(13) /proc/sys/net/ipv4/conf/all/accept_redirects
   1) 설명: 이 파일은 redirect 관련 패킷을 허가할 것인지를 결정하는 파일로 기본값은 '1'로 허가
           하도록 되어 있다. 다시 설명하면 ICMP redirect 패킷은 서버의 routing 경로를 확인하는
           역할은 한다. 이러한 패킷을 차단할 수 있다.
   2) 사용예
     echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
     sysctl -w net.ipv4.conf.all.accept_redirects=0
(14) /proc/sys/net/ipv4/conf/all/send_redirects
   1) 설명: 이 파일은 서버에서 나가는 ICMP redirect패킷을 허가할 것인지를 결정하는 파일로 기본
           값은 '1'로 허가하도록 되어 있다. 이 값을 '0'으로 설정하면 ICMP redirect이 나가는 것
           을 막을 수 있다.
   2) 사용예
     echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
     sysctl -w net.ipv4.conf.all.send_redirects=0
(15) /proc/sys/fs/file-max
   1) 설명: 커널에서 최대로 사용가능한 파일 수를 지정하는 파일이다. 적당히 조절할  수 있다.
   2) 사용예
     echo 52422 > /proc/sys/fs/file-max
     sysctl -w fs.file-max=50000
(16) /proc/sys/fs/file-nr
   1) 설명: 현재 커널에서 사용중인 파일 수등을 기록하고 있는 파일이다.
   2) 확인
     [root@www fs]# cat /proc/sys/fs/file-nr
     1653    191     52422
      => 첫번째값은 커널에서 현재 오픈가능한 최대 파일 수를 나타내고, 두번째값은 커널에서 현재
        사용중인 파일 수이며, 세번째값은 커널에서 최대로 오픈할 수 있는 파일 수를 나타낸다.

 

 

-----------------------------------------------------------------------------------------------------------------

 

 

 

설정 파일 : /etc/sysctl.conf

 

 

#시스템에서 매직키 비활성화

kernel.sysrq = 0

 

# 코어 파일 이름에 PID 추가함

kernel.core_uses_pid = 1

 

# PID 의 최대값 설정

kernel.pid_max = 65535

 

# /proc/<pid>/maps , smaps 의 내용을 단지 관리자만 볼수 있으며 ptrace() 과정을 허용함

kernel.maps_protect = 1

 

# Exec Shield 보호 활성화 

kernel.exec-shield = 1

 

# 2 랜덤 스택 & 라이브러리 & 힙 활성화

kenel.ramdomized_va_space = 2

 

# 하나의 프로세서에서 다른 프로세스로 보내질 수 있는 메시지의 최대 크기 (바이트 단위)

kernel.msgmax = 65535

 

# 메시지 큐의 기본 최대 크기(바이트단위)

kernel.msgmnb = 65535

 

# 코어 덤프를 제한

fs.suid_dumpable = 0

 

# 커널 포인터 숨기기

kernel.kptr_restrict = 1

 

# 시스템에서 허용되는 최대 File Descriptor(소켓 등 포함)을 설정하는 값 증ㅏ

fs.file-max = 209708

 

# swapping 비율로 적게 설정

vm.swappiness = 30

 

# 전체 시스템 메모리에서 Dirty page 비율로 process가 dirty page를 쓰기 시작하는 기준값

vm.dirty_ratio = 30

 

# 전체 시스템 메모리에서 dirty page 비율로 pdflush 데몬이 dirty page를 쓰기 시작하는 기준값

vm.dirty_background_rato = 5

 

# 프로세스가 mmap 이 허용되는 가상 주소를 최소로 지정 (mmap 이란 프로세스간 데이터 공유 메커니즘)

vm.mmap_min_addr = 4096

 

# overcommit_memory 가 2로 설정되어 있는경우 고려해야 할 물리적 램의 백분율

# 0 은 기본설정 2로 설정시 메모리 어버커밋의 위험을 줄이고자 할경우 설정

vm.overcommit_ratio = 50

vm.overcommit_memory = 0

 

# 공유 메모시 세그먼트 최대 크기를 설정 - 256M

kernel.shmmax = 268435456

 

# 특정 시점에서 시스템에서 사용 가능한 공유 메모리의 최대 크기를 설정 - 256M

kernel.shall = 268435456

 

# 시스템 전체에 걸쳐 빈 공간으로 두는 최소 크기 설정값 - 64MB 이상유지

vm.min_free_kbytes = 65535

 

 

# SYN 공격 방지

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_max_syn_backlog = 4096

 

# 패킷 포워딩 비활성화

net.ipv4.ip_forward = 0

net.ipv4.conf.all.forwarding = 0

net.ipv4.conf.default.forwarding = 0

net.ipv6.conf.all.forwarding = 0

net.ipv6.conf.default.forwarding = 0

 

# IP 소스 라우팅 비활성화

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.defalut.send_redirects = 0

net.ipv4.conf.all.accept_source_route = 0

net.ipv4.conf.defalut.accept_source_route = 0

net.ipv6.conf.all.accept_source_route = 0

net.ipv6.conf.defalut.accept_source_route = 0

 

# IP 스푸팅 보호 활성화, 소스 경로 인증을 사용하도록 설정

net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.default.rp_filter = 1

 

# ICMP 리다이렉션 허용 해제

net.ipv4.conf.all.accept_redirects = 0

net.ipv4.conf.default.accept_redirects = 0

net.ipv4.conf.all.secure_redirects = 0

net.ipv4.conf.default.secure_redirects = 0

net.ipv6.conf.all.accept_redirects = 0

net.ipv6.conf.default.accept_redirects = 0

 

# 스푸핑 패킷, 소스라우팅패킷, 리다이렉션 패킷의 로그 활성화

net.ipv4.conf.all.log_martians = 1

net.ipv4.conf.default.log_martians = 1

 

# TCP/IP가 닫힌 연결을 해제하여 자원을 다시 사용하기 전에 경과되어야 하는 시간( 성능향상을 위해서 감소)

net.ipv4.tcp_fin_tmeout = 7

 

# TCP/IP가 대기 연결이 계속 원래 상태를 유지하는지 확인을 시도하는 빈도값 (성능향상을 위해서 감소)

net.ipv4.tcp_keepalive_time = 300

 

# 기존 연결에 대한 수신확인되지 않은 활성화 상태 ㅈ속 메시지를 재전송하는 횟수를 결정하는값(성능향상을 위해서 감소)

net.ipv4.tcp_keepalive_probes = 5

 

# 상대로 부터 활성화 상태 지속 응답이 수진되자 않을 경우 활성화 상태 지속 전송을 반복하는 빈도를 결정하는 값(성능향상을 위해서 감소)

net.ipv4.tcp_keepalive_intvl = 15

 

# bootp 릴레이 비활성화

net.ipv4.conf.all.bootp_relay = 0

 

# proxy arp 실행 비활성화

net.ipv4.conf.all.proxy_arp = 0

 

# tcp_timestamps 기능 활성화

net.ipv4.tcp_timestamps = 1

 

# ping 응답 비활성화

net.ipv4.icmp_echo_ignore_all = 0

 

# 브로드캐스트 주소로 ping 전송 비활성화

# Smurf 공격차단

net.ipv4.icmp_echo_ignore_broadcasts = 1

 

# 잘못된 오류 메시지 보호 활성화

net.ipv4.icmp_ignore_bogus_error_reponses = 1

 

# 로컬 포트 범위 설정 , 원하는 대역대로 설정

net.ipv4.ip_local_port_range = 16383 65535

 

# 자동 구성 IPV6 비활성화

net.ipv6.conf.all.autoconf = 0

net.ipv6.conf.all.accept_ra = 0

net.ipv6.conf.default.autoconf = 0

net.ipv6.conf.default.accept_ra = 0

 

# 네트워크 성능 튜닝 관련

# 고대역폭 저지연 네트워크일 경우 htcp 혼잡 제어를 사용함

# 먼저 modprobe tcp_htcp 를 실행함

# net.ipv4.tcp_congestion_control = htcp

 

# tcp 부하 작업 서버에 대한 FQ 큐 관리 스케줄러 활성화

# FQ란 혼잡제어를 위한 Queing 메커니즘 중의 하나로 입력 트래픽의 큐에 대하여 공평하게 서비스 되로록하는 스케쥴링 기법

#net.core.default_qdisc = fq

 

# tcp_windows_scaling 기능 활성화

net.ipv4.tcp_windows_scaling = 1

 

# 읽기 버퍼 공간 할당량 증가

# TCP 수신 버퍼

# UDP 수신 버퍼 최소량

# 모든 프로토콜 수신 버퍼

# 모든 프로토콜 수신 버퍼 최대량

net.ipv4.tcp_rmem = 8192 87380 16777216

net.ipv4.udp_rmem_min = 16384

net.core.rmen_default = 262144

net.core.rmem_max = 16777216

 

#쓰기 버퍼 공간 할당량 증기

# TCP 송신 버퍼

# UDP 송신 버퍼 최소량

# 모든 프로토콜 송신 버퍼

# 모든 프로코콜 송신 버퍼 최대량

net.ipv4.tcp.wmem = 8192 65536 16777216

net.ipv4.udp.wmem_min = 16384

net.core.wmem_default = 262144

net.core.wmem_max = 16777216

 

# 수신 연결 갯수 증가

net.core.somaxconn = 32768

 

# 수신 연결 로그수 증가

net.core.netdev_max_backlog = 16384

net.core.dev_weight = 64

 

# 옵션 메모리 버퍼의 최대 크기 증가

net.cire.optmem_max = 65535

 

# TIME_WAIT 상태 소켓 최대 설정값으로 간단한 DOS 공격을 방어하기 위해 해당 값 증가

net.ipv4.tcp_max_tw_buckets = 1440000

 

# TCP TIME_WAIT 소켓 재활용여부, Packet Reordering 이 발생하여 Timestamp 역전 현상이 발생하면 클라이언트로 부터 수신한 SYN Packet 이 DROP 됨

net.ipv4.tcp_tw_recycle = 0

 

# TCP TIME_WAIT 소켓 재사용여부, 해당 옵션을 사용하지 않으면 시스템 과부하시 TIME_WAIT 소켓 증가로 인한 로컬 포트 소진에 의해 신규 연결을 생성하지 못할수 있음

net.ipv4.tcp_tw_reuse = 1

 

# 사용자 파일 핸들에 연결되어 있지 않아서 시스템이 가지고 있는 TCP 소켓의 최대 개수임

# 이 개수를 초과하면 고아(orphaned) 연결은 즉시 초기화 되고 경고가 출력됨

# 단순한 DoS 공격 방어에 효율적이며 너무 의존하거나 제한값을 억지로 낮춰선 안됨

# 각각의 고아 연결은 스왑 불가능한 메모리 16M 를 잡아 먹음

net.ipv4.tcp_max_orphans = 16384

# 우리쪽에서 닫은 TCP 연결을 죽이기 전까지 몇 번이나 재시도를 할 것인가 여부

net.ipv4.tcp_orphan_retries = 0

 

# ip 조각 재조립에 쓰이는 최대 메모리 ( 설정값 증가 시켜야 함)

net.ipv4.ipfrag_high_thresh = 512000

# ip 조각 재조립에 쓰이느 최소 메모리

net.ipv4.ipfrag_low_thresh = 446464

 

# 이전 연결에서 ssthresh 캐시를 하지 않음

net.ipv4.tcp_no_metrics_save = 1

net.ipv4.tcp_moderate_rcvbuf = 1

 

# RPC 데이터그램 큐 길이 크기 증가

net.unix.max_dgram_qlen = 50

 

# ARP 캐시에 유지되는 최대 항목 수임 (2048 보다 더 허용하지 말것)

net.ipv4.neigh.default.gc_thresh3 = 2048

 

# ARP 캐시에 유지되는 Soft 최대 항목수

net.ipv4.neigh.default.gc_thresh2 = 1024

 

# ARP 캐시에 유지되는  최소 항목 수임

net.ipv4.neigh.default.gc_thresh1 = 32

 

# ARP 캐시에 GC 가 실행하는 시간 간격

net.ipv4.neigh.default.gc_interval = 30

 

# TCP 큐 길이 증가

net.ipv4.neigh.default.proxy_qlen = 96

net.ipv4.neigh.default.unres_qlen = 6

 

# 명백한 혼합 공지(Explicit Congestion Notification) 활성화

net.ipv4.tcp_ecn = 1

# TCP 스트림에 패킷들의 최대 재요청 설정값

net.ipv4.tcp_reordering = 3

 

# 무언가 문제가 있을때 연결을 위해 지시도할 횟수

net.ipv4.tcp_retries1 = 3

# TCP 연결을 끊기 전에 재시도할 횟수

net.ipv4.tcp_retries2 = 15

 

 

#net.ipv4.tcp_slow_start_after_idle = 0

 

#net.ipv4.tcp_fastopen =3

 

# 라우팅 캐시 청소 기능 활성화

net.ipv4.route.flush = 1

net.ipv6.route.flush = 1

위로