소개
이 문서에서는 CES 호스팅 고객을 위해 Cisco에서 권장하는 SPF 레코드의 작동 방식을 설명합니다.
요구 사항
- DNS 작동 방식에 대한 기본 이해
SPF 매크로의 중요성
Cisco에서 권장하는 레코드는 RFC7208 섹션 7에 정의된 SPF 매크로를 사용합니다. 이 경우 매크로는 CES 어플라이언스가 SPF 확인을 통과하도록 허용하는 데 필요한 DNS 조회의 양을 줄이기 위해 사용됩니다. 이는 SPF가 RFC7208 Section 4.6.4에 따라 SPF 확인당 DNS 조회의 양을 10으로 제한하기 때문에 중요합니다. 10개 이상의 DNS 조회가 필요한 경우 SPF 확인 결과는 permerror가 됩니다. 이는 문제가 되지 않을 수 있지만 호스팅된 ESA가 더 많이 프로비저닝될 경우 더 많은 DNS 조회가 필요합니다.
각 호스트된 ESA의 IP 주소를 SPF 레코드에 추가할 수 있습니다. 그러면 SPF 확인 중에 추가 DNS 조회가 필요하지 않습니다. 그러나 새로운 ESA가 프로비저닝되거나 기존 ESA의 IP 주소가 변경될 때마다 SPF 레코드를 변경해야 한다는 단점이 있습니다. Cisco에서 권장하는 SPF 레코드는 레코드를 추가한 후 관리하지 않아도 됩니다.
SPF 레코드 설명
다음은 SPF 레코드의 예입니다.
$ dig acme.com txt +short
"v=spf1 exists:%{i}.spf.acme.iphmx.com ~all"
참고: 이 SPF 레코드의 "acme" 부분은 할당 이름으로 간주됩니다. CES 호스팅 클러스터에는 고유한 할당 이름이 있으며 이 SPF 레코드를 DNS에 추가할 경우 "acme" 대신 사용해야 합니다.
이 SPF 레코드에서는 "%{i}" 매크로가 사용됩니다. 이 매크로는 SPF 확인이 발생할 때 연결 호스트의 IP 주소로 대체되는 변수로 사용됩니다. 예를 들어 192.168.0.1이 전송 호스트인 경우 호스트 이름 "%{i}.spf.acme.iphmx.com"은(는) "192.168.0.1.spf.acme.iphmx.com"으로 확장됩니다.
"exists" 메커니즘은 RFC7208 Section-5.7에서 정의되며 호스트 이름 "%{i}.spf.acme.iphmx.com"에 DNS의 A 레코드가 있는 경우 일치합니다. 예를 들어 192.168.0.1이 다시 전송 호스트라고 가정해 보겠습니다. 호스트 이름 "%{i}.spf.acme.iphmx.com"이 "192.168.0.1.spf.acme.iphmx.com"으로 확장되고 확인 호스트가 다음 DNS 조회를 수행합니다.
$ dig 192.168.0.1.spf.acme.iphmx.com a +short
127.0.0.2
참고: iphmx.com 도메인은 Cisco에서 관리합니다. 따라서 위의 레코드처럼 해당 도메인에 대한 DNS 레코드를 추가/제거/수정할 수 있는 것은 Cisco뿐입니다. 따라서 새 ESA가 CES 클러스터에 프로비저닝될 때마다 이러한 레코드를 추가할 필요가 없습니다. 이러한 기록이 추가되고 정확한지 확인하는 것은 Cisco의 책임입니다.
IP 주소 127.0.0.2가 반환되었으므로 exists 메커니즘이 일치하고 SPF 확인 결과가 전달됩니다.
전송 호스트가 10.0.0.1이라고 가정해 보겠습니다. 호스트 이름 "%{i}.spf.acme.iphmx.com"이 "10.0.0.1.spf.acme.iphmx.com"으로 확장되고 확인 호스트가 다음 DNS 조회를 수행합니다.
$ dig 10.0.0.1.spf.acme.iphmx.com a +short
$
결과가 반환되지 않았으므로 exists 메커니즘이 일치하지 않으며 SPF 확인 결과는 softfail이 됩니다.
추가 정보
SPF 기술은 도메인에 대한 메일 릴레이를 승인하려는 호스트의 양에 따라 복잡할 수 있습니다. CES 호스팅 어플라이언스가 도메인에 대한 메일을 릴레이할 권한이 있는 유일한 호스트인 경우 위 레코드가 효과적입니다. 그렇지 않으면 필요한 모든 호스트에 권한을 부여할 수 있도록 Cisco에서 제공하는 SPF 레코드를 수정해야 합니다.
기존 SPF 레코드가 있는 경우 "exists:%{i}.spf.acme.iphmx.com"을 해당 SPF 레코드에 추가할 수 있습니다.