CloudFlare DNS는 GeoDNS에 취약하다 – EDNS Client Subnet

(Last Updated On: July 3, 2020)

EDNS Client Subnet Field 라는 것을 알게되었다.

DNS서버 8.8.8.8 8.8.4.4 라든가 1.1.1.1 1.0.0.1 라든가 하는 Anycast DNS 가 요즘 유행한다. 하지만 이런 Anycast DNS 리졸버는 재귀요청으로 실제 네임서버에 요청을 하면 네임서버는 요청자의 IP를 보는데 8.8.8.8 (Google LLC, US), 1.1.1.1 (CloudFlare, US) … 즉 미국의 아이피만 나올 것이다. 그럼 미국에 있는 웹서버를 응답하겠다.

이를 위해 DNS를 확장한 EDNS 에 Client Subnet Field가 구현되어있어 anycast DNS 사업자는 서버에서 해당 필드에 DNS를 사용하고 있는 클라이언트의 IP를 넣는다. 해당 GeoDNS 서버는 Client Subnet 필드의 IP를 참조하여 위치정보 를 알아낸 후 해당 지역에 맞게 반환해야 할 것이다.

그런데 CloudFlare DNS 는 사용자의 개인정보를 보호하려고 EDNS Client Subnet을 제공하지 않는다. 몇 년 전부터 DNS 주소를 1.1.1.1 로 사용하는 사람이 늘어났다. 한국 포탈 싸이트인 네이버는 외국에서 접속하는 경우 AkamaiCDN를 통해 연결되는데 그 때 마침 한국에서 해외 트래픽 및 CDN (AkamaiCDN) 사용량이 폭증해서 얼마나 똥줄 탔겠는가. (나도 네이버가 akamaiCDN으로 접속된 것이 기억이난다.) 궁금해져서 분석해보니 현재 네이버 네임서버는 Anycast로 NBP 클라우드와 더불어 많은 지역에 흩어져 있어 있기 때문에 GeoDNS를 사용하지 않을 것 같다.