PowerDNS 영역 전달

PowerDNS 영역 전달

랩 환경에서 비공개 영역을 제공하는 데 사용되는 4.0.6 powerdns 배포를 상속했습니다. 이 환경을 AWS로 마이그레이션하는 중이며 aws.internal.lan을 Route53 인바운드 확인자 세트로 전달하려면 powerdns가 필요합니다. 재귀에서 "forward-zones-recurse"를 사용하면 이 작업을 수행할 수 있을 것 같지만 현재 설정에서는 이 작업을 수행할 수 없는 것 같습니다.

pdns.conf:

daemon=no
max-tcp-connections=1000
guardian=no
setuid=pdns
setgid=pdns
launch=gpgsql
allow-recursion=127.0.0.0/8, 10.0.0.0/8
recursor=127.0.0.1:5353
local-address=0.0.0.0
local-port=53
master=no
slave=yes
slave-cycle-interval=60
gpgsql-host=127.0.0.1
gpgsql-dbname=pdns
gpgsql-user=redacted
gpgsql-password=redacted
api-key=redacted
webserver=yes
webserver-address=0.0.0.0
webserver-port=8081

recursor.conf:

setuid=pdns-recursor
setgid=pdns-recursor
allow-from=127.0.0.0/8
local-address=127.0.0.1
local-port=5353
forward-zones-recurse=aws.internal.lan=10.162.67.202;10.162.73.199

문제는 pdns가 해당 영역을 Route53 해석기로 전달하지 않는다는 것입니다. dig @127.0.0.1 -p 5353 aws.internal.lan반복자가 올바른 레코드를 반환 한다는 것을 확인할 수 있지만 로컬 ns 서버에서만 반복자를 쿼리할 수 있습니다. 포트 53에서 수신하는 권한 있는 서버가 해당 요청을 포트 5353에서 수신하는 반복자에게 전달하면 안 되나요?

이것이 작동해야 할 것 같지만 아마도 뭔가 빠졌을 것입니다. 내 구성에서 볼 수 있듯이 나는 이전 버전의 pdns를 사용하고 있으며 이 이전 버전에 대한 문서를 찾을 수 없는 것 같습니다. 내가 여기서 뭘 잘못하고 있는지 아시나요?

답변1

당신은 일이 어떻게 진행되는지 오해하고 있습니다.

확인자는 요청을 반복자나 실제로 어느 곳으로든 전달하지 않습니다. 반면에 반복자는 확인자가 관리하는 영역에 대한 요청을 해당 영역으로 전달하도록 구성되어야 합니다.

클라이언트 쿼리는 항상 반복자로 들어와야 하며, 그러면 로컬 영역이 확인자에게 전달되고 다른 영역도 적절하게 해결됩니다. 'recursor' 설정은 리졸버에서 아무런 기능도 하지 않습니다.

재귀에서는 다음과 같은 설정이 필요합니다.

forward-zones=ponyville.eq.=127.0.0.1:5353

요청을 해석기(포트 5353에 있고 반복기는 포트 53에 있음)로 전달합니다.

보조 서버가 있는 경우 확인자가 NS 레코드를 기반으로 NOTIFY 패킷 전송을 시도한다는 점에서 추가적인 문제가 있습니다. 확인자가 포트 5353에 있는 경우 이러한 알림 패킷은 반복자로 들어오며 이를 확인자에게 전달하려면 특별한 구성(여기에 입력하기에는 너무 복잡함)이 필요합니다. 호스트에 2개의 IP 주소를 갖고 하나에는 확인자, 다른 하나에는 반복자를 두어 이 문제를 해결했습니다. 따라서 동일한 호스트 이름에 다른 포트를 가질 필요가 없습니다.

그래서 요약하자면,

  • pdns는 요청을 어디에도 전달하지 않습니다.
  • pdns-recusor는 귀하의 설정에 따라 Route53 요청을 전달할 것입니다
  • pdns-recursor는 로컬 영역을 확인자에게 전달하도록 구성되어야 합니다.
  • 모든 클라이언트 요청은 확인자에게 전달되어야 합니다.
  • 이를 원할 경우 NOTIFY 패킷을 처리하려면 훨씬 더 많은 추가 마법이 필요합니다.

관련 정보