サーバーを使用した作業で、外部サーバーのアドレスを入力する必要がある構成ファイルに遭遇しました。サーバーのIPアドレスを直接使用する人もいますが、代わりにホスト名 完全修飾ドメイン名 (FQDN)を使用することをお勧めします。直接IPアドレスの代わりにホスト名を使用する必要があるのはなぜですか?
ホスト名を使用する場合、各ホスト名をIPアドレスにリンクするローカルDNSサーバーが必要になるためです。ホスト名またはIPアドレスを使用することの欠点は何ですか?
IPアドレスを使用すると、DNSサーバーに依存しないことが保証されます。また、DNSスプーフィングによる攻撃を防ぐという利点もあります。
IPアドレスの代わりにFQDNを使用するということは、サービスを別のIPアドレスのサーバーに移行する場合、IPアドレスが使用されているすべての場所を探して見つけるのではなく、DNSのレコードを変更するだけで済むことを意味します。
これは、多数のサーバーとサービスが複数のユーザーによって構成されている場合に特に役立ちます。
DNSは単なるFQDN = IPではありません
DNSの重要な点は、Aレコード(ホスト名= IP)だけではないことです。 DNSは、MX、CNAME、TXTなどのさまざまなタイプのレコードを提供します。これは、一部のソフトウェアで必要になる場合があります。複数のアドレスレコード、IPv4 + IPv6レコード、動的アドレス、ロードバランシング、地理的位置に基づく解決、フェイルオーバー/冗長性などを許可します。DNSは、内容を通知します(www.google.comはGoogleのWebサービスです、172.217 .4.110?これは何ですか?)これらの設定/レコードを変更し、すべてのクライアントで変更を加えることなく、クライアントがそれらを取得できるようにします。 DNSは複雑なことを行うことができます。
多くの場合、直接IPアドレスでDNSを使用することには明らかな利点があります。
FQDNは要件になる場合があります
名前ベースの仮想ホスティングやロードバランサーなどを使用するWebサーバーのようなものは、FQDNまたはホスト名を介してアドレス指定する必要があります。接続先のFQDNに基づいて、リクエストへの応答方法を決定します。 IP経由の接続はまったく機能しない場合があります。
SSL証明書はドメイン名に基づいて発行されるため、DNSなしでは一部のSSL対応サービスを(適切に)使用できない場合があります。
これは、DNSの複雑さを垣間見るためのgoogle.comドメインのDigクエリです
Google COM。 299 IN A 172.217.0.174 google.com。 299 IN AAAA 2607:f8b0:400b:807 :: 200e google.com。 MX 599 IN 10 aspmx.l.google.com。 google.com。 599 IN MX 40 alt3.aspmx.l.google.com。 google.com。 59 IN 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 IN 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 include:_spf.google.com〜all" google.com。21599 IN CAA 0の問題「symantec.com」 google.com。21599 IN NS ns3.google.com。 google.com。21599 IN NS ns4.google.com。
Yahooは3つのIPアドレスで応答します
$ Host -ta yahoo.ca yahoo.caのアドレスは77.238.184.24 yahoo.caのアドレスは74.6.50.24 yahoo.caのアドレスは98.137です。 236.24
IPアドレスを使用する利点
私にとって、それは通常、DNSが何らかの形で邪魔になるか、DNSが利用できない場合です。一般的に、私はほとんどの場合DNSを使用します。
IPアドレスの方が良い例の1つは、プライベートネットワークアドレス(たとえば、192.168.1.1と192.168.1.2)を備えた2つのマシン間に直接リンク(スイッチなし)があり、高可用性通信にそれを使用している場合です。またはDRBDまたは別の非常に特定のサービス。この場合、DNSでの設定はおそらく意味がありません。これは必要ではなく、複雑さ、パフォーマンスの問題を追加し、障害点をもたらす可能性があります。
別の例はルーティングです。ルーティングテーブルは、さまざまな理由でIPアドレスを記録します。
もう1つはネームサーバー(/etc/resolv.confなど)の参照です。ネームサーバーがないため、何も解決できません。