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주소만으로 모두 접근 가능한 사람이 얼마나 있을까?
- IPv6 예시 :
- 인터넷의 전화번호부
쿄촌키친 : 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를 받고
- cache data로 응답하거나
- 요청을 Root nameserver로 보내고 응답 받고,
- TLD nameserver로 보내고 받고,
- 마지막으로 Authoritative nameserver로 보내고 받는다.
- 이때 받은 정보를 캐싱함. 나중에 같은 요청이 들어오면 캐시를 클라이언트에 전달
- 마지막 응답을 클라이언트에 보냄
- Root nameserver
- 사람이 읽을수 있는 host name을 ip 주소로
- DNS recursor의 쿼리를 수용(domain name 포함)
- 도메인의 확장자(.com, .net, .org등)에 따라 DNS recursor를 TLD nameserer에 보내 응답.
- TLD nameserver (Top Level Domain nameserver)
- 일반적인 도메인확장자(.com)로 끝나는 모든 웹사이트의 정보를 갖고 있다.
- 종류
- 일반 최상위 도메인 :
.com .org 등
- 국가 코드 최상위 도메인 : 국가/주 와 관련(
.uk .us .ru .jp
) - .arpa 도메인 : 과도기적 도메인
- 일반 최상위 도메인 :
- 특정한 IP address를 찾는
- Authoritative nameserver
- 도메인 이름에 고유한 정보를 포함
- DNS-A record에서 찾은 도메인 IP주소를 DNS recursor에 제공
- CNAME record (별칭) 있는 경우 별칭 도메인 제공
DNS Lookup 과정
- 사용자가 example.com을 브라우저에 치면 query가 DNS recursive resolver에 도착한다
- resolver는 DNS root nameserver에 query를 날린다(.)
- root name server는 TLD DNS server의 주소를 응답한다.
- resolver는 .com TLD에 요청을 보낸다
- TLD server는 domain nameserver(example.com 관한)의 IP 주소를 응답한다.
- resolver는 domain name server에 질의를 보낸다
- name server에서는 resolver에 example.com의 IP 주소로 응답한다.
- 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 |