TIL - DNS(Domain Name System)

한성봉·2021년 5월 2일
0

이 글은 '생활코딩 WEB2-DNS' 강의를 토대로 작성하였습니다.

DNS(Domain Name System)

인터넷에 연결된 모든 기기는 서로 정보를 주고 받기 위해 고유 IP 주소를 가진다. 특정 컴퓨터(또는 네트워크로 연결된 임의의 장치)의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해 준다. 도메인 네임 시스템은 흔히 "전화번호부"에 비유된다. 인터넷 도메인 주소 체계로서 TCP/IP의 응용에서, www.naver.com과 같은 주 컴퓨터의 도메인 이름을 192.168.1.0과 같은 IP 주소로 변환하고 라우팅 정보를 제공하는 분산형 데이터베이스 시스템이다.

1. DNS의 탄생

DNS는 도메인명을 IP 주소로 매핑 해주는 역할을 수행하기 위한 것으로, 작게 본다면 도메인명과 IP 주소에 대한 정보를 담고 있는 데이터 베이스이다. 따라서 제공해야될 정보가 얼마 없었던 과거에는 HOSTS.TXT라는 파일을 만들어서 이곳에 호스트의 이름과 이에 대응하는 IP 주소만 저장해 두었다. 초기에 HOSTS.TXT 파일은 NIC에서 관리하고 변동 사항이 있을 때마다 직접 수정하였다. 또한 이 파일은 FTP를 이용하여 공유되도록 게시하여, 인터넷에 연결된 각각의 사이트들은 주기적으로 이 파일을 복사하여, 네트워크에 적용하는 방식으로 진행되었다. 그러나 점점 인터넷이 확장되고 호스트의 숫자가 많아지면서 중앙에서 모든 호스트들의 변동 사항을 관리하는 것이 불가능하였으며 , 또한 수시로 변동되어지는 HOSTS.TXT 파일을 각 사이트들이 복제하는 것은 네트워크 자원의 낭비를 초래하였다. 따라서 이러한 문제를 해결하기 위한 대안들이 나타나게 되었는데, HOSTS.TXT 파일의 대안으로 DNS표준이 개발되었다.

2. 도메인 이름 형성

www.naver.com. 도메인 네임을 예를 들어 설명하겠다.

  • 우측 마지막 .Root 라 한다. 생략가능하다.
  • com : Top-level 도메인
  • naver : second-level 도메인
  • www : sub도메인

com 과 같은 Top-level 에는 일반 최상위 도메인과 국가코드같은 최상위 도메인이 존재한다.
최상위 도메인에 대해 알아보기 위해 다음 링크를 참고하자.

도메인 계층 구조는 오른쪽부터 왼쪽으로 넘어간다. 왼쪽 도메인은 오른쪽 도메인의 서브 도메인이다. 서브 도메인은 127단계까지 가능하다.

각 단계의 도메인은 63개의 문자까지 사용할 수 있다. 전체 도메인 이름은 253개를 초과할 수 없다.
레이블에 사용될 수 있는 문자는 아스키 문자 집합의 부분집합과 알파벳 a부터 z, A부터 Z, 숫자 0부터 9와 하이픈(-)을 포함한다. 이 규칙은 letter(문자), digit(숫자), hyphen(하이픈)의 첫글자를 따서 LDH 규칙이라고 한다. 도메인 이름은 대소문자 구분없이 해석되고, 레이블은 하이픈으로 시작하거나 끝날 수 없다.

위 사진과 같은 계층 구조로 도메인 네임 시스템은 작동한다. 각각의 서버에는 하위 도메인 서버의 목록들을 가지고 있고

hosts

hosts 파일은 운영 체제가 호스트 이름을 IP 주소에 매핑할 때 사용하는 컴퓨터 파일이다. 이 hosts 파일은 플레인 텍스트 파일이며 전통적으로 hosts라는 이름을 사용한다.

hosts 파일에 접근해 IP주소로 되있는 사이트에 DNS을 부여해보자.
각 운영체제 별로 hosts파일에 접근하기 위한 경로는 다음 링크를 참고하자.

MacOS로 진행해보겠다.

1. 터미널 실행

  1. 터미널을 실행 후 sudo nano etc/hosts를 입력한다.
  2. 사용중인 패스워드를 입력하면 다음 창이 열린다.

2. hosts file 에서 수정

  1. 도메인 네임을 부여하고 싶은 IP주소와 같이 적고 저장
    • ex) 111.11.1.111 web1.com
  2. control ^ + X -> Y로 저장하면 IP주소에 원하는 도메인 네임이 저장된다.

https

HTTPS(HyperText Transfer Protocol over Secure Socket Layer, HTTP over TLS,[1][2] HTTP over SSL,[3] HTTP Secure[4][5])는 월드 와이드 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전이다.

1. https를 사용하는 이유

  • 무결성 및 인증: 암호화 및 인증을 통해 HTTPS는 웹 사이트와 사용자 브라우저 간의 통신 무결성을 보호합니다. 사용자는 웹 서버에서 전송 된 데이터가 전송중인 제 XNUMX 자에 의해 가로 채거나 변경되지 않았 음을 알게됩니다

  • 개인 정보: 피싱을 방지한다. http로 접속하였을 경우 개인정보가 담긴 웹사이트와 동일하게 허위 사이트를 만들어 개인정보를 유출당하는 것을 막는다.

  • 사용자 경험: 브라우저 UI의 최근 변경으로 인해 HTTP 사이트가 다음과 같이 플래그 지정되었습니다.

  • 호환성: 현재 브라우저 변경으로 인해 HTTP가 비 호환성에 더욱 근접해 가고 있습니다. 모질라 파이어 폭스는 HTTPS 전용 모드 Chrome은 혼합 콘텐츠 차단 (HTTPS 페이지에 연결된 HTTP 리소스). HTTP 웹 사이트에 대한 "보안" 경고와 함께 브라우저에서 볼 때 HTTP에 대한 알림이 나타나는 것을 볼 수 있다. 2020 년에는 현재의 모든 주요 브라우저와 모바일 장치가 HTTPS를 지원하므로 호환성 측면에서 https로 전환이 이루어지고 있다.

  • SEO: 검색 엔진 (Google 포함)은 HTTPS를 순위 신호 검색 결과를 생성 할 때 따라서 웹 사이트 소유자는 웹 서버가 HTTP가 아닌 HTTPS를 사용하도록 구성하기 만하면 쉽게 SEO를 향상시킬 수 있습니다.

0개의 댓글