Networking

為什麼我應該使用 FQDN 而不是伺服器的 IP 地址?

  • July 10, 2019

在我使用伺服器的過程中,我遇到了配置文件,您應該在其中輸入外部伺服器的地址。我看到有些人直接使用伺服器的 IP 地址,但我聽到很多建議使用主機名完全限定域名(FQDN)。為什麼我應該使用主機名而不是直接 IP 地址?

因為如果您使用主機名,那麼您將需要一個本地 DNS 伺服器,它將每個主機名連結到一個 IP 地址。使用主機名或 IP 地址有什麼缺點?

使用 IP 地址可確保您不依賴 DNS 伺服器。它還具有防止通過 DNS 欺騙進行的攻擊的好處。

使用 FQDN 而不是 IP 地址意味著,如果您要將服務遷移到具有不同 IP 地址的伺服器,您將能夠簡單地更改 DNS 中的記錄,而不是嘗試找到使用 IP 地址的任何地方.

當您有多個由多個人配置的伺服器和服務時,這尤其有用。

DNS 不僅僅是 FQDN = IP

DNS 的重要之處在於它提供的不僅僅是 A 記錄(主機名 = IP)。DNS 有時會提供某些軟體可能需要的不同類型的記錄,例如 MX、CNAME、TXT 等。它允許多個地址記錄、IPv4 + IPv6 記錄、動態地址、負載平衡、基於地理位置的解析、故障轉移/冗餘等…… DNS 告訴你事情是什麼(www.google.com 是 google 的網路服務,172.217 .4.110?那是什麼?)它允許您更改這些設置/記錄並讓它們被客戶端拾取,而無需對所有客戶端進行更改。DNS 可以做複雜的事情。

使用 DNS 而不是直接 IP 地址通常具有明顯的優勢。

FQDN 可能是一項要求

有些事情,例如使用基於名稱的虛擬主機或負載平衡器的 Web 伺服器等……絕對需要您通過 FQDN 或主機名來定址它們。他們根據您連接到的 FQDN 確定如何響應您的請求。通過 IP 連接可能根本不起作用。

SSL 證書是根據域名頒發的,因此您可能無法在沒有 DNS 的情況下(正確地)使用某些啟用 SSL 的服務。

這是 google.com 域的探勘查詢,讓您了解 DNS 的複雜性

google.com。299 在 172.217.0.174
google.com。299 在 AAAA 2607:f8b0:400b:807::200e
google.com。599 IN MX 10 aspmx.l.google.com。
google.com。599 IN MX 40 alt3.aspmx.l.google.com。
google.com。59 在 SOA ns2.google.com 中。dns-admin.google.com。126990955 900 900 1800 60
google.com。599 IN MX 30 alt2.aspmx.l.google.com。
google.com。21599 在 NS ns2.google.com。
google.com。599 IN MX 20 alt1.aspmx.l.google.com。
google.com。599 IN MX 50 alt4.aspmx.l.google.com。
google.com。21599 IN NS ns1.google.com。
google.com。3599 IN TXT "v=spf1 包括:_spf.google.com ~all"
google.com。21599 在 CAA 0 問題“symantec.com”
google.com。21599 IN NS ns3.google.com。
google.com。21599 IN NS ns4.google.com。

雅虎回复 3 個 IP 地址

$主機-ta yahoo.ca
yahoo.ca 有地址 77.238.184.24
yahoo.ca 的地址是 74.6.50.24
yahoo.ca 有地址 98.137.236.24

使用 IP 地址的優勢

對我來說,通常是 DNS 可能會以某種方式妨礙或不可用。一般來說,我會在大多數事情上使用 DNS。

IP 地址可能更好的一個範例是,當您有兩台機器之間有直接連結(無交換機)和私有網路地址(例如 192.168.1.1 和 192.168.1.2),並且它們將其用於高可用性通信或 DRBD 或其他非常具體的服務。在這種情況下,在 DNS 中進行設置可能沒有任何意義。這不是必需的,會增加複雜性、性能問題並可能引入故障點。

另一個例子是路由。路由表出於各種原因記錄 IP 地址。

另一個是引用名稱伺服器(例如在 /etc/resolv.conf 中)。由於沒有名稱伺服器,您無法解決任何問題。

引用自:https://serverfault.com/questions/788862