[Network] Names and Addresses

llunaB·2024년 3월 17일
0

알아보기

host google.com 
dig google.com

host, dig 명령어
query OS name server
-> loop up records in DNS
host -> OS -> 어떠한 DNS 서버 -> google.com 의 ip를 받는다.

DNS Record Types

DNS (Domain Name System)은 컴퓨터 네트워크에서 호스트의 도메인 이름을 IP 주소로 매핑하는 데 사용되는 시스템입니다. DNS 레코드는 이러한 매핑을 수행하는 데 사용됩니다. 여러 유형의 DNS 레코드가 있으며, 그 중 일부는 다음과 같습니다.

CNAME (Canonical Name):

CNAME 레코드는 도메인의 별칭(alias)을 정의합니다.
예를 들어, "www.example.com"의 CNAME 레코드가 "example.com"으로 설정되어 있으면, "www.example.com"을 방문하는 모든 요청은 "example.com"으로 리디렉션됩니다.
주로 도메인의 별칭이나 서브도메인을 지정하는 데 사용됩니다.

AAAA (IPv6 Address):

AAAA 레코드는 IPv6 주소를 호스트의 도메인 이름에 매핑합니다.
IPv6는 인터넷에서 사용되는 주소 체계 중 하나로, IPv4와는 달리 128비트 주소를 사용합니다.
AAAA 레코드는 IPv6 네트워크에 호스트가 연결되어 있을 때 사용됩니다.

NS (Name Server):

NS 레코드는 도메인의 네임 서버를 지정합니다.
네임 서버는 특정 도메인에 대한 DNS 쿼리에 대한 정보를 제공하는 서버입니다.
예를 들어, "example.com"의 NS 레코드가 "ns1.example.com"과 "ns2.example.com"으로 설정되어 있으면, 해당 도메인의 DNS 정보를 찾을 때 이 두 네임 서버에 쿼리가 전달됩니다.

ip를 찾는 과정

사용자의 장치 -> 로컬 DNS 캐시 서버 -> 루트 DNS 서버 -> TLD 서버 -> 도메인의 네임 서버

DNS(Domain Name System) 과정을 중학생이 이해할 수 있도록 설명하겠습니다. 이를 위해 가장 기본적인 예시를 사용하여 설명하겠습니다. 예를 들어, 사용자가 "www.example.com"에 접속하려고 한다고 가정해 봅시다.

  1. 사용자의 장치 (예: 컴퓨터):

사용자는 웹 브라우저를 통해 "www.example.com"을 입력합니다.

  1. 로컬 DNS 캐시 서버:

먼저 사용자의 장치는 로컬 DNS 캐시 서버에 해당 도메인의 IP 주소를 요청합니다.
만약 로컬 DNS 캐시 서버에 해당 도메인에 대한 정보가 이미 캐싱되어 있다면, 캐시된 정보를 바로 반환합니다.

  1. 루트 DNS 서버: 사설 dns

로컬 DNS 캐시 서버에 해당 정보가 없는 경우, 로컬 DNS 캐시 서버는 최상위 DNS 서버인 루트 DNS 서버에 해당 도메인에 대한 IP 주소를 요청합니다.
루트 DNS 서버는 도메인의 최상위 레벨 도메인(TLD) 서버의 주소를 반환합니다.

  1. TLD(Top-Level Domain) 서버: .com, .net

로컬 DNS 캐시 서버는 루트 DNS 서버로부터 받은 TLD 서버의 주소로 다시 요청을 보냅니다.
TLD 서버는 도메인의 최상위 레벨(TLD)에 대한 정보를 포함한 쿼리를 반환합니다.

  1. 도메인의 네임 서버: 구글 DNS, AWS DNS

마지막으로, 로컬 DNS 캐시 서버는 TLD 서버로부터 받은 도메인의 네임 서버 주소로 다시 요청을 보냅니다.
도메인의 네임 서버는 해당 도메인에 대한 IP 주소나 기타 레코드 정보를 포함한 응답을 반환합니다.

  1. 로컬 DNS 캐시 서버의 응답:

로컬 DNS 캐시 서버는 받은 응답을 사용자의 장치에 전달합니다.
사용자의 장치는 이제 해당 도메인의 IP 주소를 사용하여 웹 페이지에 접속할 수 있습니다.

DNS와 HTTP

  • SSL encryption certificate 은 dns 에 부여된다.
  • web에서 dns 로 쿠키를 주고받는다.
  • 웹서버가 handling을 통해 여러 dns를 취급한다. virtual hosts, multiple server blocks.
  • host header에 dns 를 포함해야한다.

Subdomain

  • www.github.com
  • .com 의 도메인 -> 하위 : github.com -> 하위 : www.github.com

google DNS - custom resource record 등록

name에 www, type에 A, TTl 에 1H , data에 12.13.14.15(ip)

  1. Name (이름): www, blog, mail....

Name 필드는 리소스 레코드의 이름을 지정합니다.
여기서 "www"를 입력하면, 이 리소스 레코드는 "www.example.com" 또는 "www.google.com"과 같은 서브도메인에 대한 설정을 나타냅니다.
"www"는 일반적으로 웹 서버를 가리키는 데 사용되는 서브도메인입니다.

  1. Type (유형):

Type 필드는 리소스 레코드의 유형을 지정합니다.
여기서 "A"를 입력하면, 이 리소스 레코드가 IPv4 주소에 대한 레코드임을 나타냅니다.
"A" 레코드는 도메인 이름을 IPv4 주소로 매핑합니다.

  1. TTL (Time to Live, 생존 시간):

TTL 필드는 리소스 레코드가 캐시된 후 유지되는 시간을 지정합니다.
여기서 "1H"를 입력하면, 이 리소스 레코드가 1시간 동안 캐시됨을 의미합니다.
TTL은 캐시된 DNS 레코드가 갱신되기 전에 캐시에서 유지되는 시간을 결정합니다.

  1. Data (데이터):

Data 필드에는 해당 리소스 레코드의 데이터가 포함됩니다.
여기서 "12.13.14.15"를 입력하면, 해당 도메인의 IPv4 주소가 "12.13.14.15"임을 나타냅니다.
브라우저가 "www.example.com"에 연결하려고 할 때, 이 IPv4 주소가 사용됩니다.

Ipv4 : 192.168.0.1

IP 주소는 32비트로 표현된다.

  • binary 이진 표현
    11000000.10101000.00000000.00000001 => 32bit
    8bit는 1byte = 1 octet
    각 octet은 8비트로 이루어진다.
    192.168.0.1
    octet : 00000000 ~ 11111111

  • hexadecimal 16진수
    각 옥텟을 16진수로 표현
    192.168.0.1
    11000000.10101000.00000000.00000001
    C0.A8.00.01

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

port number

포트넘버 최댓값은 65535
2의 16승이 65536 이므로 port number == 16bit

profile
안녕하세요. 성장하는 주니어 개발자입니다. :-)

0개의 댓글