이론

[ WEB ] - DNS는 어떻게 작동하는가?

algml0703 2022. 6. 9. 08:19
반응형

DNS and how it works?

DNS ( Domain Name Server )

www.naver.com
www  HostName
naver.com  Domain

DNS란 도메인 이름을 IP 주소로 변환하여 주는 인터넷 서비스를 의미한다. 도메인명과 IP 주소를 매핑해 주는 거대한 분산 네이밍 시스템이다.

본래 IP 주소는 147.46.8.205와 같이 4바이트의 크기로 된 숫자 형태인데, 이는 컴퓨터가 인식하기에는 유용하지만 사용자는 기억하기 어렵고 직관성이 떨어진다는 단점이 있다. 때문에 사용자가 실제 사용시에는 숫자 형태로 된 주소를 naver.com이나 goole.com 과 같이 사람이 기억하기 쉽고 직관성이 높은 문자의 형태로 변환하여 사용하게 된다. naver.com이나 google.com과 같은 것을 DN(Domain Name)이라고 한다. 하지만 실제 인터넷 상의 통신을 하기 위해서는 IP주소가 필요하기 때문에 DNS가  문자 형태의 도메인을 다시 컴퓨터가 인식할 수 있는 IP 주소로 변환하여 주는 것이다.

naver.com -> 223.130.300.104
googole.com -> 172.217.174.110

인터넷 주소창에 위의 숫자로 된 주소를 입력 후 들어가면 각각 네이버 구글 사이트가 나오게 된다.  왼쪽에 문자 형태로 있는 것이 도메인 주소이고, 오른쪽에 숫자 형태로 존재하는 것이 ip 주소이다.

위와 같은 도메인 시스템은 사용자의 인터넷 사용의 편의를 위해서도 존재하지만, 웹사이트 관리자의 운영 편의를 위해서도 중요한 역할을 하게 된다. 숫자 형태로 된 ip 주소만으로 사이트를 운영시 해당 서버에 문제가 생겨 해당 ip를 변경하게 되면, 사용자에게 또 다시 새로운 ip 주소를 인식시켜야 한다. 하지만 도메인을 이용하여 서비스를 제공하게 되면 ip 주소가 변경되더라도 해당 도메인에 변경된 ip 주소만 할당하여 주기만 하면  된다. 또한 도메인에 여러 개의 ip를 할당함으로써 사용자들은 하나의 도메인에 접속하지만 요청은 각각의 서버로 전달되어 서버에 트래픽이 몰리는 것을 분산시키는 기능을 하여 사이트 관리자는 좀 더 안정적인 서버 운영이 가능하다.

위의 내용을 좀 풀어 설명하면 많은 트래픽이 몰릴 것이라 예상되는 도메인 a.com서비스가 있을 때, 개발자는 a 서비스에 대한 서버를 여러 개 둠으로써 트래픽이 몰려 서버가 터지는 것을 방지할 수 있다. 서버를 여러 개 둠으로써 각 서버에 대한 ip 주소가 생성되면, 이 생성된 ip 주소를  a.com 도메인에 할당함으로써 사용자들은 동일하게 a.com에 들어온다고 하더라도 요청은 분산 처리되게 된다.

DNS의 작동 원리

DNS 작동원리를 이해하기 위해서는 아래의 두 그림을 이해해야 한다.

 

사용자가 브라우저의 주소 표시줄에 www.naver.com을 입력하면, 사용자 컴퓨터의 네트워크 설정에 기본적으로 설정된 DNS로 해당 도메인에 대한 ip 요청을 하게 된다. ( 이때에 사용자가 요청하는 DNS는 Local DNS로 DNS를 중간에서 처리하는 Resolver )

* 맥 기준 - 본인의 DNS ip 확인
시스템 환경 설정 - 네트워크 - 고급 - DNS

내 컴퓨터의 경우 168.126.63.1과 168.126.63.2가 내가 특정 도메인에 대한 ip 요청시 접속하는 DNS의 ip 주소이다.

도메인에 대한 처리는 Root DNS에서 시작하여 도메인에 해당하는 ip를 찾을 때까지 하부로 내려가게 된다. 루트 DNS에 naver.com에 대한 요청을 하면 루트 DNS에서는 .com을 관리하는 DNS의 주소를 반환하여 준다. 그러면 해당 주소로 다시 naver.com에 대한 ip주소를 다시 요청하는 .com은 naver.com에 대한 ip를 관리하는 DNS의 주소를 반환하여 준다. resolver는 해당 주소로 다시 naver.com에 대한 ip 주소를 요청하고 마침내 naver.com을 관리하는 DNS는 해당하는 ip 주소를 resolver에게 반환하여 준다. resolver가 이를 사용자 컴퓨터로 반환하여 주면 사용자 컴퓨터는 반환된 ip로 자원을 요청하고, 해당 ip와 일치하는 서버는 사용자의 요청에 대해 웹페이지를 응답하여 준다. 이 과정은 단 몇초 사이에 일어난다.  

 

** DNS 스푸핑(spoofing)
ip주소를 요청에 대한 정보를 가로채 다른 사이트로의 접속을 유도하는 것.

출처

http://terms.tta.or.kr/dictionary/searchList.do

https://velog.io/@goban/DNS%EC%99%80-%EC%9E%91%EB%8F%99%EC%9B%90%EB%A6%AC

https://better-together.tistory.com/128

반응형