중요 알림: Google과 Yahoo는 2024년 4월부터 DMARC를 요구할 예정입니다.
PowerDMARC

DNS는 어떻게 작동하나요?

DNS 작동 방식

DNS 작동 방식

읽기 시간: 4

DNS(도메인 이름 시스템)는 사람이 읽을 수 있는 도메인 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환합니다. 이는 온라인 세계를 탐색하는 데 필수적인 부분으로, 웹사이트에 액세스하고 이메일을 보내며 다른 사람들과 연결할 수 있게 해줍니다. 없이 DNS가 없다면 즐겨 찾는 웹사이트에 액세스하기 위해 긴 숫자 문자열을 외워야 할 것입니다.

그렇다면 DNS는 어떻게 작동하며 왜 그렇게 중요한 걸까요? 이 글에서는 DNS의 기본 사항을 살펴보고 인터넷이 원활하게 작동하는 방법을 알아보세요.

DNS 구조

URL에는 일반적으로 도메인 이름이 포함됩니다. 도메인 네임은 여러 레이블로 구성됩니다. 도메인 계층 구조의 각 섹션은 세분화를 나타내며 오른쪽에서 왼쪽으로 읽어야 합니다.

도메인 이름의 마침표 뒤에는 TLD가 있습니다. 최상위 도메인은 여러 가지가 있지만 몇 가지 예는 다음과 같습니다. .com, .org, .edu. 미국의 경우 .us, 캐나다의 경우 .ca와 같은 특정 도메인은 국가 코드 또는 특정 지역을 나타낼 수 있습니다. 또한 정부 기관을 위한 .gov, 군 기관을 위한 .mil과 같은 산업별 도메인 확장자와 인공 지능과 관련된 기업 및 개인에게 점점 인기를 얻고 있는 .ai 도메인 확장자와 같은 새로운 옵션도 있습니다.

TLD 왼쪽에 각 레이블과 연결된 두 개의 하위 도메인이 있습니다. URL www.techtarget.com, "techtarget" 은 .com의 하위 도메인이고 "www." 는 techtarget.com의 하위 도메인입니다.

레이블당 최대 63자, 하위 도메인의 레벨은 127개까지 사용할 수 있습니다. 도메인의 총 글자 수는 최대 253자까지 사용할 수 있습니다. 

숫자 TLD 이름은 금지되며 레이블은 하이픈으로 시작하거나 하이픈으로 끝날 수 없습니다.

인터넷 엔지니어링 태스크포스(IETF)에서 발행한 의견 요청(RFC) 1035에는 도메인 이름 설정에 대한 표준이 포함되어 있습니다.

DNS는 어떻게 작동하나요?

운영 체제의 DNS 클라이언트는 사용자가 브라우저에 사람이 읽을 수 있는 주소를 입력하면 로컬 캐시를 검색하여 정보가 있는지 확인합니다. 원하는 주소가 없으면 LAN(로컬 영역 네트워크)에서 DNS 서버를 검색합니다.

로컬 DNS 서버가 쿼리를 수신하고 원하는 도메인 이름을 찾으면 바로 응답합니다. 로컬 서버는 이름을 검색할 수 없는 경우 인터넷 서비스 제공업체(ISP)가 자주 제공하는 DNS 캐시 서버로 요청을 전달합니다.

DNS 서버는 임시로 저장하기 때문에 요청에 신속하게 응답합니다. DNS 레코드 를 캐시에 임시 저장하기 때문에 요청에 신속하게 응답합니다. 권한이 있는 DNS 서버에서 가져온 캐시 값을 기반으로 요청 확인을 제공하기 때문에 이러한 DNS 캐시 서버를 비권한 DNS 서버라고 합니다.

모든 최상위 도메인에 대한 권한 있는 네임 서버 목록은 최신 상태로 유지되며 권한 있는 루트 네임 서버(.com, .org 등)에서 사용할 수 있습니다. 권한 있는 최상위 도메인 네임 서버는 모든 도메인에 대한 권한 있는 네임 서버를 유지 관리합니다(gmail.com, wikipedia.org 등).

지정된 도메인에 대한 올바른 권한 있는 네임 서버를 확인하기 위해 네임 서버를 쿼리해야 합니다.

DNS 쿼리 유형

DNS 쿼리 는 DNS 확인자에게 보내는 요청 유형입니다. 클라이언트는 DNS 서버에 쿼리할 수 있으며, 서버는 응답으로 응답합니다.

재귀적 DNS 쿼리

DNS 쿼리는 재귀적 쿼리 또는 반복 쿼리 중 하나입니다. 재귀 쿼리는 도메인 이름과 일치하는 주소 레코드에 대한 정보를 요청합니다. 서버에 요청된 레코드가 없는 경우 다른 서버에 도움을 요청하여 레코드를 찾습니다.

재귀 쿼리는 인터넷 백본을 통해 연결된 여러 서버를 사용할 수 있기 때문에 빠르게 답을 찾는 데 유용합니다.

반복 DNS 쿼리

반면 반복 쿼리는 권한 있는 DNS 영역 파일의 일부로 이미 등록된 도메인에 대한 정보만 요청합니다.

따라서 다른 서버의 외부 도움이 필요하지 않으며 정찰을 수행할 때와 같이 대상 호스트의 존재 여부를 아직 모를 때 사용할 수 있습니다.

비재귀 쿼리

비재귀 쿼리는 캐싱 네임 서버를 거치지 않고 한 컴퓨터에서 다른 컴퓨터로 이루어집니다. 클라이언트 컴퓨터는 특정 도메인 이름의 IP 주소(www.example.com)를 요청하지만 해당 도메인 이름이나 상위 도메인에 대한 다른 레코드는 요청하지 않습니다.

클라이언트는 서버가 자신을 대신하여 다른 서버에 요청을 전달하지 않고도 서버가 답을 알고 즉시 반환할 것으로 기대합니다.

웹 성능 향상을 위한 DNS의 역할

서버가 DNS 쿼리에서 얻은 A 레코드 또는 IP 주소는 미리 정해진 기간 동안 캐시할 수 있습니다. 캐싱은 효율성을 높여 동일한 IP 주소에 대한 요청이 수신될 때 서버가 신속하게 대응할 수 있도록 합니다.

예를 들어, 직장의 모든 사람이 같은 날 특정 웹사이트에서 동일한 교육 동영상을 시청해야 하는 경우 로컬 DNS 서버는 이름을 한 번만 확인하면 됩니다.

그 후에는 캐시에서 후속 요청을 처리할 수 있습니다. 레코드가 유지되는 시간(일반적으로 TTL(Time to Live)이라고 함)은 관리자가 결정하며 여러 기준에 따라 달라집니다. 시간 간격이 짧을수록 가장 정확한 응답을 제공하고, 시간 간격이 길수록 서버 부하가 줄어듭니다.

마무리

결론적으로, DNS는 우리가 웹을 쉽게 탐색할 수 있도록 해주는 인터넷 인프라의 중요한 부분입니다.

 DNS는 사람이 읽을 수 있는 도메인 이름을 IP 주소로 변환하여 웹사이트에 액세스하고, 이메일을 보내고, 온라인에서 소통할 수 있도록 도와줍니다. DNS는 계층적 서버 시스템에서 작동하며, 각 서버는 특정 도메인 또는 영역을 담당합니다.

 DNS의 작동 방식을 이해하면 온라인 활동의 근간이 되는 복잡한 네트워크와 이 모든 것이 원활하게 작동하는 데 필요한 작업을 더 잘 이해할 수 있습니다.

모바일 버전 종료