컴퓨터 네트워크 03 : DNS 정리

728x90

컴퓨터 네트워크 03 : DNS 정리


 

우리가 외우기 어려운 IP주소 대신 웹사이트 접속시에는 보통 도메인 이름을 사용한다.(www.naver.com)

그러나 라우터는 특정 사이트를 IP주소로 찾을 수 있는데, 그것이 가능하도록 인터넷 도메인과 IP주소를 짝지어주는 역할을 하는 것이 DNS이다.

 

역할

도메인 주소를 IP 주소에 매핑(IPv4, IPv6)

도메인 주소를 다른 도메인 주소에 매핑해주는 역할(CNAME)

도메인 주소 하나에 여러 개의 IP주소를 매핑(Load Distribution or Load Balancing)

 

특징

분산 데이터베이스 시스템 -> 가용성 보장, 트래픽 분산으로 접속 지연 문제 해결하고 유지보수 용이하게 함

응용 계층에서 관여함(매핑 정보 제공하는 서버, 매핑 정보 요청하는 클라이언트 사이의 프로토콜)

 

구성요소

1. DNS(Domain Name Space): 도메인 이름을 분산해서 저장하는 방법

2. Name Server(권한O): 해당 도메인 이름의 IP주소를 찾는 역할

3. Resolver(권한X)(Recursive DNS Server = Local Server = Recursor): DNS 클라이언트 요청을 네임 서버로 전달하고 찾은 정보를 클라이언트에게 제공하는 역할

 

도메인 이름에 대한 IP 주소 텍스트를 저장할 데이터베이스, 그리고 해당 IP주소로 이동할 브라우저와 같은 프로그램이 필수적이다.

 

도메인에 대한 IP주소를 분산해서 저장하는 이유?

> 네임 서버를 여러 개 두어서 여러 도메인에 대해 각각의 IP주소를 받아오도록 한다면 도메인과 IP주소를 모든 서버에서 공유해야만 한다. 그렇지 않으면 특정 네임서버에서 IP주소 값을 받아오지 못할 수 있기 때문이다.

따라서 도메인과 IP주소를 계층적으로 분산하는 구조를 선택하여 이를 원활하게 동작하도록 하였다.

 

 

 

 

 

1. DNS(Domain Name Space)

도메인 이름을 분산해서 저장하는 방법

전 세계적 규모의 거대한 분산 시스템

최상위에 있는 Root Domain로부터 하위 노드로 연속적으로 이어진 계층구조이다.

 

계층적 분산 구조의 예시는 이렇다.

웹 브라우저가 Resolver server에게 요청한다. > "www.xxxx.kr의 IP주소를 주세요"

Resolver server가 최상위 기관 네임서버에게 요청한다. > ".kr 도메인 있나요?"

최상위 기관 네임서버가 응답한다. > ".kr은 저희 관할이 아니라 한국 국가 도메인입니다. .kr 네임서버로 가세요~"

Resolver server가 .kr 네임서버에게 요청한다. > "www.xxxx.kr IP주소 주세요..."

.kr 네임서버가 응답한다. > "저희 관할이 아니에요 가비아(도메인 판매 업체 중 하나)로 가세요~"

Resolver server가 가비아 네임서버에게 요청한다. >  "제발 www.xxxx.kr IP주소 주세요!!"

가비아 네임서버가 응답한다. > "아 넹 12.345.678.900으로 가시면 됩니다."

Resolver server가 웹 브라우저에게 알린다. > "12.345.678.900으로 가시면 된답니다.."

 

FQDN(Fully Qualified Domain Name) 전체 도메인 이름 표기 방식

도메인 이름: 'dkdkdkdk.com'

호스트 이름: 'www'

FQDN: 'www.dkdkdkdk.com'

 

 

2. 네임서버(Name Server = DNS Server)

문자열로 표현된 도메인 네임을 실제 컴퓨터가 통신할 때 사용하는 IP 주소로 변환시키기 위해서는 도메인 네임 스페이스의 트리 구조에 대한 정보가 필요한데, 이러한 정보를 가지고 있는 서버를 네임서버라고 한다.

데이터 베이스 역할과 IP찾는 역할, 요청 처리 응답 구현 역할을 한다.

 

Root DNS 서버

ICANN이 직접 관리한다.

TLD DNS 서버 IP 주소를 저장, 안내하는 역할.

 

TLD(Top-Level Domain) 서버

도메인 등록 기관이 관리하는 서버이다.

Authoritative DNS 서버 주소를 저장하고 안내하는 역할.

도메인 판매 업체(가비아 등)의 DNS 설정이 변경되면 도메인 등록 기관으로 전달되므로 어떤 도메인이 어떤 판매업체에서 구매했는지를 알 수 있다.

ccTLD: country code TLD: 국가적으로 관리하는 DNS(kr, jp, cn, uk...)

gTLD: generic TLD: 국가에 대한 제약이 없는 DNS(org, edu, net, com...)

최상위는 TLD, 그 아래는 2nd TLD라고 부른다.

 

SLD(Second-Level Domain) DNS 서버(=Authoritative DNS 서버)

실제 개인 도메인과 IP주소의 관계가 관리되는 서버. 도메인, 호스팅 업체의 네임서버를 말한다.

개인 DNS를 구축할 경우에도 이에 해당한다.

 

권한없는 DNS 서버(Resolver 서버, Reculsive 서버, Recursor, Local DNS Name Server, Default Name Server)

권한 있는 DNS 서버들은 IP 주소와 도메인 이름을 매핑했지만, 여기서는 질의를 통해 IP 주소를 알아내거나 캐시한다.

엄격한 계층을 따르지 않는 것이 특징이다.

ISP(회사, 대학)마다 하나씩 설치가 되어있다.

 

 

3. Resolver

웹 브라우저와 같은 DNS 클라이언트의 요청을 네임 서버로 전달하고 네임 서버로부터 도메인 이름과 IP 주소를 받아 클라이언트에게 제공하는 기능을 수행.

요청한 네임 서버가 정보를 안가지고 있으면 다른 네임 서버에게 요청을 보내는 방식이다.

 

 

4. DNS 동작 과정

DNS Query

DNS 클라이언트와 DNS 서버간에 DNS 쿼리를 교환하게 된다.

DNS 쿼리는 Recursive(재귀적) 또는 Iterative(반복적)으로 구분된다.

 

Iterative Query(반복적 질의)

Recursive DNS 서버가 다른 DNS 서버에게 쿼리를 보내 응답을 요청하는 작업.

Recursive 서버에 이미 IP 주소가 캐시 되어 있으면 그냥 받아오고 끝!

없으면 Recursive 서버가 권한 있는 네임 서버들에게 반복적으로 쿼리를 보내어 IP주소를 알아낸다.

 

Recursive Query(재귀적 질의)

IP 주소를 웹 브라우저에게 돌려주는 작업. 결과물을 받아내어 응답하는 작업.

Recursive 쿼리를 받은 Recursive 서버가 Iterative하게 권한 있는 네임 서버로 Iterative 쿼리를 보내서 IP주소를 받아오고 웹 브라우저에 응답한다.

 

예시

  1. 웹 브라우저에 www.hanamon.kr을 입력한다.
  2. 웹 브라우저는 이전에 방문한적 있는지 찾는다.
    • 브라우저 캐시 확인
    • OS 캐시 확인
    • 라우터 캐시 확인
    • ISP 캐시 확인 (Recursive DNS Server)
  3. ISP에서 DNS Iterative하게 쿼리를 날린다.
  4. ISP는 Authoritative DNS 서버에서 최종적으로 IP 주소를 응답받는다.
  5. ISP는 해당 IP 주소를 캐시한다.
  6. 웹 브라우저에게 응답한다.

 

 

Q. DNS 서버의 역할은?

인터넷 인프라의 필수 구성 요소.

사람이 읽을 수 있는 도메인 이름(www.naver.com)을 컴퓨터가 읽을 수 있는 IP주소로 변환(192.0.0.0).

 

웹 브라우저에 웹 사이트 도메인 이름을 입력하면 컴퓨터가 DNS 서버에 DNS 쿼리를 보내서 도메인 이름을 IP 주소로 변환하도록 요청함.

자주 액세스하는 도메인 이름을 캐시해서 확인 프로세스 속도를 높이고, 네트워크 부하를 줄일 수 있음.

 

 

Q. 도메인과 IP 주소가 무엇인가?

도메인 이름과 IP 주소는 인터넷 기능에 필수적인 컴퓨터 네트워킹의 두 가지 기본 개념.

도메인 이름은 인터넷에서 웹 사이트 또는 네트워크 리소스를 나타내는 사람이 읽을 수 있는 이름임.(www.naver.com)

도메인 이름은 .com, .org, .net 등과 같이 이름 끝에 접미사가 붙는 TLD(최상위 도메인)와 함께 계층 구조로 구성되며, TLD 아래에는 하나 이상의 하위 도메인이 있을 수 있습니다.



반면에 IP 주소는 인터넷에 연결된 모든 장치에 할당된 고유한 숫자 식별자임. 192.168.1.1과 같이 마침표로 구분된 4개의 숫자로 구성됨.

IP 주소는 인터넷을 통해 동적 혹은 정적으로 올바른 장치에 데이터 패킷을 라우팅하는 데 사용됨.

유동 IP 주소는 인터넷 서비스 공급자(ISP)가 할당하며 장치가 인터넷에 연결할 때마다 변경될 수 있는 반면 고정 IP 주소는 동일하게 유지되며 일반적으로 서버 및 기타 네트워크 리소스에 할당됨.


웹 브라우저에 도메인 이름을 입력하면 DNS(도메인 이름 시스템) 서버가 해당 이름을 IP 주소로 변환하여 브라우저가 웹 사이트의 서버를 찾고 콘텐츠를 검색할 수 있도록 함.

즉, 도메인 이름은 인터넷에서 리소스를 나타내고 식별하는 데 사용되는 반면 IP 주소는 해당 리소스를 찾고 통신하는 데 사용됨.

728x90