[Network] DNS

nero_luv03·2020년 12월 10일
0

CS

목록 보기
5/11

오늘은 DNS에 대해서 알아보겠습니다.

웹의 기본 동작 원리

DNS가 웹의 기본 동작과도 연관이 있어서 웹 브라우저 사용시 예를 들어 설명해보겠습니다.

보통 사용자와 웹 브라우저가 클라이언트가 되어 서버에 서비스를 요청(request)하고, 서버는 해당 요청에 대해 응답(response)하여 서비스를 제공해주고 클라이언트가 결과를 출력하는 것이 웹의 기본동작원리입니다.

그리고 우리는 주소창에 원하는 브라우저 도메인 이름을 치면 직접 검색할수도있습니다. 바로 이렇게 말이죠. 제가 브라우저에 www.naver.com을 치게되면

이렇게 네이버 처음 화면이 뜨게 될 것 입니다. 이 과정에서 오늘의 발표주제인 DNS가 안에 스며들어있었습니다.

DNS?

DNS란 도메인 네임 시스템의 약자로 아까 도메인 이름을 치고 리퀘스트를 보낸 것만으로 처리가 힘들기 때문에 여기서 DNS가 호스트의 IP주소로 변환하거나 그 반대의 변환을 수행합니다.

💡 인터넷상에서 서버를 식별하는 기준은 IP 주소이고, 내가 어떤 사이트를 들어갈지도 모르는데 그 여러 사이트들의 IP주소를 직접 외우고 다니기란 쉽지 않기 때문입니다.

DNS 서버?

DNS 서버는 아까 설명했듯이 사용자가 도메인 이름을 브라우저에 입력하면, 이름에 대한 요청을 IP 주소로 변환합니다. 쉽게 말하자면 우리가 인터넷을 편리하게 쓰게 해주는 것으로, 영문/한글 주소를 IP 네트워크에서 찾아갈 수 있는 IP로 변환해주는 것 입니다.



그럼 이제 이렇게 변환을 해주는 건 알겠는데 DNS가 어떻게 동작할까요?



DNS의 동작방법

  1. 사용자는 먼저 도메인 이름을 통해 웹사이트에 접속 요청을 보냅니다

  2. DNS 서버에서 해당 도메인 이름에 연결된 IP 주소로 응답을 보냅니다.

  1. 다시 사용자 컴퓨터는 해당 IP 주소로 데이터 요청을 하고 실제 데이터 처리를 하는 서버에서 데이터를 응답 받게 됩니다.

이 과정은 DNS의 동작원리를 간단하게 나타낸 것 입니다. 좀 더 구체화해보겠습니다.

  • 사용자가 노트북에서 브라우저에 www.naver.com를 입력합니다. 캐시 메모리와 hosts 파일을 통해 해당 도메인에 대한 정보가 있는지 확인을 하고 기존에 접속했다는 정보가 없다면, 클라이언트에서는 local DNS에 도메인에 대한 정보를 요청합니다.

  • 만약 그 정보가 local DNS에 존재하지 않을 경우, 다른 DNS 서버들과 통신(DNS 메시지)을 시작합니다. Root DNS 서버에 www.naver.com의 ip를 물어봅니다. 만약 root DNS에도 없다면 ip 주소를 찾을 수 없다며 다른 DNS 서버에 요청하라고 응답을 합니다

  • 그럼 이제 com 도메인을 관리하는 DNS 서버에게 물어보게되는데 local DNS 서버가 com 도메인을 관리하는 DNS 서버에 iP 주소를 요청합니다. 여기서도 찾을 수 없다면 naver.com 도메인을 관리하는 DNS서버입니다.

  • 이제 local 서버는 naver.com DNS 서버에 naver.com 의 ip 주소를 물어봅니다. naver.com DNS 서버에서는 local DNS 서버에 IP 정보를 사용자 PC에 알려줍니다. 이를 local DNS에서는ip 주소를 바탕으로 다시 요청을 하여 원하는 사이트가 나올 수 있습니다.

결론 !!

local DNS에선 Local 안에서 한번 확인했다가 없으면 root DNS에게 물어보고 roo DNS에서 com 네임서버의 ip 주소를 local로 보냅니다. Local 로 다시 왔을 땐 응답받은 com 네임서버로 naver.com을 보내게됩니다.

profile
iOS developer

0개의 댓글