2009-06-15 67 views
5

この質問は、おそらくプログラミングの問題ではなく、自分のネットワークプリンシパルの理解が不足していると思われます。Dns.GetHostEntryは複数のIPアドレスを返します

私はたIPAddressの配列であるAddressListプロパティーを持つ

Dns.GetHostEntry 

これは私にIPHostEntryを返す使用して、ホスト名、上の検索をやっています。

私はいつもホスト名とIPの間に1対1のマッピングがあると思っていましたが、同じホストのいくつかのIPAddressを返す場合があります。

これは私にとって驚きです。

ドメイン名解決のどの部分を理解できませんか?

答えて

7

いずれのシステムでも、複数のネットワークインターフェイスとインターネットアドレスを持つことができますが、名前は1つだけです。名前からアドレスへの順方向マッピングは、特定の名前にマップされたすべてのアドレスを返します。私たちはファイルサーバにこれを実行していました。そのため、ホストはファイルにアクセスする際にネットワークの境界を横断したり、さまざまなNICに負荷を分散したりする必要がありませんでした。ファイルサーバーは、それぞれ異なるサブネットアドレスを持ち、同じ名前の複数のインターフェイスカードを持つ、さまざまなサブネットのそれぞれに配置されます。キャンパス内のDNSサーバは、このように設定されています。さらに、複数のシステムにマップされた名前を使用して、DNS経由である程度の負荷分散を実現できます。

+1

複数の名前でシステムにアクセスできます。しかし、通常、マシン自体は単一の名前を持っていますが、それは必ずしもDNSとは関係ありません。 –

2

一つの可能​​性:
名が複数のアドレスに解決することができ、これは時々round robin のために使用され、それはあなたのサーバのロードバランシングの弱い方法です。

1

私が知る限り、高可用性を可能にするために1つのホスト名に対して複数のIPアドレスを許可することは可能です。つまり、1台のマシンがダウンしている場合は、別のマシンが使用されます。

2

複数のネットワークアダプタまたは複数のプロトコルから複数のアドレスを設定できます。 多くの場合、同じホストに対してIPV4とIPV6のアドレスが設定されます。

8

物理ネットワークインターフェイス、DNS名、およびIPアドレスのマッピングは事実上任意です。しかし、ネットワークインターフェース(通常はイーサネットアダプター、Wifiアダプター、Bluetoothネットワークデバイスなど)とDNS側では、名前とIPアドレス(物理インターフェースではない)だけを区別する必要があります。ここで

は、いくつかのあなたは混在させることができる事実と一致している:

  • 単一のネットワークカードは、1つのまたは多数のIPアドレスを持つことができます。
  • 単一のDNS名を1つ以上のIPアドレスに解決できます。
  • 単一のIPアドレスは、(通常はします)、ホスティングプロバイダを検討
  • mulitple DNS名は、単一のIPアドレス

にマッピングすることができ、単一のマシンを識別することができます:彼らはを指し、多くのDNS名を持っています同じ共有サーバ。そのサーバは、信頼性の理由から、それぞれが複数のIPアドレスを持つ複数のネットワークカードを装備することがあります。

PCの場合、ホスト名で問い合わせると、通常は複数のIPアドレスが取得されます。現在は、通常、少なくとも1つのIPアドレスを持つ(ワイファイとイーサネットの)アダプタが少なくとも2つあります。 ロードバランシングシナリオでは、あらゆる種類の巧妙なマッピングやリダイレクト(仮想IPアドレスなど)が発生する可能性があります。

DNSプロトコルとIPプロトコルの両方が非常に柔軟ですが、必ずしも理解しやすくはありません。

関連する問題