鑑於:
domain.com resolves to some IP and
www.domain.com would resolve (usually) to the same IP
預設情況下,為什麼 abc.www.domain.com 或 abcddomain.com 不解析為下一個較低的可用 N 部分名稱?
答案1
因為區域和委託區域或子區域中的主機名稱之間存在差異。
假設 www.example.comwww
是 example.com 區域中的主機名稱。是的,example.com 上有一台電腦為該區域提供服務,但 DNS 系統被明確配置為“www 是此處的主機”,而不是“有一個名為 www 的子區域”。
當然,某些 DNS 伺服器軟體支援使用通配符,因此可以將它們配置為具有一個區域www.example.com
,然後使用通配符*.www.example.com
並使其全部指向相同 IP。
當然,沒有什麼可以阻止任何人創建自己的 DNS 伺服器軟體,只要它「講」DNS 協議,它就能以任何他們想要的方式回應。
答案2
這裡的實際關係與你想像的完全相反。 Domain.com 不是 www.domain.com 的後備地址。 Domain.com 是所有以domain.com 結尾的可能位址的名稱和已在 DNS 記錄中明確連結至 www.domain.com。萬維網不是唯一的,甚至不是最古老的使用互聯網的服務,如果擁有domain.com的組織沒有網站,他們可以輕鬆地將其連結到mail.domain.com或ftp .domain.com。對於不明確只是網站的組織來說,網域通常是其網路中所有電腦的後綴,並且連結可以分配給其中任何一台電腦或一組電腦。
提升 DNS 等級通常意味著跨越組織邊界。在本例中,domain.com 由假設的範例公司擁有,將嘗試造訪該網站的使用者傳送到他們的網站是有意義的。另一方面,com.網域由 Verisign 擁有,Verisign 是 DNS 領域的主要參與者,他們無法知道您真正對其中的眾多客戶感興趣。
答案3
即使單部分名稱“machine”碰巧解析為單一 IP(例如透過本機主機條目),我也會期望 abcmachine 解析為相同的 IP。
/etc/hosts 條目不是 DNS;我認為他們實際上早於DNS 和多層點名稱的概念。在發明 DNS 之前,大多數系統只是使用單字名稱,a.b.c.machine
並不是真正的東西。
至於 DNS 本身,這只是其發明者所做的選擇,預設只有明確創建的名稱才能解析,沒有自動擴展等「神奇」功能。
因此,當您看到www.example.com
解析到某個地址時,那是因為該網域的所有者實際上添加了單一子網域「www」到其 DNS 區域 – 不是因為 DNS 會自動複製它。
請注意,DNS 實際上做將此作為選擇參加特徵。如果您為*.example.com
(任何層級)建立 DNS 項目,則相同層級的所有未知子網域(例如foo.example.com
)將自動解析為與該*
項目相同的資料。這實際上用於許多網站託管系統;例如,GitHub 有一個*.github.io
條目可以自動擷取所有使用者名稱。
但在實踐中,它確實使事情惱人的在許多情況下(在網路之外)。如果某個網域選擇使用通配符,則每次您在子網域中輸入錯誤時,您將不再收到一條實際的錯誤訊息,表示您弄亂了名稱- 相反,它會悄悄地轉到與您想要的完全不同的地方。