Domain Name Service(DNS)는 사람이 읽을 수 있는 도메인 이름(예: www.amazon.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환한다.
스마트폰이나 노트북부터 대규모 웹사이트의 콘텐츠를 서비스하는 서버에 이르기 까지 인터넷상의 모든 컴퓨터는 숫자를 사용하여 서로를 찾고 통신한다. 이러한 숫자를 IP주소라 하며, 웹 브라우저를 열고 웹 사이트로 이동할 때는 긴 숫자를 기억해 입력할 필요가 없다. 그 대신 bluewings.com과 같은 도메인 이름을 입력해도 원하는 웹사이트로 갈 수 있다.
DNS에서 DN 즉 Domain Name(도메인 네임)은 넓은 의미로 네트워크상에서 컴퓨터를 식별하는 호스트명을 가리킨다. 좁은 의미에서는 도메인 레지스트리에게서 등록된 이름을 의미한다. 이를 통틀어서 '웹 주소' 라고 부르기도 한다.
키워드 : 서버 장애 인터넷 다운 Traffic 중앙서버 관리
DNS가 중앙집중식을 하지 않는 이유를 알기 전에 중앙집중식에 대해 알아야한다.
중앙집중식(中央集中方式, centrilized system)이란 모든 처리기의 기억 장치가 한곳에 모여서 모든 데이터 처리가 중앙 컴퓨터 방식으로 처리되는 방식으로, 중앙집중식은 작업 처리 결과의 범조직적 통합, 자료 처리 업무의 통제 용이, 전산요원의 효율적 이용, 대규모 일괄 처리에 따른 경제성 등의 이점을 가지고 있다. 그러나 이러한 중앙 집중식 운용은 지리적으로 분산되어 있는 데이터를 효과적으로 처리하는 데는 적합하지 않는다.
그렇다면 DNS를 중앙집중식으로 하지 않는 이유는 다음과 같다.
서버 장애, 인터넷 다운
Traffic이 집중되어 Traffic down 발생
중앙 서버까지의 거리
관리
Domain은 "." 또는 Root라 불리는 도메인 이하에 아래 그림과 같이 Inverted tree구조로 구성되어 있다. Root Domain 아래의 단계를 1단계 도메인 또는 최상위 도메인 (TLD, Top Level Domain)이라 부르며, 그 다음 단계를 2단계 도메인 (SLD, Second Level Domain)이라고 부른다.
Client가 www.google.com 의 Domain을 Local Name Server에게 물어봤을때의 경우 구조 과정은 다음과 같다.
Client Server가 Local Name Server에게 www.google.com을 물어본다
Local Name Server는 www.google.com의 IP 주소를 모르기 때문에 TLD서버들의 IP의 정보를 알고 있는 root Name Server에게 com.의 IP를 물어본다
Root Name Server에는 Zone file이 있고, 그 파일 안에는 TLD Server들의 IP의 정보가 저장되어 있다. Root Name Server는 Zone file 정보 중에서 com.의 IP를 Local Name Server에게 응답한다.
LocalNameServer는 Root Name Server에서 받은 com.의 IP를 바탕으로 TLD Server 중 com. 네임 서버에게 google.com의 IP를 물어본다.
com. Name Server는 Local Name Server에게 google.com 의 IP 를 응답한다.
Local Name Server는 google.com Name Server에게 www.google.com의 IP Address를 물어본다.
google.com Name Server는 www.google.com의 IP Address인 10.1.1.9를 Local Name Server에게 응답한다.
Local Name Server는 google.com Name Server에서 받은 www.google.com의 IP Address인 10.1.1.9를 Client Server에게 응답한다.
Client Server가 Local Name Server에게 www.ex01.co.kr. 의 Ip 주소를 물어본다.
Local Name Server가 Root Name Server에게 ns.kr. 의 Ip 주소를 물어본다.
Local Name Server가 Root Name Server로부터 ns.kr. 의 Ip 주소를 응답받는다.
Local Name Server가 ns.kr. 주소를 가진 kr DNS Server에게 ns.co.kr. 의 Ip 주소를 물어본다.
Local Name Server가 kr DNS Server로부터 ns.co.kr. 의 Ip 주소를 응답받는다.
Local Name Server가 ns.co.kr. 주소를 가진 co DNS Server에게 ns.ex01.co.kr. 의 Ip 주소를 물어본다.
Local Name Server가 co DNS Server로부터 ns.ex01.co.kr. 의 Ip 주소를 응답받는다.
Local Name Server가 ns.ex01.co.kr. 주소를 가진 ex01 DNS Server에게 ns.www.ex01.co.kr. 의 Ip Address를 물어본다.
Local Name Server가 ex01 DNS Server로부터 ns.www.ex01.co.kr. 의 Ip 주소를 응답받는다.
Local Name Server는 Client Server에게 ns.www.ex01.co.kr.의 Ip 주소를 응답해주고 별도로 캐시에 저장해둔다.
Client Server는 ns.www.ex01.co.kr.에 접속하게 된다.
공격자는 사용자가 자주 접근하는 사이트의 성격이나 이름을 찾기 위해 DNS 서버의 응답을 읽을수 있다
이러한 유형의 정보는 사용자의 프로필을 찾는데 사용할 수 있으며 이러한 공격을 방지하기 위해 DNS 메시지는 기밀성을 요구하게 된다
공격자는 DNS 서버의 응답을 가로채어 변경하여, 사용자가 접근하기를 원하는 사이트로 사용자를 유도하는 전혀 새로운 위조 응답을 만들 수 있다. 이런 유형의 공격은 메시지 출처 인증 및 메시지 무결성을 사용하여 방지할 수 있다
공격자는 DNS서버가 붕괴되거나 압박 받도록 대량 트래픽 공격이 가능하며, 이런 유형의 공격은 서비스 거부 공격에 대한 준비를 사용하여 방지한다
DNS를 보호하기 위해 IETF(국제 인터넷 표준화 기구)는 DNSSEC라는 기술을 제공한다
메시지 송신자 인증과 디지털 서명이라는 보안 서비스를 사용하여 메시지 완전 무결성을 제공한다.