← RFC Reference

RFC 1035 – Tên Miền: Triển Khai và Thông Số Kỹ Thuật

Internet Standard DNS & Mail Routing Published March 2026
ELI5: Khi bạn gửi một lá thư, bạn cần biết bưu điện nào xử lý địa chỉ của người nhận. DNS là danh bạ điện thoại trả lời câu hỏi đó cho email. Bạn tra cứu tên miền và DNS cho bạn biết những máy chủ thư nào chấp nhận email cho nó (bản ghi MX), địa chỉ IP của chúng là gì (bản ghi A/AAAA), và những chính sách nào áp dụng (bản ghi TXT cho SPF, DKIM, DMARC). Nếu không có DNS, không có cách nào để gửi email.

Tại sao RFC này tồn tại

RFC 1035, được công bố năm 1987 cùng với RFC 1034, xác định các chi tiết triển khai của Hệ thống Tên Miền. Mặc dù DNS là cơ sở hạ tầng đa mục đích, nó lại cực kỳ quan trọng đối với email. Mỗi lần gửi email bắt đầu bằng một truy vấn DNS — máy chủ gửi phải khám phá máy chủ nào chấp nhận thư cho miền của người nhận.

RFC 1035 xác định các loại bản ghi, định dạng truy vấn và cấu trúc phản hồi giúp điều này trở thành có thể. Đối với email, bốn loại bản ghi quan trọng nhất: MX (định tuyến trao đổi thư), A (địa chỉ IPv4), AAAA (địa chỉ IPv6, được xác định sau trong RFC 3596) và TXT (bản ghi văn bản được sử dụng cho SPF, khóa DKIM, chính sách DMARC và hơn thế nữa).

Nếu không có RFC 1035, sẽ không có cách tiêu chuẩn để ánh xạ tên miền đến những máy chủ xử lý thư của nó. Mọi cơ chế xác thực và định tuyến trong email hiện đại đều phụ thuộc vào nó.

Cách thức hoạt động

Khi một MTA gửi cần gửi tin nhắn đến user@example.com, nó tuân theo một chuỗi truy vấn DNS cụ thể:

  1. Truy vấn bản ghi MX cho example.com. Phản hồi chứa một hoặc nhiều bộ trao đổi thư, mỗi bộ có giá trị ưu tiên (thấp hơn = ưa thích).
  2. Sắp xếp theo ưu tiên. Nếu nhiều bản ghi MX chia sẻ cùng ưu tiên, người gửi sẽ chọn ngẫu nhiên giữa chúng để cân bằng tải.
  3. Phân giải tên máy chủ MX thành địa chỉ IP bằng cách sử dụng truy vấn A (IPv4) hoặc AAAA (IPv6).
  4. Kết nối đến máy chủ thư tại địa chỉ IP được phân giải trên cổng 25 và bắt đầu phiên SMTP.
  5. Nếu MX ưa thích không thể truy cập được, hãy thử MX ưu tiên thấp hơn tiếp theo, và cứ thế tiếp tục.
  6. Nếu không có bản ghi MX, quay lại bản ghi A/AAAA cho chính miền đó (theo RFC 5321).

Chi tiết kỹ thuật chính

Bản ghi MX — Định tuyến thư

Bản ghi MX là nền tảng của định tuyến email. Nó ánh xạ một miền đến tên máy chủ của các máy chủ thư của nó, với giá trị ưu tiên xác định thứ tự chúng sẽ được thử:

example.com. IN MX 10 mx1.example.com. example.com. IN MX 20 mx2.example.com. example.com. IN MX 30 mx-backup.example.com.

Mục tiêu MX phải là tên máy chủ, không bao giờ là địa chỉ IP. MTA gửi sau đó phân giải tên máy chủ đó thành IP qua truy vấn A/AAAA. Bản ghi MX chỉ đến CNAME về mặt kỹ thuật bị cấm theo đặc tả, mặc dù một số bộ phân giải chấp nhận nó.

Bản ghi A và AAAA — Phân giải IP

Khi biết tên máy chủ MX, bản ghi A cung cấp địa chỉ IPv4 và bản ghi AAAA cung cấp địa chỉ IPv6:

mx1.example.com. IN A 198.51.100.25 mx1.example.com. IN AAAA 2001:db8::25

Nếu tên máy chủ MX phân giải thành cả bản ghi A và AAAA, MTA gửi chọn dựa trên cấu hình của nó và kết nối. Hầu hết các MTA hiện đại ưa thích IPv6 khi có sẵn, quay lại IPv4.

Bản ghi TXT — Xác thực email

Bản ghi TXT ban đầu là một cơ chế chung để đính kèm dữ liệu văn bản vào tên miền. Xác thực email đã áp dụng chúng rộng rãi:

# SPF — máy chủ nào có thể gửi thư cho miền này example.com. IN TXT "v=spf1 include:mailertogo.com ~all" # Khóa công khai DKIM — được sử dụng để xác minh chữ ký tin nhắn selector._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIGf..." # Chính sách DMARC — phải làm gì với thư không vượt qua xác thực _dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com"

Bản ghi TXT bị giới hạn 255 byte trên mỗi chuỗi, nhưng một bản ghi duy nhất có thể chứa nhiều chuỗi được nối. Bản ghi SPF vượt quá 255 byte phải được chia tách theo cách này.

MX Null — RFC 7505

Một miền không chấp nhận email có thể xuất bản bản ghi Null MX — một MX có ưu tiên 0 chỉ đến "." (gốc). Điều này cho máy chủ gửi biết không nên cố gắng gửi, tránh trì hoãn và lỗi trả lại:

no-reply.example.com. IN MX 0 .

TTL và Lưu vào bộ nhớ đệm

Mỗi bản ghi DNS có một TTL (thời gian sống) kiểm soát bộ phân giải lưu vào bộ nhớ đệm kết quả trong bao lâu. Đối với bản ghi MX, các TTL điển hình dao động từ 300 đến 3600 giây. TTL thấp hơn cho phép chuyển đổi dự phòng nhanh hơn nhưng tăng khối lượng truy vấn DNS. Trong quá trình di chuyển, giảm TTL trước đó để bản ghi được lưu vào bộ nhớ đệm hết hạn trước khi thay đổi có hiệu lực.

Ví dụ truy vấn DNS

Chuỗi truy vấn DNS hoàn chỉnh để gửi đến user@example.com:

# Bước 1: Truy vấn bản ghi MX $ dig example.com MX +short 10 mx1.example.com. 20 mx2.example.com. # Bước 2: Phân giải tên máy chủ MX ưa thích $ dig mx1.example.com A +short 198.51.100.25 $ dig mx1.example.com AAAA +short 2001:db8::25 # Bước 3: Kiểm tra SPF cho miền gửi $ dig example.com TXT +short "v=spf1 include:mailertogo.com ~all" # Bước 4: Kiểm tra chính sách DMARC $ dig _dmarc.example.com TXT +short "v=DMARC1; p=reject; rua=mailto:dmarc@example.com"

Lỗi thường gặp

Tác động khả năng gửi

Related RFCs