3. DNS란?

2022. 5. 12. 15:59지식정리

DNS란?

DNS?

  • DNS : Domain Name System
  • (사람이 알기쉬운)domain name을 입력하면 (웹브라우저가 이해하는)IP 주소로 바꿔주는 시스템
  • 사람이 일일이 IP주소를 외우지 않아도 된다.
    • IPv6 예시 : 2400:cb00:2048:1::c629:d7a2 .
    • IPv4 야 어느정도 외울수 있지만, 자주가는 사이트를 DNS없이 IP주소만으로 모두 접근 가능한 사람이 얼마나 있을까?
  • 인터넷의 전화번호부
      쿄촌키친 : 02-4124-**** 에서
      쿄촌키친을 Domain name
      02-4124-****를 IP 주소에 대응 시켜도 무리 없다
     google.com 으로 ping 을 날렸을 때
       Domain name : Google.com 
            주소의 이름. 사람이 읽기 쉬운 사이트 정보
       IP(Internet Protocol) Address : 172.217.26.238
            IP 주소. web browser가 다루는 사이트의 주소

DNS는 어떻게 동작하는가?

  • hostname을 IP 주소로 변환
    • www.example.com -> 192.168.1.1
    • 사람에 친숙 -> 컴퓨터에 친숙
    • 사족) 고급 프로그래밍 언어 -> 컴파일러 -> 기계어 와 비슷하지 않은가?
  • 사용자가 web browser에 hostname을 치면 웹 브라우저에서 DNS를 통해 IP 주소로 변환해서 해당 사이트의 웹 페이지를 가져온다.
  • 요청한 곳과의 상호작용 없이 DNS lookup이 발생하는 때가 있다.(웹 페이지 로딩 관련) 4 DNS servers
  • DNS recursor - 도서관 사서(책을 찾으면 어디있는지 찾아줌)
    • Client <-> DNS nameserver 사이 broker 역할
    • client(웹 브라우저)에서 온 DNS query를 받고
      1. cache data로 응답하거나
      2. 요청을 Root nameserver로 보내고 응답 받고,
      3. TLD nameserver로 보내고 받고,
      4. 마지막으로 Authoritative nameserver로 보내고 받는다.
        1. 이때 받은 정보를 캐싱함. 나중에 같은 요청이 들어오면 캐시를 클라이언트에 전달
      5. 마지막 응답을 클라이언트에 보냄
  • Root nameserver
    • 사람이 읽을수 있는 host name을 ip 주소로
    • DNS recursor의 쿼리를 수용(domain name 포함)
    • 도메인의 확장자(.com, .net, .org등)에 따라 DNS recursor를 TLD nameserer에 보내 응답.
  • TLD nameserver (Top Level Domain nameserver)
    • 일반적인 도메인확장자(.com)로 끝나는 모든 웹사이트의 정보를 갖고 있다.
    • 종류
      1. 일반 최상위 도메인 : .com .org 등
      2. 국가 코드 최상위 도메인 : 국가/주 와 관련(.uk .us .ru .jp)
      3. .arpa 도메인 : 과도기적 도메인
    • 특정한 IP address를 찾는
  • Authoritative nameserver
    • 도메인 이름에 고유한 정보를 포함
    • DNS-A record에서 찾은 도메인 IP주소를 DNS recursor에 제공
    • CNAME record (별칭) 있는 경우 별칭 도메인 제공

DNS Lookup 과정

  1. 사용자가 example.com을 브라우저에 치면 query가 DNS recursive resolver에 도착한다
  2. resolver는 DNS root nameserver에 query를 날린다(.)
  3. root name server는 TLD DNS server의 주소를 응답한다.
  4. resolver는 .com TLD에 요청을 보낸다
  5. TLD server는 domain nameserver(example.com 관한)의 IP 주소를 응답한다.
  6. resolver는 domain name server에 질의를 보낸다
  7. name server에서는 resolver에 example.com의 IP 주소로 응답한다.
  8. resolver는 web browser에 요청 받았던 domain의 IP 주소와 함께 응답한다.DNS CNAME record란?
  • canoical name record
    • canonical - 표준적인, 인가된, 일반적인
  • domain/subdomain이 다른 domain의 별칭으로 쓰일때 A record 대신에 쓰임
  • 모든 CNAME은 도메인을 가리켜야함(IP 주소 절대 아님)
  • A.com 이 CNAME으로 B.com 을 가지고 있다면, DNS server에서 DNS record를 찾아도 다시 B.com을 DNS lookup 해서 A record가 있는 B.com를 찾는다. 그래서 A.com 이 일반적이지 않은 별칭이기 때문에 canonical name (일반 이름) 인 것이다
  • DNS server에서 A.com ip adress를 찾으면, CNAME이 있어도 해당 ip에 접속한다.
  • 제약 사항 : MX(mail exchange)/NS(name server) record는 CNAME을 지정할 수 없고 A record(IPv4) / AAAA record(IPv6)를 지정해야한다.

to be finished(A record)

'지식정리' 카테고리의 다른 글

5. Domain name이란?  (0) 2022.05.13
4. Web Hosting이란?  (0) 2022.05.12
2. HTTP란?  (0) 2022.05.12
1. 인터넷은 어떻게 돌아가는가?  (0) 2022.05.12
0. backend roadmap study  (0) 2022.05.12