DNS sử dụng CNAME phá vỡ các bản ghi MX?


42

Chúng tôi đang cố gắng chuyển tất cả các trang web mà chúng tôi lưu trữ sang CNAMES vì chúng tôi đang lên kế hoạch chuyển máy chủ trong năm mới và muốn có khả năng chuyển một số khách hàng sang một máy chủ và các máy khách khác ở một nơi khác. Chúng tôi đã lên kế hoạch cung cấp cho khách hàng một CNAME duy nhất mà sau đó chúng tôi có thể thay đổi vào một ngày sau đó. (Chúng tôi có những lý do khác để làm điều này ngay bây giờ nhưng đó là lý do chính)

Chúng tôi đã thử nghiệm lý thuyết này với một vài lĩnh vực của chúng tôi và nó có vẻ ổn. Tuy nhiên, khi kiểm tra các bản ghi MX trên một tên miền, tôi đã lấy lại giá trị CNAME thay vì bản ghi MX.

Đáng buồn là tất cả các tên miền này được thực hiện thông qua bảng điều khiển, nhưng tôi đoán họ chỉ đang viết các tệp vùng cho tôi.

Tôi muốn tạo 2 CNAME cho công ty.com

company.com. IN CNAME client.dns.ourserver.com
www          IN CNAME client.dns.ourserver.com

Bản ghi MX là một cái gì đó như sau:

company.com  IN MX 10 mail.company.com

Chúng tôi có một bản ghi A cho mail.company.com

Đang làm:

host -t mx company.com

Trả về giá trị CNAME chứ không phải bản ghi mx.

Đây có phải là hành vi dự kiến?

Tôi đã quản lý để có được cấu hình trên hoạt động với bảng điều khiển 123-reg.co.uk, nhưng không chắc đó có phải là may mắn hơn bất cứ điều gì không.


Đây là một câu hỏi phổ biến và đã được hỏi nhiều lần trước đây. Xem liên kết này để biết ví dụ: serverfault.com/questions/18000/ từ
Russell Heilling

Tôi đã dành một chút thời gian để tìm kiếm một câu trả lời nhưng không thể biết liệu tôi có đang làm điều gì đó khác đi không. Đặc biệt là nó đang hoạt động tốt với một nhà cung cấp tên miền. Tôi có câu trả lời của tôi rất tuyệt và hy vọng nó sẽ có ích với ai đó.
johnwards

Câu trả lời:


54

Đây là một lỗi phổ biến. Bạn không thể sử dụng CNAME RR cho tên miền gốc của mình (ví dụ: company.com) xác định các bản ghi tài nguyên bổ sung cho cùng một vùng.

Xem tại sao tôi không thể tạo bản ghi CNAME cho bản ghi gốc? RFC1034 phần 3.6.2 để biết chi tiết:

Nếu một CNAME RR có mặt tại một nút, thì không có dữ liệu nào khác; điều này đảm bảo rằng dữ liệu cho một tên chính tắc và bí danh của nó không thể khác nhau.


RFC2181 Mục 10.1 cũng có liên quan trong đó củng cố những điều trên.
Håkan Lindqvist

còn được gọi là tên miền apex
Alex78191

5

RFC2181 phần 10.3 nói rằng bạn không thể trỏ bản ghi MX của mình vào CNAME:

Tên miền được sử dụng làm giá trị ... của bản ghi tài nguyên MX không được là bí danh.


2
Đó thực sự không phải là kịch bản mà câu hỏi là về?
Håkan Lindqvist

2

Tôi mới chuyển đến Heroku sử dụng CNAME thay vì bản ghi A và những gì tôi phải làm là thay vì tạo một CNAME với my_domain.com chỉ vào heroku, tôi đã thực hiện CNAME với www.my_domain.com chỉ vào heroku, vì vậy trần / tên miền gốc không được chuyển tiếp và các bản ghi MX của tôi vẫn hoạt động. Sau đó, tôi đã thêm một con trỏ để chuyển hướng my_domain.com đến www.my_domain.com. Nó dường như làm việc tuyệt vời. Trong nhà cung cấp tên miền của tôi, con trỏ được tạo bằng cách sử dụng cài đặt 'con trỏ' mà tôi đặt thành 'tiêu chuẩn' 'URL' và 'www.my_domain.com'


Công việc vững chắc! Cảm ơn đã chia sẻ điều này!
duhaime

0

Tôi nhận ra rằng hai cái này có thể tách rời hoàn toàn

mydomain.com. -  A Record  - 01.0.0.1
mydomain.com - CNAME - www.cname.eg.com

Trừ khi bạn đang sử dụng máy chủ của mình làm máy chủ thư, nó sẽ không thực sự ảnh hưởng đến bất cứ điều gì. Thư sẽ tìm bản ghi MX mydomain.com. Nó sẽ chỉ bị ảnh hưởng nếu như thế này

mydomain.com - MX - mail.mydomain.com

nhưng nếu nó như thế này (có nghĩa là bạn đang sử dụng một máy chủ thư riêng) thì nó sẽ không bị ảnh hưởng

mydomain.com - MX - mail.mycustommailserver.com

Bạn không thể sử dụng IP cho Máy chủ thư.


-1

Tôi đã thấy rằng MỘT SỐ nhà cung cấp MX song song với nhà cung cấp SOME DNS sẽ thực sự hoạt động cùng với một CNAME trần, nếu bạn chỉ đặt hàng bản ghi MX TRÊN CNAME theo thứ tự từ trên xuống.

Nó đang hoạt động trên công ty đăng ký Name.com với bản ghi Office 365 MX và bản ghi CNAME trần chỉ đạo HTTP đến một tên miền khác. Khi kiểm tra các truy vấn MX, tôi nhận thấy kết quả CNAME của mình trở lại trước tiên tương ứng với thứ tự các mục nhập DNS của tôi, vì vậy tôi đã hiểu tại sao không thử đặt hàng MX trước và xem điều đó có làm nhà cung cấp MX hài lòng không. Thật ngạc nhiên khi xác minh Office 365 MX sau đó được thông qua và tôi có thể xác nhận email gửi đến và gửi đi thực sự đang trôi chảy. Và sau khi thử nghiệm một số máy khách web, HTTP cũng thực sự giải quyết một cách mong muốn đến máy chủ đích CNAME được chỉ định.

Trống rỗng - Điều này rõ ràng là đi ngược lại với tiêu chuẩn và do đó có lẽ không nên được xem xét cho bất kỳ điều gì quan trọng. Tôi cho rằng thứ tự hồ sơ không nằm trong thông số kỹ thuật và do đó không thể chính thức dựa vào ... tức là có thể thay đổi ngay sau khi bạn quên vụ hack này.

Mẹo - Trang miễn phí MX Toolbox rất tiện để kiểm tra kết quả của việc thử các cài đặt DNS khác nhau.

Shaming cắm cho bài tương ứng của tôi .


2
Là hành vi không có giấy tờ, đây chắc chắn không phải là điều tôi muốn tính đến.
ceejayoz

2
hành vi này chỉ có thể được coi là một lỗi, một máy chủ tên bộ đệm có thể lưu trữ phản hồi CNAME và các MDA sẽ không bao giờ nhìn thấy các công cụ ghi MX.ietf.org/html/rfc5321#section-5.1
Jasen

-3

Bạn có thể sử dụng CNAME trên thư mục gốc của tên miền, tuy nhiên, các bản ghi MX đó cũng phải được định cấu hình trên bản ghi máy chủ, vì vậy nếu bạn có mx1.mail.com được định cấu hình trên vùng cho yourdomain.com và gốc của tên miền của bạn. com là CNAME cho thisrecord.cname.com, bạn cũng phải đảm bảo rằng mx1.mail.com được cấu hình trên máy chủ CNAME đó; nếu không, tất cả thư sẽ bị mất!


4
Vấn đề là, theo RFC1034, "nếu CNAME RR có mặt tại một nút, thì không có dữ liệu nào khác" - vì gốc cần phải có bản ghi NS (dù sao cũng hữu ích), sẽ luôn có dữ liệu khác , vi phạm phần này của RFC.
Doktor J

Theo tôi, câu trả lời là chính xác, ngoại trừ bản ghi MX nên được thay thế trên máy chủ CNAME (không phải).
Alexander Taubenkorb
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.