2009-06-15 8 views
5

이 질문은 프로그래밍 문제가 아니라 네트워킹 주체에 대한 이해가 부족한 것으로 나타났습니다.Dns.GetHostEntry가 여러 IP 주소를 반환합니다.

나는하여 IPAddress의 배열 인 AddressList의 속성이

Dns.GetHostEntry 

이 나에게에는 IPHostEntry을 돌려 사용하여 호스트 이름에 조회를하고 있어요.

나는 항상 호스트 이름과 IP 사이에 1 대 1의 매핑이 있다고 생각했지만, 어떤 경우에는 동일한 호스트에 대해 여러 IPAddress를 가져 오는 경우가 있습니다.

이것은 나에게 놀라운 일입니다.

이해할 수없는 부분은 무엇입니까?

답변

7

모든 시스템에는 여러 개의 네트워크 인터페이스와 인터넷 주소가있을 수 있지만 이름은 하나뿐입니다. 이름에서 주소로의 정방향 매핑은 특정 이름에 매핑 된 모든 주소를 반환합니다. 우리는 파일 서버에이 작업을 수행하여 호스트가 파일에 액세스 할 때 네트워크 경계를 탐색 할 필요가 없으며 다양한 NIC에 부하를 분산시킬 수있었습니다. 파일 서버는 각각의 서브넷 주소가 같지만 이름이 같은 여러 개의 인터페이스 카드가있는 여러 가지 서브넷 각각에 적용됩니다. 캠퍼스의 DNS 서버는 여전히 이러한 방식으로 설정됩니다. 또한 DNS를 통해 일정 수준의로드 균형을 제공하여 둘 이상의 시스템에 매핑되는 이름을 가질 수도 있습니다.

+1

시스템에는 DNS 항목과 관련된 여러 이름으로 접근 할 수 있습니다. 하지만 보통은 기계 자체가 하나의 이름을 가지고 있지만 DNS와 관련이없는 것은 아닙니다. –

2

하나의 가능성 :
가 이름이 하나 개 이상의 주소로 해결할 수 있습니다,이 경우에 따라서는 부하가 서버를 균형 약한 방법 round robin 에 사용됩니다.

1

내가 아는 한, 하나의 호스트 이름에 대해 여러 IP 주소가 고 가용성을 허용 할 수 있습니다. 즉, 하나의 기계가 작동 중지되면 다른 기계가 사용됩니다.

2

여러 네트워크 어댑터 또는 여러 프로토콜에서 여러 주소를 가질 수 있습니다. 종종 동일한 호스트에 IPV4 및 IPV6 주소를 사용하게됩니다.

8

실제 네트워크 인터페이스, DNS 이름 및 IP 주소 간의 매핑은 사실상 임의입니다. 그러나 네트워크 인터페이스 (일반적으로 이더넷 어댑터, Wifi 어댑터, Bluetooth 네트워크 장치 등)와 DNS 측면에서는 이름과 IP 주소 (물리적 인터페이스가 아닌) 만 처리해야합니다.

  • 하나의 네트워크 카드가 하나 개 또는 여러 개의 IP 주소를 가질 수 있습니다 여기에

    는 믹스 앤 매치 할 수있는 몇 가지 사실입니다.
  • 하나의 DNS 이름을 하나 이상의 IP 주소로 확인할 수 있습니다.
  • 하나의 IP 주소는 (일반적으로됩니다)

는 호스팅 제공 업체 고려 하나의 IP 주소로

  • 대해 여러 개의 DNS 이름을 매핑 할 수있는 하나의 컴퓨터를 식별 할 수 있습니다 : 그들은 가리키는 많은 DNS 이름이됩니다 동일한 공유 서버. 이 서버는 신뢰성을 이유로 여러 개의 IP 주소가있는 여러 개의 네트워크 카드를 장착 할 수 있습니다.

    PC의 경우 호스트 이름으로 쿼리하면 대개 하나 이상의 IP 주소를 얻습니다. 요즘 대개 일반적으로 하나 이상의 IP 주소가있는 어댑터가 두 개 이상 (Wi-Fi 및 이더넷) 있기 때문입니다. 로드 균형 조정 시나리오에서는 모든 종류의 영리한 매핑과 리디렉션 (가상 IP 주소 등)이 발생할 수 있습니다.

    DNS 및 IP 프로토콜 모두 매우 유연하지만 물론 이해가 더 쉬울 필요는 없습니다.

  • 관련 문제