.de TLD 장애, Cloudflare의 DNSSEC 대응 전략

by DD
4주 전
조회수 14

독일(.de) TLD의 DNSSEC 서명 오류로 인해 유효성 검사 실패(Validation Failure) 발생, Cloudflare 1.1.1.1을 포함한 모든 DNS resolver에서 SERVFAIL 반환(SERVFAIL Return)

DNSSEC는 DNS 레코드의 무결성(Integrity)을 보장하지만, .de TLD의 잘못된 설정으로 인해 수백만 개의 도메인 접속 불가

Cloudflare는 Negative Trust Anchor(NTA)를 활용하여 .de 도메인에 대한 DNSSEC 검증을 우회, 서비스 복구 시도

1.1.1.1은 Serve Stale 기능을 통해 TTL 만료된 캐시 레코드를 제공하여 사용자 영향 최소화

Cloudflare는 EDE(Extended DNS Errors) 개선을 통해 DNSSEC 오류를 더 정확하게 보고할 예정

DNSSEC의 작동 원리 및 문제점

DNSSEC(Domain Name System Security Extensions)는 DNS 레코드에 디지털 서명(Digital Signature)을 추가하여 데이터의 무결성을 보장한다. DNSSEC는 신뢰 체인(Chain of Trust)을 기반으로 작동하며, 루트 존(Root Zone)에서 하위 존(Child Zone)으로 신뢰를 위임한다.

RRSIG 레코드: DNS 레코드의 위변조 방지(Tamper-proof)를 위한 암호화 서명

DS 레코드: 상위 존(Parent Zone)이 하위 존(Child Zone)의 공개 키(Public Key)를 안전하게 전달

문제점: TLD(Top-Level Domain)의 DNSSEC 설정 오류는 해당 TLD 하위의 모든 도메인에 서비스 중단(Service Outage)을 야기

Negative Trust Anchor(NTA)를 활용한 DNSSEC 우회

DNSSEC 장애 발생 시, Cloudflare는 Negative Trust Anchor(NTA)를 사용하여 특정 존(Zone)에 대한 DNSSEC 검증을 우회했다. NTA는 유효성 검사를 건너뛰도록 resolver에 지시하여, DNSSEC 오류로 인한 SERVFAIL(Server Failure)을 방지한다.

RFC 7646: NTA의 정의 및 TLD misconfiguration에 대한 사용 사례 명시

Cloudflare의 구현: 기존 override rule mechanism을 활용하여 .de 존을 insecure zone으로 처리

장점: DNSSEC 검증 실패로 인한 광범위한 서비스 중단(Widespread Outage)을 신속하게 해결

NTA는 DNSSEC의 보안성을 희생하지만, 특정 상황에서는 가용성(Availability)을 확보하기 위한 효과적인 전략이다.

Serve Stale 기능으로 사용자 영향 완화

1.1.1.1은 DNSSEC 장애 발생 시, Serve Stale 기능을 통해 TTL(Time-to-Live)이 만료된 캐시 레코드를 계속 제공했다. Serve Stale은 RFC 8767에 정의되어 있으며, 업스트림(Upstream) resolution 실패 시 만료된 캐시 레코드(Expired Cached Records)를 반환하여 서비스 중단을 완화한다.

TTL: DNS 레코드의 캐싱 기간(Caching Period)을 결정

장점: DNSSEC 오류로 인한 사용자 체감 영향(User Impact)을 최소화

단점: 캐시된 데이터가 최신 상태를 반영하지 못할 수 있으며, 일관성(Consistency) 문제 발생 가능성

Serve Stale은 DNS 장애 발생 시 가용성을 확보(Availability)하는 데 중요한 역할을 한다.

Extended DNS Errors(EDE) 개선의 필요성

Cloudflare는 DNSSEC 오류 발생 시, EDE(Extended DNS Errors)를 통해 클라이언트에게 문제의 원인을 더 정확하게 전달할 예정이다. 현재 1.1.1.1은 DNSSEC 오류 대신 No Reachable Authority 오류를 반환하여 문제의 근본 원인을 모호하게 한다.

EDE 6 (DNSSEC Bogus): DNSSEC 유효성 검사 실패 시 반환되어야 하는 오류 코드

EDE 22 (No Reachable Authority): 연결 문제 발생 시 반환되는 오류 코드

개선 목표: DNSSEC 관련 오류를 정확하게 보고하여 문제 해결(Troubleshooting)을 용이하게 함

정확한 오류 메시지는 DNS 운영자(DNS Operator)와 사용자 모두에게 문제 진단(Diagnosis)에 필요한 정보를 제공한다.

DNSSEC 기술의 한계와 극복 방안

본문은 DNSSEC 기술 자체의 실패가 아닌, DNSSEC의 잘못된 설정(Misconfiguration)이 문제의 원인임을 강조한다. DNSSEC는 DNS 레코드의 무결성을 보장하는 데 중요한 역할을 하지만, TLD 수준의 설정 오류는 광범위한 서비스 중단을 야기할 수 있다.

DNS 계층 구조(DNS Hierarchy): TLD 수준의 장애는 하위 도메인에 연쇄적인 영향(Cascading Impact)을 미침

대응 방안: resolver operator 간의 신속한 정보 공유(Rapid Information Sharing) 및 NTA와 같은 대응 메커니즘(Mitigation Mechanism) 구축

교훈: DNSSEC의 안정적인 운영을 위해서는 TLD 운영자의 정확한 설정(Accurate Configuration)과 resolver operator의 신속한 대응(Rapid Response)이 필수적이다.

When DNSSEC goes wrong: how we responded to the .de TLD outage