다양한 종류의 DNS 레코드가 실제로 어떻게 작동하며 이를 페어링할 수 있나요?

다양한 종류의 DNS 레코드가 실제로 어떻게 작동하며 이를 페어링할 수 있나요?

DNS 작동 방식에 대해 몇 가지 질문이 있습니다.

A 레코드를 문자 그대로 내가 원하는 IP 주소(예: Google IP)에 연결할 수 있습니까?

저는 사실 이 사실을 몰랐고, 정말 놀랐습니다. 나는 단지 당신이 소유한 웹사이트로 리디렉션할 수 있거나 도메인을 실제 대상 링크로만 전달할 수 있다고 생각했습니다. 이것이 사실이라면 CNAME 레코드에도 동일해야 합니다. 그렇죠?

즉, 내 도메인을 클릭하면 Google 도메인 이름이 표시되지 않고 내 도메인이 표시되면서 Google 사이트가 표시되도록 할 수 있습니까?

A 레코드, txt 레코드, AAAA 레코드 및 CNAME 레코드 등 여러 레코드를 하나의 도메인에 연결할 수 있습니까?

txt 레코드는 실제로 어떻게 작동합니까? 브라우저에 URL을 입력하면 텍스트가 화면에 나타납니까, 아니면 특별한 get 요청을 해야 합니까?

답변1

A 레코드를 문자 그대로 내가 원하는 IP 주소(예: Google IP)에 연결할 수 있습니까?

예. 이는 실제로 "소유권"의 문제가 아니라 도메인 소유자와 서버 운영자 간의 합의의 문제입니다.

그렇지 않은 서버를 가리키는 경우에는 유용하지 않습니다.동의하다원하는 도메인 제공 - DNS 항목은 작동하지만 웹 서버는 오류 페이지로 응답합니다. (이는 서버가 어떤 도메인이 요청되고 있는지 알고 있는 웹이나 이메일 또는 서버가 올바른 인증서를 가지고 있어야 하는 TLS 기반의 모든 경우에 중요합니다.)

그러나 일반적으로 유료 웹 호스팅이 작동하는 방식은 다음과 같습니다. 예를 들어 일반적으로 IP 주소를 소유하지 않고 '공유' 계획을 사용하면 서버에 대해 아무것도 소유하지 않지만 여전히 A/AAAA 레코드를 가리키게 됩니다. , 도메인을 인식하고 유용한 작업을 수행하도록 구성되었기 때문입니다.

저는 사실 이 사실을 몰랐고, 정말 놀랐습니다. 나는 단지 당신이 소유한 웹사이트로 리디렉션할 수 있거나 도메인을 실제 대상 링크로만 전달할 수 있다고 생각했습니다. 이것이 사실이라면 CNAME 레코드에도 동일해야 합니다. 그렇죠?

또한 그렇습니다. 위와 마찬가지로 소유권은 중요하지 않습니다. 중요한 것은 서버가 원하는 작업을 수행하도록 구성되었는지 여부입니다. (다시 말하지만, 논의가 구체적으로 웹 사이트에 관한 경우 대상 서버는 자신이 어떤 도메인으로 방문하는지 알 것입니다. 단지 "아니요, 해당 도메인을 제공하도록 구성되어 있지 않습니다."라고 응답할 수도 있습니다.

일반적으로 DNS는 애초에 "웹사이트"나 "링크"에 관심이 없으며 도메인 이름과 IP 주소에만 관심이 있습니다. 그러나 그럼에도 불구하고 DNS 레코드는 단방향입니다. 무엇이든 가리킬 수 있습니다.

즉, 내 도메인을 클릭하면 Google 도메인 이름이 표시되지 않고 내 도메인이 표시되면서 Google 사이트가 표시되도록 할 수 있습니까?

그것은 함께 작동합니다일부웹서버. Google의 경우 – 아마도 그렇지 않을 것입니다.

위에서도 언급했듯이 웹 서버는 자신이 어떤 도메인으로 호출되는지 알고 있습니다(모든 HTTP 요청에 포함되어 있음). 대규모 웹호스트의존하다이는 동일한 IP 주소에서 다양한 도메인에 대한 많은 웹사이트를 제공하기 때문입니다.

따라서 이러한 웹 서버를 가리키는 자신의 도메인에 대한 A 레코드를 생성하면 일치하는 "가상 호스트" 구성을 찾을 수 없으며 일반적으로 원하는 웹 사이트 대신 일반 오류 페이지가 제공됩니다. 그러나 "기본" 가상 호스트가 하나만 있는 소규모 웹서버의 경우 실제로 작동합니다.

또한 HTTPS 또는 기타 TLS 기반에서는 작동하지 않습니다. 가장 간단한 경우에도 서버는 방문 중인 도메인에 유효한 인증서를 제공해야 합니다. 그렇지 않으면 브라우저에 "인증서 불일치" 오류 페이지가 표시됩니다.

그러나 웹이 아닌 다른 많은 서비스에서는~일 것이다작동하고 서버는 눈치 채지 못할 것입니다. 예를 들어 SSH 또는 FTP는 호스트 이름을 전혀 보고하지 않습니다.

A 레코드, txt 레코드, AAAA 레코드 및 CNAME 레코드 등 여러 레코드를 하나의 도메인에 연결할 수 있습니까?

일반적으로 그렇습니다. 각 서비스는 원하는 레코드 유형만 확인하고 나머지는 무시하므로 몇 가지 예외를 제외하고는 (합리적이든 아니든) 레코드 유형을 원하는 대로 조합할 수 있습니다.

예를 들어, A+AAAA는 매우 일반적입니다. 이는 두 가지 주소 유형을 모두 갖는 동일한 서버를 사용하여 듀얼 스택 IPv4+IPv6 서비스를 호스팅하는 방식입니다. 도메인 루트에는 일반적으로 해당 A+AAAA 레코드 바로 옆에 메일용 MX가 있습니다(내부 DNS 작업용 NS+SOA도 포함).

SSHFP와 같은 레코드 유형이 있습니다.~이 될 예정이다주소 레코드와 함께 사용되며 "설명" 용도가 있고 어디에나 배치할 수 있는 많은 유형(TXT, HINFO, RP, LOC…)입니다.

(애초에 다양한 레코드 유형이 있다는 것이 요점이라고 생각합니다.)

그러나 한 가지 큰 예외는 CNAME입니다. 일반적으로허용되지 않음다른 레코드 유형과 함께 사용됩니다. 이름은 별칭입니다.또는그렇지는 않지만 동시에 둘 다는 아닙니다. (그래서 일반적으로 도메인 루트에 CNAME을 넣을 수 없습니다. 이미 SOA와 NS가 있기 때문입니다.)

txt 레코드는 실제로 어떻게 작동합니까? 브라우저에 URL을 입력하면 텍스트가 화면에 나타납니까, 아니면 특별한 get 요청을 해야 합니까?

아니요, 웹 브라우저는 TXT 레코드와 전혀 상호 작용하지 않습니다. 그들은 다른 목적으로 거기에 있습니다.

(DNS 전체웹보다 앞선다몇 년이 지나면서 많은 부분이 HTTP 이외의 목적으로 사용됩니다. 웹 브라우저는 다른 많은 서비스에서 이미 사용하고 있는 것과 동일한 범용 A/AAAA 레코드를 사용합니다.)

TXT 레코드에 대한 URL은 없지만 다음과 같은 도구를 사용하여 직접 DNS 요청을 하면 해당 레코드의 내용을 볼 수 있습니다.'dig', 'host' 또는 'nslookup'. 예를 들어 Windows에서는 nslookup -q=txt example.com또는 를 실행할 수 있지만 Resolve-DnsName -Type TXT example.comLinux 또는 macOS에서는 host -t txt example.com또는 을(를) dig example.com txt선호합니다.

(실제로 example.com에는 두 개의 TXT 레코드가 있습니다. "v=spf1"로 시작하는 하나는 SPF 확인을 수행하는 메일 서버용이고 다른 하나는 아마도 DigiCert의 도메인 확인용일 것입니다. 요즘 대부분의 TXT 사용은 자동화된 요청용입니다. 하지만 여전히 시스템 관리자가 읽어야 하는 TXT 레코드를 찾을 수 있는 경우가 있습니다.)

관련 정보