내 서버에서 작은(20,000개 항목) 영역 파일을 성공적으로 사용하고 있지만 bind9
오늘 내 데이터 공급자가 업데이트를 보냈습니다.영역 파일300,000개 이상의 항목이 됩니다(30Mb+).
문제는 이 영역 파일을 사용하여 서버를 시작할 수 없다는 것입니다. 오류는 보고 되지 named-checkconf
않습니다 . 사용 가능한 로그 메시지가 없습니다(또는 올바르게 기록할 수 없습니다).
bind9
대용량 구성 파일을 처리하는 것이 가능한지, 그렇다면 어떻게 해결할 수 있는지 알고 싶습니다 . 그렇지 않은 경우 이 문제에 대한 해결책이 있는지 알고 싶습니다. 항목을 데이터베이스에 저장할 수도 있나요?
사용하려는 영역 파일은 다음에서 다운로드할 수 있습니다.여기.
고쳐 쓰다:
service bind9 status
잠재적으로 관련이 있는 정보를 표시합니다.
adjusted limit on open files from 4096 to 1048576
found 1 CPU, using 1 worker thread
using 1 UDP listener per interface
using up to 4096 sockets
loading configuration from '/etc/bind/named.conf'
이 정보를 어떻게 해석하거나 사용하는지 잘 모르겠습니다... 어떤 아이디어가 있습니까? 또한 bind9
로그가 어디에 있는지 찾을 수 없습니다 . 항목 /var/log/
이 없습니다 . bind9
누구든지 Debian Jessie에서 어디에 있는지 말해 줄 수 있나요?
답변1
귀하의 영역 파일을 살펴보았습니다. 350,000개 이상의 도메인 목록인 것으로 보이며 현재 로컬 BIND 서버를 마스터 서버로 정의되어 있습니다. 도메인의 형식은 다음과 같습니다.
zone "xxxx.com" { type master; notify no; file "null.zone.file"; };
메모리 요구 사항에 따라 도메인 테이블이 메모리에 로드되므로 대략 40MB-80MB의 사용 가능한 RAM이 필요할 것입니다. (단, 200MB 이상이면 더 편할 것 같습니다.)
서버의 RAM이 심각하게 제한되지 않는 한 이런 일은 거의 발생하지 않을 것 같지만 일어날 수 있습니다.
또한 여러 도메인 이름의 이름에 밑줄("_")이 포함되어 있는 것도 확인했습니다. DNS RR의 밑줄은 일부 RFC(RFC 952 및 RFC 1123)를 중단하므로 BIND 옵션 섹션에 지시어를 추가해야 합니다.
check-names master ignore;
도메인 이름을 블랙리스트에 올리는 형식과 방법은 다음과 같습니다. 버전 9.8부터 BIND는 블랙리스트 도메인을 위해 특별히 생성된 소위 RPZ(응답 정책 영역)를 지원합니다.
오늘날 일부 (상업) 블랙리스트 제공업체는 이 형식을 따릅니다. (저는 직장과 집에서 모두 RPZ를 사용합니다).
RPZ를 사용하는 것이 더 합리적이고 더 가벼운 부하를 의미하므로 서비스 비용을 지불하는 경우 공급업체에 문의하여 사용 방법을 알아보는 것이 좋습니다. RPZ 형식은 와일드카드도 어느 정도 지원하므로 블랙리스트 파일이 훨씬 작습니다.
또 다른 방법은 스크립트를 사용하여 파일을 처리하고 RPZ 형식으로 변경하는 것입니다.
RPZ 및 공식 RPZ 제공업체에 대한 관련 링크를 여기에 남겨두겠습니다.
RPZ 구성 방법에 대한 튜토리얼:
http://www.zytrax.com/books/dns/ch9/rpz.html
이미 알고 계시겠지만 현재 구성에서는 열려 있는 파일도 많으므로 RPZ를 사용하는 것이 좋습니다.
대규모 이메일, DNS 또는 HTTP 서버에서 더 많은 열린 파일을 처리하려면 일반적으로 제한을 늘려야 합니다.
상황이 이전 커널만큼 나쁘지는 않지만 그럼에도 불구하고 제한을 높이는 것이 좋습니다.
전역 열린 파일 제한 지시어 편집 및 수정/추가 /etc/sysctl.conf
:fs.file-max
fs.file-max=500000
재부팅하지 않고 새 파일 제한을 적용하려면 다음을 실행해야 합니다.
sudo sysctl -p
프로세스당 파일 제한을 보려면 다음을 편집하세요 /etc/security/limits.conf
.
* - nofile 400000
프로세스별 파일 제한을 적용하려면 로그아웃했다가 로그인하거나 다음을 실행하세요.
sudo ulimit -n 400000
이 두 가지 제한을 늘린 후에는 BIND를 다시 시작해야 합니다.
sudo service bind9 restart
파일을 RPZ 형식으로 변환하려면 다음을 실행하십시오.
cat bind | tr -d \" | awk ' { print $2" CNAME ." } ' > /etc/bind/rpz.db
스크립트는 항목을 다음 형식으로 변환합니다.
zeus.developershed.com CNAME .
zeusclicks.com CNAME .
zintext.com CNAME .
명명된 옵션 섹션에 다음을 추가합니다.
response-policy { zone "rpz"; };
RPZ 영역에 대한 선언을 만듭니다.
zone "rpz" {
type master;
file "/etc/bind/rpz.db";
};
파일 맨 위에 추가하십시오 /etc/bind/rpz.db
.
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS your_dns_fqdn.
DNS 파일의 구성을 해제하고 BIND 서버를 다시 시작하십시오. 분명히 RPZ 파일은 와일드카드를 사용하여 최적화하고 더 짧아질 수 있지만, 이러한 최적화 없이도 요즘에는 열려 있는 파일이 그렇게 많이 필요하지 않습니다.
BIND/DNS 로그 쿼리의 경우 태그가 /var/log/syslog
지정된 시스템 로그와 함께 제공됩니다 named
. 다음 명령을 사용할 수 있습니다.
sudo grep named /var/log/syslog