DNS에 여러 개의 PTR 레코드가 권장되지 않는 이유는 무엇입니까?


36

나는 종종 읽기 는 DNS 구성에서 여러 PTR 레코드를 사용하지 않는 것이 좋습니다 것이다.

그러나 그 이유는 종종 모호하거나 명백하지 않은 이름입니다.

  • "문제를 일으킬 수 있습니다",
  • "단일 답변을 기대하는 프로그램에서 버그를 유발할 수 있습니다": 그것은 소프트웨어의 문제입니까?
  • "DNS 응답 패킷을 너무 크게 만들 수 있습니다": EDNS로 고정되어 있지 않습니까?

이것이 좋은 이유입니까? 다른 좋은 이유를 알고 있습니까? 이 모든 것이 "레거시 두려움"처럼 보입니다 ...


4
단일 IP 주소에 대해 여러 개의 PTR 레코드를 원하는 이유는 무엇입니까? 그럴만한 이유를 생각할 수 없습니다.
당 폰 Zweigbergk

3
@PervonZweigbergk 이것은 내가 요구 한 것이 아니지만 예를 들어, 같은 IP를 가리키는 여러 이름이 있고 그 반대가 모두 일치하기를 원하기 때문입니다.
Totor

10
@PervonZweigbergk 여러 도메인의 메일을 처리하는 메일 서버를 상상해보십시오. EHLO명령 에서 메일을 보내는 도메인 내에서 이름을 사용할 수 있습니다 . 특정 수신자는 명령에 PTR도메인과 일치 하는 레코드 가 있어야합니다 EHLO. 그렇지 않으면 사용자의 메일을받지 않습니다. 그러나 여러 PTR레코드 가있는 경우 레코드 중 하나를 임의로 선택할 수 있으며 해당 레코드가 EHLO명령 과 일치하지 않으면 메일을 거부합니다.
kasperd

3
나는 그것이 당신이 요구 한 것이 아니라는 것을 알고 있습니다. :-) 당신은 당신이 말하는 응용 프로그램을 언급하지 않았습니다. @kasperd가 추측하고있는 발신 전자 우편의 상황에 대해 더 명확하게 설명하는 것이 좋습니다.
당 Zweigbergk 당

2
@ kasperd 나는 누군가가 그렇게하고 싶을 수도 있지만 그렇게하는 것은 전통적이지 않으며 불필요하게 문제의 상황을 초래합니다. 메일 서버는 EHLO메일을 처리하는 도메인 수에 관계없이 명령에 단일 이름 만 사용해야합니다 . HELO/ 안에있는 이름 EHLO은 메일 서버 자체를 식별 할 것으로 예상되며 MAIL FROM또는 From메일 주소 와 관련이 없습니다 .
Håkan Lindqvist

답변:


19

PTR역 이름 (예 : 대한 기록은 7.2.0.192.in-addr.arpa)를 식별 할 것으로 예상된다 정식 이름 이 IP 주소와 연결되어 있습니다.

네트워크 노드의 게이트웨이 포인터와 전체 주소 노드의 일반 호스트 포인터는 PTR RR을 사용하여 해당 호스트의 기본 도메인 이름을 다시 가리 킵니다.

보낸 사람 : http://tools.ietf.org/html/rfc1035#section-3.5

이러한 기대는 역방향 조회를 수행하는 소프트웨어에 반영됩니다. 종종 이러한 소프트웨어는 특히 단일 이름을 요구하며 해당 이름을 해당 호스트의 정식 이름으로 사용할 수있을 것으로 기대합니다. 여러 개의 이름이 반환되면이 특정 경우에 어떤 이름을 선호하는지 알 수있는 방법이 없기 때문에 무작위로 하나만 사용하는 것이 일반적입니다.

일반적으로 IP 주소와 관련된 정식 이름이 하나 있고 그 이름이 PTR가리켜 야 할 것이기 때문에 여러 이름을 추가하면 일반적으로 거꾸로되지 않지만 (임의의 A/ AAAA레코드가 일치 할 것으로 예상되는 것은 없음 PTR) 가능성이 있습니다. PTR하나 이상의 레코드를 추가하면 어떤 레코드를 사용할지 제어 할 수 없으므로 이상한 결과가 발생할 수 있습니다 .

본질적으로 여러 개의 PTR레코드가있는 경우 실제로 호스트를보다 합법적으로 보이게하지 않고 오히려 반대로 보이게하면 일부 유효성 검사에 실패하거나 무언가를 위반할 위험이 있습니다.

어쩌면 다소 극단적 인 은유로서, 사진과 함께 공항에서 이름이 다른 여권 5 장을 모두 넘겨주는 것은 아마 당신이 단지 하나를 넘겨주는 것처럼받지 못할 것입니다.


"하나의 표준 이름"에 대한 설명 : IP 주소가 둘 이상의 엔티티와 연관 될 수있는 경우 가장 구체적인 것이 선호됩니다. 이름 기반 가상 호스트가 여러 개인 웹 서버의 경우 웹 서버 자체의 이름이 가장 적합합니다. 정보 RFC ( PTR항상 A기록에 동의) 의 조언을 따르려고하는 것이 완전히 이질적인 경우 중 하나입니다 .
Andrew B

"PTR 레코드 식별 될 것으로 예상 됩니다": 누가? 소프트웨어 개발자는 단 하나의 PTR 만 표준으로 간주하기 시작하면서 사실상 규칙 처럼 보입니다 . 내가 맞아?
Totor

@Totor 소스에 대한 견적 및 링크를 추가했습니다.
Håkan Lindqvist

일화로서 최근 애플은 9K 바이트 이상의 응답을 보이는 몇 가지 PTR 레코드를 가지고 있다는 것이 알려졌다. 의심 할 여지없이 그들이 유일한 것은 아닙니다. 필수 PTR 레코드 정책이이 답변의 세부 사항을 고려하지 않을 때 발생할 수있는 것의 극단적 인 예입니다.
Andrew B

16

RFC는 이러한 PTR 레코드를 처리 할 수있는 제한이나 방법을 강요하지 않기 때문에 예측할 수없는 동작으로 이어집니다. 대부분의 구현은 라운드 로빈을 선택하고 원하는 결과를 얻지 못합니다 (많은 이름을 단일 IP로 완벽하게 일치).

https://supernoc.rogerstelecom.net/pdfs/multiple-ptrs.pdf에 대한 자세한 내용은 여기를 참조 하십시오.

또한 Glibc의 getnameinfo 함수 ( https://sourceware.org/bugzilla/show_bug.cgi?id=5790 ) 에서이 버그를 확인하십시오 . 인터넷에서 무한한 수의 서로 다른 시스템 (이들 중 일부는 매우 오래되고 패치되지 않은 시스템)에서 이것이 일어나지 않도록 어떻게 보장 할 수 있습니까?

경험상, 강화하지 않으려면, 예측할 수없고 예측할 수없는 행동을 피하는 것이 좋습니다. 불행하게도, 단일 IP에 대한 여러 PTR 레코드가 RFC에 관한 한 해당 범주에 속합니다.


2
당신은 어떻게 보장 할 수 있는 문제가 인터넷 주위에 다른 시스템의 "무한"숫자에서 발생되지 않는 이유는 무엇입니까? 당신의 대답은 훌륭하지만이 주장은 가치가 없습니다. 또한 클라이언트 버그는 "중요한"수의 영향을받는 경우를 제외하고는 IMHO와 관련이 없습니다.
Totor

2

PTR이 여러 개인 경우 PTR이 특정 선물 레코드와 일치하도록 어떻게 보장합니까?

메일 서버 상호 작용에서 특히 중요합니다. 대부분의 인바운드 수신 SMTP 서버는 전달이 역방향과 일치하는지 확인합니다.

PTR이 여러 개이며 어떤 PTR이 선택되어 있고 연결에서 제공 한 전달과 일치하는지 보장 할 방법이 없습니다.

완벽한 일치를 보장하는 가장 쉬운 방법은 선행 항목과 일치하는 하나의 PTR을 갖는 것입니다.

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