[Web] IP 와 DNS

BoongDev·2023년 3월 15일
0

Web

목록 보기
1/1

Public IP 와 Private IP 차이

public IP (공인 IP)

인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP(인터넷 서비스 공급자)가 제공하는 IP 주소
이다. 공용 IP 주소라고도 불리며 외부에 공개되어 있는 IP 주소이다.

  • 공인 IP 는 전세계에서 유일한 IP 주소를 갖는다.
  • 외부에 공개되어 있기에 인터넷에 연결된 다른 PC 로부터의 접근가능. 따라서, 공인 IP 를 사용하는 경우 방화벽 등의 보안 프로그램을 설치할 필요가 있다.

private IP (사설 IP)

일반 가정이나 회사 내 등에 할당된 네트워크 IP 주소, 로컬 IP, 가상 IP 라고도 한다. IPv4의 주소 부족으로 인해 서브넷팅된 IP이기 떄문에 라우터에 의해 로컬 네트워크상의 PC 나 장치에 할당된다.

사설 IP 주소 대역

3가지 주소 대역으로 고정

  • Class A : 10.0.0.0 ~ 10.255.255.255
  • Class B : 172.16.0.0 ~ 172.31.255.255
  • Class C : 192.168.0.0 ~ 192.168.255.255

차이점

Public IPPrivate IP
할당 주체IPS (인터넷 서비스 공급자)라우터(공유기)
할당 대상개인 또는 회사의 서버 (라우터)개인 또는 회사의 기기
고유성인터넷 상의 유일한 주소하나의 네트워크 안에서 유일
공개 여부내/외부 접근 가능외부 접근 불가능

라우터는 중간에서 public IP 와 private IP 변경해주면서 데이터를 전송해 준다.

터미널 nslookup 결과값

nslookup

nslookup은 name server 관련한 조회를 할 수 있으며, 도메인 이름 서버(DNS)에서 도메인 이름에 해당하는 IP 주소를 찾는 명령어입니다.

코드스테이츠 기본 nslookup 결과값

나타내어지는 정보는 다음과 같다

  • 이름 : 검색된 호스트 또는 도메인의 이름
  • 검색된 호스트 IP 주소 : 검색된 호스트 또는 도메인의 IP 주소
  • 유형 : DNS 레코드 유형, (A, AAAA, CNAME, MX, NS, PTR, SOA, SRV, TXT 등)
    • DNS 레코드 : 도메인 이름과 관련된 정보를 저장하는 데이터베이스 레코드
  • TTL : Time To Live 약자, DNS 레코드의 TTL 값을 나타낸다. 레코드가 캐시 될 수 있는 시간을 의미하며, 이 시간이 지나면 DNS 서버는 레코드를 다시 가져와야 한다.
  • 서버 : 쿼리를 보낸 DNS 서버의 이름을 나타낸다.
  • 로컬 컴퓨터의 DNS 서버 IP 주소 : 쿼리를 보낸 DNS 서버의 IP 주소

nslookup 정밀 모드 사용하여 코드스테이츠 도메인 검색

# nslookup 정밀 모드 사용법
nslookup
set debug
도메인 이름

http://google.com 검색 시 DNS 에서 일어나는 일

DNS

  • 웹 사이트에서는 외우기 어려운 IP 주소 대신 도메인 이름을 사용한다.
  • 도메인 이름을 실제 네트워크 상에서 사용하는 IP 주소로 바꾸고 해당 주소로 접속하는 과정이 필요
  • 이러한 과정, 전체 시스템을 DNS(Domain Name System) 라고 한다.
  • 시스템은 전세계적으로 약속된 규칙을 공유
  • 상위 기관에서 인증된 기관에게 도메인을 생성하거나 IP 주소로 변경할 수 있는 권한 을 부여한다.
  • DNS 는 이처럼 상위 기관과 하위 기관 같은 계층 구조를 가지는 분산 데이터베이스 구조이다.

DNS 구성 요소

  • 도메인 네임 스페이스 (Domain Name Space)
    • 도메인 주소 구조
      • 주소 영역을 . 으로 구분 → 라벨 (Lavel)
        • 하나의 라벨 : 최대 63개의 문자 (64byte) 사용 가능
        • 대소문자 구분 없이 알파벳, - 만 가능(ASCII 로 표현)
        • 전체 도메인 주소 최대 크기 : 255 개의 문자 (255byte)
      • 주소 해석은 오른쪽 부터
      • 최상위 주소는 항상 가장 오른쪽에 있는 .(root)
    • 도메인 네임 스페이스에 포함되는 각각의 노드들
      • 루트 도메인
        • 네임 스페이스에서 이름 해석의 출발지 역할을 하는 노드 (서버)
        • 최상위 도메인 서버의 정보를 가짐(http://www.iana.org/domains/root/servers)
        • 전 세계 13개의 원본 root 서버가 존재
      • 최상위 도메인 (Top Level Domain = TLD)
        • 국가 코드 최상위 도메인(ccTLD : country code TLD)
          • .kr, .jp
        • 일반 최상위 도메인 (gTLD : global TLD)
          • .net, .com, .org
        • ARPA : 역방향 조회 시 사용되는 최상위 도메인
          • in-addr.arpa
      • 2차 도메인 (Second Level Domain, Sub Domain)
        • TLD 하위에서 관리되는 서브 도메인
        • 국가 도메인 하위에 기관 유형에 따른 분류
          • .co (일반회사), .ac (교욱기관), .go (정부기관)
      • 서브 도메인 (Sub Domain)
        • 상위 도메인에 소속되는 각 기관 또는 회사별 도메인
          • google, naver
      • 하위 노드는 무한정 만들 수 있다. 문자수에는 제한 (255byte)
    • 도메인 → IP 주소 (정방향 조회)
    • IP 주소 → 도메인 주소 (역방향 조회)
      • 특수한 상황 (PTR/SPF 레코드를 이용한 스팸메일 필터링)
  • 네임 서버 (Name Server)
    • 도메인 → IP 주소 : 네임 서비스 (Name Service)
    • Resolver (해석기) 로부터 요청받은 도메인 이름에 대한 IP 주소를 다시 Resolver (해석기) 로 전달해주는 역할을 수행
    • Primary, Secondary 서버로 구분된다.
      • Primary : 도메인을 관리하는 주 네임서버
      • Secondary : 주 네임 서버가 고장 등으로 서비스 실패 시 네임 서버 역할 수행
  • 리졸버 (Resolver)
    • DNS 요청을 네임 서버로 전달하고, 네임 서버로부터 정보를 받아 클라이언트에게 제공하는 기능 제공

검색시 일어나는 일

DNS 동작 과정

  1. Local DNS 에 [http://google.com](http://google.com) 라는 hostname 에 대한 IP 주소를 요청한다. Local DNS 에 도메인에 대한 IP 주소가 있는 경우 바로 응답한다.
  2. 없다면 다른 DNS 서버와 통신을 시작한다. 차례대로 최상위 Root DNS 서버에 질의 (DNS Query)
  3. .com 을 관리하는 DNS 서버를 응답해준다.
  4. Local DNS 는 .com 을 관리하는 DNS 서버에게 질의
  5. [google.com](http://google.com) 을 관리하는 DNS 서버를 응답해준다.
  6. Local DNS 는 [google.com](http://google.com) 을 관리하는 DNS 서버에게 질의
  7. [google.com](http://google.com) 에 대한 IP 주소를 응답해준다.
  8. Local DNS 는 [http://google.com](http://google.com) 에 대하여 IP 주소를 캐싱하고 클라이언트에 IP 주소를 알려준다.

출처

https://hanamon.kr/dns란-도메인-네임-시스템-개념부터-작동-방식까지/
https://itsandtravels.blogspot.com/2018/11/dnsdomain-name-system-dns.html
https://susoterran.github.io/other/dns/
https://velog.io/@hidaehyunlee/공인Public-사설Private-IP의-차이점
https://m.blog.naver.com/on21life/221364194092
https://www.lesstif.com/system-admin/nslookup-20775988.html
chat-gpt

profile
욕심 많은 주니어 개발자입니다.

0개의 댓글