본문 바로가기
리눅스/Part3. Ch07. 네트워크 관리

03. DNS의 이해

by Engineer-Lee 2022. 12. 15.
반응형

DNS: Domain Name System 

- 필요성
   . 사용자 수준의 사이트 주소 -> fastcampus.co.kr
     저 수준의 네트워크 소프트웨어의 주소 -> 35.241.38.53
- 주요역할: 이름과 주소간의 매핑을 관리
- 구성
   . 계층 구조를 가지는 분산 데이터베이스 형태
   . 자신이 알고 있는 컴퓨터들에 대한 데이터를 저장하고 있는 사이트가 서로 협력해 데이터를 공유
- 일반적인 웹사이트 접속 시나리오
   . 사이트 이름을 입력 -> 웹 브라우저는 DNS resolver 라이브러리를 호출해 상응하는 주소를 검색 -> A 레코드를 위한
     쿼리를 만들어 네임서버에 요청 -> 네임 서버는 A 레코드를 반환 -> 브라우저는 IP 주소를 통해 타겟 호스트에 TCP 
     접속을 진행

 

DNS: Domain Name System

DNS 서버는 누가 공급???
  . 기존은 시스템 관리자가 직접 DNS 서버를 유지 관리 (내부용 도메인 관리)
  . 외부 지향 DNS 서버의 경우
-> 상용 ‘관리형’ DNS 공급자 중 하나를 이용 (Amazon Route53, Google Public DNS, CloudFlare, GoDaddy 등)


DNS 네임스페이스 

- 순방향 매핑과 역방향 매핑을 모두 포함하는 트리 구조로 구성
  . 순방향 매핑(forward mapping): 호스트명을 IP 주소 및 다른 레코드들로 매핑
  . 역방향 매핑(reverse mapping): IP 주소를 호스트명으로 매핑

 

 

DNS 동작 원리

- 전 세계의 네임 서버들은 쿼리에 응답하고자 서로 협력
  -> 재귀적인 도메인 조회
- 네임 서버가 수행하는 작업
  . 자기 사이트의 호스트명과 IP 주소에 관한 쿼리에 응답
  . 자신의 사용자들을 대신해 로컬 또는 원격 호스트에 관한 질의를 수행
  . 쿼리에 대한 응답을 캐싱
  . DNS 데이터를 동기화하고자 다른 로컬 네임서버들과 대화

 

DNS 데이터베이스에 질의 하는 도구

- nslookup, dig, host, drill, delv
  . nslookup, host 는 간단하고 출력이 보기 좋음
  . dig, drill은 구체적인 내용 제공

 

 

DNS 리소스 레코드

- 네임서버는 전 세계 DNS 시스템을 구성하는 분산 데이터베이스의 조각들을 한 개 이상 갖고 있음
  . 이 데이터베이스 조각은 각 호스트용 레코드를 포함하는 텍스트 파일로 구성
  -> 리소스 레코드

 


- 형식: [name] [ttl] [class] type data (예, fastcampus.co.kr. 103 IN A 35.241.38.53 )
. name 필드
  - 레코드가 묘사하고 있는 항목(호스트나 도메인)을 가리키는 식별자
  - 각 필드는 공백(탭이나 스페이스)로 분리되고, 특수문자(;,@,(),*) 포함 가능


. ttl 필드
  - 시간의 길이를 초 단위로 지정
  - 레코드가 캐싱되어 유효성이 인정되는 시간


. class 필드
  - 네트워크 타입을 지정 (인터넷을 의미하는 IN이 기본값)


. data 필드
  - 레코드 타입에 따라 다른 내용


. DNS 레코드 타입
  - SOA, NS, A, AAAA, MX, CNAME, SRV, TXT
  - A: IPv4 주소 (이름-주소 변환), CNAME: 정규 이름 (호스트의 별명이나 가명)

 

반응형