cNAME là gì? Giải thích chi tiết A-Z | InterData
Bản ghi CNAME (Canonical Name record) là một loại bản ghi tài nguyên trong Hệ thống Tên Miền (DNS) được sử dụng để tạo một bí danh (alias) cho một tên miền khác. Nói cách khác, nó cho phép bạn trỏ một tên miền (hoặc tên máy chủ) đến một tên miền chuẩn (canonical name) khác, thay vì một địa chỉ IP trực tiếp.
1. Bản ghi CNAME là gì?
CNAME là viết tắt của "Canonical Name" (Tên chuẩn). Một bản ghi CNAME hoạt động như một con trỏ, nói rằng "tên miền này thực sự là một bí danh cho tên miền khác". Khi một máy chủ DNS nhận được yêu cầu cho một tên miền có bản ghi CNAME, nó sẽ tìm kiếm tên miền chuẩn được trỏ đến và trả về thông tin DNS của tên miền chuẩn đó (thường là bản ghi A hoặc AAAA).
Ví dụ: Nếu bạn có một tên miền blog.example.com và bạn muốn nó trỏ đến example.wordpress.com, bạn sẽ tạo một bản ghi CNAME cho blog.example.com trỏ đến example.wordpress.com. Khi ai đó truy cập blog.example.com, DNS sẽ tra cứu example.wordpress.com và trả về địa chỉ IP của máy chủ WordPress.
2. Mục đích của bản ghi CNAME
Mục đích chính của bản ghi CNAME là đơn giản hóa việc quản lý DNS và cung cấp sự linh hoạt. Thay vì phải cập nhật nhiều bản ghi A (trỏ đến địa chỉ IP) khi địa chỉ IP của máy chủ thay đổi, bạn chỉ cần cập nhật địa chỉ IP của tên miền chuẩn. Tất cả các tên miền bí danh trỏ đến tên miền chuẩn đó sẽ tự động được cập nhật.
3. Cách thức hoạt động
Khi một trình duyệt hoặc ứng dụng cần phân giải một tên miền:
Nó gửi yêu cầu đến máy chủ DNS cục bộ.
Máy chủ DNS cục bộ tra cứu tên miền.
Nếu tên miền có bản ghi CNAME, máy chủ DNS sẽ nhận được thông tin rằng tên miền đó là bí danh cho một tên miền khác (tên miền chuẩn).
Máy chủ DNS sau đó sẽ thực hiện một tra cứu mới cho tên miền chuẩn đó.
Khi địa chỉ IP của tên miền chuẩn được tìm thấy (thông qua bản ghi A hoặc AAAA), nó sẽ được trả về cho trình duyệt/ứng dụng ban đầu.
Quá trình này được gọi là "chuỗi CNAME" hoặc "đệ quy CNAME".
4. Cấu trúc của một bản ghi CNAME
Một bản ghi CNAME cơ bản bao gồm các thành phần sau:
Host/Name/Alias: Tên miền bí danh (ví dụ: www, blog, mail). Đây là tên mà bạn muốn trỏ đến một tên miền khác.
Type: Luôn là CNAME.
Value/Target/Canonical Name: Tên miền chuẩn mà bí danh này trỏ đến (ví dụ: example.com, gh-pages.github.io).
Ví dụ trong bảng DNS:
Host/Name
Type
Value/Target
TTL
www
CNAME
example.com.
3600
blog
CNAME
blog-host.com.
3600
Lưu ý: Dấu chấm cuối cùng (.) sau example.com. hoặc blog-host.com. chỉ ra rằng đó là một tên miền đủ điều kiện (Fully Qualified Domain Name - FQDN). Tùy thuộc vào giao diện quản lý DNS của bạn, bạn có thể cần hoặc không cần thêm dấu chấm này.
5. Ưu điểm của bản ghi CNAME
Dễ quản lý: Khi địa chỉ IP của máy chủ thay đổi, bạn chỉ cần cập nhật bản ghi A của tên miền chuẩn. Tất cả các CNAME trỏ đến nó sẽ tự động được cập nhật.
Linh hoạt: Cho phép nhiều tên miền (bí danh) trỏ đến cùng một tài nguyên, hữu ích cho các dịch vụ như CDN, blog hosting, hoặc các dịch vụ bên thứ ba.
Tổ chức rõ ràng: Giúp tổ chức cấu trúc tên miền của bạn một cách hợp lý.
6. Nhược điểm và hạn chế của bản ghi CNAME
Không thể đặt CNAME cho tên miền gốc (Root Domain/Apex Domain): Đây là hạn chế quan trọng nhất. Bạn không thể tạo một bản ghi CNAME cho tên miền gốc của mình (ví dụ: example.com). Tên miền gốc phải luôn có bản ghi A hoặc AAAA trỏ trực tiếp đến địa chỉ IP. Lý do là vì tên miền gốc cũng chứa các bản ghi quan trọng khác như SOA (Start of Authority) và NS (Name Server), và việc sử dụng CNAME sẽ tạo ra xung đột.
Giải pháp thay thế: Một số nhà cung cấp DNS cung cấp các bản ghi "ANAME" hoặc "ALIAS" (không phải là bản ghi DNS chuẩn mà là tính năng của nhà cung cấp) để giải quyết vấn đề này, cho phép bạn trỏ tên miền gốc đến một tên miền khác giống như CNAME, nhưng chúng sẽ tự động phân giải thành bản ghi A ở phía máy chủ DNS.
Không thể có các bản ghi khác cùng tồn tại: Một tên miền có bản ghi CNAME không thể có bất kỳ bản ghi tài nguyên nào khác (ngoại trừ RRSIG và NSEC cho DNSSEC). Điều này có nghĩa là nếu www.example.com là một CNAME, nó không thể có bản ghi MX (Mail Exchange) hoặc TXT (Text) riêng.
Tăng độ trễ tra cứu: Vì CNAME yêu cầu một tra cứu DNS bổ sung (đệ quy), nó có thể làm tăng nhẹ độ trễ trong quá trình phân giải tên miền.
7. Các trường hợp sử dụng phổ biến của CNAME
Trỏ www đến tên miền gốc: Phổ biến nhất là tạo bản ghi CNAME cho www.example.com trỏ đến example.com.
Sử dụng dịch vụ bên thứ ba: Khi bạn sử dụng các dịch vụ như GitHub Pages, Heroku, Shopify, hoặc các nền tảng blog (WordPress.com, Blogger), họ thường yêu cầu bạn tạo bản ghi CNAME để trỏ tên miền phụ của bạn đến tên miền của họ.
CDN (Content Delivery Network): Các CDN sử dụng CNAME để định tuyến lưu lượng truy cập của bạn đến máy chủ gần nhất hoặc tối ưu nhất.
Email Hosting: Mặc dù bản ghi MX được sử dụng cho email, nhưng đôi khi các nhà cung cấp dịch vụ email có thể yêu cầu CNAME cho các bản ghi xác thực email như DKIM hoặc SPF (mặc dù TXT phổ biến hơn).
Tạo bí danh cho các dịch vụ khác nhau: Ví dụ: ftp.example.com trỏ đến ftp-server.example.com, hoặc dev.example.com trỏ đến staging.example.com.
8. So sánh CNAME với A Record
Tính năng
A Record (Address Record)
CNAME Record (Canonical Name Record)
Mục đích
Trỏ một tên miền đến một địa chỉ IPv4 trực tiếp.
Tạo bí danh cho một tên miền khác.
Giá trị
Địa chỉ IP (ví dụ: 192.0.2.1).
Một tên miền khác (ví dụ: example.com).
Tên miền gốc
Có thể sử dụng cho tên miền gốc (ví dụ: example.com).
Không thể sử dụng cho tên miền gốc.
Bản ghi khác
Có thể có các bản ghi khác cùng tồn tại (MX, TXT, v.v.).
Không thể có các bản ghi khác cùng tồn tại trên cùng một tên miền bí danh.
Độ linh hoạt
Kém linh hoạt hơn khi IP thay đổi.
Rất linh hoạt khi IP của tên miền chuẩn thay đổi.
Kết luận
Bản ghi CNAME là một công cụ mạnh mẽ và cần thiết trong quản lý DNS, giúp đơn giản hóa cấu hình và tăng cường tính linh hoạt cho các tên miền. Tuy nhiên, việc hiểu rõ các hạn chế của nó, đặc biệt là việc không thể sử dụng cho tên miền gốc, là rất quan trọng để tránh các vấn đề về cấu hình DNS.
Nguồn tham khảo: https://interdata.vn/blog/ban-ghi-cname-la-gi/















