2009-06-15 12 views
5

To pytanie prawdopodobnie podkreśla brak zrozumienia zasad pracy w sieci z mojej strony, a nie kwestię programowania.Dns.GetHostEntry zwraca wiele adresów IP

robię odnośnika na nazwę hosta przy użyciu

Dns.GetHostEntry 

ta zwraca IPHostEntry do mnie, który ma właściwość AddressList który jest tablicą IPaddress.

Zawsze uważałem, że istnieje mapowanie 1 do 1 między nazwą hosta a adresem IP, ale stwierdzam, że w niektórych przypadkach otrzymuję kilka adresów IP dla tego samego hosta.

To dla mnie niespodzianka.

Której części rozpoznawania nazw domen nie rozumiem?

Odpowiedz

7

Każdy system może mieć wiele interfejsów sieciowych i adresów internetowych, ale ma tylko jedną nazwę. Przesyłanie dalej od nazwy do adresu zwróci wszystkie adresy zmapowane do określonej nazwy. Kiedyś robiliśmy to z naszymi serwerami plików, aby hosty nie musiały przechodzić przez granicę sieci podczas uzyskiwania dostępu do plików i rozkładania obciążenia na różne karty sieciowe. Serwery plików będą umieszczone w każdej z naszych różnych podsieci, z wieloma kartami interfejsu, każda z innym adresem podsieci, ale o tej samej nazwie. Serwery DNS w kampusie są nadal skonfigurowane w ten sposób. Dodatkowo możesz mieć nazwę, która mapuje do więcej niż jednego systemu, zapewniając pewien poziom równoważenia obciążenia za pośrednictwem DNS.

+1

Do systemu można dotrzeć po wielu nazwach - tylko kwestia wpisów DNS. Masz jednak rację, że zazwyczaj sama maszyna ma jedną nazwę, ale nie musi to mieć nic wspólnego z DNS. –

2

Jedną z możliwości:
Nazwa może rozwiązać więcej niż jeden adres, to jest czasem wykorzystywane do round robin to słaby sposób równoważenia obciążenia serwerów.

1

O ile wiem, możliwe jest zezwolenie na wiele adresów IP dla jednej nazwy hosta, aby umożliwić wysoką dostępność. Oznacza to, że gdy jedna maszyna zostanie wyłączona, zostanie użyty inny.

2

Możesz mieć wiele adresów z wielu kart sieciowych lub wielu protokołów. Często będziesz mieć adres IPV4 i IPV6 dla tego samego hosta.

8

Mapowanie między fizycznymi interfejsami sieciowymi, nazwami DNS i adresami IP jest praktycznie dowolne. Należy jednak rozróżnić interfejsy sieciowe (zwykle karty Ethernet, karty Wi-Fi, urządzenia sieciowe Bluetooth itp.) I stronę DNS rzeczy, która dotyczy tylko nazw i adresów IP (nie fizycznych interfejsów).

Oto kilka faktów, które można łączyć i dopasowywać:

  • pojedyncza karta sieciowa może mieć 1 lub wiele adresów IP.
  • Pojedyncza nazwa DNS może być przetłumaczona na 1 lub wiele adresów IP.
  • pojedynczy adres IP może (i zwykle) zidentyfikować pojedynczą maszynę
  • mulitple nazwy DNS można przypisać do jednego adresu IP

Rozważmy dostawców hostingu: Będą mieć wiele nazw DNS wskazując na ten sam - udostępniony - serwer. Serwer ten może ze względów niezawodności być wyposażony w wiele kart sieciowych, z których każda ma kilka adresów IP.

W przypadku komputerów PC zwykle uzyskuje się więcej niż jeden adres IP, jeśli zapytanie odbywa się za pomocą nazwy hosta, ponieważ obecnie zwykle masz co najmniej dwa adaptery (sieć bezprzewodowa i ethernet) z ich indywidualnym (w większości pojedynczym) adresem IP. W scenariuszach równoważenia obciążenia mogą wystąpić wszelkiego rodzaju sprytne odwzorowania i przekierowania (wirtualne adresy IP i podobne).

Zarówno protokoły DNS, jak i IP są bardzo elastyczne, ale to oczywiście niekoniecznie ułatwia ich zrozumienie.

Powiązane problemy