DNS란 무엇인가요?

소개

도메인 이름 시스템은 인터넷이나 개인 네트워크에 연결된 컴퓨터, 서비스 또는 기타 리소스를 위한 계층적이고 분산된 명명 시스템입니다. 브라우저에서 컴퓨터 서비스나 장치를 찾아 연결해야 할 때마다 DNS는 쉽게 기억할 수 있는 도메인 이름을 해당 리소스의 숫자로 된 인터넷 프로토콜(IP) 주소로 변환하는 작업을 자동으로 수행합니다. DNS를 인터넷의 전화번호부라고 생각할 수 있습니다. 이는 사람들이 인터넷에 연결된 모든 기기와 서비스를 이름으로 쉽게 식별할 수 있도록 하기 위해 만들어졌습니다.

DNS 용어
도메인 이름

도메인 이름은 인터넷 소스와 관련된 사용자 친화적인 이름입니다. 예를 들어 www.f5.com은 도메인 이름이고, URL은 F5가 소유한 서버와 연결됩니다.

도메인의 하위 구분을 하위 도메인이라고 합니다. 예를 들어, support.f5.com은 F5.com의 지원에 대한 하위 도메인입니다. 하위 도메인은 도메인 이름 왼쪽에 점이 붙어 있는 것을 말합니다.

DNS 조회

DNS 조회는 클라이언트(웹 브라우저 등)가 특정 도메인에 대한 DNS 서버를 쿼리하는 프로세스입니다. 그러면 DNS 서버는 IP 주소로 응답하고, 이를 통해 클라이언트는 원하는 목적지로 이동하게 됩니다.

도메인 이름 공간

도메인 이름 공간은 인터넷의 전반적인 이름 구조를 정의합니다. 이는 최상위에 루트 도메인 이름이 있는 트리 형태의 도메인 이름 구조입니다. 해당 루트 도메인을 중심으로 .com, .net, .org 등 주요 도메인이 생겨납니다.

구역

이름 공간 트리는 영역으로 세분됩니다. 특정 도메인에서 사용할 수 있는 리소스를 정의합니다.

네임 서버

네임 서버는 영역에 대한 정보를 저장합니다. 네임 서버에는 두 가지 유형이 있습니다. 1차와 2차. 각 영역의 데이터는 기본 및 보조 이름 서버에 저장됩니다.

DNS 리졸버

DNS 리졸버는 DNS의 클라이언트 측입니다. 도메인 이름을 IP 주소로 변환하는 쿼리를 시작하고 시퀀싱하는 역할을 합니다.

DNS는 어떻게 작동하나요?

간단히 말하면, 사용자가 브라우저에 입력한 도메인 이름(예: www.f5.com)은 DNS 서버에 의해 IP 주소(104.219.105.148)로 변환됩니다. 이렇게 하면 장치가 인터넷에서 사용자가 원하는 리소스를 찾을 수 있습니다. 이 경우에는 F5 홈페이지가 됩니다.

이 프로세스를 더 자세히 살펴보겠습니다.

예를 들어 사용자가 브라우저에 도메인 이름 www.f5.com을 입력한다고 가정해 보겠습니다. 브라우저는 www.F5.com이 어디에 있는지 전혀 모르기 때문에 로컬 DNS 서버(LDNS)에 해당 웹사이트에 대한 레코드가 있는지 묻는 요청을 보냅니다. LDNS에 해당 사이트에 대한 기록이 없으면 인터넷 도메인에 대한 재귀적 검색을 시작하여 www.F5.com의 소유자가 누구인지 알아냅니다.

먼저, LDNS는 루트 서버 중 하나로 이동하여 .com DNS 서버로 연결됩니다. 그러면 .com 서버는 www.F5.com의 소유자를 확인하고 F5.com에 대한 이름 서버(NS) 레코드와 함께 LDNS에 알립니다.

먼저, LDNS는 루트 서버 중 하나로 이동하여 .com DNS 서버로 연결됩니다. 그러면 .com 서버는 www.F5.com의 소유자를 확인하고 F5.com에 대한 이름 서버(NS) 레코드와 함께 LDNS에 알립니다.

그러면 LDNS가 F5.com DNS 서버 NS 레코드를 쿼리합니다. f5.com DNS 서버는 www.F5.com이라는 이름을 조회합니다. 이름을 찾으면 LDNS에 주소(A) 레코드를 반환합니다. 이 A 레코드에는 요청 이름, LDNS에서 해당 이름에 할당된 IP 주소, 이름의 수명(또는 TTL)이 포함됩니다. TTL은 LDNS가 F5.com DNS 서버에 다시 요청하기 전에 A 레코드를 유지하는 시간을 알려줍니다.

LDNS가 A 레코드를 수신하면 TTL에 지정된 시간 동안 IP 주소 정보를 캐시합니다. 다른 클라이언트가 동일한 정보를 필요로 하는 경우 LDNS는 쿼리를 보내기 전에 자체 이름 캐시에서 답변합니다. 정보를 로컬에 보관할 수 있으므로 f5.com DNS 서버에 계속 질문할 필요가 없고, 향후 해당 리소스에 대한 연결이 더 빨라집니다.

그러면 LDNS가 F5.com DNS 서버 NS 레코드를 쿼리합니다. f5.com DNS 서버는 www.F5.com이라는 이름을 조회합니다. 이름을 찾으면 LDNS에 주소(A) 레코드를 반환합니다.

그러면 브라우저는 IP 주소를 사용하여 www.F5.com :80에 연결을 열고 GET /….를 전송합니다. 그러면 웹 서버가 웹 페이지 응답을 반환합니다.

실제로 DNS는 위의 예에서 보여준 것보다 훨씬 복잡하지만, 이를 통해 DNS가 어떻게 작동하는지 어느 정도 이해할 수 있을 것입니다.

DNS 레코드와 일반적인 유형

DNS 레코드는 DNS 서버에 어떤 IP 주소가 어떤 도메인 이름과 연관되어 있는지 알려주는 매핑 파일입니다. 또한 DNS 서버에 해당 요청을 처리하는 방법을 알려줍니다. DNS 레코드에는 다양한 유형이 있지만 특정 도메인에 대한 모든 DNS 레코드는 DNS 영역이라는 것에 저장됩니다. DNS 영역은 인터넷이 단 하나의 특정 도메인에 대한 IP 주소를 조회할 수 있도록 해주는 컨테이너라고 생각하면 됩니다.

일반적인 DNS 레코드 유형은 다음과 같습니다.

A 및 AAAA 레코드

주소 또는 A 레코드(호스트 레코드라고도 함)는 DNS의 중심 레코드입니다. 이러한 기록은 도메인을 IP 주소에 연결합니다. AAAA 레코드는 A 레코드와 동일하지만 32비트 IPv4 IP 주소 대신 128비트 IPv6 주소를 반환합니다.

NS 기록

네임 서버(NS) 레코드는 도메인에 대한 DNS 정보를 전달하는 서버를 결정합니다. 일반적으로 도메인에는 기본 및 보조 네임 서버 레코드가 있습니다.

MX 레코드

메일 교환 레코드는 이메일 메시지를 특정 도메인의 서버로 보냅니다. 하나의 도메인에 대해 여러 개의 MX 레코드를 정의할 수 있으며, 각 레코드에는 다른 우선순위가 적용됩니다. 숫자가 가장 낮을수록 우선순위가 가장 높습니다. 첫 번째 우선순위 레코드를 사용하여 우편물을 배달할 수 없는 경우 두 번째 우선순위 레코드가 사용되는 식입니다.

TXT 레코드

텍스트 또는 TXT 레코드는 임의의 텍스트를 포함할 수 있지만, 기계가 읽을 수 있는 텍스트를 정의하는 데 사용될 수도 있습니다.

CNAME 레코드

정식 NAME 또는 CNAME 레코드는 별칭 이름을 다른 정식 도메인 이름에 연결합니다. 예를 들어, alias.example.com은 example.com에 링크될 수 있습니다.

DNS 중요성 및 제한 사항

DNS는 인터넷을 가능하게 하는 주요 기술 중 하나입니다. 이는 또한 네트워크 인프라의 중요한 구성 요소입니다. 사용 가능하고 지능적이며 안전하고 확장 가능한 DNS 인프라가 중요하기 때문에 DNS는 단순히 콘텐츠와 애플리케이션을 제공하는 것이 아니라 분산되고 중복된 아키텍처를 관리하여 높은 가용성과 고품질 사용자 응답 시간을 보장합니다. DNS에 장애가 발생하면 대부분의 웹 애플리케이션이 제대로 작동하지 않게 됩니다. 이로 인해 DNS가 중요해질 뿐만 아니라, 공격의 주요 대상이 되기도 합니다. 적절한 DNS 인프라가 없으면 고객이 귀하의 애플리케이션이나 콘텐츠에 도달할 수 없게 되며, 이로 인해 고객은 필요 사항을 위해 다른 곳을 찾게 될 수 있습니다.

그러나 표준 DNS 서비스에는 특정 제한이 있습니다. 첫째, DNS가 애플리케이션/웹사이트/콘텐츠를 사용할 수 있게 해주더라도 DNS는 그것들이 실행 중인지, 심지어 존재하는지 신경 쓰지 않습니다.

게다가 DNS는 부하를 분산시킬 실질적인 능력이 없습니다. 해당 IP가 지원하는 애플리케이션이 과부하되거나 다운되더라도 모든 IP 주소를 계속 사용합니다.

DNS에는 상태 저장형 애플리케이션 개념도 없습니다. 즉, 사용자가 동일한 IP 주소로 돌아가는 것을 보장할 수 없습니다. 예를 들어, 특정 데이터 센터로 가서 해당 데이터 센터에서 유지 관리되는 쇼핑 카트를 구축한 경우 다음에 이름을 확인할 때 동일한 IP를 받을 것이라는 보장은 없습니다.

마지막으로, 표준 DNS 서버는 초당 제한된 수의 DNS 쿼리에만 응답할 수 있으므로 분산 서비스 거부(DDoS) 공격에 취약합니다.

보안 문제

DNS는 인터넷의 중추이지만 동시에 네트워크에서 가장 취약한 지점 중 하나이기도 합니다. 이로 인해 DNS는 높은 가치의 타깃이 됩니다. DDoS 공격은 DNS 서버를 하이재킹하거나 장애를 일으킬 정도로 과부하를 일으켜, 요청을 악성 서버로 리디렉션할 수 있습니다. 이를 방지하려면 성능이 뛰어나고 분산되어 있으며 안전한 아키텍처를 네트워크에 통합해야 합니다. 회사는 DNS 급증과 DDoS 공격에 대비해 더 많은 DNS 서버를 추가해야 합니다.

DNS 서버와 클라우드 서비스는 초당 다양한 양의 요청을 처리할 수 있고 쿼리가 늘어남에 따라 비용도 증가하지만, 이 솔루션은 변경이 필요할 때 종종 수동 개입이 필요합니다. 그리고 새로운 취약점이 계속 등장하기 때문에 기존 DNS 서버는 빈번한 유지 관리와 패치가 필요하여 비용이 더욱 많이 듭니다.

DNS 인프라에서 애플리케이션 제공 컨트롤러의 역할

이제 DNS가 심각한 공격에 취약하다는 사실을 확인했으므로 ADC(Application Delivery Controller)가 DNS 인프라를 보호하는 데 어떻게 도움이 되는지 알아보겠습니다. ADC는 여러 DNS 서버의 부하를 균형 있게 조절하고 응답을 캐시하여 확장성을 제공하고 DNS 서버가 대량의 트래픽과 대규모 공격을 처리할 수 있도록 지원합니다. 이 기능을 사용하면 고객은 여러 DNS 서버를 동시에 배포하여 애플리케이션 가용성을 극대화하고, 속도를 높이고, 성능을 개선할 수 있습니다. ADC는 또한 DDoS 공격을 신속히 감지하고 해당 연결을 서버에서 다른 곳으로 라우팅하거나 완전히 거부합니다. ADC는 DNSSEC를 지원하며 조직이 캐시 포이즈닝이나 중간자 공격과 같은 위협으로부터 방어할 수 있도록 합니다. 이러한 모든 이유로 ADC는 과부하나 공격이 발생할 경우 백업으로 프로비저닝해야 하는 추가 DNS 서버의 필요성을 줄여 고객의 총 소유 비용을 줄여줍니다.

간단히 말해, 고성능 ADC는 다양한 공격으로부터 DNS 서버를 보호할 뿐만 아니라 확장성을 제공하고, 성능을 향상시키고, TCO를 줄이는 동시에 DNS 서버가 막대한 트래픽 부하를 처리할 수 있도록 지원합니다.

미래

모바일 앱과 사물 인터넷(IoT) 장치와 같은 새로운 기술이 성장함에 따라 DNS도 성장하고 있습니다. 또한, 애플리케이션의 수가 급속히 늘어나고 있으며, 해당 애플리케이션에 액세스하는 트래픽 양도 늘어나고 있습니다. 지난 5년 동안 .com 및 기타 주소에 대한 DNS 쿼리 양이 두 배로 늘어났습니다. 2016년에는 1,000만 개가 넘는 도메인 이름이 인터넷에 추가되었으며, 점점 더 많은 클라우드, 모바일, IoT 구현이 배포됨에 따라 DNS는 훨씬 더 빠른 속도로 성장할 것으로 예상됩니다. 최근 글로벌 인터넷 트래픽에 대한 연구에 따르면 2020년 말까지 인터넷 사용자 수가 41억 명으로 늘어날 것으로 예상됩니다. DNS 서버는 인터넷에 매우 중요하기 때문에 제대로 작동하는 DNS가 없다면 인터넷은 사실상 쓸모가 없습니다.

사물인터넷과 마찬가지로 클라우드 서비스의 인기도 지난 수년 동안 엄청나게 증가했습니다. 따라서 DNS 인프라와 이와 관련된 이점과 위협을 생각하는 것이 그 어느 때보다 중요해졌습니다. 한편, 클라우드 기반 권한 DNS는 더 나은 성능, 높은 가용성, 보안 및 확장성을 제공합니다. 반면에 DNS 인프라 및 DDoS 공격과 같은 위협에도 취약합니다.

이러한 위협은 웹사이트, 애플리케이션, 클라우드 서비스 및 기타 리소스에 대한 액세스를 심각하게 방해할 수 있는 잠재력이 있습니다. 이러한 공격을 막고 직원과 고객이 필요한 리소스에 언제 어디서나 계속 액세스할 수 있도록 하려면 IT 인프라를 효과적으로 계획하고 관리하는 것이 절대적으로 중요합니다.

2017년 10월 5일 게시
  • 페이스북에 공유하기
  • X에 공유
  • Linkedin에 공유하기
  • 이메일로 공유하기
  • AddThis를 통해 공유

F5에 연결

F5 Labs

최신 애플리케이션 위협 인텔리전스입니다.

DevCentral

토론 포럼과 전문가 기사를 제공하는 F5 커뮤니티입니다.

F5 뉴스룸

뉴스, F5 블로그 등.