DNS – 인터넷 전화번호부

게시 됨: 2020-10-01
dns - DNS - The Internet Phonebook -

DNS는 Domain Name System 의 약자로 도메인 이름을 사용할 수 있도록 하는 기술입니다. 도메인 이름은 웹 사이트로 이동하려고 할 때 브라우저에 입력하는 것입니다. 다음은 모두 도메인 이름의 예입니다.

  • google.com
  • whitehouse.gov
  • 위키피디아.org

DNS는 매우 복잡하므로 분해해 보겠습니다.

태초에 숫자만 있었다

인터넷의 첫 번째 버전은 네트워크를 서로 연결하는 여러 대학에서 시작되었습니다. 그들은 새로운 네트워크에 있는 모든 컴퓨터가 서로 대화할 수 있도록 주소가 필요하다는 것을 빨리 깨달았습니다.

그들이 생각해낸 주소를 IP 주소라고 합니다. IP 주소 또는 IP는 점으로 구분된 0에서 255 사이의 4개 숫자입니다. 다음은 Google의 IP 중 하나입니다.

216.58.205.46
인터넷에 연결된 모든 컴퓨터에는 고유한 컴퓨터가 있습니다. 여기에는 이 글을 읽고 있는 컴퓨터가 포함됩니다. Google에서 "내 IP 주소는 무엇입니까?"를 검색하여 확인할 수 있습니다.

초기 네트워크의 모든 컴퓨터에는 서로 통신하는 데 사용할 수 있는 고유한 숫자 주소가 있었습니다. 이것은 컴퓨터에는 훌륭했지만 인간 운영자에게는 그다지 좋지 않았습니다.

사람들은 숫자를 잘 기억하지 못합니다.

사람들이 숫자를 잘 기억한다면 전화번호부도 없을 것이고 당신의 전화기에는 연락처 목록이 없을 것입니다.

사람들 이름과 단어를 잘 기억합니다. 그렇다면 기억하기 쉬운 이름을 기억하기 어려운 숫자로 변환하는 방법이 없을까요?

최초의 인터넷 발명가들은 해결책을 제시했습니다. 솔루션은 기억하기 쉬운 도메인 이름을 기억하기 어려운 IP 주소로 변환할 수 있는 온라인 디렉토리로, 도메인 이름 시스템 또는 DNS라고 하는 프로그램에서 조회할 수 있습니다.

DNS 계층

DNS는 모든 도메인 이름의 간단한 목록과 변환할 해당 IP 주소가 포함된 단일 디렉토리로 생각하기 쉽습니다.

불행히도 현실 세계는 그보다 훨씬 더 복잡하며 DNS는 사람들이 인터넷을 사용하려고 생각했던 모든 사용 사례를 수용해야 합니다.

첫 번째 합병증은 ".com", ".uk", ".info" 및 기타 여러 도메인과 같은 다양한 도메인 끝이 있다는 것입니다. 다른 모든 도메인 끝자리는 다른 조직에서 관리하며 전 세계의 모든 국가에는 고유한 도메인 확장자가 있습니다. 이러한 조직 중 다수는 타사 회사가 대신 도메인을 등록할 수 있도록 허용합니다.

이 시스템은 엉망인 것처럼 보이며 엉망입니다. 다행스럽게도 DNS 작성자는 세상이 던질 수 있는 최대한의 복잡성에 적응할 수 있도록 DNS를 설계했습니다.

그들의 기발한 아이디어는 DNS를 계층적으로 만드는 것이었습니다. 모든 프로그램이 만드는 방법을 알고 있는 모든 DNS 조회를 위한 하나의 시작 위치가 있습니다. 이 쿼리의 결과는 답이 아니라 더 많은 DNS 서버입니다. 새 DNS 서버는 이전 DNS 서버보다 더 전문화될 것입니다. 루트 서버는 모든 도메인에 적합하며 다음 도메인은 예를 들어 .net 도메인에 대해서만 알 수 있습니다. 각각의 연속적인 쿼리는 브라우저가 필요로 하는 실제 정보를 오래된 궁극적인 DNS 서버에 더 가깝게 만듭니다.

이것이 어떻게 작동하는지 이해하는 것은 당신의 브라우저가 당신의 브라우저와 DNS 서버 사이의 대화로 로켓넷 과 같은 예시 도메인의 IP 주소를 찾으려고 한다고 상상한다면 더 쉽습니다:

Browser #> Hi root server, I've got this domain, onrocket.com , and I need to find its IP address.

root-servers.net #> I don't have the IP, but I do know who handles all the .com domains. Go ask them at gtld-servers.net .

Browser #> Hi .com servers, I need the IP for the onrocket.com domain.

gtld-servers.net #> I don't have the IP for you but I do know authoritative servers that have all that information. They're over at Cloudflare.
Browser #> Hey Cloudflare, I've got this domain, rocket.net , that I need the IP for.

Cloudflare DNS #> I can absolutely help you with that. The IP is 104.19.154.92 .

보시다시피 프로세스는 루트 서버에 요청하고 최종 네임서버(Authoritative Nameservers)에 대한 응답 경로를 따라 시작됩니다. 이들은 도메인에 대한 실제 DNS 정보를 포함하는 서버입니다. DNS의 구조는 시스템이 도메인 끝 수와 등록된 도메인 수를 수용할 수 있음을 의미합니다.

이제 DNS 기능을 알았으므로 권한 있는 DNS 서버가 보유할 수 있는 몇 가지 DNS 레코드 유형을 살펴보겠습니다.

DNS 레코드

지금까지 도메인 이름에서 IP 주소로의 변환 기록에 대해서만 살펴보았습니다. DNS 서버가 보유하는 다른 유형의 레코드가 있습니다. 다음은 접할 가능성이 있는 가장 일반적인 유형의 DNS 레코드에 대한 간략한 요약입니다.

레코드

A 레코드는 이 기사에서 지금까지 사용한 레코드 유형입니다. 도메인 이름(rocket.net) 또는 하위 도메인(www.rocket.net)을 IP 주소에 직접 매핑하는 것입니다.

MX 레코드

MX는 Mail e X change 약자로 이메일을 보낼 때 사용합니다. 메일 클라이언트가 이메일을 보낼 이메일 서버를 찾아야 할 때 DNS 시스템에 이메일 주소의 도메인 이름에 대한 MX 레코드를 요청합니다.

이메일 주소는 @ 예: j.smith @ example.com 으로 구분된 두 부분으로 구성됩니다. 이메일 프로그램은 [email protected] 으로 이메일을 보낼 때 example.com 에 대한 MX 레코드를 DNS 시스템에 요청합니다.

MX 레코드는 메일 서버의 IP 주소를 가리키는 A 레코드를 가리킵니다.

CNAME 레코드

이러한 레코드는 더 복잡하지만 "이 다른 도메인의 모든 레코드 복사"와 같은 바로 가기로 생각할 수 있습니다. 일반적으로 모두 동일한 작업을 수행하는 도메인에 대해 많은 정보가 중복되는 것을 피하기 위해 사용됩니다.

TXT 레코드

이러한 레코드를 사용하면 도메인 이름에 구조화되지 않은 텍스트가 연결될 수 있습니다. 이것은 다양한 이유로 사용되지만 가장 많이 접하게 되는 이유는 SPF 레코드에 대한 것입니다.

SPF는 "이 메일 서버만 내 도메인 이름에서 이메일을 보낼 수 있는 권한이 있습니다"라는 이메일 스팸 방지 기술입니다. 이렇게 하면 스팸 발송자가 귀하의 도메인 이름을 사용하여 스팸이 합법적인 것처럼 가장하는 스팸을 보내는 것을 방지할 수 있습니다.

다른 유형의 레코드가 있지만 일상적인 DNS 관리에서 이러한 레코드를 접할 가능성은 거의 없습니다.