DNS - Nhiều bản ghi A hoặc bản ghi 1 A và nhiều CNAME?


29

Hãy nói rằng tôi có một máy chủ web, được gọi là 'www'. www.example.com phân giải thành địa chỉ IP của máy đó. Sau đó, tôi muốn tạo một số máy chủ ảo và bản ghi DNS cho chúng, như webmail.example.com.

Đối với 'webmail', tôi nên đặt một bản ghi A có địa chỉ IP của www, hay tôi nên làm một CNAME cho www?

Cái gì sạch hơn?, Mạnh mẽ hơn? tốt hơn?

Câu trả lời:


26

Có hai quan điểm khác nhau về câu hỏi này và đó là một quan điểm cuối cùng sẽ được tranh luận mãi mãi. Tôi sẽ không đưa ra ý kiến ​​của mình (vì tôi tự xé mình), nhưng các lý lẽ chung mỗi cách thường là:

  • Bạn nên xác định các bản ghi A cho các máy vật lý của mình và sau đó các dịch vụ CNAME trên các máy đó. Điều này làm cho nó khá rõ ràng về những gì là những gì, và trong trường hợp bạn cần đánh số lại, không có nhiều hồ sơ để thay đổi - chỉ có các bản ghi máy. Mặt khác, nó sẽ tăng tải tra cứu DNS của bạn lên một chút và các IP "phụ trợ" (nghĩ rằng SSL vhost) không phù hợp với mô hình này.

  • Nghĩa đen của "tên chính tắc" (CNAME) là xác định các bí danh nghiêm ngặt cùng tên (nghĩ mailsmtp) và nếu bạn có nhiều dịch vụ chạy trên cùng một máy thì tất cả đều có bản ghi A, vì nó giảm tải cho DNS và một số dịch vụ (bản ghi NS và, ở mức độ thấp hơn, bản ghi MX) thực sự không ấn tượng với việc xử lý CNAME, vì vậy nếu bạn phải xử lý các dịch vụ đó theo cách khác, chúng tôi cũng có thể làm điều đó cho mọi thứ.


12
Bạn thực sự có thể làm hỏng / quá tải nghiêm trọng máy chủ DNS của mình bằng cách trỏ MX tới CNAME. Tôi không thể bận tâm giải thích lý do tại sao ngay bây giờ nhưng các máy chủ thư cũ hơn (có rất nhiều trong số họ ở ngoài đó) sẽ thấy một MX chỉ vào một CNAME và sẽ không biết làm thế nào để đối phó với nó và sẽ tiếp tục tìm kiếm và gây căng thẳng lớn trên DNS của bạn và cuối cùng, email không bao giờ nhận được bất cứ nơi nào. ĐỪNG ĐIỂM MX ĐẾN CNAME. KHÔNG BAO GIỜ.
Mark Henderson

3
Tôi đồng ý với Farseeker, không trỏ MX tới CNAME ngay cả khi nó có thể hoạt động. Hãy xem wikipedia (tìm kiếm Bản ghi MX) hoặc RFC 2181 (phần 10.3) nếu bạn muốn biết chi tiết đầy đủ.
Benoit

+1 để womble. Câu trả lời đó cũng thể hiện quan điểm của tôi. +1 cho Farseeker. Bản ghi MX là ngoại lệ. Đối với tài liệu tham khảo của Beoot, Wikipedia không bao giờ nên được sử dụng làm tài liệu tham khảo kỹ thuật, vì có quá nhiều lỗi và không chính xác. Mặc dù hầu hết mọi người đều thích trích dẫn RFC, chúng tôi cần phải nhớ rằng chúng không phải là tiêu chuẩn, chỉ đơn thuần là tiền thân cho một đề xuất cho một tiêu chuẩn.
John Gardeniers

Xin lỗi vì cách viết sai tên của Benoit. Đã đến lúc tôi ở trên giường.
John Gardeniers

Tôi luôn luôn sử dụng tên. Đồng nghiệp của tôi đã tiếp cận nhiều hồ sơ. Thêm một lý do cname tốt hơn: nó giúp bạn dễ dàng quyết định bản ghi nào nhận bản ghi ptr. Tôi đã kiếm được một cốc bia từ một đồng nghiệp thứ ba về điều này.
dmourati

12

Sử dụng CNAME giúp nhân đôi hiệu quả tra cứu trên máy chủ DNS. Khi một yêu cầu ánh xạ tới CNAME, sau đó nó cần tra cứu bản ghi A cho CNAME.

Điều đó nói rằng, có một lý do tồn tại của CNAME. Nó làm cho DNS của bạn dễ quản lý hơn rất nhiều và trừ khi bạn thực hiện hàng chục nghìn độ phân giải mỗi ngày, điều đó sẽ không thành vấn đề ...


12

Một số dựa trên ở đây cho thấy rằng CNAME tăng tải DNS. Điều này làm tôi tò mò. Tôi đã kích hoạt wireshark, kiểm tra một yêu cầu cho một CNAME và ít nhất trong môi trường của chúng tôi, kết quả đã được trả về trong một bản ghi. Điều này mang đến cho câu cách ngôn của Knuth ở đây: "tối ưu hóa sớm là gốc rễ của mọi tội lỗi".

Tôi thích CNAME, nhưng chủ yếu là vì hiệu ứng tâm lý của họ. Họ khuyến khích mọi người (như tôi chẳng hạn) tách tên máy chủ khỏi tên dịch vụ.

Môi trường của chúng tôi có một số chứng chỉ SSL được gắn với tên máy chủ mờ (mà chúng tôi đã bỏ làm). CNAME hoạt động tốt hơn nhiều ở đây. Ở mọi nơi tôi đã làm việc di chuyển các dịch vụ trong đó tên máy chủ được liên kết chặt chẽ với dịch vụ là một vấn đề đau đầu. CNAME cho dòng tách biệt khái niệm rõ ràng.


Điều này cần nhiều upvote. Các bản ghi CNAME thường không tăng số lượng chuyến đi khứ hồi cần thiết, vì các kết quả được gói vào một phản hồi duy nhất.
Nic

4

Theo tôi, nếu các máy chủ ảo là www.someotherdomain.com, thì tôi sẽ coi chúng là một miền riêng biệt với tập hợp các bản ghi DNS riêng (làm cho sau này dễ dàng hơn nếu chúng cần được tách ra). Tuy nhiên, nếu chỉ là blog .example.com, thì tôi sẽ sử dụng CNAME.

Chỉ là sở thích cá nhân của tôi.



2

CNAME tăng tải trên hệ thống DNS, không phải trên máy tính cá nhân hoặc kết nối internet của bạn. Tôi nghĩ rằng một số người ở đây đã không tạo ra sự khác biệt khi họ trả lời.

Ví dụ, sử dụng bản ghi A cho các bản ghi lưu lượng truy cập cao (@ và www). Sử dụng CNAME cho các bản ghi thứ cấp sẽ luôn ánh xạ tới cùng một IP của bản ghi chính. Ví dụ: nếu bạn có tên miền "Member.site.com" sẽ luôn phân giải cùng một IP là "www.site.com", thì bạn có thể sử dụng CNAME tại đây để thuận tiện, nhưng nếu bạn có thể sử dụng bản ghi A , nó sẽ giải quyết nhanh hơn.


Cảm ơn bạn, tôi đã tìm thấy câu trả lời rõ ràng, nhưng nhận xét của bạn thậm chí còn dễ hiểu hơn :)
karni
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.