WEB2-Domain Name System

Cein1·2022년 9월 12일
0

computer science

목록 보기
2/5

#14

host(컴퓨터)에게 도메인이라는 자신의 이름을 붙이는 과정을 학습
도메인 이름을 붙임으로써 IP 주소를 입력하지 않고도 도메인 네임으로 컴퓨터로 찾아올 수 있게 됨. IP 주소를 변경해도 서비스를 계속해서 제공할 수 있는 유연함을 갖추게 됨
컴퓨터에 개성을 부여할 수 있게 됨

#1

IP 주소를 기억하기가 너무 어렵다는 불만을 해결하기 위해 Domain Name System, DNS가 만들어집니다
DNS 서버에는 수많은 IP주소의 도메인 이름이 저장되어 있다.

  1. 웹브라우저 주소창에 도메인 네임 입력
  2. 운영체제가 DNS 서버에게 IP 주소를 물어봄
  3. DNS가 IP 주소를 내 컴퓨터에게 알려줌
  4. 컴퓨터가 해당 IP에 접속한다

#2

host : 인터넷에 연결된 각각의 컴퓨터

DNS 통하지 않고도 타 host에 이름을 부여해 도메인 네임으로 접속하는 방법 (IP 주소부)
모든 운영체제에는 host라고 하는 파일이 있다
해당 파일에 도메인 이름을 정하고, IP주소는 뭐다 라고 적어놓으면
웹 브라우저에 도메인 이름을 입력했을 때,
컴퓨터가 host 파일을 읽어서 해당 IP 주소로 접속한다

#3

host 파일에 IP 주소별 host 이름을 설정하는 방법

#4

피싱(Pishing)

  1. 악의적인 목적으로 host 파일에서 기존 도메인 이름은 두고 IP 주소만 변조
    host 파일은 취약하다. 백신을 사용해서 예의주시해야 한다
  2. 굉장히 중요한 사이트인데 https://가 아니다? 이용을 재고해보아야 한다

#5

before DNS

host 파일을 통해 개인 IP 주소부를 갖는 건 좋은데 모든 인터넷 유저에게 공통으로 적용되지는 않잖아?
누구나 example.com이라는 도메인으로 접속하면 동일한 IP 주소로 접속할 수 있다면 얼마나 좋을까? 도메인 이름은 유지하면서 IP 주소만 바꾸는 유연함도 가질 수 있어!

Stanford Research Institue: 전세계의 모든 host 파일 관리하는 단체
Stanford Research Institue로부터 host 파일을 다운로드 받아 개인 컴퓨터에 덮어쓰는 방식으로 진행함

문제점
새로 다운로드 받기 전에는 신규추가된 호스트의 이름을 사용할 수 없음
SRI는 많은 공수와 비용이 듦
하나의 host 파일에 인터넷에 참여하는 모든 컴퓨터의 주소가 담기는 것은 한계에 도달할 수 밖에 없음

해결
1983년 DNS 등장

#6

서버로 DNS 사용할 때

외부에서 자신의 컴퓨터에 접속할 때 도메인 이름으로 접속할 수 있었으면 좋겠다.
DNS 서버에 자신의 IP는 이렇고 저러한 도메인 주소를 갖게 하고 싶다고 요청한다
DNS가 기억한다

Clinet로 DNS 사용할 때

개인 컴퓨터가 인터넷에 접속되는 순간 DHCP를 통해 DNS 서버에 IP주소가 자동으로 세팅이 된다
외부 사용자가 도메인을 검색한다
1. 외부 컴퓨터는 host 파일을 찾아본다
2. host 파일에 없다면, DNS 서버에 접속해서 도메인 네임의 IP가 뭐냐고 물어본다
3. DNS 서버가 응답한다
4. 해당 IP에 접속할 수 있게 된다

효용성

  • 행정절차 간소화, 신속화
  • host 이름을 파일이 아닌, 서버를 통해 서비스하고 있다. 즉, DNS 서버 내의 IP주소 및 도메인이 변동될 때, DNS 서버의 모든 유저들은 즉시 업데이트된 내역을 사용할 수 있다.

#7

Public DNS

DNS 서버의 IP와 도메인을 아는 방법
개인 컴퓨터가 인터넷에 연결되는 순간, ISP들이 DNS 서버 IP를 자동세팅 함
다만 성능이나 Privacy 이슈로 ISP가 세팅한 DNS 서버를 쓰고 싶지 않을 수도 있다

통신사에서 제공하는 DNS 서버는 우리가 방문한 사이트를 알게 된다
통신사는 방문한 사이트의 정보를 저장할 수 있게 되고, 자사의 이익을 위해 마케팅 정보나 정보기관에 제공할 수도 있고, 통신사의 인력에 의해 방문사이트 목록이 유출될 수도 있다. 이러한 문제들이 우려되어 안전한 DNS 서버를 사용하고 싶을 수도 있다. 그렇다면 public dns server 검색해서 원하는 서비스 이용하면 됨

#8

DNS Internal

각 부분들을 담당하는 독자적인 DNS 서버 컴퓨터들이 존재한다
Root 도메인을 담당하는 DNS 서버는 직속 하위 레벨인 Top-level을 담당하는 서버들의 목록과 IP 주소를 알고 있어야 한다 (상위가 직속 하위파트를 알고 있어야 한다)

blog.example.com.의 IP 주소는 sub 도메인 전담 DNS 서버가 알고 있다
최소한 모든 컴퓨터들은 Root 네임서버의 IP주소를 알고 있다

Root DNS 서버: ".com.을 전담하는 네임서버들의 IP를 알려줄게!"
Top-level DNS 서버: "example.com.을 전담하는 네임서버들의 IP를 알려줄게!"

#9

DNS register

#10

DNS에서 필요한 정보를 알아내는 방법
nslookup

example.com 라는 주소를 갖고 있는 컴퓨터의 IP 주소를 알고 싶다

  1. 윈도우 + r - "cmd" - ok
nslookup (-type=a) example.com

서버: (본인 컴퓨터의 DNS 서버 IP 주소)
Address:

권한 없는 응답: (권한이 없는 이유: cache - 내 컴퓨터의 DNS 서버에 해당 도메인에 대한 기록이 있다)
이름: example.com
Addresses: (example.com 도메인의 IP 주소)

example.com 의 NS가 누구냐

nslookup -type:ns example.com

서버:
Address:

권한 없는 응답: (example.com의 NS는 누구이고, 총 2대다)
example.com nameserver = a.iana-servers.net
example.com nameserver = b.iana-servers.net

a.iana-servers.net internet address =
b.iana-servers.net internet address =
a.iana-servers.net AAAA IPv6 address =
b.iana-servers.net AAAA IPv6 address =

본인 컴퓨터의 DNS 서버를 거치지 않고 authoritative NS에 직접 물어보기

nslookup example.com a.iana-servers.net.

서버: a.iana-servers.net
Address:

이름: example.com
Addresses:

#11

나의 도메인 이름 장만하기

#12

DNS record & CNAME(canonical name, 주소를 부여하는 또다른 방법)

A record: 도메인에 대한 IP 주소
CNAME record: 도메인에 대한 또다른 도메인 지정. 별명을 붙인다

#13

Github pages에 도메인 연결하기

깃헙의 사례를 통해 특정 서비스에 원하는 도메인을 입히는 방법

출처: 생활코딩

0개의 댓글