TIL 05 | DNS server

SammyJung·2021년 3월 13일
0


오늘은 생활코딩 WEB2 강의를 들으면서 배운 DNS서버 개념에 대해 정리 하려합니다.

Domain name server

도메인이란?

ip는 사람이 이해하고 기억하기 어렵기 때문에 이를 위해서 각 ip에 이름을 부여할 수 있게 했는데, 이것을 도메인이라고 한다.

opentutorials.org -> 115.68.24.88
naver.com -> 220.95.233.172
daum.net -> 114.108.157.19

IP란?

인터넷에 연결되어 있는 장치(컴퓨터, 스마트폰, 타블릿, 서버 등등)들은 각각의 장치를 식별할 수 있는 주소를 가지고 있는데 이를 ip라고 한다. 예) 115.68.24.88, 192.168.0.1

DNS서버가 만들어진 배경

수 많은IP주소를 기억하는 것의 어려움을 느낌
=> Jon Postel, Paul Mockpetris에 의해 domain name system이 만들어짐
DNS server 수많은 IP주소의 도메인 이름이 저장되도록 했다.

HOST: 인터넷에 연결된 하나 하나의 컴퓨터들

IP: 호스트와 호스트를 통신하기 위한 서로의 주소 (연결하여 통신이 가능하게 됨)

ex) PC 에서 www.icann.org를 웹브라우저 주소창에 입력하면, 운영체제가 사실은 DNS server에 접속하여 해당 페이지의 ip주소를 물어보고, DNS server가 ip 주소를 알려주어 접속하게되는 것!

hosts

모든 운영체제에는 hosts라는 파일이 있음- 그 파일이 해당 웹주소의 IP주소를 저장. hosts라는 파일의 역할로 DNS를 통하지 않고도 자주사용하는 사이트 나만의 사이트에 도메인 주소와 같은 호스트를 부여할 수 있다다.

hosts 파일을 악의적으로 변조 당하게 되면 악성웹으로 접속됨
https:// 의 s는 security 보안의 약자, 보안성을 갖춘 사이트 라는 것을 알 수 있다.

DNS(Domain Name Server)

DNS 서버에 자신의 IP와 주소를 등록 요청=> DNS 서버에서 기억하고 있다. 개인 PC에 인터넷이 연결이 되면 DNS 서버의 IP주소가 자동으로 셋팅 된다.
(서버를 운영하는 것이 아니라 클라이언트로 도메인을 사용할 때)
개인 pc에서 웹 주소로 접속하려하면 hosts 파일에서 찾고 그다음 DNS 서버에 접속해서 요청하면 기억하고 있는 IP주소를 응답한다.
파일이 아니라 서버에서 도메인을 관리함으로써 IP주소 수정추가삭제 되면 변경내용 반영을 바로 할 수 있게 되었다.

public DNS

ISP(kt,sk등 인터넷서비스provider)에서 인터넷을 연결 하자마자 바로 DNS 서버의 ip를 자동으로 셋팅하는 메커니즘을 가지고 있다.
그런데 접속했던 사이트의 목록 등 노출이 될 수 보안에 위험이 있다. 그래서 안전하게 DNS 서버에 접근하고싶으면 public dns server라고 검색하면 dns 서비스를 제공하는 곳들을 볼 수 있음. ex) google public DNS Server를 개인 PC의 dns로 설정할 수 있다다

DNS Internal

도메인의 주소 맨끝에는 . 이 생략되어있음
.(맨끝에점) root 도메인(최상위 도메인) top-level 도메인
그 밑에 second level 도메인 그다음 아래있는 sub 도메인.

도메인 각각의 부분들은 각각의 부분마다 담당하는 독자적인 서버 컴퓨터가 존재한다
- 이미지 출처 생활코딩 https://opentutorials.org/module/3421/20303

상위가 직속 하위부분에 대한 목록과 ip 주소를 알고 있음
root 서버의 ip는 알고 있고 제일 먼저 root 서버에 요청 => top-level 서버에 com에 해당하는 ip목록을 알려줌 =>하위 서버로 반복하는 계층적으로 알려주는 체계 => 마지막에 sub서버 에서 최종 ip를 알수 있게되는 구조임 (전세계에서 접속할 수 있도록한다.)

Domain name 등록과정과 원리

  • ICANN 비영리 단체 root name server(ex) a.root-server.net)들의 관리자 a~m까지 13분류의 컴퓨터들이 root서버로 동작하고 있음
  • registry(등록소) top-level domain(ex) a gtld-servers.net)
  • register (등록대행사)- 도메인이 이미 있다면 수수료를 지불하고 등록

    example A (a는 address의 약자) 최종적인 ip 주소란 뜻에서 a를 씀 // top -level과 root 서버는 ns (name server) 방식으로 전달하여 이름을 아는 방식

과정이 복잡해서 처음에는 이해가 되지 않았는데 여러번 보다보니 이해가 되었다.

recode 타입

: 정보 한건 한건을 레코드라 하고. 레코드의 타입을 ns 타입, a(주소)타입이라 할 수 있다.

터미널에서 nslookup명령어를 통해 메인서버주소와 ip주소를 조회할 수 있다
nslookup type=ns example.com 레코드타입이 ns인 메인 서버주소를 조회
nslookup type=a example.com 레코드타입이 a인 ip주소를 조회

ns타입: 어떤 도메인에 대한 처리를 다른 도메인 ns서버에 위임하는 기능을 가지고 있는 타입

cname

cname(canonical) 별명을 붙인다라는 뜻을 가지고 있다.도메인에 또 다른 도메인을 지정하는 것.

사이트를 가리키는 또 다른 주소의 사이트 들이 여러개 라면 그 때마다 ip주소를 자주 바꿔야 한다면 a 타입이 불편함이 있다.
cname을 통해서 여러개의 사이트들이 한개의 웹주소를 지정하고 있다면 a레코드의 ip주소가 바뀌면 나머지cname으로 지정된 도메인들은 변경하지 않아도 지정이 된다.

cache

캐시를 통해 이전에 기억하고 있던 ip 주소로 바로 접근할 수 있는 것(매번 root서버를 통하지 않고)

캐시 지속시간을 늘리면 접속 하는 시간이 빨라지지만 IP주소가 바뀌면 바뀐ip주소 변경에 시간이 걸리기 때문에 오히려 늦어질수 있음.
그래서 ip주소가 자주 바뀔 예정이라면 캐시 지속시간을 짧게 잡아야한다.

profile
안녕하세요! 프론트엔드 개발자 새미입니다:D

0개의 댓글