net.netfilter.nf_conntrack_buckets를 설정하는 올바른 장소는 어디입니까?


12

현재 부팅시 net.netfilter.nf_conntrack_buckets를 설정하려고합니다. 처음에는 이것이 sysctl.conf를 통해 수행 될 수 있다고 가정했지만 net.netfilter.nf_conntrack_buckets (및 기타 net.netfilter 구성)는 전혀 적용되지 않았습니다. sysctl -p를 rc.local에 추가하면 net.netfilter.nf_conntrack_buckets를 제외한 모든 net.netfilter 구성을 적용 할 수있었습니다. 또한 sysctl -w를 사용하여 터미널에서 이것을 설정하면 '오류 : 키'net.netfilter.nf_conntrack_buckets에서 권한이 거부되었습니다 '가 발생합니다.

# This should be applied at boot
net.netfilter.nf_conntrack_max=1966080
net.netfilter.nf_conntrack_buckets=245760

올바른 장소는 어디입니까?

답변:


11

sysctl 매개 변수는보기 전용이라고 생각합니다. /sys/module/nf_conntrack/parameters/hashsize런타임 변경에 인터페이스 를 사용하고 hashsize모듈 옵션을 사용하여 초기 모듈로드 중에 인터페이스 를 설정하려고합니다.

/etc/modprobe.d/파일에서 다음과 같은 항목을 원할 것입니다 .

options nf_conntrack hashsize=XXXXX


/ sys / module / nf_conntrack / parameters / hashsize를 통해 해시 크기를 설정하면 net.netfilter.nf_conntrack_buckets sysctl은 업데이트되지 않지만 modprobe를 통해 재부팅하면 재부팅됩니다. 그것은 첫 번째 방법을 통해 값을 변경해도 새로운 값이 완전히 적용되지 않는다는 것을 의미합니까?
andresp

5

Andrew B의 답변에 더하여 :

어떤 이유로 RHEL 문서nf_conntrack_hashsize.modules확장명 과 같은 이름을 가진 실행 가능한 쉘 스크립트 를 /etc/sysconfig/modules대신 넣는 것이 좋습니다. 왜 그런지 모르겠습니다. 내용은 다음과 같습니다.

#!/bin/sh
exec /sbin/modprobe nf_conntrack hashsize=262144

그렇지 않으면로드되지 않은 추가 모듈을로드하려는 경우에 필요합니다. 당신은 추가 모듈을 지정할 수 있습니다 [견적] 새로운 <FILE_NAME> .modules [/ 인용] 작성하여로드 할
hbogert

1

예를 들어, localhost라는 파일을 /etc/modprobe.d/ 디렉토리에 넣어야합니다.

이 파일 안에 다음 행을 추가하십시오 (값은 예입니다).

options nf_conntrack hashsize=333333

그리고 더 빠른 해결책은 다시 시작하는 것입니다. 다른 옵션은 nf_conntrack 커널 모듈을 다시로드하는 것입니다. 모듈을 실행하는 다른 모듈과 연결되어 있기 때문에 조금 어렵습니다.

다음과 같이 결과를 확인하십시오.

cat /sys/module/nf_conntrack/parameters/hashsize
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.