サーバーのIPアドレスの代わりにFQDNを使用する必要があるのはなぜですか?


29

サーバーでの作業では、外部サーバーへのアドレスを入力する必要がある構成ファイルに遭遇しました。サーバーのIPアドレスを直接使用する人もいますが、代わりにホスト名の完全修飾ドメイン名(FQDN)を使用することをお勧めします。直接IPアドレスの代わりにホスト名を使用する必要があるのはなぜですか?

ホスト名を使用する場合、各ホスト名をIPアドレスにリンクするローカルDNSサーバーが必要になるためです。ホスト名またはIPアドレスを使用することの欠点は何ですか?


5
動的IPがある場合は、DNSレコードを変更する方が簡単です。そして、なぜローカルDNSサーバーですか?すべてのマシンに公に解決可能なIPを持たせるだけではどうですか?IPのもう1つの欠点は、動的ではない場合でも、おそらく物理的な場所に依存するため、別の場所への移行が難しくなることです。基本的に、DNSが発明された理由を尋ねているようです。この質問は他の場所で何度も回答されています。
ヤヌストロエルセン

1
アプリケーションレベル1ではホスト名のみを扱うことが常に推奨されています(たとえば、RFCで)。ただし、IPを使用しないと動作しないアプリケーションもあります。それにもかかわらず、私自身はホスト名の代わりにIPでデバイスに頻繁に連絡することに罪を犯します-しかし、IPv6に完全に移行するとすぐにその悪い習慣は確実に終わります:)
ハーゲンフォン

もちろん、外部サーバーはすべての通信をSSLで保護し、SSL証明書はFQDNに署名されるため、IPアドレスを使用するとアプリケーションは適切なサーバーを検証できません。右?:|
TessellatingHeckler

1
@HagenvonEitzen絶対にタイプすることはありません::1か?:-)
CVn

回答:


54

IPアドレスを使用すると、DNSサーバーに依存しないことが保証されます。また、DNSスプーフィングによる攻撃を防ぐという利点もあります。

IPアドレスの代わりにFQDNを使用すると、サービスを別のIPアドレスを持つサーバーに移行する場合、IPアドレスが使用されているすべての場所を見つけるのではなく、DNSのレコードを変更するだけで済みます。 。

これは、複数の個人が多くのサーバーとサービスを構成している場合に特に便利です。


1
特に、顧客、パートナー、またはベンダーがそれを使用する場合など、そのIPアドレスの知識も外部にある場合。stackoverflow.comの代わりに、私たち全員がstackoverflow.comとして知っているIPに行き、その後IPを変更する必要があるとしたらどうでしょうか?サイトのすべての可能なユーザーにIPが変更されたことをどのように伝えますか?したがって、名前。
ブランドン

@Brandonは、stackoverflow.comからheapunderflow.comに変更することを決定した場合と同じになります。ドメイン名の本来の利点は、人間がのstackoverflow.com代わりに覚えることです151.101.1.69。もちろん、最近では仮想ホスティング、親に関連するサブドメイン、およびそれらから生じた他の利点も可能になります。
アンヘル

2
この答えの核心は、組織がFQDNを所有していることだと思います。IPアドレスを所有していない場合があります。
ピータージャーケンズ16

1
IPとFQDNを介してHTTPS / Kerberosを実行してみてください。
アロン

これは文字通りDNSの目的です。
モニカとの軽さレース

40

DNSはFQDN = IPだけではありません

DNSの重要な点は、Aレコード(ホスト名= IP)以上のものを提供することです。DNSは、MX、CNAME、TXTなどのさまざまなタイプのレコードを提供します。これらのレコードは、一部のソフトウェアで必要になる場合があります。複数のアドレスレコード、IPv4 + IPv6レコード、動的アドレス、負荷分散、地理的位置に基づく解決、フェイルオーバー/冗長性などを許可します。 .4.110?それは何ですか?)これにより、これらの設定/記録を変更し、すべてのクライアントに変更を加えることなく、クライアントがそれらを取得できるようになります。DNSは複雑なことを行うことができます。

多くの場合、直接IPアドレスを介してDNSを使用することには明確な利点があります。

FQDNが要件になる場合があります

名前ベースの仮想ホスティングやロードバランサーなどを使用するWebサーバーなどの一部のものでは、FQDNまたはホスト名を使用してアドレス指定する必要があります。接続先のFQDNに基づいて、リクエストへの応答方法を決定します。IPを介した接続がまったく機能しない場合があります。

SSL証明書はドメイン名に基づいて発行されるため、一部のSSL対応サービスを(適切に)DNSなしで使用できない場合があります。

これは、google.comドメインのdigクエリであり、DNSの複雑さを垣間見ることができます。

Google COM。299 IN A 172.217.0.174
Google COM。299 IN 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 IN SOA ns2.google.com。dns-admin.google.com。126990955 900900 1800 60
Google COM。599 IN MX 30 alt2.aspmx.l.google.com。
Google COM。NS ns2.google.comの21599
Google COM。599 IN MX 20 alt1.aspmx.l.google.com。
Google COM。599 IN MX 50 alt4.aspmx.l.google.com。
Google COM。NS ns1.google.comの21599
Google COM。3599 IN TXT "v = spf1 include:_spf.google.com〜all"
Google COM。21599 IN CAA 0問題「symantec.com」
Google COM。NS ns3.google.comの21599
Google COM。NS ns4.google.comの21599

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を使用します。

IPアドレスの方が良い例の1つは、プライベートネットワークアドレス(たとえば192.168.1.1と192.168.1.2)の間に直接リンク(スイッチなし)を持つ2台のマシンがあり、それらが高可用性通信に使用している場合です。またはDRBDまたは別の非常に具体的なサービス。この場合、DNSでの設定はおそらく意味をなさないでしょう。必要ではありません。複雑さやパフォーマンスの問題が追加され、障害点が発生する可能性があります。

別の例はルーティングです。ルーティングテーブルには、さまざまな理由でIPアドレスが記録されます。

もう1つは、ネームサーバーの参照です(/etc/resolv.confなど)。ネームサーバーがないため、何も解決できません。


これはすばらしい答えですが、vhostedサービスについても同様に言う必要があります。IP⟷FQDNは多対1のマッピングではなく、多対多のマッピングです。
ふわふわ

ありがとう、そして同意した。DNSは、名前ベースの仮想ホスティングに非常に役立ちます。
ライアンバチシン16

ええ、それは私が言っていたものです。
ふわふわ

実際にDNSを正しく使用するための優れた答え-将来の参照用にブックマークします。ちょっとした不満は、「ルーティングテーブルにはさまざまな理由でIPアドレスが記録される」というコメントです。あなたが言及する様々な理由は何ですか?ルーティングテーブルはインターネット層で行われるため、IPを使用する以外に選択肢はありませんが、DNSはアプリケーション層を使用するため、必然的にルーティングに依存します。
ガーデンヘッド

@gardenheadありがとう。それはルーティングについて正しいです、私はちょうどそれに入りたくありませんでした。言葉の選択を許してください。
ライアンバチシン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.