Doctor Pepper

DNS(Domian Name System) 본문

자격증/CCNA

DNS(Domian Name System)

Doctor Pepper 2024. 10. 18. 16:02

 

1. DNS

 웹사이트를 이용할 때, 사용자는 URL을 통해 접속하는 것이 일반적이다. 예를 들어, 브라우저의 주소창에 URL을 입력하거나 특정 URL이 설정된 링크를 클릭하여 웹사이트에 접근한다. 웹사이트에 접속하면, 해당 웹사이트의 데이터(HTML, 이미지, 오디오 등)를 서버에서 가져와야 한다. 이 서버는 인터넷 상의 네트워크 어딘가에 위치하며, 네트워크 상의 단말기에 액세스하기 위해서는 목적지 IP 주소를 지정해야 한다.

 

 그러나 무수히 많은 웹 서버에 액세스하기 위해 필요한 IP 주소를 기억하는 것은 어렵고, 숫자로만 구성된 IP 주소를 사용하는 것은 사용자에게 불편함을 줄 수 있다. 이러한 문제를 해결하기 위해 DNS(Domain Name System), 즉 도메인 이름 해석 프로토콜이 등장했다.

 

 DNS는 인터넷에서 도메인 이름을 IP 주소로 변환하는 시스템이다. 사용자는 웹사이트에 접속하기 위해 기억하기 쉬운 도메인 이름을 입력하지만, 컴퓨터는 IP 주소(예: 192.0.2.1)를 통해 서로 통신한다. DNS는 이 변환 과정을 자동으로 처리하여 사용자와 컴퓨터 간의 원활한 소통을 가능하게 한다.

 

 결론적으로, DNS는 사용자가 친숙한 도메인 이름을 통해 쉽게 웹사이트에 접근할 수 있도록 도와주는 중요한 역할을 하며, 복잡한 IP 주소 대신 쉽게 기억할 수 있는 문자열로 웹 서버와의 통신을 가능하게 한다.

 

 - 정방향과 역방향

 DNS는 IP 주소와 도메인 이름을 연결하여 기록하고, 사용자가 요청할 경우 저장된 정보를 반환한다. 예를 들어, 특정 도메인 이름이나 호스트 이름에 대한 요청이 들어오면, 그에 연결된 IP 주소를 반환하는 과정을 정방향이라고 한다. 반면, IP 주소에 대한 요청이 들어올 경우, 해당 IP 주소에 연결된 호스트 이름을 반환하는 과정을 역방향이라고 한다.

도메인 인터넷에서 컴퓨터나 네트워크를 식별하기 위해 사용되는 고유한 주소 체계임
일반적으로 웹사이트 주소에서 최상위 도메인(TLD) 부분을 의미
.com, .net, .org
도메인 이름 특정 도메인 내에서 자원을 식별하기 위해 사용되는 이름으로, 사용자가 쉽게 기억할 수 있도록 구성된 인터넷 주소 체계 google.com,
example.org
호스트 이름 네트워크 내에서 컴퓨터나 장치를 식별하는 고유한 이름으로, 도메인 이름 앞에 위치하며 특정 서버나 자원을 나타냄 www, mail. ftp
FQDN 완전한 도메인 이름(Fully Qualified Domain Name)으로, 호스트 이름과 도메인 이름이 결합되어 네트워크 상의 특정 장치를 유일하게 식별하는 전체 이름 www.google.com
mail.example.org 

 

 

2. 도메인 계층 구조

도메인은 계층적 구조로 되어 있으며, 루트 도메인을 정점으로 TLD(Top Level Domain), 2LD(2nd Level Domain), 3LD(3rd Level Domain)로 차례로 이어진다. 이를 도메인 트리라고 부르며, 트리의 구조처럼 아래로 퍼져나가는 형식을 취한다.

  1. 루트 도메인: 계층 구조의 최상위에 위치하며, 일반적으로 빈 문자열로 표시된다. 루트 도메인은 모든 도메인의 시작점을 나타내며, 보통 "."(닷)으로 표현되지만, 사용자들이 URL을 입력할 때는 생략된다.
  2. TLD (Top Level Domain): 루트 도메인 바로 아래에 위치하며, 대표적인 TLD로는 com, net, org, kr 등이 있다. 이들은 국가, 조직, 또는 특정 목적에 따라 도메인을 분류하는 역할을 한다.
  3. 2LD (Second Level Domain): TLD 아래에 위치하며, 각 나라나 조직에 따라 관리된다. 예를 들어, co.kr 또는 go.kr 같은 형태로 나타낸다. 2LD는 특정 도메인의 상위 관리 구조를 나타낸다.
  4. 3LD (Third Level Domain): 2LD 아래에 위치하며, 일반적으로 개별 기관이나 웹사이트의 이름을 포함한다. 예를 들어, example.co.kr에서 example이 3LD에 해당한다.

 도메인의 계층 구조는 전 세계에 존재하는 수많은 도메인을 효율적으로 분산 관리할 수 있도록 설계되었다. 이 구조 덕분에 모든 도메인을 한곳에서 관리할 필요 없이, TLD2LD 수준에서 분산하여 관리할 수 있다.

 

3. DNS 원리

DNS의 해석하는 과정은 다음과 같다.

  1. 사용자 요청: 사용자가 웹 브라우저에 도메인 이름을 입력하면, 컴퓨터는 DNS 해석을 시작합니다. 이때, 도메인 이름을 IP 주소로 변환하기 위한 첫 단계가 시작됩니다.
  2. 리졸버 확인: 먼저 로컬에 저장된 리졸버(Resolver), 즉 컴퓨터의 로컬 DNS 캐시에서 해당 도메인 이름의 IP 주소가 저장되어 있는지 확인합니다. 캐시에 정보가 있다면, 해당 IP 주소를 사용하여 웹사이트에 연결하고, DNS 쿼리 과정은 종료됩니다.
  3. 루트 네임 서버 쿼리: 로컬 캐시에 정보가 없을 경우, 리졸버는 루트 네임 서버에 쿼리를 보냅니다. 루트 네임 서버는 요청한 도메인의 최상위 레벨 도메인(TLD)에 대한 정보를 반환하여, 해당 도메인의 TLD 네임 서버로 쿼리가 전달될 수 있도록 합니다.
  4. TLD 네임 서버 쿼리: 리졸버는 루트 네임 서버가 반환한 정보를 이용하여 TLD 네임 서버에 쿼리를 보냅니다. TLD 네임 서버는 요청한 도메인 이름에 대한 권한 있는 네임 서버의 주소를 반환합니다.
  5. 권한 있는 네임 서버 쿼리: 권한 있는 네임 서버의 주소를 받은 리졸버는 해당 서버에 최종 쿼리를 보내어, 요청한 도메인 이름의 IP 주소를 요청합니다.
  6. IP 주소 반환: 권한 있는 네임 서버는 도메인 이름에 대한 IP 주소를 리졸버에 반환합니다. 리졸버는 이 IP 주소를 사용자 컴퓨터에 전달하며, 해당 정보는 로컬 캐시에 저장되어 이후의 요청에서 재사용될 수 있습니다.
  7. 웹사이트 접속: 최종적으로 사용자의 컴퓨터는 반환된 IP 주소를 사용하여 요청한 웹사이트의 서버에 접속합니다. 이 과정을 통해 사용자는 도메인 이름을 입력하여 웹사이트에 접속할 수 있습니다.
리졸버 도메인 이름을 IP 주소로 변환하기 위한 DNS 쿼리를 처리하는 중개자 역할을 함.
사용자 요청을 받아 DNS 서버와 상호작용하여 필요한 정보를 반환함.
- 재귀적 리졸버(Recursive Resolver): 모든 쿼리를 처리하고 최종 결과(IP 주소)를 반환할 때까지 DNS 서버와 상호작용함.
- 반복적 리졸버(Iterative Resolver): 각 DNS 서버에서 바로 답을 찾지 못하면 다음 서버로 직접 쿼리함.
DNS 서버와의 상호작용을 대신 수행해 주어, 사용자가 도메인 이름으로 쉽게 웹사이트에 접근할 수 있게 도와줍니다.