DNS에 대해 알아보자!

jinn2u·2021년 8월 29일
0

네트워크

목록 보기
2/2
post-thumbnail

DNS를 알아보기 앞서, 우선 URL을 주소창에 입력했을 때 일어나는 일에 대해 알아보자!

  • URL을 입력한다면 우리는 www.google.com과 같은 도메인을 입력하게 됩니다.
  • 그러면 이에 해당하는 IP주소를 찾기 위해 DNS 서버를 조회를 합니다.
  • 또한 http인 경우 80, https인경우는 443포트를 찾아내어 http요청 메시지를 생성한다. 그 다음 요청을 보내기 전, 3-Wayhandshake를 통해 연결을 한다.

그렇다면 DNS란 무엇일까?

  • DNS란 문자로 이루어진 도메인을 컴퓨터가 이해할 수 있게 IP로 변환해주는 시스템을 말합니다.
  • 기존에는 각 사용자에게 다른 상대방과 통신하기 위해 Host파일에 상대방의 IP를 기록했습니다.
  • 하지만 수많은 사용자 정보가 생겨나면서 DNS라는것을 통해 대신 Host파일 대신 IP주소를 매핑해주기 시작했습니다.

  • traceroute / tracert 는 google.com까지 가는 ip의 경로를 보여줍니다.

  • nslookup은 해당 도메인정보를 확인할 수 있습니다.

사용자가 많아 트래픽을 분산해야하는 경우는 어떻게 할까?

  • 이때 로드 밸런싱이란것을 사용합니다.
  • 로드 밸런싱이란 많은 트래픽을 분산해주는 기술을 말합니다.
  • 클라이언트와 서버 사이에 위치하며 한대의 서버로 부하가 집중되지 않도록 트래픽을 관리합니다.

그렇다면 어떠한 방식으로 트래픽을 관리할까?

  • 크게는 두가지 방식이 있는데, scale-up과 scale- out 방식이 있습니다.
  • scale-up은 pc의 성능을 높여서 많은 트래픽을 처리하는것입니다.
  • scale-out은 여러대의 서버를 추가 구입하여 트래픽을 분산하는것입니다. 이때 필요한것이 로드 밸런싱입니다.
  • 알고리즘은?
    • 라운드 로빈
      • 서버에 들어온 요청을 순서대로 돌아가면 배정하는 방식입니다.
    • 가중 라운드 로빈 방식
      • 서버마다 가중치를 매기고 가중치가 높은 서버에 클라이언트 요청을 우선적으로 배분하는 방식입니다.
    • 최소 연결 방식
      • 요청이 들어온 시점에 가장 적은 연결 상태를 보이는 서버에 우선적으로 트패픽을 배분한다.
    • 이외에도 다양한 알고리즘이 존재합니다.

라운드로빈 DNS

라운드로빈 DNS란 DNS서버에서 트래픽처리를 해주는것을 말합니다.

  • 그렇다면 언제 사용할까요?
    • 지리적으로 웹 서버가 멀리 떨어져 실시간으로 상태체크를 하기 어려울때 사용합니다.
    • 적은 비용으로 구현이 필요할때 사용합니다.
  • 원리는 어떻게 될까요?
    • 웹 서비스를 담당할 여러 대의 웹 서버는 자신의 공인 IP를 각각 가지고 있습니다.
    • 웹 사이트에 접속을 원하는 사용자가 해당 도메인 주소를 브라우저에 입력하게 된다면, DNS는 도메인의 정보를 조회하는데, 이떄 Ip 주소를 여러 대의 서버 IP리스트 중에서 라운드 로빈 형태로 제공을 하거나 혹은 여러개를 선택하여 다시 사용자에게 알려준다.
    • 결과적으로 웹 사이트에 접속하는 다수의 사용자는 실제로는 복수의 웹 서버에 나뉘어 접속하게 되면서 자연스럽게 서버의 부하가 분산되는 방식이다.
    • DNS의 조회 결과로 1개의 IP만 조회되는 경우도 있지만, 최근의 라운드 로빈 DNS방식은 복수의 IP를 순서를 정해 모두 제공하고 클라이언트로 하여금 선택하도록합니다.

0개의 댓글