Check-Host.cc

Global SPF Validation Checker

Sender Policy Framework (SPF) là một giao thức xác thực email trọng yếu dùng để ngăn chặn hành vi giả mạo (spoofing) domain bằng cách publish một cryptographic whitelist gồm các địa chỉ IP được phép gửi thư. Mặc dù bản thân giao thức SPF là cực kỳ quan trọng đối với tỷ lệ gửi thành công (deliverability) thời nay, loại bản ghi DNS dành riêng cho SPF (Type 99) lại có một lịch sử vô cùng hỗn loạn và đã chính thức bị loại bỏ (obsolete).

Sự thăng trầm của Record Type 99

Khi giao thức SPF lần đầu tiên được khái niệm hóa (RFC 4408), IETF đã thiết kế một loại DNS resource record đặc thù (Type 99) nhằm mục đích tách biệt rạch ròi các SPF payload khỏi dữ liệu TXT thông thường. Lý thuyết khi đó là việc duy trì một loại bản ghi chuyên biệt sẽ giúp tăng tốc độ parse của resolver. Tuy nhiên, đợt rollout này là một thất bại nặng nề. Các DNS server đời cũ, firewall, và phần cứng Load Balancer không nhận diện được cú pháp Type 99 mới này và thường xuyên drop các packet, dẫn đến gián đoạn email trên diện rộng. Nhận thấy sự không tương thích phần cứng này, IETF đã publish RFC 7208, qua đó chính thức deprecate bản ghi Type 99. Ngày nay, tất cả các cấu hình SPF bắt buộc phải được publish dưới dạng bản ghi TXT tiêu chuẩn. Nếu một admin cố tình tiếp tục deploy bản ghi Type 99 SPF cũ, các nền tảng hiện đại như Microsoft Exchange hay Google Workspace sẽ hoàn toàn bỏ qua nó, gây ra lỗi DMARC ngay lập tức.

Giới hạn cứng 10-Lookup

Điểm dễ xảy ra lỗi kỹ thuật nhất đối với các developer khi quản lý SPF chính là ngưỡng giới hạn nghiêm ngặt 10-lookup. Bởi vì bản ghi SPF cho phép admin lồng (nest) các policy của domain khác vào bằng directive include: (ví dụ: include:_spf.salesforce.com), mail server nhận bắt buộc phải thực hiện một recursive DNS query để lấy các IP từ nhà cung cấp bên thứ ba đó. Để bảo vệ các MTA khỏi các vòng lặp routing vô tận (infinite routing loops) và các cuộc tấn công DDoS amplification nhắm mục tiêu, giao thức thiết lập hard-cap quá trình thực thi ở mức tối đa 10 lượt recursive DNS lookup. Nếu một công ty chain quá nhiều nhà cung cấp SaaS với nhau và chạm mốc 11 lookup, quá trình thực thi sẽ bị dừng lại, trả về lỗi SPF "PermError". Việc này sẽ lập tức khiến cho các email outbound hợp lệ bị hard-bounce hoặc rớt vào mục cách ly (quarantine).

Flattening và Diagnostics

Để bypass các giới hạn lookup này, các network engineer sử dụng những công cụ "SPF Flattening". Những script này sẽ chạy theo giờ, mở rộng toàn bộ directive include: qua API, loại bỏ các hostname, và compile các block IPv4/IPv6 thô thành một bản ghi TXT dạng phẳng (flat) khổng lồ. Việc sử dụng global diagnostic checker đảm bảo cú pháp của bạn là hợp lệ, các thẻ include lồng nhau không âm thầm vượt ngưỡng giới hạn của DNS, và policy của bạn được kết thúc rõ ràng bằng cờ -all (fail) hoặc ~all (softfail) nhằm từ chối các payload bị giả mạo.