코이팅

DNS란? 본문

CS

DNS란?

코이팅 2022. 7. 27. 09:12
728x90
반응형

1. DNS의 정의

'Domain Name System' 의 약자로 도메인에 관련된 시스템입니다. 쉽게 말해서 도메인들이 모여져 있는 곳이 DNS입니다.

웹사이트에 적속하려고하면 컴퓨터에 있는 브라우저가 그 사이트를 제공하는 서버에 요청해서 데이터를 받아와야 하는데 그러려면 그 서버의 IP주소를 알아야합니다. 

사이트마다 서버의 IP주소를 다 외울 수 없으니 외우기 쉬운 도메인을 사용하는 것입니다. 전화번호부 같은 것이라고 생각하면 됩니다. 다층적으로 구성된 네트워크에 분산되서 도메인들 정보들이 저장되고 조회됩니다.

 

 

www.naver.com에  에 접속하려고하면 ip주소를 모르기 때문에 브라우저는 먼저 pc에 설정된 로컬 DNS 서버에 

해당 도메인과 호스트명의 IP를 갖고있는지 물어봄. 이로컬 DNS는 보통 통신사마다 지정된 곳이 있음.

사용자가 다른 곳으로 바꿀 수 있음. 이 주소의 정보가 이미 캐싱되어 있을 수도 있고 없을 수도 있음.

 

 

 

 

만약에 없다면 로컬 DNS는 Root DNS서버에다가 이 주소에 해당하는 IP를 어디서 찾을 수 있는지 물어본다.

루트 DNS서는 응답으로 .com으로 끝나는 도메인들을담당하는 서버의 IP주소를 반환함.

로컬DNS서버는 이 주소를 받아들고 .com 담당으로 찾아감.

 

.com 담당 서버는 이번에는 naver.com의 도메인 정보를 가진 이 DNS 서버의 IP주소를 반환한다.

 

마지막으로 naver.com을 찾아가보면 anver.com의 여러 호스트별 ip주소들이 있다.

여기로부터 www에 해당하는 ip주소를 얻어낸 다음 브라우저에게 반환하고 비로소 www.naver.com의  의 서버로 

접속하게 되는 것.

 

DNS서버들에 문제가 생기면 먹통이 됨. 정확히는 전화번호를 쓸 수 없어서 도메인을 사용한 접속만 불가능해 지는 것

이지만 IP주소로 직접 접속하는 걸 막아놓은 사이트들은 아예 안된다.

 

DNS는 해커들의 공격 대상이 됨. 사용자컴퓨터가 DNS에 IP물어보는 것을 가로채다가 자기들이 만들어놓은 엉뚱한 가짜 사이트 IP를 알려줘서 거기로 접속하도록 유도할 수 있음. 전화번호부를 조작해서 보이스피싱하는 번호로

걸게하는 것과 같음. 이런거를 DSN 스푸핑이라고 함.

 

로컬 DNS는 일반적으로 통신 사이트 것으로 세팅되어있는데 이걸 수정하는건 정부에서 막아놓은 사이트에 접속하거나

국가검열받은 전화번호부 대신 외국거를 쓴다는 것. 또는 특정 서비스를 보다 빠르게 사용하기 위함이다.

예를들어 윈도우에서 기본DNS를 구글DNS 서버주소인 8.8.8.8로 설정하면 유튜브 등 구글에서 제공하는 서비스를

보다 빠르고 쾌적하게 이용할 수 있음. 대신 다른 서비스들은 느려질 수 있으니 조심해야함.

 

A Record vs. CNAME

 

Arecord는 도메인을 서버의 ip로 직접 연결하는 것 이 방식은 ip로의 직통연결이라 접속이 빠르다는 장점이 있다.

cname은 도메인을 별명과 연결하는 것. ip가 유동적으로 변화는 서버의 경우 그 바뀌는 ip들에 일정하게 연결된 다른

도메인 즉 canonical name을 적는다는 것. AWS나 Firebase같은 것 쓸 때 사용되는 것. ip가 유동적인 서버를 사용하는데 도움이 되지만 한군데를 더 거친다는 것이 단점이다.

 

728x90
반응형

'CS' 카테고리의 다른 글

JWT(Json Web Token)란?  (0) 2023.01.14
Spring Security란  (0) 2023.01.14
컴퓨터의 구성  (0) 2023.01.05
객체 지향 프로그래밍(Object-Oriented Programming, OOP)의 개념과 4가지 특징  (0) 2023.01.05
서버(Server)란?  (0) 2022.07.27
Comments