메인 컨텐츠로 건너뛰기

Structured DNS Errors(SDE)

AdGuard DNS 2.10의 출시와 함께 AdGuard DNS는 Structured DNS Errors(SDE)에 대한 지원을 추가한 최초의 공용 DNS 리졸버가 되었습니다. Structured DNS Errors는 RFC 8914에 추가된 기능입니다. 이 기능을 사용하면 DNS 서버가 일반적인 브라우저 메시지에 의존하지 않고 차단된 웹사이트에 대한 자세한 정보를 DNS 응답에 직접 제공할 수 있습니다. 이 글에서는 Structured DNS Errors가 무엇이며 어떻게 작동하는지 설명합니다.

Structured DNS Errors란 무엇인가요?

광고 또는 추적 도메인에 대한 요청이 차단되면 사용자는 웹사이트에 빈 공간이 표시되거나 DNS 필터링이 발생했다는 사실조차 인지하지 못할 수 있습니다. 그러나 전체 웹사이트가 DNS 수준에서 차단되면 사용자는 해당 페이지에 완전히 액세스할 수 없게 됩니다. 차단된 웹사이트에 액세스하려고 할 때 브라우저에 일반적인 '이 사이트에 연결할 수 없습니다' 오류가 표시될 수 있습니다.

'이 사이트에 접근할 수 없습니다' 오류

이러한 오류는 무슨 일이 왜 발생했는지 설명하지 못합니다. 이로 인해 사용자는 웹사이트에 액세스할 수 없는 이유에 대해 혼란스러워하며 인터넷 연결이나 DNS 리졸버가 고장났다고 생각하는 경우가 많습니다.

이를 명확히 하기 위해 DNS 서버는 사용자를 설명이 포함된 자체 페이지로 리디렉션할 수 있습니다. 그러나 HTTPS 웹사이트(대부분의 웹사이트)에는 별도의 인증서가 필요합니다.

인증서 오류

더 간단한 해결책이 있는데, 바로 Structured DNS Errors (SDE)입니다. SDE의 개념은 DNS 응답에 추가 오류 정보를 포함하는 기능을 도입한 Extended DNS Errors(RFC 8914)를 기반으로 합니다. SDE 초안에서는 한 단계 더 나아가 I-JSON을 사용하여 브라우저와 클라이언트 애플리케이션이 쉽게 구문 분석할 수 있는 방식으로 정보를 형식화함으로써 이를 더욱 발전시켰습니다.

SDE 데이터는 DNS 응답의 EXTRA-TEXT 필드에 포함됩니다. 다음이 포함되어 있습니다:

  • j (justification): 차단 이유
  • c (contact): 실수로 페이지가 차단된 경우 문의처 연락처
  • o (organization): 이 경우 DNS 필터링을 담당하는 단체(선택 사항)
  • s (suberror): 이 특정 DNS 필터링에 대한 서브 오류 코드 (선택 사항)

이러한 시스템은 DNS 서비스와 사용자 간의 투명성을 강화합니다.

Structured DNS Errors를 구현하려면 무엇이 필요하나요?

AdGuard DNS는 Structured DNS Errors에 대한 지원을 구현했지만 현재 브라우저는 기본적으로 SDE 데이터의 구문 분석 및 표시를 지원하지 않습니다. 웹사이트가 차단되었을 때 사용자가 브라우저에서 자세한 설명을 볼 수 있도록 하려면 브라우저 개발자가 SDE 초안 사양을 채택하고 지원해야 합니다.

SDE용 AdGuard DNS 데모 확장 프로그램

Structured DNS Errors가 작동하는 방식을 보여주기 위해 AdGuard DNS는 브라우저에서 지원하는 경우, Structured DNS Errors가 어떻게 작동하는지 보여주는 데모 브라우저 확장 프로그램을 개발했습니다. 이 확장 프로그램을 활성화한 상태에서 AdGuard DNS에 의해 차단된 웹사이트를 방문하려고 하면 차단 이유, 연락처 정보, 담당 단체 등 SDE를 통해 제공된 정보가 포함된 자세한 설명 페이지가 표시됩니다.

설명 페이지

확장 프로그램은 Chrome 웹 스토어 또는 GitHub에서 다운로드할 수 있습니다.

DNS 수준에서 어떻게 보이는지 확인하려면 dig 명령을 사용하여 출력에서 EDE를 찾으면 됩니다.

% dig @94.140.14.14 'ad.doubleclick.net' A IN +ednsopt=15:0000

...

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; EDE: 17 (Filtered): ({"j":"Filtered by AdGuard DNS","o":"AdGuard DNS","c":["mailto:support@adguard-dns.io"]})
;; QUESTION SECTION:
;ad.doubleclick.net. IN A

...