TIL 14. Domain Name System

윤현묵·2021년 7월 25일
0

WEB

목록 보기
3/4
post-thumbnail

기본 용어

host: 네트워크에 연결되어 있는 컴퓨터(장치)

hosts 파일: 파일을 수정하여 IP 주소로 이동 (파일에 직접 IP 주소에 해당하는 도메인 지정)
→ 보안에 취약하여 해킹/피싱의 위험이 있어, 백신과 https 등을 사용하여 보안 강화 필요
(예전에 동행복권 사이트 접속 시, 도매인 네임을 거의 동일하게 만들고 사이트 내의 구성을 기존 사이트와 동일하게 구성한 피싱 사이트를 본적이 있습니다.)

IP주소: 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신하기 위해서 사용하는 특수한 번호

DNS(Domain Name System): 범국제적 단위로 웹사이트의 IP 주소와 도메인 주소를 이어주는 시스템

ISP(Internet Service Provider): 개인이나 기업체에게 인터넷 접속 서비스, 웹사이트 구축 및 웹호스팅 서비스 등을 제공하는 회사. 대표적으로 한국에서는 KT, SK브로드밴드, LG U+ 등이 있습니다.

도메인이란?

ICANN이라는 기관에 편입된 IANA라는 범 국제적인 기관이 IP 주소보다 쓰기 편한 문자로 된 도메인이란 걸 만들고 관리하게 되었습니다. 도메인 주소와 호스팅 IP 주소는 아무런 설정이 없는 상태에서는 서로 관련성이 없지만, 업체에서 별도로 관리하는 외부의 네임서버라는 곳에 A라는 IP 주소는 A’라는 도메인 주소와 같다고 설정을 해주게 되면, 도메인 주소를 통해 IP 주소(=웹사이트)로 접속이 가능해집니다.

DNS 서버의 역할

  • 서버로 사용되는 컴퓨터로부터 IP 주소와 도메인 이름을 제출받고 저장(IP 등록 기능)
  • 클라이언트 컴퓨터로부터 요청받은 IP 주소와 이름을 알려주는 것(정보 제공 기능)
  • DNS 서버는 1대가 아니라 전 세계에 수많은 DNS 서버가 존재하며 컴퓨터 간에 통신을 도와줌

도메인 이름의 구조


도메인 이름의 구조는 위와 같으며, 통상적으로 가장 끝에 있는 점(.)은 생략되어 있습니다. 이것을 Root 도메인이라고 하며 가장 최상위 도메인입니다. 최상위 도메인의 직속 하위 도메인을 Top-level 도메인이라고 하며 com, net, co.kr 등이 있습니다. Top-level 직속 하위 도메인은 Second-level 도메인, 또 그 바로 직속 하위 도메인을 Sub 도메인이라고 합니다. 그리고 각각의 도메인을 전담하는 독자적인 DNS 서버 컴퓨터가 존재합니다.

각각의 도메인을 담당하는 DNS 서버는 자신의 바로 아래에 있는 하위 도메인 DNS 서버의 목록과 IP 주소들을 알고있습니다. 그리하여 Local DNS 서버가 여러 DNS 서버를 차례대로 질의하여 주소를 찾아가며 동작합니다.
(Root DNS 서버 → Top-level DNS 서버 → Second-level DNS 서버 → Sub DNS 서버)

DNS 서버 동작 과정 (google.com 접속)
-. 모든 컴퓨터는 Root DNS라는 서버의 IP 주소를 알고 있습니다.

  • 웹 브라우저에 www.google.com을 입력하면 먼저 Local DNS에게 "www.google.com"이라는 hostname"에 대한 IP 주소를 질의하여 Local DNS에 없으면 Root DNS 정보 전달 받습니다.
  • Root DNS 서버에 "www.google.com" IP 주소 요청
  • Root DNS 서버로 부터 "com 도메인"을 관리하는 Top-Level Domain 서버 정보(IP주소)를 받음
  • Top-Level Domain 서버에 "www.google.com" IP 주소 요청
  • Top-Level Domain에서 "name.com" 관리하는 DNS 서버 정보(IP 주소) 전달
  • "google.com" 도메인을 관리하는 DNS 서버에 "www.google.com"에 대한 IP 주소 요청
  • Local DNS 서버에게 "www.google.com"에 대한 IP 주소 응답
  • Local DNS는 www.google.com에 대한 IP 주소를 캐싱을 하고 IP 주소 정보 전달
  • 캐시 - 데이터를 임시로 저장해두는 물리적 혹은 논리적 장치를 뜻하고 캐싱은 이러한 일련의 과정을 통해서 컴퓨터 혹은 해당 시스템의 성능을 향상시키는 작업
  • DNS 캐시 - 도메인 네임 서버에서 한 번 질의된 도메인 네임과 해당 IP주소를 캐시에 유지하여 다음 요청할 때 빠른 속도로 정보 전달

참고자료: https://boojafactory.tistory.com/171, https://opentutorials.org/course/3276

profile
진정성 있는 개발자를 꿈꾼다

0개의 댓글