Domain-Name-System
CNAME 域到沒有 MX 記錄的子域
發送電子郵件至 hello@test.com 是否有效?
test.com CNAME something.else.com else.com MX 1 <google mx>
我認為那裡有一些參考資料要求 RFC1912沒有CNAME 記錄以及同一域上的其他記錄,但這應該是可接受的用途嗎?
something.else.com 沒有 MX 記錄,但 else.com 有 MX 記錄。當我多次執行 dig 時,我得到不同的結果:
$ dig +short @8.8.8.8 test.com. mx something.else.com $ dig +short @8.8.8.8 test.com. mx 1 aspmx.l.google.com. 5 alt1.aspmx.l.google.com. 5 alt2.aspmx.l.google.com. 10 alt3.aspmx.l.google.com. 10 alt4.aspmx.l.google.com.
有問題的域是wego.com,試圖向該域中的地址發送電子郵件。
看起來,該域(
dns1.p01.nsone.net
等)的權威名稱伺服器根據 qtype 提供相互衝突的響應。類型
A
:$ dig @dns1.p01.nsone.net wego.com A +norec ; <<>> DiG 9.11.14-RedHat-9.11.14-2.fc31 <<>> @dns1.p01.nsone.net wego.com A +norec ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24735 ;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;wego.com. IN A ;; ANSWER SECTION: wego.com. 3600 IN CNAME enigma.wego.com.cdn.cloudflare.net. ;; Query time: 0 msec ;; SERVER: 198.51.44.1#53(198.51.44.1) ;; WHEN: Wed Feb 12 07:40:14 UTC 2020 ;; MSG SIZE rcvd: 85 $
類型
MX
:$ dig @dns1.p01.nsone.net wego.com MX +norec ; <<>> DiG 9.11.14-RedHat-9.11.14-2.fc31 <<>> @dns1.p01.nsone.net wego.com MX +norec ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51501 ;; flags: qr aa; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;wego.com. IN MX ;; ANSWER SECTION: wego.com. 3600 IN MX 1 aspmx.l.google.com. wego.com. 3600 IN MX 5 alt1.aspmx.l.google.com. wego.com. 3600 IN MX 5 alt2.aspmx.l.google.com. wego.com. 3600 IN MX 10 alt3.aspmx.l.google.com. wego.com. 3600 IN MX 10 alt4.aspmx.l.google.com. ;; Query time: 0 msec ;; SERVER: 198.51.44.1#53(198.51.44.1) ;; WHEN: Wed Feb 12 07:40:25 UTC 2020 ;; MSG SIZE rcvd: 152 $
這是與問題中提出的方案不同的行為。
這並不是說
MX
您看到的來自不同的名稱(如問題中所示),MX
並且CNAME
顯然與他們的名稱伺服器並排根據您的要求提供不同的“視圖”,即使這些視圖顯然在直接衝突,無法結合。至於客戶端會得到什麼結果,這可能取決於記憶體狀態和實現細節。如果您已經
CNAME
在記憶體中擁有 ,則您已經知道該名稱是別名,並且這是該名稱本身的屬性,該名稱不能是某些記錄類型的別名,而不能是其他記錄類型的別名(因此,為什麼CNAME
記錄不能與其他記錄共存)數據)。此名稱伺服器實現的行為不符合標準,我不希望它可靠地工作。不知道客戶端是否會真正獲得他們針對給定情況預期的響應,或者基於已經記憶體的一些混淆
CNAME
。