RFC 7505 (Null MX)가 필요한 이유는 무엇입니까?


18

IETF RFC 7505 는 명시 적으로 이메일을받지 않아야하는 도메인 / 호스트에 대한 MX 레코드를 설명합니다. 이것은 도메인 이름 시스템 루트에서 MX를 가리켜 서 수행됩니다. 예를 들어

nomail.example.com. 86400 IN MX 0 "."

왜 이것이 필요한가요? 내 이해에는 TLD 아래의 도메인을 사용하여 명시 적 반박을 사용할 수 있습니다 invalid. 예를 들어

nomail.example.com. 86400 IN MX 0 "spam.invalid."
nomail.example.com. 86400 IN MX 10 "null.invalid."

RFC 2782 (DNS SRV)도 마찬가지로 'A Target of'. ' 이 서비스는이 도메인에서 서비스를 이용할 수 없다는 것을 의미합니다. " 그래서 내 질문은 다음과 같습니다.

invalid이미이 기능을 수행 할 때 "사용할 수 없음"을 의미하기 위해 DNS 루트를 사용해야하는 이유는 무엇 입니까?


2
그러나 그것은 명백한 반박이 아닙니다! 잘못된 데이터 일뿐입니다.
Michael Hampton

답변:


21

그게 당신이 사용해야하는 것이 아니기 때문입니다 .invalid. 마찬가지로 .example그것은 지역 테스트 및 문서를위한 것입니다.

또한 .invalid계속해서 사용 하면 추가 작업이 발생합니다. 추가 DNS 조회 및 메일 서버에서 대기 모드에서 다시 시도하기 위해 메일 서버에서 대기 중입니다.

"."형식을 사용하면 즉각적인 하드 오류가 발생합니다. MTA로 인해 배달 시도가 즉시 중지됩니다. 최소한 그것이 RFC 입문 방식입니다.


2
감사. 그러나 BCP : 32 / RFC 2606 섹션 2는 " '.invalid'는 유효하지 않은 도메인 이름의 온라인 구성에 사용하기위한 것이며 한 눈에 분명하지 않습니다." 2606은 ".invalid"가 로컬 테스트 전용임을 나타내지 않습니다. 그것은 유효하지 않은 도메인을위한 것입니다
Alpha Whisky

확인 왜 호스트 이름처럼 보이는 것이 "."에 비해 불리한 지 알 수 있습니다.
알파 위스키

1
@AlphaWhiskey 무언가를 "눈으로보고"결론을 도출 할 수있는 것은 인간 입니다. 컴퓨터에는 명확한 지시가 필요합니다.
Michael Hampton

3
공정하게 말해서,이 특정한 경우에 컴퓨터에게 명시적인 지시를 내리는 것은 어렵지 않습니다.
muhmuhten

@res 컴퓨터에 명시적인 지시를주지 않는 것이 훨씬 쉽습니다 .
musiKk

9

이 질문은 RFC7505가 유용한 무언가를 추가하는 이유에 대한 답을 찾기 위해 고려해야 할 몇 가지 다른 측면에 대해 전체적으로 다룹니다.


우선, 메일 전달 방법에 대한 RFC7505 사전 정의에는 주소 레코드가있는 이름에 대해 메일 전달 시도를하지 않아야 함을 명확하게 표시 할 방법이 없습니다.

에서 RFC7505 섹션 1 :

SMTP 클라이언트에는 도메인의 전자 메일을 수락하는 서버를 식별하기 위해 정해진 순서가 있습니다. [RFC5321]의 섹션 5에이 내용이 자세히 설명되어 있습니다. 본질적으로 SMTP 클라이언트는 먼저 DNS MX RR을 조회하고, 발견되지 않으면 DNS A 또는 AAAA RR을 조회합니다. 따라서 전자 메일 서비스 의미가있는 DNS 레코드 (다른 기본 임무가있는)를 오버로드합니다.

도메인에 MX 레코드가없는 경우 발신자는 도메인의 A 또는 AAAA 레코드에있는 주소의 호스트로 메일 배달을 시도합니다. A / AAAA 주소에 SMTP 리스너가없는 경우 보내는 메일 전송 에이전트 (MTA)가 포기하기 전에 일주일 동안 오랜 시간 동안 메시지 배달이 반복적으로 시도됩니다. 메일이 잘못 전송 된 경우 발신자에게 알림이 지연되고 발신자의 리소스가 소비됩니다.

이 문서는 도메인에서 배달 시도 방지 전용 SMTP 리스너를 만들지 않고도 도메인에 대한 모든 메일 배달 시도가 즉시 실패하게하는 null MX를 정의합니다.


그러면 RFC7505가이를 구현하는 방법에 대한 문제가 있습니다 ( IN MX 0 .).

에서 RFC7505 (3) :

  1. 널 MX를 지정하는 MX 자원 레코드

    도메인이 전자 메일을 수락하지 않음을 나타 내기 위해 기본 설정 번호 0과 마스터 파일에 "로 기록 된 길이가 0 인 RDATA 섹션이 포함 된 단일 MX RR ([RFC1035]의 3.3.9 섹션 참조)을 광고합니다. "을 교환 도메인으로 사용하여 도메인에 대한 메일 교환기가 없음을 나타냅니다. "."이후 유효한 호스트 이름이 아닌 경우 널 MX 레코드를 일반 MX 레코드와 혼동 할 수 없습니다. "."사용 의사 호스트 이름으로 사용 가능한 서비스가 없음을 의미하는 SRV RR [ RFC2782 ]에서 유사한 의미를 갖습니다.

    null MX를 알리는 도메인은 다른 MX RR을 알리지 않아야합니다.

(강조 추가)

여기에 언급 된 바와 같이, "널 MX"의 구현 세부 사항은 SRVRR 유형 으로부터 이미 확립 된 패턴에 기초한다 . SRVRR 유형 이 RR 유형의 일반화 된 버전이므로 이를 모방하는 것이 좋습니다 MX.

따라서 결정은 본질적으로 SRVRR 유형을 정의 할 때 이미 취해졌습니다 .


그렇다면 왜 사용하지 .invalid않습니까?

에서 RFC2606의 제 2 장 :

".invalid"는 유효하지 않은 도메인 이름의 온라인 구성에 사용하기위한 것으로 한눈에 알 수 없습니다.

여기서 볼 수 있듯이이 예약 된 TLD는 사람이 소비하기위한 것입니다. 소프트웨어에서 이것을 특별히 다루는 것을 정의하는 선례는 없습니다.

확실히 그것은 다른 방식으로 구현되었을 수 있지만 .유효한 호스트 이름이 아니므로 정상적인 사용을 방해하지 않는 최소한의 사용 방법을 사용하기로 결정했습니다 .


내가 알 .수있는 한 A 또는 AAAA 레코드가 루트에 게시 된 경우 기술적 인 이유 가 MX 레코드로 사용될 수 없었습니다. 내가 입력 telnet . 25하면 반드시 루트에서 A 및 AAAA 레코드를 찾습니다.
kasperd

1
@kasperd DNS 프로토콜은 반드시 그것을 나타낼 수 있지만, 난에 주소 기록을 가지고 생각하지 않는다 .또는 지정 (사전 RFC7505) .는 AS EXCHANGE가치 MX기록이 실제로 유효 할 것이다. (그것은 유효한 호스트 이름이 아닙니다.)
는 Håkan 고 Lindqvist

유효 여부-A 레코드가없는 도메인을 가리키는 MX 레코드에 직면했을 때 포기하기 전에 며칠 동안 배달을 다시 시도하는 구현을 쉽게 상상할 수 있습니다.
kasperd
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.