두 개의 호스트 이름이 동일한 IP 주소를 공유 할 수 있습니까?


35

누구든지 두 개의 호스트 이름이 동일한 IP 주소를 공유 할 수 있는지 설명 할 수 있습니까?

그리고 하나의 호스트 이름이 둘 이상의 IP 주소를 나타내는 경우에도 가능합니까? 왜?


18
실제 사례를 원하십니까? 핑 serverfault.com하고 superuser.com둘 다 리턴 된 IP 주소를보십시오.
Scott Chamberlain

1
모든 호스트 이름은 이미 127.0.0.1 주소를 공유합니다.
jlliagre

답변:


45

하나의 호스트 이름에 둘 이상의 IP 주소를 할당 할 수도 있습니다.

rr.example.com.        A      192.0.2.12
rr.example.com.        A      192.0.2.23
rr.example.com.        A      192.0.2.34
rr.example.com.        A      192.0.2.45

DNS 서버를 쿼리하면 rr.example.comIP 주소 목록이 다시 나타납니다. 그런 다음 그 중 하나에 연결하도록 선택할 수 있습니다. 첫 번째 연결 시도가 적극적으로 거부되면 다음을 시도하십시오.

엔드 포인트가 TCP 연결을 적극적으로 거부하는 한 대부분의 브라우저는이 흐름을 따릅니다. 엔드 포인트 제한 시간이 초과되면 모든 IP를 시도하지 않아도 자원이 도달 불가능한 것으로 처리됩니다.

대부분의 응용 프로그램 (브라우저 포함)은 종종 한 번에 하나의 IP 엔드 포인트에만 관심이 있고 사용 가능한 첫 번째 대답 만 선택하기 때문에 첫 번째 서버는 모든 트래픽을 가져오고 다른 서버는 유휴 상태가되도록 대상 서버 간의로드를 기울일 위험이 있습니다 .

이를 피하기 위해 대부분의 DNS 서버는 라운드 로빈 구성이라고하는 것을 제공하므로 서버는 동일하게 일치하는 레코드가 반환되는 순서를 교대로 만듭니다. 로드 밸런서가 평범하기 전에 이것은 네트워크 시스템에서로드 밸런싱 및 내결함성을 구현하는 효율적인 방법이었습니다.


7
이것의 반대를 묻는 질문이 아닌가?
mowwwalker 2016 년

2
두 가지 질문이 있습니다. @Sirch는 이미 첫 부분을 잘 다루었습니다
Mathias R. Jessen

아, 나는 설명을 건너 뛰었다. 답변 btw 주셔서 감사합니다!
mowwwalker 2016 년

1
브라우저 / 네트워크 스택은 일반적으로 첫 번째 수신 주소를 시도합니까? 아니면 그들은 무작위로 시도합니까? 부하 분산을 시도하기 위해 DNS 서버가 IP를 반환하는 순서를 무작위로하는 것이 합리적입니까?
Tom Marthenal 2016 년

특정 클라이언트 구현에 따라 다릅니다. 대부분의 서버는 반환 된 IP 주소의 순서를 무작위로 지정합니다 (이것은 "라운드 로빈"이라고합니다). 실제로 흥미로운 질문은 답을 조금 더 확장 할 것입니다.
Mathias R. Jessen

35

예, 여러 호스트 이름이 동일한 IP 주소를 사용할 수 있습니다. 가장 좋은 방법은 CNAME 레코드를 사용하여 A 레코드를 가리키는 것입니다.

bar.example.com.        CNAME  foo.example.com.
foo.example.com.        A      192.0.2.23

모든 정거장을 기록하십시오.

여러 개의 IP 주소를 나타내는 하나의 호스트 이름을 갖는 것은 조금 더 복잡합니다. MX 레코드에 대해 이야기하는 경우 우선 순위 번호를 사용하여이 솔루션이 DNS에 이미 존재합니다. 여러 개의 A 레코드를 나타내려면로드 밸런서 (예 : HAProxy)를 사용하는 것이 좋습니다.


6
주목할 가치가 있으며 실제 인터넷에서 이름 확인자를 깨뜨린 CNAME 체인을 보았습니다. CNAME이 다른 CNAME을 가리킬 수 있기 때문입니다. CNAME 루프도 가능합니다.
PP.


A동일한 IP를 포함 하는 레코드가 다른 영역 (예 : x.foo.com. A 1.2.3.4및)에 나타날 수 있다는 점도 지적 할 가치가 있습니다 y.bar.com. A 1.2.3.4.
Blrfl

이 답변은 와일드 카드 A레코드 에 대한 정보를 잊어 버려 동일한 IP에서 여러 개의 호스트 이름을 생성합니다.
Izzy

이봐 Sirch, 정류소와의 거래는 무엇입니까?
JonoRR

6

다른 답변이 제안한대로 CNAME 변경 외에도 호스팅 서버의 논리를 처리해야합니다. Apache를 사용하고 다음과 같이 구성했습니다.

<VirtualHost 1.2.3.4:80>
    ServerName  www.abc.com
    ServerAlias abc.com
    ...
</VirtualHost>

<VirtualHost 1.2.3.4:80>
    ServerName  www.xyz.com
    ServerAlias xyz.com
    ...
</VirtualHost>

다른 http 서버 소프트웨어도 비슷한 것이 있습니다.


2

두 개의 호스트 이름이 의미하는 바를 분명히해야합니다. 동일한 IP 주소를 가진 두 개의 물리적 상자를 의미한다면 대답은 일반적으로 아니요입니다. serverA와 serverB가 액티브-패시브 클러스터로 작동하는 경우 각 서버에 두 개의 주소가 있습니다. 하나는 해당 서버 전용 IP 주소이고 두 번째 IP 주소는 서버간에 공유 된 주소이지만 활성 서버 만 해당 공유 주소를 수신합니다. 수동 서버는 활성 서버가 다운 될 때만 공유 주소에서 청취를 시작합니다.


2

IPv6에서는 동일한 IP를 두 개 이상의 호스트에 할당 할 수 있으며 네트워크가로드 밸런싱 및 페일 오버를 수행합니다 (하나에 도달 할 수없는 경우 다른 하나 시도). 둘 다 하나의 논리적 끝점으로 간주되며 DNS와 관련이 없습니다.

이 기능은 Anycast라고 합니다.


1

동일한 도메인에 대한 여러 IP :

  • 예, 가능하고 매우 일반적입니다 : ip A 서버가 다운되면 DNS 레지스터의 다음 IP에 연결하고 다른 서버 (ip B)에 액세스하여 서비스를받을 수 있습니다.

동일한 IP에 대한 여러 도메인 :

다음 질문에 대답해야합니다. 모든 도메인이 동일한 서비스를 제공하고 있습니까?

  • 그렇다면 : 매우 일반적인 구성이기도합니다. 많은 회사가 xxx.com, xxx.net, xxx.org 등 다른 국가 최상위 도메인을 가진 많은 도메인을 구매합니다. 그리고 모두 동일한 서비스를 가리 킵니다. 동일한 IP 목록으로 이동합니다.
  • 그렇지 않은 경우 : 가능하지만 일반적이지 않으며 권장되지 않습니다. HTTP 서비스 만 허용하는 일부 호스팅 회사는 NAT / 프록시를 사용하여 IP를 절약합니다. 그러나 물론 이는 대상 서비스를 식별하기 위해 HTTP를 "인식"하는 프록시를 의미합니다.

0

HSS 및 PCRF와 같은 통신의 많은 서버는 SCTP 전송을 사용하므로이 서버에는 여러 개의 IP 주소가 있습니다. 이 주소는 중복 및 페일 오버와의 연결을 제공하는 멀티 호밍 (SCTP가 지원하는)에 사용됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.