조회 결과에 원본이 아닌 CDN이 보이는 이유
방문자
도메인 조회
CDN 엣지
104.21.x.x
DNS가 반환하는 대상
원본 서버
실제 IP, 노출되지 않음
CDN이 원본 IP를 숨기는 이유와 그 목적
유명한 웹사이트의 서버 주소를 기대하고 조회했는데, 대신 Cloudflare, Fastly, Akamai 소유의 주소가 나옵니다. 아무 문제도 없습니다. 도메인이 공개한 내용을 그대로 보고 있는 것이며, 실제 서버의 주소는 애초에 DNS에 있었던 적이 없습니다.
조회 결과에 원본이 아닌 CDN이 보이는 이유
방문자
도메인 조회
CDN 엣지
104.21.x.x
DNS가 반환하는 대상
원본 서버
실제 IP, 노출되지 않음
CDN이 실제로 하는 일
콘텐츠 전송 네트워크(CDN)는 전 세계에 분산된 서버 집합입니다. 모든 방문자가 하나뿐인 원본 서버에 연결하는 대신, 가장 가까운 CDN 노드에 연결하며, 그 노드가 캐시된 콘텐츠를 직접 제공하고 없는 것은 원본에서 가져옵니다.
성능 측면의 논리는 단순합니다. 싱가포르의 방문자가 버지니아의 서버에 연결하면 모든 요청마다 왕복 지연 시간이 대략 200ms 듭니다. 싱가포르의 엣지 노드는 캐시된 콘텐츠에 대해 이를 몇 밀리초로 줄여 줍니다.
이것이 동작하려면 도메인이 원본이 아니라 CDN으로 확인되어야 합니다. 이는 부수 효과가 아니라 메커니즘 그 자체입니다. DNS가 원본 주소를 반환한다면 방문자는 원본에 직접 연결할 것이고 CDN은 전혀 개입하지 않게 됩니다.
CDN 주소를 알아보는 방법
- 역방향 DNS가 제공업체를 알려 줍니다. 주소가
*.cloudflare.com,*.fastly.net,*.cloudfront.net같은 이름으로 확인됩니다. 역방향 DNS를 참고하세요. - 같은 주소가 서로 무관한 많은 사이트를 제공합니다. 엣지 노드는 설계상 공유 인프라입니다.
- 위치마다 다른 응답을 받습니다. 지리적 라우팅이 가장 가까운 노드로 보내므로, 어디에서 질의하느냐에 따라 주소가 달라집니다.
CNAME이 제공업체 호스트 이름을 가리킵니다.www.example.com CNAME example.com.cdn.cloudflare.net같은 레코드는 의심의 여지가 없습니다.
dig +short example.com
dig +short -x 104.21.32.47두 번째 명령은 역방향 조회입니다. 제공업체의 호스트 이름이 반환되면 답을 얻은 것입니다.
원본을 일부러 숨기는 이유
숨김은 부산물이 아닙니다. 사람들이 비용을 내고 얻는 보안 속성입니다.
| 위협 | 원본을 숨기면 얻는 효과 |
|---|---|
| DDoS 공격 | 공격 트래픽이 하나뿐인 내 서버가 아니라 CDN의 용량에 부딪힙니다. 대형 사이트가 CDN을 쓰는 주된 이유입니다. |
| 직접적인 악용 | 공격자는 원본을 먼저 찾아내지 않으면 접근할 수 없으므로, 스캔과 탐색이 엣지로 향합니다. |
| WAF 우회 | 원본에 직접 접근할 수 있다면 엣지의 모든 방화벽 규칙을 그냥 건너뛸 수 있습니다. |
| 요청 제한 회피 | 엣지에서 적용하는 제한은 그 뒤쪽으로 연결해서는 우회할 수 없습니다. |
조회 결과가 의미하는 바
이는 답을 읽는 방식을 바꿀 뿐, 답이 맞는지 여부를 바꾸지는 않습니다.
핵심 요약
조회는 이 도메인의 트래픽이 지금 어디로 향하는지 알려 줍니다. CDN 앞단에 있는 사이트라면 그것은 엣지이며, 실제로 올바르고 유용하며 유일한 공개 응답입니다.
실제적인 결과는 다음과 같습니다.
- 지리 정보는 의미가 없습니다. 엣지 노드가 있는 도시는 사업체나 데이터가 어디에 있는지가 아니라 내가 어디로 라우팅되는지를 알려 줍니다.
- 역방향 IP 조회는 잡음입니다. 서로 무관한 수천 개의 도메인이 하나의 엣지 주소를 정당하게 공유합니다.
- 주소가 불안정합니다. CDN은 엣지 주소를 끊임없이 재할당합니다. 하드코딩하거나 이를 기반으로 방화벽 규칙을 만들지 마세요.
- 차단하면 모두가 차단됩니다. 공유 엣지 주소를 차단하면 그 노드 뒤에 있는 모든 사이트가 영향을 받습니다.
그래도 원본을 찾으려는 시도에 관한 참고
원본 서버의 정체를 밝히는 기법을 설명한 글들이 존재합니다. 과거 DNS 아카이브, 인증서 투명성 로그, CDN 뒤로 옮기지 않은 서브도메인, 원본이 보낸 메일의 이메일 헤더 등입니다.
이 모두는 CDN을 무력화하는 것이 아니라 대상이 저지른 실수를 악용하는 방식으로 작동합니다. 그리고 누군가 원본을 숨긴 이유는 대개 공격받고 있기 때문입니다. 다른 조직이 의도적으로 구축한 보호 장치를 무력화하려고 그 인프라를 탐색하는 것은 중립적인 행위가 아니며, 많은 법적 관할권에서 합법적이지도 않습니다.
조회 도구는 CNAME 체인을 포함해 모든 도메인의 전체 공개 레코드 집합을 보여 주며, 사이트가 애초에 CDN 앞단에 있는지 확인하는 가장 빠른 방법인 경우가 많습니다.
도메인의 공개 DNS 주소를 확인해야 하나요? Domain IP Lookup 도구를 사용해 보세요.
자주 묻는 질문
관련 글
호스트 이름 하나에 A 레코드 여러 개
첫 번째 응답
93.184.216.34
두 번째 응답
93.184.216.35
세 번째 응답
93.184.216.36
리졸버는 모든 레코드를 반환하며, 보통 순서가 순환됩니다
한 도메인에 IP 주소가 여러 개인 이유
하나의 이름에 여러 주소가 나타나는 데는 네 가지 서로 다른 메커니즘이 있습니다. 이를 구분하면 내 응답이 다른 사람과 다른 이유를 알 수 있습니다.
확인된 주소 뒤에 실제로 있는 것
공유 IP
한 주소에 여러 사이트, Host 헤더로 구분
전용 IP
나만 사용, 역방향 DNS를 직접 제어
CDN 엣지
원본이 아님, 엣지에서 연결 종료
공유 IP와 전용 IP 주소: 어느 쪽이 필요할까요?
솔직한 답은 대부분의 웹사이트에 전용 IP가 필요하지 않다는 것입니다. 정말 중요한 경우와 근거 없는 장점을 정리합니다.
재귀 DNS 조회, 단계별로 살펴보기
브라우저
example.com 요청
리졸버
내 ISP / 1.1.1.1
루트 + TLD
.com 운영 주체는?
권한 네임서버
실제 응답
체인의 각 단계도 DNS 조회이며 이후 캐시됩니다
웹사이트 IP 주소 찾는 5가지 방법
온라인 도구, ping, nslookup, dig, 개발자 도구까지. Windows, macOS, Linux별 명령어와 함께 도메인을 확인하는 다섯 가지 방법을 소개합니다.