BBUWOO'S [ LIKE UNIX ] WORLD Home > Lecture > Kernel > Kernel-7  

HOME
WHAT's BBUWOO?
LInux AnNyung
Open Source
    GitHUB
    GitHUB (for PHP)
LECTURE
MINI LECTURE
QnA BOARD
ENGLISH POEM


WARNNING

강좌의 모든 권리는 본인 김정균에게 있으며 이 강좌를 상업적 목적 으로 이용
하거나 다른 곳으로 옮길시에는 본인의 허락이 있어야 한다. 이글의 가장 최신글은
http://oops.org 에서 확인할수 있다.



7. Sysctl For Networking in Kernel

/proc/sys/net/ipv4/* 을 위한 문서 kernel version 2.4.25 번역 2004.2.25 김정균 <http://oops.org> * 역주) 이 페이지를 읽기 전에 아주 강력하게 주의를 요할 것은 sysctl을 이용하여 이 값들을 변경할 경우나 직접적으로 변경을 할 경우 시스템이 crash 되어질 위험요소가 많이 있 다는 것을 명심해 야 한다. 즉, 자기의 시스템에 무리한 값을 넣었을 경우 그 즉시 시 스템이 멈출수도 있기 때문에 충분한 테스트와 시스템이 crash가 될 수 있음을 명심하 고 책임을 질수 있을 경우에만 만지기를 권장한다. * 참조) http://kldp.org/KoreanDoc/html/Kernel-KLDP/network.html ip_forward - 01 연산 0 - 사용안함 (기본값) 0 이 아닐 경우 - 사용함 interface 들 사이에 패킷들을 교환시키는 것을 허락. 이 변수의 변경은 기본적인 상태로 모든 설정 파라미터들을 리셋 시킨다. (RFC1122 for hosts, RFC1812 for routers) ip_default_ttl - 정수 기본값: 64 TTL (Time To Live) 은 IP 패킷 안에 들어있는 (대개 0부터 255 사이) 정수값 으로 TTL 이라는 말 그대로 패킷의 수명을 카운트한다. 라우터 하나를 지날때 마다 초기 값에서 1 (혹은 그 이상)을 빼는데 값이 0 이 되면 라우터는 그 패 킷 을 버리고 재전송을 요청하는 ICMP 메시지를 발신지 호스트에 보낸다. 리 눅스는 그 값이 255 이나 윈도우 95 나 98 의 TTL 기본 값은 32 홉으로, 운영 체제마다 다를 수 있다. ping 과 traceroute 유틸리티는 TTL 값을 사용하는 대표적인 프로그램인데 사 용자가 TTL 값을 조정할 수 있으며 traceroute 는 TTL 기본값을 30 으로 낮추 어 패킷을 전송한다. 멀티캐스팅에서는 TTL 값이 패킷이 전달되어야 하는 범위나 구역을 가리킨다. 0 은 같은 호스트로 제한된다. 1 은 같은 서브넷으로 제한된다. 32 는 같은 사이트로 제한된다. 64 는 같은 지역으로 제한된다. 128 은 같은 대륙으로 제한된다. ip_no_pmtu_disc - 01 연산 MTU discorery 경로를 사용안함 기본값 FALSE (사용함을 의미) MTU (Maximum Transmission Unit) 는 프레임이나 패킷이 한번에 하나 씩 전송 될 때 통과할 수 있는 크기로 프로토콜마다 그 크기가 다르다. 예를들어 이더 넷에서는 1500 이지만, X.25 에서는 576 이다. Path MTU 는 두 호스트사이 경 로 (path) 에서 가장 작은 MTU 값이다. 호스트가 같더라도 라우팅 경로나 프로토콜은 매번 바뀌므로, MTU 값도 계속 달라지게 된다. 현재 패킷보다 작은 MTU 값을 가진 라우터를 통과할 때, 패킷 은 그 라우터 MTU 에 맞춰 잘게 쪼개진다. 수신하는 호스트에서는 그렇게 쪼 개진 조각들을 모두 받아서 다시 재조립하는데, 그 가운데 한조각이라도 드롭 되면 모든 조각을 다시 전송받아야 한다. 이 경우, 라우터는 조각을 나누느라 바쁘고, 호스트는 재조립하느라 바빠지며, 재전송이 많아지는 등 퍼포먼스를 떨어트리게 된다. 이럴 때 pmtu discovery 를 사용한다. 먼저 패킷 발송 시, 헤더에 DF (Don't Fragment) 비트를 설정해서 조각내지 말라고 알린다. DF 비트가 설정된 패킷 을 받은 라우터는 자신의 MTU 보다 큰 경우 조각화하는 대신, Can't Fragment 에러와 MTU 값을 돌려보낸다. 그 값을 돌려받는 호스트가 라우터의 MTU 값에 맞추어 패킷을 다시 전송한다. 조각나는 것을 피하면서, 가장 큰 패킷을 보내 기 위해 pmtu discovery를 사용하는 것이다. 단, 이 기능을 사용하기 위해서는 ICMP 메시지 타입 3 가운데 code 4 (Fragmentation Needed and Don't fragment)를 허용해야한다. IP Fragmentation: ipfrag_high_thresh - 정수 Maximum memory 는 IP 조각들을 재조합을 한다. 메모리의 ipfrag_high_thresh byte가 이결과를 통해 재할당 된다면, fragment handler는 ipfrag_low_thresh 가 도달하기 전에 패킷들을 전달을 할것이다. ipfrag_low_thresh - 정수 ipfrag_high_thresh 를 참고하라 ipfrag_time - 정수 메모리에서 IP fragment 를 유지하는 시간 (초단위) INET peer storage: inet_peer_threshold - 정수 스토리지의 대략적인 크기이다. 이 threshold목록들로 부터 시작하는 것은 침 입의 요소를 안게 될 것이다. 이 threshold 는 garbage collection passes 사 이에서 목록들의 time-to-live 와 time intervals를 한정을 한다. 또 다른 정 보를 얻고 싶다면 less time-to-live 나 less GC interval 을 하라. inet_peer_minttl - 정수 Minimum time-to-live of entries. Should be enough to cover fragment time-to-live on the reassembling side. This minimum time-to-live is guaranteed if the pool size is less than inet_peer_threshold. Measured in jiffies. inet_peer_maxttl - 정수 Maximum time-to-live of entries. Unused entries will expire after this period of time if there is no memory pressure on the pool (i.e. when the number of entries in the pool is very small). Measured in jiffies. inet_peer_gc_mintime - 정수 Minimum interval between garbage collection passes. This interval is in effect under high memory pressure on the pool. Measured in jiffies. inet_peer_gc_maxtime - 정수 Minimum interval between garbage collection passes. This interval is in effect under low (or absent) memory pressure on the pool. Measured in jiffies. TCP variables: tcp_syn_retries - 정수 활성화된 TCP 접속이 재전송을 시도하게 하기 위한 최초 SYN시간의 값을 정한 다. 255 보다 높아서는 안된다. 기본값은 5이며, 180 초에 대응이 된다. tcp_synack_retries - 정수 passive TCP 접속 시도가 재접속을 하기 위한 SYNACKs의 값을 정한다. 255 보 다 높게 지정할 수 없다. 기본값은 5이며, 180초에 대응이 된다. tcp_keepalive_time - 정수 keepalive 가 활성되 되어 있을 경우 얼마나 자주 TCP 가 keepalive 메세지를 보내게 할 것인지를 설정. 기본값은 2시간 이다. KEEPALIVE 시간을 줄이면 비정상적으로 stable 된 접속을 해제하는 시간을 줄 일수 있음. tcp_keepalive_probes - 정수 접속이 끊어지는 것을 결정하기 전까지 keepalive 가 TCP send out 을 얼마나 살피게 할지 지정한다. 기본값은 9 이다. tcp_keepalive_intvl - 정수 얼마나 자주 send out 을 체크할지를 정한다. tcp_keepalive_probes 에 의해 증가되어진 probes 는 probes 가 시작된 후에는 responding connection 을 죽 일수 없다. 기본값은 75초 이다. 기본 값의 사용시 11분 15초 후에 연결이 해 제된 것으로 간주 된다. tcp_retries1 - 정수 무언가 잘못되었을 경우, network layer 로 이 현상을 reporting 하기전 다시 확인을 하기 위한 횟수를 지정한다. 최소 RPC 값은 3 이며, 이는 RTO상에서 3 초에서 8분 사이에 응답을 하도록 하는 것이 기본값이다. tcp_retries2 - 정수 살아있는 TCP 연결을 끊기 전에 확인하는 횟수를 정한다. RFC1122 는 100초보 다 길게 제한하라 하지만 너무 작은 값이다. 기본값은 15로 RTO 13-30분에 해 당한다. tcp_orphan_retries - 정수 우리 쪽에서 닫은 TCP 연결을 끊기 전에 확인하는 횟수를 정한다. 기본값은 7 로 RTO 50 초에서 16 분 사이에 해당한다. 웹 서버가 운영 중 이라면 이 값을 줄여서 소켓 등이 귀한 리소스를 소비하지 않도록 할 수도 있다. tcp_fin_timeout - 정수 서버에 의해 닫혀질때 FIN_WAIT-2 상태의 소켓을 유지 시킬 시간을 지정한다. peer는 파괴될수 있지만 결코 스스로 닫지는 않거나, 에상치 못하게 죽을수는 있다. 기본값 60초 이다. 보통 커널 2.2 에서는 180 초를 사용 하지만 수정을 할수는 있다. 하지만 시스템이 웹서버의 용도라면 수많은 죽은 소켓들로 인해 메모리가 폭주할 위험도 있다. FIN-WAIT-2 소켓들은 최고 1.5K 정도의 메모리 를 사용하기 때문에 FIN_WAIT-1 보다 덜 위험 하지만 tcp_max_orphans 값보다 더 오래 유지되려는 경향이 있다. FIN_TIMEOUT 대기 시간을 줄이면 끊어진 소켓의 소거 시간을 줄일 수 있음. tcp_max_tw_buckets - 정수 동시에 유지 가능한 timewait 소켓의 수. 지정 숫자를 초과할 경우, timewait 소켓이 없다는 경고 메세지 출력한다. 이 제한은 단순한 DoS 공격을 방어하기 위해서만 필요하며, 기본값보다 작게해서는 절대 안된다. 네트워크 환경이 기 본값보다 큰 값을 요구한다면 늘려도 된다. 보통 램 64M 당 180000 으로 계산 을 하면 된다. tcp_tw_recycle - 01 연산 빠른 재생 TIME-WAIT 소켓을 사용한다. 기본값은 1이다. 전문가의 조언 / 요 청이 없다면 절대 바꾸지 마라. tcp_tw_reuse - 01 연산 프로토콜 관점에서 안전하다고 판단될 때 새로운 연결에 대하여 TIME-WAIT 소 켓을 재사용하는 것을 허락한다. 기본값은 0 이다. 이 값은 기술 전문가의 조 언이나 요청이 없이 변경하지 않는 것이 좋다. tcp_max_orphans - 정수 시스템에 고정 되었거나, 사용자 파일 핸들에 연결되지 않은 TCP 소켓의 최대 값을 지정한다. 고아 연결이 이 값을 초과하면, 즉시 리셋되고 경고를 출력한 다. 이 제한은 단순한 DoS 공격을 방어하기 위해서만 필요하며, 기본 값보다 작게해서는 절대 안된다. 네트워크 환경이 기본값보다 큰 값을 요구하거나 오 래 버텨서 그런 문제들은 더 공격적으로 죽이기 위해 네트워크를 조율 한다면 늘려도 된다 (아마, 설치된 메모리를 증설한 다음) 한번 더 당부하자면: 고아 연결들은 스왑할 수 없는 메모리를 각자 64K 이상 차지하게 된다.. tcp_abort_on_overflow - 01 연산 리스닝 서비스가 새로운 연결을 수락하기에 너무 느리다면, 그 서비스를 리셋 한다. 기본값은 FALSE 이다. 이 것은 갑자기 오버플로가 발생하더라도 연결이 복구된다는 뜻이다. 리스닝 데모이 연결을 더 빨리 수락하도록 자리잡지 못하 는게 정말 확실할 때에만 이 옵션을 활성화 한다. 이 옵션을 활성화하면 서버 에서 손상된 클라이언트라도 리슨 하게 된다. tcp_syncookies - 01 연산 kernel 을 CONFIG_SYNCOOKIES 를 설정하여 생성을 하였을 때만 사용이 유효하 다. 소켓으로 syn backlog queue 가 넘칠때 syncookies 를 보낸다. 이것은 일 반적인 'syn flood attack' 이라는 공격을 방어 하기 위해 사용이 된다. 기본 값은 FALSE 이다. syncookies 는 대체 방법일 뿐 이라는 것을 명심 해야 한다. 이것은 정상적인 접속에 대해 더 좋은 성능을 내게하는 것에 사용이 되는것은 아니다. 만약 로 그에서 synflood 경고를 보게 된다면, 하지만 이것들이 정상적인 접속들이 넘 쳐서 발생한 것들이라면 이 경고가 사라지기 전에 tcp_syncookies 가 아닌 다 른 파라미터들을 조절해야 한다. tcp_max_syn_backlog, tcp_synack_retries, tcp_abort_on_overflow 를 참고를 하라. syncookies 는 TCP 프로토콜에 심각하게 어긋나며, TCP 확잗들을 사용하는 것 을 허락하지 않으며, (SMTP relaying 같은) 특정서비스들의 심각한 손상의 결 과가 될수있다. 만약 실제 넘치지 않음에도 불구하고 로그에 synflood 경고가 계속 발생한다면, 서버의 설정이 심각하게 잘못되어 있는 것이다. tcp_stdurg - 01 연산 TCP urg 포인터 필드 해석기가 필요할 때에 사용한다. 대부분 오래된 BSD 해 석기를 사용하는데, 리눅스가 그런 것들과 제대로 소통하지 못한다고 판단될 경우 활성화를 해 볼만하다. 기본값은 FALSE 이다. tcp_max_syn_backlog - 정수 접속한 client 들 중 승인을 받지 못하는 접속 요청들의 최대값을 지정 한다. 만약 승인을 받지 못하고 기다리는 접속 요청들이 이 수를 벗어나는 경우에는 "다시 재접속을 해 보라" 라는 메세지를 받게 된다. 128Mb의 메모리에서는 기 본값으로 1024를 사용할수 있으며, 이보다 적은 메모리를 가지고 있을 경우에 는 128 을 사용하기를 권장 한다. 만약 서버에 부하가 많이 걸리게 된다면 이 값을 증가해 보기 바란다. tcp_window_scaling - 01 연산 RFC1323 에 정의된 window scaling 을 가능하게 한다. tcp_timestamps - 01 연산 RFC1323 에 정의된 timestamp 들을 가능하게 한다. tcp_sack - 01 연산 SYN 패킷을 전송한 후에, 로스가 발생을 하여 ACK 를 일부 받지 못했을 경우, 선택적으로 (selected) 받지 못한 ACK 만 받도록 요청하는 것을 허락한다. 로 스가 많은 네트워크에서는 상당히 중요한 역할을 한다. tcp_fack - 01 연산 FACK 밀집 회피와 빠른 재전송을 가능하게 한다. tcp_sack 이 활성화가 되어 있지 않으면 이 값은 사용되지 않는다. tcp_dsack - 01 연산 TCP가 중복된 SACK 들을 보내는 것을 가능하게 한다. tcp_ecn - 01 연산 TCP 에 명백한 혼잡 공지(Explicit Congestion Notification) 를 가능하게 한 다. tcp_reordering - 정수 TCP stream 에 패킷들의 최대 재 요청을 설정. 기본값: 3 tcp_retrans_collapse - 01 연산 망가진 프린터에 Bug-to-bug 호환. 더 큰 패킷을 재전송해서 어떤 TCP 스택에 있는 버그를 피해간다. tcp_wmem - vector of 3 INTEGERs: min, default, max min: TCP 소켓에서 send buffer 에 할당될 메모리 양. 각 TCP 소켓들은 연결 이 유지된 상태에서는 이 메모리를 사용한 권한을 가지게 된다. 기본값은 4K default: TCP 소켓에서 기본으로 할당이 되는 send 버퍼의 메모리 양. 이값은 다른 프로토콜에서 의해 사용되는 net.core.wmem_default 값 보다 우선 한다. 기본값은 16K max: TCP 소켓에서 자동으로 선택된 send 버퍼를 위한 최대 메모리 크기. 이 값보다 net.core.wmem_max 값이 우선한다. 기본값은 128K tcp_rmem - vector of 3 INTEGERs: min, default, max min: TCP 소켓에서 receive buffer 에 할당될 메모리 양. 각 TCP 소켓들은 연 결이 유지된 상태에서는 이 메모리를 사용할 권한을 가지게 된다. 기본값은 8K default: TCP 소켓에서 사용되어 지는 receive buffer 의 기본값. 이 값은 다 른 프로토콜에 의해 사용되는 net.core.rmem_default 값 보다 우선한다. 기본 값은 87380 byte 이다. 이 값은 tcp_adv_win_Scale 의 기본 설정과 tcp_app_win:0 과 기본 tcp_app_win 을 위한 bit less 와 함께 65535 의 window 를 가지게된 다. max: TCP 소켓에 대하여, 자동적으로 최대한 사용할 수 있는 receive buffer 의 최대크기 이 값은 net.core.rmem_max 의 값을 덮어쓰지 못하며, SO_RCVBUF 를 통한 "정적"인 연결은 이 값을 사용하지 않는다. 기본값은 87380*2 byte. tcp_mem - vector of 3 INTEGERs: min, pressure, max low: below this number of pages TCP is not bothered about its memory appetite. pressure: when amount of memory allocated by TCP exceeds this number of pages, TCP moderates its memory consumption and enters memory pressure mode, which is exited when memory consumtion falls under "low". high: number of pages allowed for queueing by all TCP sockets. Defaults are calculated at boot time from amount of available memory. tcp_app_win - 정수 Reserve max(window/2^tcp_app_win, mss) of window for application buffer. Value 0 is special, it means that nothing is reserved. 기본값: 31 tcp_adv_win_scale - 정수 Count buffering overhead as bytes/2^tcp_adv_win_scale (if tcp_adv_win_scale > 0) or bytes-bytes/2^(-tcp_adv_win_scale), if it is <= 0. 기본값: 2 tcp_rfc1337 - BOOLEAN 세팅되면 TCP 스택은 RFC1337을 따른다. 해제되면 RFC를 따르지 않지만 TCP TIME_WAIT asassination은 막아준다. 클라이언트의 소켓으로 부터 RST를 받아 TIME_WAIT 상태로 가는 경우 즉시 소 켓을 종료 시킴. 웹서버와 같은 유형의 서버에서는 소켓을 열고 닫는 회수가 많으므로, 이 설정을 적절하게 설정하여 사용하는 것이 좋음. 또는 net.ipv4.tcp_max_tw_buckets 값을 줄이는 것으로도 가능함 기본값: 0 tcp_low_latency - BOOLEAN If set, the TCP stack makes decisions that prefer lower latency as opposed to higher throughput. By default, this option is not set meaning that higher throughput is preferred. An example of an application where this default should be changed would be a Beowulf compute cluster. 기본값: 0 ip_local_port_range - 2 정수값 TCP 와 UDP 에 의해 사용될 local 포트 범위를 정의한다. 첫번째 숫자는 사용 할 영역의 가장 앞부분 포트 번호를 지정하고 두번째는 마지막 포트번호를 지 정한다. 기본값은 시스템의 사용가능한 메모리의 양에 의해 결정이 된다: 메모리가 128Mb 보다 많을 경우 32768-61000 메모리가 128Mb 보다 적을 경우 1024-4999 또는 이보다 적게.. 이 값은 TCP 확장을 지원하지 않는 시스템으로 동시에 발생이 될수 있는 활성 화된 접속들의 수를 결정한다. tcp_tw_recycle 을 가능하게 함으로서 (기본적 으로) 1024-4999 영역은 timestamps를 지원하는 시스템들에 초당 2000개의 접 속 정도를 가능하게 하 는데 충분하다. 정확치는 않지만 2.4.20 이 후 부터는 커널에서 자동으로 감지를 하여 잡으므 로 신경을 쓰지 않아도 상관이 없다. ip_nonlocal_bind - BOOLEAN 세팅되면 프로세스가 로컬 IP 가 아닌 주소에 bind() 할수 있다. 매우 유용한 기능이지만 어떤 어플리케이션에서는 나쁠 수 있다. 기본값: 0 ip_dynaddr - BOOLEAN 0 이 아닌 값을 세팅하면 동적 주소를 (dynamic addresses) 지원한다. 1 보다 큰 값을 세팅하면 동적주소가 다시 쓰여질 때마다 로그 메시지가 출력될 것이 다. 기본값: 0 icmp_echo_ignore_all - 01 연산 이 값을 1 로 할 경우 kernel 은 모든 ICMP ECHO 요청을 무시해 버린다. 즉 ping 이 안되게 한다. icmp_echo_ignore_broadcasts - 01 연산 만약 모든 ICMP ECHO 요청을 커널이 무시하게 하거나, ICMP ECHO 요청 중 broadcast 와 multicast 주소에만 무시하게 할때 1의 값은 무시, 0의 값은 리 턴을 하게 된다. 만약 boardcast/multicast 주소의 ICMP ECHO 요청을 수용하 게 한다면, network가 다른호스트로 denial of service(DOS) packet flooding 공격을 하는데 이용이 될수가 있다. icmp_ratelimit - 정수 아래의 icmp_ratemask 에 지정된 BIT 와 일치하는 타입의 ICMP 패킷을 보내기 위한 최대 빈도를 제한한다. 0 은 제한을 없애며 그 밖의 값은 jiffies(1) 의 최대 빈도를 의미한다. 기본값: 100 icmp_ratemask - 정수 Mask made of ICMP types for which rates are being limited. Significant bits: IHGFEDCBA9876543210 Default mask: 0000001100000011000 (6168) Bit 정의 (see include/linux/icmp.h): 0 Echo Reply 3 Destination Unreachable * 4 Source Quench * 5 Redirect 8 Echo Request B Time Exceeded * C Parameter Problem * D Timestamp Request E Timestamp Reply F Info Request G Info Reply H Address Mask Request I Address Mask Reply * These are rate limited by default (see default mask above) icmp_ignore_bogus_error_responses - 01 연산 어떤 router 들은 broadcast frame 들로 거짓 응답을 보냄으로서 RFC 1122 를 위반한다. 이러한 위한들은 보통 커널 경고를 통해 로깅이 된다. 이것을 TRUE 로 설정을 할경우 커널은 이러한 경고를 하지 않을 것이며, 로그 파일이 지저 분해 지는 것을 피할수 있다. 기본값: FALSE igmp_max_memberships - 정수 멀티캐스트 그룹에 참여할 수 있는 최대값을 변경한다. 기본값: 20 conf/interface/* changes special settings per interface (where "interface" is the name of your network interface) conf/all/* is special, changes the settings for all interfaces log_martians - 01 연산 불가능한 주소들을 지닌 패킷을 kerenl log 에 기록한다. IP soppfing packet 을 체크하는데 유용하다. Log packets with impossible addresses to kernel log. log_martians for the interface will be enabled if at least one of conf/{all,interface}/log_martians is set to TRUE, it will be disabled otherwise accept_redirects - 01 연산 ICMP redirect message 들을 허용한다. 기본값 TRUE (host) FALSE (router) Accept ICMP redirect messages. accept_redirects for the interface will be enabled if: - both conf/{all,interface}/accept_redirects are TRUE in the case forwarding for the interface is enabled or - at least one of conf/{all,interface}/accept_redirects is TRUE in the case forwarding for the interface is disabled accept_redirects for the interface will be disabled otherwise default TRUE (host) FALSE (router) forwarding - 01 연산 이 interface 로 IP forwarding 을 가능하게 한다. mc_forwarding - 01 연산 multicast routing을 가능하게 한다. 이 값을 사용하기 위해서는 커널 config 에서 CONFIG_MROUTE 를 설정해서 빌드를 해야 하며, multicast routing 이 가 능한 데몬이 요구되어 진다. medium_id - 정수 Integer value used to differentiate the devices by the medium they are attached to. Two devices can have different id values when the broadcast packets are received only on one of them. The default value 0 means that the device is the only interface to its medium, value of -1 means that medium is not known. Currently, it is used to change the proxy_arp behavior: the proxy_arp feature is enabled for packets forwarded between two devices attached to different media. proxy_arp - 01 연산 프록시 ARP는 지정한 인터페이스와 연결된 다른 호스트의 ARP 주소를 대신 뿌 려주고, 받는다. 투명하게 동작하는 네트워크 장비에 반드시 필요하다. shared_media - 01 연산 RFC1620 미디어 공유 리다이렉트를 보내거나 (라우터) 수락 (호스트)한다. 이 옵션 값이 0 이면 한 장치에 설정된 서로 다른 서브넷을 직접 통신할 수 없다. 기본값: TRUE secure_redirects - 01 연산 디폴트 게이트웨이 목록에 올라있는 게이트웨이에만 ICMP 리다이렉트 메시지를 허용한다. 기본값은 TRUE send_redirects - 01 연산 router 로 사용이 된다면 redirect 를 보낸다. 기본값은 TRUE 이다. Accept ICMP redirect messages only for gateways, listed in default gateway list. secure_redirects for the interface will be enabled if at least one of conf/{all,interface}/secure_redirects is set to TRUE, it will be disabled otherwise default TRUE send_redirects - BOOLEAN Send redirects, if router. send_redirects for the interface will be enabled if at least one of conf/{all,interface}/send_redirects is set to TRUE, it will be disabled otherwise 기본값: TRUE bootp_relay - 01 연산 Accept packets with source address 0.b.c.d destined not to this host as local ones. It is supposed, that BOOTP relay daemon will catch and forward such packets. default FALSE Not Implemented Yet. accept_source_route - 01 연산 SRR 옵션으로 패킷들을 수용한다. IP source routing 을 제어한다. 보통 호스 트로 향하게 하는 것을 권장한다. 이 값이 참이면 패킷 경로를 출발지에서 조 작이 가능하므로, IP 스푸핑에 악용될 소지가 있다. 기본값 TRUE (router) FALSE (host) rp_filter - 01 연산 1 - 집에서 사용하는 싱글 호스트나 몇개의 서브넷으로 나뉘어진 네트워크 같 이 RFC1812에 지정되어진 역경로에 의한 소스 유효성을 체크한다. 분석하 기 어려운 네트워크에서 느리고 신뢰할 수 없는 프로토콜 또는 정적인 네 트워크를 통해 문제를 야기할수도 있다. 보통은 IP spoofing 을 방지하기 위해 많이 사용을 한다. 0 - 소스 유효성 체크를 하지 않는다. conf/all/rp_filter must also be set to TRUE to do source validation on the interface 기본값은 0 이다. startip 스크립트에서 이를 가능하게 해 놓은 배포판도 있 으니 주의해야 한다. arp_filter - BOOLEAN 1 - Allows you to have multiple network interfaces on the same subnet, and have the ARPs for each interface be answered based on whether or not the kernel would route a packet from the ARP'd IP out that interface (therefore you must use source based routing for this to work). In other words it allows control of which cards (usually 1) will respond to an arp request. 0 - (default) The kernel can respond to arp requests with addresses from other interfaces. This may seem wrong but it usually makes sense, because it increases the chance of successful communication. IP addresses are owned by the complete host on Linux, not by particular interfaces. Only for more complex setups like load- balancing, does this behaviour cause problems. arp_filter for the interface will be enabled if at least one of conf/{all,interface}/arp_filter is set to TRUE, it will be disabled otherwise tag - 정수 Allows you to write a number, which can be used as required. Default value is 0. (1) Jiffie: 커널을 위한 내부 타임유닛. i386 에서 1/100 초, 알파에서 1/1024 초이다. 알맞은 값 이 궁금하다면 /usr/include/asm/param.h 에서 HZ define을 참고한다. Alexey Kuznetsov. kuznet@ms2.inr.ac.ru Updated by: Andi Kleen ak@muc.de Nicolas Delon delon.nicolas@wanadoo.fr /proc/sys/net/ipv6/* Variables: IPv6 has no global variables such as tcp_*. tcp_* settings under ipv4/ also apply to IPv6 [XXX?]. bindv6only - BOOLEAN Default value for IPV6_V6ONLY socket option, which restricts use of the IPv6 socket to IPv6 communication only. TRUE: disable IPv4-mapped address feature FALSE: enable IPv4-mapped address feature 기본값: FALSE (as specified in RFC2553bis) conf/default/*: Change the interface-specific default settings. conf/all/*: Change all the interface-specific settings. [XXX: Other special features than forwarding?] conf/all/forwarding - BOOLEAN Enable global IPv6 forwarding between all interfaces. IPv4 and IPv6 work differently here; e.g. netfilter must be used to control which interfaces may forward packets and which not. This also sets all interfaces' Host/Router setting 'forwarding' to the specified value. See below for details. This referred to as global forwarding. conf/interface/*: Change special settings per interface. The functional behaviour for certain settings is different depending on whether local forwarding is enabled or not. accept_ra - BOOLEAN Accept Router Advertisements; autoconfigure using them. Functional default: enabled if local forwarding is disabled. disabled if local forwarding is enabled. accept_redirects - BOOLEAN Accept Redirects. Functional default: enabled if local forwarding is disabled. disabled if local forwarding is enabled. autoconf - BOOLEAN Configure link-local addresses using L2 hardware addresses. 기본값: TRUE dad_transmits - 정수 The amount of Duplicate Address Detection probes to send. 기본값: 1 forwarding - BOOLEAN Configure interface-specific Host/Router behaviour. Note: It is recommended to have the same setting on all interfaces; mixed router/host scenarios are rather uncommon. FALSE: By default, Host behaviour is assumed. This means: 1. IsRouter flag is not set in Neighbour Advertisements. 2. Router Solicitations are being sent when necessary. 3. If accept_ra is TRUE (default), accept Router Advertisements (and do autoconfiguration). 4. If accept_redirects is TRUE (default), accept Redirects. TRUE: If local forwarding is enabled, Router behaviour is assumed. This means exactly the reverse from the above: 1. IsRouter flag is set in Neighbour Advertisements. 2. Router Solicitations are not sent. 3. Router Advertisements are ignored. 4. Redirects are ignored. 기본값: FALSE if global forwarding is disabled (default), otherwise TRUE. hop_limit - 정수 Default Hop Limit to set. 기본값: 64 mtu - 정수 Default Maximum Transfer Unit 기본값: 1280 (IPv6 required minimum) router_solicitation_delay - 정수 Number of seconds to wait after interface is brought up before sending Router Solicitations. 기본값: 1 router_solicitation_interval - 정수 Number of seconds to wait between Router Solicitations. 기본값: 4 router_solicitations - 정수 Number of Router Solicitations to send until assuming no routers are present. 기본값: 3 icmp/*: ratelimit - 정수 Limit the maximal rates for sending ICMPv6 packets. 0 to disable any limiting, otherwise the maximal rate in jiffies(1) 기본값: 100 IPv6 Update by: Pekka Savola <pekkas AT netcore.fi> YOSHIFUJI Hideaki / USAGI Project <yoshfuji AT linux-ipv6.org>



>> 이전 : Sysctl For Kernel Parameters in Kernel



    



 Home > Lecture > Kernel > Kernel-7

Copyright 1997-2024 JoungKyun Kim 
LAST MODIFIED: 2017/01/18