DNS에 대해

송은혜·2022년 3월 23일
0

내가 이해한대로

목록 보기
8/12

DNS

클라이언트가 어떤 서버에 접속을 하기 위해서는 해당 서버의 IP주소를 알아야한다.

반대로, 서버도 클라이언트에게 응답을 해주기 위해서는 클라이언트의 IP주소를 알아야한다.

하지만, IP주소는 각각의 IP마다 일일히 외우기도 어렵고 여기가 여기가 맞나? 싶을 정도로 헷갈릴 것이다. 또한 서버측에서 본인들의 사이트를 알리는 예쁜 이름을 쓰고싶기도 했을 것이다.

그런 니즈들에 의해 생긴 것이 도메인이다.

도메인을 알기위해서는 host에 대해 간단히 아는 것이 좋다.


  • host에 대하여

각각의 인터넷에 연결된 컴퓨터를 host 라고 하며 모든 운영체제에는 hosts라는 파일이 있다.

  • hosts 파일

파일안에 어떤 도메인이름과 IP주소값을 매칭시켜 입력해놓으면, 해당 도메인명을 주소창에 검색했을 때 , 내가 매칭시켜놓은 IP주소로 이동을 시켜준다.

  • ✅hosts 파일은 정말 중요합니다✅

    어떤 나쁜 해커가 이 hosts 파일을 해킹하고 , 내가 자주 들어가는 도메인의 IP주소를 덧을 설치한 IP주소로 바꿔놓으면 , 아무것도 모르는 나는 평소처럼 도메인주소를 입력하고 사이트에 접속을 한다. → 탈탈 털리게됨

    은행사이트처럼 돈이 오가거나 중요한 정보들이 오고가는 사이트의 프론트 부분을 똑같이 구상해서 IP주소를 바꿔놓으면 사용자들은 쉽게 알아차릴 수 없고, 평소처럼 정보를 이용하게 되고 ⇒ 탈탈 털리게 됨.

    이런 걸 피싱이라고 부른다.

    도메인 주소를 입력하여 사이트에 접속을 할거라면, https를 입력하면서 접속을 하면 어느정도 피싱을 예방할 수 있다.

    중요한 정보가 오고가는 사이트들은 왠만하면 다 https로 되어있다.


DNS는 어떻게 해서 생겨났을까요 ?

DNS가 있기전에 , Stanford Research Institute 라는 신뢰할 수 있는 기관이 있었습니다 .사용자들이 (서버) 자신의 IP주소에 어떠한 도메인 명을 매칭시키고 싶다고 요청을 하면 , SRI 에서 요청을 받아 매칭을 시켜주었습니다.

그런데 어떤 특별한 방법이 있었던 것이 아니라, SRI에서 가지고 있는 hosts파일에 요청받은 정보를 입력하고 , 저장해놓으면 클라이언트사용자들이 해당 hosts파일 다운로드 받아 이용하는 방식이였습니다.

이 방법이 얼마나 비효율적이였냐면, 사람이 일일히 수작업으로 등록을 했었다고합니다. 그리고 하나의 파일에 수많은 정보들을 넣다보니 한계치가 찾아오게 될 수 밖에 없었습니다.

→누구하나가 총대메고 모든 사이트 주소를 파일 하나에 다 입력해서 저장하고 공유해주는 격.

1983년, SRI에서 근무를 하던 Jon postel 과 Paul Mockpoetris가 새로운 대안을 생각해내게 됩니다.

⇒ 이것이 바로 현재 우리가 사용하는 도메인입니다 !

DNS = Domain Name System

DNS서버는 정말 많고 , 서로서로 협력하며 사용자들의 접속을 돕고 있습니다.

중요한 달라진 점은

  • 사용자들이 인터넷 환경에 연결이 되면 , 자동으로 DNS서버의 IP가 셋팅이 됩니다.(DHCP원리입니다.) ⇒ hosts 파일을 일일히 다운로드하지 않아도 되게됨

  • 서버측 사용자들이 도메인주소를 요청하면, 자동화가 된 시스템이 알아서 등록을 해줍니다. ⇒ 수작업으로 하지 않아도 되게 됨 ㅜ 간소화 신속화가 되어 효율성이 배로 증가.

  • 클라이언트쪽에서 어떤 도메인에 접속을 할때, 컴퓨터는 먼저 hosts 파일을 훑어보고 정보가 없다면 DNS에게 요청을 하게 됩니다.

  • hosts라는 내 컴퓨터 안에 저장된 하나의 파일이 아닌, 서버를 통해 host의 이름을 서비스하고 있기때문에 클라이언트들은 어떤 서버의 IP가 변경되거나, 수정되거나 다른 도메인이 새로 등록되거나 했을때 , 즉각 변경된 서비스를 이용할 수 있다.

    ⇒네트워크에 연결되어있고, 바로바로 정보가 오고가기 때문에가능

  • DNS서버는 도메인조회요청이 들어오면 , 여러서버에게 요청을 보내고 최종적으로 사용자에게 결과를 응답준다. 이러한 과정이 결코 쉽고 짧은 것이 아니기때문에 DNS는 한 번들어온 도메인 요청을 캐시를 통해 기억하고, 다음번에 같은 주소 요청이 왔을때 자신이 캐시에 저장해놓은 내용을 꺼내서 응답해준다.

    ⇒ 캐시를 사용하므로써 효율성이 증가.


이전에는 요청도 전화해서 말하고.. 평일에만 요청이 가능했다고 함.. 사람들이 주말에는 쉬니까 ... ㅎ



public DNS

위에서 인터넷 연결이 되면 DNS가 자동으로 연결이 된다고 했습니다.

생활에서 우리가 보통 인터넷을 연결한다고 하면, 통신사같은 (ISP) 곳에서 망을 받아 사용을 하고 있을 텐데, 이 ISP에서는 자동으로 어떠한 DNS의 IP를 자동으로 셋팅시켜주는 메커니즘을 가지고 있습니다.

통신사들이 DNS서버를 제공하고 연결해주기 때문에 통신사는 우리가 접속하는 사이트에 대한 정보를 알고, 저장할 수 있습니다.

그리고 그 정보를 이용해서 우리에게 마케팅을 시도할 수 있고 , 다른 정보기관에 제공을 할 수도 있고, 우리가 접속한 사이트의 목록이 유출될 수도 있습니다.

그렇기에 내 개인정보를 정말 보호하고 싶거나 , 통신사에서 제공하는 DNS서버가 내 니즈보다 느리거나 성능이 좋지 않다고 생각이 들때 사용할 수 있는 것이 public DNS입니다.

0개의 댓글