
도메인 이름 시스템(DNS)은 사용자에게 친숙한 도메인 이름을 컴퓨터가 네트워크에서 서로를 식별하는 데 사용하는 인터넷 프로토콜(IP) 주소로 변환하는 인터넷 표준 프로토콜의 구성 요소이다.
종종 “인터넷용 전화번호부”라고도 불리는데, DNS가 스마트폰이 연락처를 관리하는 것과 거의 동일한 방식으로 도메인 이름을 관리하기 때문이다. 스마트폰은 쉽게 검색할 수 있는 연락처 목록에 전화번호를 저장하기 때문에 사용자가 개별 전화번호를 기억할 필요가 없다.
💡 즉 전화번호는 IP, 저장한 이름은 도메인 이름으로 비유할 수 있다.
마찬가지로 DNS를 사용하면 사용자가 IP 주소 대신 인터넷 도메인 이름을 사용하여 웹 사이트에 연결할 수 있다. 예를 들어 웹 서버가 ‘93.184.216.34’에 있다는 것을 기억할 필요 없이 ‘www.example.com’이라는 웹페이지로 이동하기만 하면 원하는 결과를 얻을 수 있는 것이다.
처음부터 개발자들은 빠르게 확장되는 컴퓨터 네트워크에 보조를 맞출 수 있는 도메인 이름 확인에 대한 것 보다 동적인 접근 방식을 용이하게 하기 위해 계층적 분산 데이터베이스 구조로 DNS를 설계했다. 계층 구조는 점(.)으로 표시된 루트 수준에서 시작하여 ‘.com’, ‘.org’. ‘.net’ 과 같은 최상위 도메인(TLD) 또는 ‘.uk’ 및 ‘.jp’와 같은 국가 코드 TLD(ccTLD) 및 두 번째 수준 도메인으로 나뉜다.
DNS 아키텍처는 두 가지 유형의 DNS 서버, 즉 재귀 서버와 권한 있는 서버로 구성된다. 재귀 DNS 서버는 사용자를 웹 사이트에 연결하는 정보를 검색하는 “요청”을 수행하는 서버이다.
재귀 확인자 또는 DNS 확인자라고도 하는 재귀 서버는 일반적으로 인터넷 서비스 공급자(ISP), 대기업 또는 기타 타사 DNS 서비스 공급자가 관리한다. 이들은 최종 사용자를 대신하여 도메인 이름을 IP 주소로 확인한다. 또한 재귀 해석기는 특정 기간(TTL(Time-to-Live) 값으로 정의됨) 동안 요청에 대한 응답을 캐시하여 향후 동일한 도메인에 대한 쿼리를 위해 시스템 효율성을 개선한다.
사용자가 검색 브라우저에 웹 주소를 입력하면 브라우저는 재귀 DNS 서버에 연결하여 요청을 확인한다. 재귀 서버에 응답이 캐시된 경우 사용자를 연결하고 요청을 완료할 수 있다. 그렇지 않으면 재귀 확인자는 일련의 권한 있는 DNS 서버를 쿼리하여 IP 주소를 찾고 사용자를 원하는 웹 사이트에 연결한다.
권한 있는 서버는 "답변"을 제공한다. 권한 있는 이름 서버는 도메인에 대한 최종 레코드를 보유하고 해당 영역 내에 저장된 도메인 이름에 대한 요청에 응답한다(일반적으로 도메인 소유자가 구성한 답변으로 응답). 권한 있는 이름 서버에는 여러 유형이 있으며, 각 유형은 DNS 계층 구조 내에서 특정 기능을 수행한다.
권한 있는 DNS 이름 서버에는 다음이 포함된다.
루트 이름 서버
루트 이름 서버는 DNS 계층 구조의 최상위에 위치하며 루트 영역(DNS의 중앙 데이터베이스) 관리를 담당한다. 루트 영역 내에 저장된 레코드에 대한 쿼리에 응답하고 적절한 TLD 이름 서버로 요청을 참조한다.
TLD에 대한 요청을 처리하고 쿼리를 적절한 TLD 이름 서버로 전달하는 13개의 서로 다른 루트 서버 네트워크(A~M으로 식별)를 쿼리하는 데 사용되는 13개의 IP 주소가 있다. 이러한 루트 서버 네트워크는 인터넷주소자원관리기구(ICANN)에서 운영한다.
최상위 도메인(TLD) 이름 서버
TLD 서버는 일반 최상위 도메인 (gTLD) 을 비롯한 계층 구조의 다음 수준을 관리하는 역할을 한다. TLD 이름 서버는 해당 TLD 내의 특정 도메인에 대한 권한 있는 이름 서버로 쿼리를 전달한다. 따라서 ".com"에 대한 TLD 이름 서버는 ".com"으로 끝나는 도메인을 디렉션하고, ".gov"에 대한 TLD 이름 서버는 ".gov"로 끝나는 도메인을 디렉션한다.
도메인 이름 서버(2단계 도메인 이름 서버)
도메인 이름 서버(2단계 도메인 이름 서버라고도 함)는 "ibm.com"과 같이 전체 도메인 이름의 IP 주소가 포함된 영역 파일을 보유한다.
DNS의 모든 쿼리(DNS 요청이라고도 함)는 동일한 논리에 따라 IP 주소를 확인한다. 사용자가 URL을 입력하면 컴퓨터는 DNS 서버를 점진적으로 쿼리하여 사용자의 요청을 처리하는 데 적합한 정보 및 리소스 레코드를 찾는다. 이 프로세스는 DNS가 해당 도메인과 연결된 권한 있는 DNS 서버에서 올바른 응답을 찾을 때까지 계속된다.
보다 구체적으로 DNS의 쿼리 확인에는 몇 가지 주요 프로세스 및 구성 요소가 포함된다.
사용자가 "ibm.com"과 같은 도메인 이름을 브라우저나 앱에 입력하면 요청이 재귀 DNS 확인자로 전송된다. 일반적으로 사용자의 디바이스에는 인터넷 서비스 공급자(ISP)가 제공하는 사전 정의된 DNS 설정이 있으며, 이를 통해 클라이언트가 쿼리하는 재귀 확인자를 결정한다.
재귀 확인자는 이전 DNS 조회를 보관하는 웹 브라우저 또는 운영 체제(예: macOS, Windows 또는 Linux) 내의 임시 스토리지인 캐시에서 도메인의 해당 IP 주소를 확인한다. 재귀 확인자의 캐시에 DNS 조회 데이터가 없는 경우 확인자는 루트 서버부터 시작하여 권한 있는 DNS 서버에서 데이터를 검색하는 프로세스를 시작한다. 재귀 확인자는 최종 IP 주소를 찾을 때까지 DNS 계층 구조를 쿼리한다.
재귀 확인자는 루트 이름 서버를 쿼리하고, 루트 이름 서버는 해당 도메인에 대한 적절한 TLD 서버(여기서는 ".com" 도메인을 담당하는 TLD 이름 서버)에 대해 참조로 응답한다.
확인자는 ".com" TLD 이름 서버를 쿼리하고, 이 서버는 "ibm.com"에 대한 권한 있는 이름 서버의 주소로 응답한다. 이 서버를 2단계 도메인 이름 서버라고도 한다.
확인자는 도메인의 이름 서버를 쿼리하고, 이름 서버는 DNS 영역 파일을 조회하고 제공된 도메인 이름에 대한 올바른 레코드로 응답한다.
재귀 확인자는 레코드의 TTL에 지정된 시간 동안 DNS 레코드를 캐시하고 IP 주소를 사용자의 디바이스로 반환한다. 그런 다음 브라우저 또는 앱은 요청된 웹 사이트 또는 서비스에 액세스하기 위해 해당 IP 주소에서 호스트 서버에 대한 연결을 시작할 수 있다.