[Backend] DNS와 작동원리

Updated:

📡 DNS는 무엇일까?

한 단어로 정리하자면 전화번호부 라고 할 수 있다. 우리는 전화를 걸 때 전화번호부에서 이름을 찾는다.

숫자로 이루어진 번호보다 기억하기 쉽기 때문이다. 인터넷 주소도 마찬가지이다.

숫자로 이루어진 IP 를 기억하기 쉬운 www.google.com 처럼 기억하는게 DNS (Domain Name System) 이다.

📍 DNS 서버

전 세계에는 수 많은 도메인이 있다. 이 DNS 정보를 한 곳에 모아둔다면 검색하는데 아주 긴 시간이 걸릴 것 이다.

또 수 많은 사람이 같은 주소를 입력한다면 응답이 늦어질 것 이다. 때문에 여러 곳에 분산시켜 저장하고 서로 통신을 통해 갱신한다.

두 명의 사람이 동시에 같은 주소를 입력하면 서로 다른 DNS 서버에 요청을 할 가능성이 아주 높다.

⚙️ DNS 작동 원리

  1. 브라우저에 www.google.com 을 입력한다.
  2. Local DNS 에 정보가 없다면 전 세계에 13대 밖에 없는 Root DNS 서버에 정보를 요청한다.
  3. Root DNS 서버는 com 도메인을 관리하는 DNS 서버에 대한 정보를 Local DNS 에 넘겨준다.
  4. com DNS 서버는 google.com 도메인을 관리하는 DNS 서버에 대한 정보를 Local DNS 에 넘겨준다.
  5. google.com 도메인을 관리하는 DNS 서버가 www.google.com 의 IP 주소를 Local DNS 서버에 알려준다.
  6. Local DNS 서버는 사용자가 다음에 또 물어 볼 경우를 대비해 정보를 저장 한 뒤 PC 에 정보를 전달한다.

💻 Local DNS

Local DNS 는 우리가 가장 먼저 정보를 물어보는 DNS 서버이다.

이 서버의 주소는 ISP 가 정해준다. 나의 ISP 는 KT 이다.

따라서 KT 가 사용하는 DNS 서버인 168.126.63.1 을 사용한다.

밑에 있는 168.126.63.2 는 메인 서버가 터졌을 경우를 대비한 임시 서버이다.

그래서 우리가 어떤 사이트를 접속하는지 통신사에서 전부 알고있는 것 이다.

이런것이 찝찝하다면 Local DNS 서버를 바꿀 수 있다.

1.1.1.1 의 DNS 서버를 사용하면 속도도 가장 빠르고 접속 로그도 저장하지 않는다고 한다.

바꾸고 싶다면 168.126.63.1, 2 를 1.1.1.1, 1.0.0.1 로 바꾸면 된다.

💾 hosts 와 보안

google 이나 naver 처럼 우리가 자주 접속하는 사이트의 IP 를 매번 Local DNS 에 물어볼 수 는 없다.

그래서 이러한 정보를 컴퓨터에 저장할 수 있다. hosts 파일로 저장을 할 수 있는데 이 파일의 변조를 조심해야 한다.

hosts 파일에 www.google.com 이라는 도메인의 IP 주소가 111.111.111 이라고 저장이 되어있다고 하자.

하지만 해커가 222.222.222 의 주소를 가진 사이트를 구글과 똑같이 만들어 둔 뒤 hosts 파일을 변조해

www.google.com 의 IP 주소를 222.222.222 로 바꾸어 놓는다면 우리는 피싱 사이트로 접속을 하게 된다.

그 상태로 로그인을 하게 된다면 해커에게 모든 정보를 내어주는 꼴이 된다.

백신 프로그램 같은 경우 이 hosts 파일의 변조를 가장 세심하게 관찰한다고 한다.

📕 참조, 출처


Categories:

Updated:

Leave a comment