Chuyển tiếp tên miền gốc đến tên miền phụ www bằng bản ghi DNS


16

Tôi đã www.mydomain.comchỉ vào một trang web Azure.

www.mydomain.com --- CNAME --- mydomain.azurewebsites.net

Khi tôi đến thăm www.mydomain.com, mọi thứ hoạt động tốt. Điều này là tốt

Vấn đề là, mydomain.comkhông hoạt động. Azure chỉ cho phép tên miền phụ www.

Trong một số máy chủ tên, tôi sử dụng Bản ghi FWD để chuyển tiếp root đến www và điều này hoạt động tốt. Máy chủ tên hiện tại của tôi (zoneedit.com) không có Bản ghi FWD này.

Có Bản ghi DNS mà chúng ta có thể sử dụng để chuyển tiếp tên miền gốc sang tên miền phụ www không?


2
ZoneEdit có một "WebForward" sẽ làm điều này.
Michael Hampton

@MichaelHampton Hoàn hảo. Chúng tôi đã sử dụng@ | StealthForward | http://www.example.com
Shaun Luttin

Thật tuyệt. Nó cơ bản thực hiện những gì tôi đã mô tả (trỏ đến một IP thực, đó là một máy chủ web chỉ chuyển hướng với một chuỗi HTTP 300 đến www.domain.com).
DTK

Câu trả lời:


17

Thật không may, đây là một thiếu sót nổi tiếng của giao thức DNS. Không có loại bản ghi được xác định trong các tiêu chuẩn DNS sẽ cho phép bạn đặt bí danh đỉnh của một tên miền. Nhiều người cho rằng CNAMEhồ sơ có thể được sử dụng để thực hiện điều này nhưng có những lý do kỹ thuật tại sao chúng không thể .

Nhiều nhà cung cấp DNS triển khai các loại bản ghi DNS tùy chỉnh (đọc: giả) để thử và giải quyết thiếu sót này. Đằng sau, các bản ghi giả này thực hiện hành vi tùy chỉnh trong phần mềm của công ty đó bằng cách sử dụng kết hợp các Abản ghi tổng hợp và chuyển hướng máy chủ web để thực hiện mục tiêu mong muốn của bạn. FWDlà một trong số đó, giống như những WebForwardgì Michael hướng dẫn bạn trong các bình luận.


8

Tóm tắt: Tóm lại, bạn không thể có bản ghi bạn muốn và máy chủ DNS của bạn đang thực hiện đúng cách.

Giải thích: Việc vi phạm các tiêu chuẩn DNS là vi phạm CNAME (bản ghi bí danh / bản ghi chuyển tiếp) ở vùng đỉnh (tên trống ở phía trước của khu vực).

Lý do cho điều này là một bản ghi CNAME không thể có xung đột phần tên với bất kỳ bản ghi nào ngoại trừ bản ghi DNSSec. Trong một khu vực điển hình, một bản ghi CNAME ở đỉnh khu vực sẽ va chạm với ít nhất là các bản ghi SOA và NS (và có thể là một số bản ghi khác). Mặc dù một số máy chủ DNS sẽ cho phép điều này, nhưng đó là một điều xấu và có thể gây khó chẩn đoán lỗi (chưa kể sẽ không hoạt động nếu bạn di chuyển lưu trữ của khu vực sang máy chủ DNS tuân thủ tiêu chuẩn, chẳng hạn như mọi thứ dựa trên BIND) .

Hoặc có bản ghi A ở vùng đỉnh (chúng có thể là một máy chủ web đơn giản chỉ cần ném HTTP 302 sang www). Nếu bạn có thể nhận được số IP tĩnh cho các phiên bản máy chủ Azure của mình, hãy đặt một bản ghi A cho từng phần ở đỉnh của vùng của bạn và tạo một bản ghi CNAME duy nhất có tên là "www" trỏ đến bản ghi đỉnh.

Ví dụ:

 

$ ORIGIN example.com.

@ IN SOA ns1.example.com. admin@example.com. (
                                 101;
                                 172800;
                                 900;
                                 1209600;
                                 3600; )
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ TRONG MỘT 123.234.1.123
@ TRONG MỘT 123.234.1.124
@ TRONG MỘT 123.234.1.125
ns1 TRONG MỘT 123.234.1.126
ns2 TRONG MỘT 123.234.1.127
www TRONG ví dụ CNAME.com.

5
IMO: Không đáng để nhắc lại vô tận tại sao các đỉnh CNAME không hoạt động. Nếu người dùng hỏi tại sao họ không làm việc, chúng tôi có câu trả lời chính tắc cho điều đó với các tham chiếu RFC. (tiết lộ đầy đủ: Tôi đã viết nó) Nếu họ không hỏi về điều đó, tốt nhất là bạn nên tiếp tục trả lời câu hỏi theo từng giai đoạn.
Andrew B

Cảm ơn bạn. Tôi nên tìm kiếm một câu trả lời kinh điển. Tôi sẽ ghi nhớ điều đó cho lần tới.
DTK

2

Một số giao thức có các tiêu chuẩn cho các loại bản ghi DNS, ngoài các bản ghi A, để tìm dịch vụ. SMTP với các bản ghi MX được liên kết của nó là một ví dụ tốt về điều này. Không có loại bản ghi DNS được xác định cho HTTP. Có khả năng nhà cung cấp DNS / nhà đăng ký trước đó của bạn có dịch vụ chuyển hướng HTTP hoặc dịch vụ proxy ngược.

Để thực hiện mục tiêu của bạn, bạn sẽ cần thiết lập máy chủ web (máy chủ ảo) để thực hiện chuyển hướng HTTP 301 hoặc 302 từ tên máy chủ này sang tên máy chủ khác, thiết lập proxy HTTP ngược, thiết lập máy chủ ảo độc lập hoặc sử dụng bí danh máy chủ ảo cùng một phiên bản máy chủ web sẽ trả lời cả hai tên A.


0

Nếu bạn muốn có câu trả lời cụ thể cho Azure, bạn cần tạo một bản ghi CNAME khác trỏ đến awverify.mydomain.azurewebsites.net như thế này

www.mydomain.com --- CNAME --- awverify.mydomain.azurewebsites.net
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.