다른 SPF 항목을 포함하는 단일 도메인에 대해 여러 개의 TXT 레코드를 보유해도 괜찮습니까?


17

원격받는 사람 도메인이 SPF를 근거로 메일을 거부하고 있는데 보낸 사람이 SPF를 잘못 구성했기 때문이라고 생각합니다.

발굴을 실행하면 다음을 볼 수 있습니다.

[fooadm@box ~]# dig @8.8.8.8 -t TXT foosender.com

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> @8.8.8.8 -t TXT foosender.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30608
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;foosender.com.              IN      TXT

;; ANSWER SECTION:
foosender.com.       14039   IN      TXT     "v=spf1 include:spf.foo1.com -all"
foosender.com.       14039   IN      TXT     "v=spf1 include:_spf.bob.foo2.com -all"

;; Query time: 26 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Jan  7 09:45:38 2014
;; MSG SIZE  rcvd: 146

이것이 유효한 설정입니까? 두 가지 별도의 기록이 있다는 것은 이상합니다. 모든 것이 단일 레코드에 포함되어 있지 않아야합니까?

적절한 TXT 레코드는 다음과 같습니다.

v=spf1 include:spf.foo1.com include:_spf.bob.foo2.com -all

답변:


20

아뇨. 당신 말이 맞아요 RFC 4408, 섹션 4.5를 참조하십시오 .

  1. 정확히 "v = spf1"의 버전 섹션으로 시작하지 않는 레코드는 삭제됩니다. 버전 섹션은 SP 문자 또는 레코드 끝으로 종료됩니다. "v = spf10"버전 섹션의 레코드가 일치하지 않으므로 삭제해야합니다.

  2. SPF 유형의 레코드가 세트에 있으면 TXT 유형의 모든 레코드가 삭제됩니다.

    위의 단계 후에 정확히 하나의 레코드가 남아 있어야하며 평가를 진행할 수 있습니다. 두 개 이상의 레코드가 남아 있으면 check_host ()는 "PermError"결과와 함께 즉시 종료됩니다.

    일치하는 레코드가 반환되지 않으면 SPF 클라이언트는 도메인이 SPF 선언을하지 않는다고 가정해야합니다. SPF 처리는 반드시 중지하고
    "없음"을 반환 해야합니다 .


2
2014 년 4 월 현재, RFC 4408을 폐기하는 RFC 7208 이 있습니다. SPF 유형의 레코드는 TXT 유형을 선호하여 더 이상 사용되지 않습니다 SPF records MUST be published as a DNS TXT (type 16) Resource Record (RR) [RFC1035] only.( RFC 7208, 섹션 3.1 참조 ). 나는 이것을 바탕으로 새로운 답변을 시도 할 것입니다.
JHoffmann

4

이 SPF 설정이 유효하지 않습니다. 여러 개의 레코드가 발견되면 레코드 선택시 오류가 발생합니다. 레코드 선택에 대한 RFC 7208, 섹션 4.5 를 참조하십시오 .

결과 레코드 세트에 둘 이상의 레코드가 포함 된 경우 check_host ()는 "permerror"결과를 생성합니다.

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