TIL 12 - Domain Name System (DNS)

crystalee·2021년 6월 24일

WEB

목록 보기
2/2
post-thumbnail

👉Domain Name System

각 컴퓨터는 host로 IP주소를 가지고 있으며 IP주소를 통해 host는 네트워크에 연결되어 통신이 가능하다.
네트워크가 커지면서 사람들은 IP주소를 기억하기 어려워 했고 'DNS Server'를 통해 수 많은IP 관리가 용이해졌다.

✍️IP 주소와 HOST

host

  • 네트워크에 연결된 각 장치로써 IP주소를 가지고 있다.
  • 각 host는 client가 될 수 있고, server가 될 수 있다.
  • client는 os가 관리하는 'host 파일'을 통해, IP와 도메인을 관리하고 있다.

host 파일

  • 모든 운영체제에 있고, 도메인과 IP주소를 명시해둔 파일
  • DNS를 통하지 않고 호스트에 이름을 부여할 수 있다.

    운영체제별 host 파일 https://ko.wikipedia.org/wiki/Hosts

✍️도메인 이름과 보안

악의적으로 타인이 host파일을 조작하는 경우 본인도 모르게 "피싱사이트"로 연결되어 정보 유출이 될 수 있으며 host파일은 보안에 취약하다. 최근 웹사이트는 https로 구현되어 보안을 좀 더 강화했다.

http vs https

  • https의 s는 security의 약자이다(보안)
  • https를 통해 사이트에 접속하면 변조된 IP(안전하지 않은 IP)에 접속하기 전에 경고한다.

✍️DNS의 태동

DNS 이전에는 'Stanford Research Institute(SRI)'라는 단체에서 전 세계 IP를 관리했었으며 모든 client는 SRI에 접속해서 도메인/IP주소의 정보를 가져와 hosts파일에 기록 후 접속을 했다.
👉 전 세계 컴퓨터들이 이 파일을 다운로드 받아서 덮어씀
👉 IP가 아닌 이름을 통해 인터넷을 사용할 수 있게 되었다.

단점

  • SRI에 신규 추가, 수정되는 정보가 실시간으로 반영되지 못한다.
  • hosts 파일에 모든 도메인/IP주소를 담는 것은 비효율적이다. (많은 시간과 비용 소모)
    👉 이에 대한 대안으로 1983년 존 포스텔과 폴 모카페트리스가 DNS를 마련했다.

✍️DNS의 원리

  • 주소 입력 👉 DNS 서버 접속 👉 주소에 해당하는 IP 주소 반환 👉 해당 IP 주소로 접속 👉 도메인 관리가 자동화 👉 행정절차 간소화, 신속화
  • 호스트 이름을 서버를 통해 관리 👉 수정 사항이 바로 반영

✍️Public DNS의 사용

기본적으로 통신사가 제공하는 DNS 서버 외에 개인적인 판단 등의 사유로 Public DNS를 사용할 수 있다.

DNS 접속 원리

  • DNS서버도 서버기 떄문에 IP나 주소가 필요하다.
  • 인터넷으 ㄹ연결하면 통신사(ISP)가 DNS에 연결한다.

ISP를 통한 DNS접속의 문제

  • 개인정보노출 : 내가 방문하려는 사이트에 대한 정보를 저장해서 카메팃에 활용하거나 다른 기관에 제공할 수 있다.
  • 속도가 매우 느리다

최근엔 IPNIC에서 1.1.1.1 이라는 Public DNS 서버를 제공

· Google public DNS (https://developers.google.com/speed/public-dns/)

✍️도메인 이름의 구조

DNS서버의 역할

  • 서버로 사용되는 컴퓨터의 도메인/IP정보를 등록,관리한다.
  • client로 사용되는 컴퓨터가 도메인 질의 시 IP정보를 반환한다.

  • Root Name Server : 최상위 Name Server. Top-level Name Server 정보 전달
  • Top-level Domain Server : .com, .net 등의 도메인 관리
  • Second-level Domain Server : 도메인명을 관리
  • Sub Domain Server : 최종 도메인 정보 관리
  • Domain 뒤에는 .(점)이 생략되어 있다.
    👉 각 Domain Server에는 DNS서버가 존재하며, 상위 레벨 Domain Sever는 하위 레벨 Domain Server 정보만 알 수 있다.

✍️도메인 이름 등록 과정과 원리

등록대행자(Registrar)는 등록자가 요청하는 도메인을 관리하고, 이를 등록소에 등록한다.
client가 도메인에 접속을 요청하면 DNS서버는 Root Name Server에 해당 도메인을 질의하고 최종적으로 authoritative name server에서 도메인/IP주소 정보를 가져온다.

1. ICANN

  • 비영리단체
  • Root name server를 관리
  • Top-level domain 서버 주소를 기억한다.

2. Registry(등록소)

  • 기업이나 기관
  • Top-level domain을 관리한다.

3. Registrar(등록대행자)

  • 기업이나 기관
  • Authoritative name sever를 관리한다.
  • 등록자의 등록 작업을 대행한다.

4. Registrant(등록자)

도메인 연결 과정

client가 도메인 입력
👉 DNS Server가 Root name server에 Top-level domain server의 주소를 요청
👉 Root name server가 Top-level domain server의 주소 반환
👉 DNS Server
👉 Top-level domain server
👉 DNS Server
👉Authoritative name server가 IP 주소 반환
👉DNS Server
👉 Client

DNS Server는 요청 결과를 캐시로 저장했다가 똑같은 요청이 들어오면 캐시에 저장된 결과를 반환한다.

✍️nslookup

도메인에 해당하는 IP주소 알아내기
  • cmd 👉 nslookup 도메인주소

  • 서버 : bns1.hananet.net 👉 DNS 서버 정보
  • Aeeress : DNS 서버 IP 주소
  • 권한 없는 응답 (Non-authoritatice answer) 👉 authoritative name server가 직접 반환한 게 아니라 캐시에서 가져온 결과

name sever 알아내기

  • nslookup -type=ns 도메인주소

서버가 다운되는 것을 방지하기 위해 네임 서버 2대를 운영한다.

DNS 서버 없이 네임 서버에 직접 접속해서 알아내기

WEB2-Domain Name System 생활코딩 - https://opentutorials.org/course/3276/20296 참고

profile
코린이 성장일기

0개의 댓글