도메인 이름 시스템이란 무엇입니까? 어떻게 작동합니까?

게시 됨: 2021-07-04

DNS는 인터넷 전화번호부입니다!

컴퓨터는 숫자 (IP 주소)를 사용하여 정보를 주고 받기 위해 서로 연결하고 통신합니다. 인터넷에 연결된 각 장치는 ID로 고유한 주소를 가지며 다른 장치는 이를 식별하고 통신하는 데 사용합니다.

대조적으로 인간은 이름을 사용하여 서로 의사소통을 합니다. 이름 은 전화번호보다 기억하기 훨씬 쉽습니다.

DNS( Domain Name System )는 인간과 컴퓨터 간의 통신 격차를 해소하기 위해 도입되었습니다. DNS는 이름을 숫자로, 인간 친화적인 도메인 이름에서 컴퓨터 친화적인 IP 주소로 확인합니다.

도메인 명 시스템

도메인 이름이란 무엇입니까?

도메인 이름 은 인터넷의 특정 리소스를 인식하는 고유한 문자열입니다. 현재 요청 중인 웹 응용 프로그램 서버를 나타냅니다. 도메인 이름에 대해 들어본 적이 없지만 수십억 개를 사용했을 수 있습니다. 네! google.com , yahoo.com , geekflare.com 등은 모두 도메인 이름입니다.

루트 도메인

DNS란 무엇이며 왜 필요한가요?

인간은 브라우저를 통해 amazon.com, geekflare.com 등과 같은 도메인 이름을 사용하여 온라인으로 정보에 액세스합니다. 그러나 웹 브라우저는 인터넷 프로토콜 주소 (IP 주소)로만 통신합니다.

DNS는 브라우저가 요청된 리소스를 로드할 수 있도록 제공된 도메인 이름을 해당 IP 주소로 변환하여 우리를 돕습니다.

DNS

이제 DNS의 필요성을 설명하기 위해 비유를 들어보겠습니다.

누군가의 전화에 전화를 걸고 싶다면 먼저 전화를 받고 저장된 연락처 목록을 스크롤하거나 검색하면 전화를 겁니다.

누군가에게 전화를 걸 수는 있지만 전화번호만 있으면 모든 연락처를 기억하기가 정말 어렵습니다. 이것이 우리가 전화번호부에 이름을 사용하여 휴대폰 번호를 저장하는 주된 이유입니다.

DNS는 동일한 메커니즘을 사용하며 해당 도메인 이름이 있는 IP 주소 목록이 포함된 데이터베이스가 있다고 가정합니다.

오늘날 세계에는 World Wide Web에 약 15억 개 이상의 웹사이트가 있습니다. 우리는 일상 생활에서 그 중 일부를 사용합니다. 모든 사이트의 IP 주소를 기억하는 것은 불가능합니다. DNS는 우리의 삶을 편하게 하기 위해 그것들을 기억합니다.

어떻게 작동합니까?

사용자가 브라우저에 URL(도메인)을 입력할 때(예: geekflare.com) 브라우저는 연결을 위해 Google의 IP 주소를 찾아야 합니다. 주어진 도메인 이름에서 IP 주소를 찾는 이 프로세스를 DNS 확인이라고 합니다.

주소 표시줄 URL

컴퓨터는 도메인 이름이 아닌 IP 주소로 웹사이트 위치를 인식합니다. geekflare.com을 입력하면 브라우저는 DNS 조회를 수행하여 해당 IP 주소를 가져온 다음 요청을 Geekflare 서버로 전달하고 Geekflare의 방문 페이지를 다시 보냅니다.

DNS 조회는 geekflare.com을 입력한 사용자의 상호 작용이 필요 없는 배후 에서 웹 브라우저에서 발생합니다.

웹 사이트의 IP 주소를 얻으려면 명령 프롬프트 또는 터미널에서 다음 명령을 시도하십시오.

 nslookup www.example.com

이 결과의 IP 주소를 브라우저에 직접 입력할 수 있습니다. 그러나 일부 웹 사이트는 직접 IP 액세스를 차단하여 예상한 결과를 얻지 못했을 수 있습니다.

DNS 워크플로

이제 우리는 도메인 이름을 입력할 때마다 IP 주소가 요청된다는 아이디어를 얻었습니다. 이 과정이 어떻게 일어나는지 봅시다.

IP 주소를 얻기 위해 브라우저에 도메인 이름을 입력하면 먼저 로컬 캐시에서 도메인 이름을 찾습니다. 이 로컬 캐시 데이터는 다음 두 위치에서 사용할 수 있습니다.

  • 웹 브라우저 캐시.
  • 운영 체제의 캐시입니다.

DNS 쿼리 리졸버

IP 찾기를 위한 DNS 조회 과정에서 요청된 도메인 이름에 사용할 수 있는 캐시 데이터가 없으면 일련의 DNS 서버가 함께 작동하여 IP 주소를 찾습니다.

원격 DNS 서버와의 과도한 통신은 성능 저하를 초래하는 시간 소모적인 프로세스입니다. 이를 방지하기 위해 결과 IP 주소는 OS 캐시, 브라우저 캐시, DNS 확인자 캐시에 저장됩니다.

DNS 서버의 종류

DNS 서버는 네 가지 유형이 있습니다.

  • 재귀 해석기
  • 루트 네임서버
  • 최상위 도메인(TLD) 네임서버
  • 권한 있는 네임서버

이러한 DNS 서버가 서로 조정하여 어떻게 작동하는지 예를 들어 보겠습니다.

책이 필요하다고 가정하고 지역 서점에서 구입한 다음 원하는 책을 말하여 상점 주인에게 연락합니다. 여기서 당신은 고객으로 행동하고 상점 주인은 재귀적 해결자 입니다.

그런 다음 소유자는 다른 랙 세트( TLD )를 가리키는 저장소( 루트 네임서버 )의 인덱스를 확인했습니다.

적합한 랙을 찾은 후 그는 특정 랙( TLD )으로 이동하여 책이 있는 완벽한 서가( 권한 네임서버 )를 찾고 클라이언트가 요청한 적절한 책을 찾습니다.

DNS 재귀 해석기

로컬 캐시 데이터에서 IP를 사용할 수 없는 경우 요청을 DNS Recursor라고도 하는 DNS Recursive Resolver 로 전달합니다. IP를 찾기 위해 DNS Recursor에 요청을 보내는 이 방법을 DNS Query 라고 합니다 .

DNS 재귀는 클라이언트의 DNS 쿼리 요청을 수신하고 필요한 경우 요청된 클라이언트를 만족시키기 위해 몇 가지 추가 요청을 하도록 설계된 특수 서버입니다.

일반적으로 ISP( 인터넷 서비스 공급자) 의 DNS 서버입니다.

DNS 작동 방식 단계
Varonis의 이미지

ISP에서 제공하는 이러한 DNS 서버의 데이터베이스에도 캐시가 있습니다. 주어진 도메인에 대한 예상 IP가 캐시 메모리에 있는 경우 요청된 클라이언트에 제공하기만 하면 됩니다.

그렇지 않으면 IP를 찾는 데 다음 단계가 수행됩니다.

  • DNS Recursor는 요청을 루트 네임서버로 보냅니다. ( DNS Recursor → 루트 네임서버 )
  • 루트 네임서버에는 도메인 네임의 IP 정보가 없지만 해당 TLD 서버의 정보를 제공하므로 찾는 데 도움이 됩니다. ( 루트 네임서버 → DNS 재귀 )
  • 이제 recursor는 제공된 도메인의 IP를 TLD 서버에 요청합니다. ( DNS Recursor → TLD 서버 )
  • TLD 서버는 해당 IP가 있는 Authoritative 네임서버 의 정보를 제공하며 DNS 쿼리의 최종 정류장입니다. ( TLD 서버 → DNS 재귀 )
  • 이때 Recursor는 Authoritative 서버에 도메인 이름의 IP 주소를 묻습니다. ( DNS Recursor → 권한 있는 네임서버 )
  • 마지막으로 권한 있는 네임서버는 주어진 도메인 이름의 IP 주소를 찾아 재귀에게 보냅니다. ( 권한 있는 네임서버 → DNS Recursor )
  • 마지막으로 재귀는 결과를 캐시 데이터베이스에 저장하고 IP 주소를 요청된 클라이언트에 다시 보냅니다. ( DNS 재귀 → 클라이언트 )

루트 네임서버

루트 네임서버(일명 '.' 네임서버 )는 도메인 번역 프로세스의 첫 번째 단계입니다. 수신된 요청이 www.google.com 이라고 가정하고 이제 루트 네임서버가 적절한 .com TLD 서버를 검색하고 해당 TLD 서버 IP를 재귀에 보냅니다.

루트 네임서버는 도메인 계층의 맨 위에 있습니다. 재귀 해석기는 루트 서버에 요청을 발송하는 방법을 모릅니다.

이 때문에 모든 재귀 확인자에는 구성된 13개의 IP 루트 서버 주소 목록이 있습니다. DNS 조회가 발생할 때마다 재귀 확인자의 첫 번째 통신은 해당 13개 주소 중 하나와 이루어집니다.

DNS 도메인 수준 계층
netnod의 이미지

전 세계적으로 1300개 이상의 루트 서버가 있으며 12개의 다른 조직에서 운영하고 있습니다. 그러나 이 13개의 숫자 주소로만 액세스할 수 있습니다.

루트 서버 IP 주소는 13개뿐이므로 주어진 시간에 단일 위치에서 13개의 루트 네임서버만 볼 수 있습니다.

TLD 네임서버

최상위 도메인 이름 서버는 공통 확장자를 공유하는 모든 도메인 이름의 정보를 유지 관리합니다. IP 주소를 찾는 두 번째 단계입니다.

그 후, TLD 서버는 DNS 재귀로부터 수신된 도메인 이름( google.com )을 확인하고 적절한 권한 있는 이름 서버를 검색합니다 .

google.com에 대한 권한 있는 서버를 찾은 후 해당 IP 주소를 DNS 재귀로 다시 보냅니다.

최상위 도메인

다양한 종류의 TLD가 있으며 그 중 일부는 다음과 같습니다.

  • gTLD – 일반 TLD(.com, .net, .org 등)
  • ccTLD – 국가 코드 TLD(.in, .us, .uk 등)
  • sTLD – 후원 TLD(.edu, .gov 등)

권한 있는 네임서버

권한 있는 네임서버에는 특정 도메인에 대한 정보가 포함되어 있습니다. 그리고 DNS 쿼리 여정의 마지막 정거장입니다.

권한이 있는 서버는 웹사이트가 호스팅되는 서버의 IP 주소가 포함된 도메인의 A 레코드 ('주소' 레코드를 나타냄)를 요청합니다.

요청된 도메인 레코드에 대한 정보가 있는 경우 해당 IP 주소를 반복자에게 반환하고 요청한 클라이언트에 이를 추가로 반환합니다.

결론

도메인 이름 시스템은 인터넷의 중요한 측면 중 하나입니다. 인터넷에 연결하는 첫 번째 단계입니다. 인터넷이 사용자 친화적일 뿐만 아니라 요청된 콘텐츠를 효율적으로 로드하는 데 도움이 됩니다.

DNS가 없다면 수많은 웹사이트가 있는 인터넷 세상에서 살아가는 우리 모두에게 큰 부담이 될 것입니다.