요약

  • 활성 DNSOP 위임 재검증 드래프트의 14차 개정안은 부모 레퍼럴이 동일한 위임을 계속 가리키고 캐시된 레퍼럴과 네임서버를 하나 이상 공유하면 리졸버가 이를 연속적인 것으로 다룰 수 있도록 한다. 두 상태에서 DS 데이터가 모두 관찰된 경우 최소 하나의 위임된 서명자도 겹쳐야 한다.
  • 완전히 새로운 NS 세트, 완전히 새로운 DS 세트, 또는 DS 상태가 빈 값과 비어 있지 않은 값 사이에서 전환되는 것은 이 알고리즘에서 권한 변경이다. 그 지점 이하의 캐시 데이터는 더 이상 사용되어서는 안 되며, 엄격 모드와 기회주의적 모드는 실패와 폴백을 서로 다르게 배분한다.
  • 이 교집합은 리졸버 연속성 술어이며, 마이그레이션 뒤의 운영 권한을 증명하지 않는다. 위임 전환 접수증은 의도된 겹침, 프로비저닝 권한, TTL, 관찰 기간, 폐기 조건과 롤백 책임자를 기록해야 한다. 그 접수증은 Daniel Kade의 제안이며 IETF 문서가 아니다.

DNS 위임에는 두 개의 가시적 얼굴이 있다. 부모 존은 레퍼럴을 게시한다. 네임서버 이름, 필요한 글루, 그리고 보안 위임인 경우 DS 세트이다. 자식 존은 자기 자신의 에이펙스에서 권위 있는 NS 세트와 자기 서버의 주소 데이터를 게시한다. 운영자는 양쪽의 일관성을 유지해야 한다. 프로토콜은 그 일관성을 자동으로 만들지 않는다.

이 차이는 뚜렷한 장애 없이도 지속될 수 있다. 부모는 길고 고정된 위임 TTL을 가지는 반면 자식은 더 짧은 에이펙스 NS TTL을 사용할 수 있다. 마이그레이션이 한쪽을 먼저 갱신할 수도 있다. 서버는 최소 응답이 보편화되면서 일반 응답에서 에이펙스 NS 세트를 생략할 수 있다. 일부 재귀 구현은 레퍼럴을 선호하고, 다른 구현은 자식 세트를 학습해 선호하며, 또 다른 구현은 캐시에 도달한 응답 순서에 따라 동작한다.

DNS 리졸버에 의한 위임 재검증(Delegation Revalidation by DNS Resolvers)의 14차 개정안은 이러한 동작을 더 예측 가능하게 만들려고 한다. 이 문서는 2026년 9월 2일에 게시되었고, Standards Track을 목표로 하는 활성 DNSOP 워킹 그룹 작업으로 2027년 3월 6일에 만료된다. Datatracker 상태는 "Waiting for WG Chair Go-Ahead"이다. 이는 Internet-Draft이며 RFC도 아니고 모든 리졸버가 이 알고리즘을 배포해야 한다는 지시도 아니다.

이 드래프트는 세 가지 관련 동작을 결합한다. 부모 레퍼럴을 따른 뒤 리졸버는 위임된 서버에 자식 존의 권위 있는 에이펙스 NS 세트를 명시적으로 질의하고 그 응답에 RFC 2181이 기술한 더 높은 캐시 신뢰도를 부여해야 한다. 또한 가능한 곳에서는 낮은 등급의 추가 데이터를 무기한 신뢰하는 대신 네임서버의 권위 있는 A와 AAAA 데이터를 확보해야 한다. 그리고 나중에 부모로 돌아가 위임이 여전히 존재하며 여전히 충분히 연속적인 권한을 대표하는지 확인해야 한다.

마지막 동작에는 겉보기에 작아 보이는 거버넌스 경계가 포함되어 있다. 리졸버는 레지스트라 티켓, 레지스트리 승인, 운영자 인수인계를 재구성하지 않는다. 세트를 비교할 뿐이다.

겹침 검사가 실제로 말하는 것

캐시된 위임은 재검증 지점이 된다. 리졸버는 부모에게 존 내 질문을 보내고 그 결과로 나오는 레퍼럴을 검사한다. 연속성을 위해서는 레퍼럴이 여전히 계층 구조의 동일한 지점을 가리켜야 한다. 현재 부모 NS 세트는 캐시된 부모 레퍼럴과 최소 하나의 네임서버 이름으로 겹쳐야 한다. 캐시가 이전에 DS 세트를 보았고 새 레퍼럴에도 DS 데이터가 있으면 최소 하나의 위임된 서명자도 겹쳐야 한다.

DS에 관한 이 조건이 핵심이다. 서명 체인에 대한 증거도 함께 들고 있는 리졸버에게 "네임서버 하나를 공유하면 위임이 유효하다"는 말은 불완전하다. 이 알고리즘은 완전히 새로운 DS 세트를 권한 변경으로 다룬다. DS 없음에서 DS로, DS에서 DS 없음으로의 이동 역시 연속성이 아니라 변경으로 다룬다.

이 비교는 다수결이 아니라 구성원 관계에 관한 것이다. 네 개의 옛 네임서버가 하나의 옛 서버와 세 개의 새 서버로 바뀌어도 교집합은 유지될 수 있다. 롤오버 중 한 옛 서명자가 새 서명자와 공존할 수 있다. 바로 이런 이유로 이 규칙은 단계적 전환을 수용할 수 있다. 운영자는 위임 전체를 하나의 불가분 단계로 교체해 모든 캐시가 그 아래를 모두 버리게 할 필요가 없다.

레퍼럴이 없거나, 레퍼럴이 다른 존 컷을 가리키거나, NS 또는 해당 DS 세트가 완전히 새로운 경우 결과는 뒤집힌다. 드래프트는 재검증 지점 이하에 소유자 이름이 있는 캐시 데이터는 사용되어서는 안 된다고 말한다. 구현은 데이터를 직접 제거하거나 캐시 세대에 접근할 수 없게 만들 수 있지만, 이후 동작은 데이터가 사라진 것과 같아야 한다.

이 결과는 위임 기록 자체를 넘어선다. 변경된 컷 아래의 주소, 응답, 부정 데이터는 모두 리졸버가 더 이상 받아들이지 않는 권한 체인을 통해 얻어졌을 수 있다. 무효화 경계는 캐시된 네임스페이스를 따라 통제 변경을 따라 내려간다.

따라서 알고리즘에는 방어 가능한 연속성 규칙만 필요하다. 살아남은 네임서버가 옛 운영자의 마지막 장비인지, 의도적으로 공유된 애니캐스트 이름인지, 레지스트라 관리 서비스인지, 간과된 의존성인지, 침해된 엔드포인트인지는 판단할 필요가 없다. 그것들은 DNS 응답 바깥의 운영 사실이다.

부모의 진실, 자식의 진실, 서비스 연속성

드래프트는 먼저 자식 에이펙스 NS 세트에 더 높은 신뢰도를 부여한다. 이는 DNS 등급 규칙을 따른다. 자식은 자기 자신의 에이펙스 NS RRset에 대해 권위 있는 존재이며, 부모의 사본은 레퍼럴 데이터일 뿐이다. 리졸버는 일반 애플리케이션 트래픽을 통해서는 자식 세트를 학습하지 못할 수 있으므로 14차 개정안은 트리거가 되는 해석과 병행해 전용 NS 질의를 권한다.

직접 자식 질의가 성공하면 이후 질의는 자식 에이펙스 네임서버를 선호해야 한다. 실패하거나 데이터가 없으면 서비스를 위해서는 부모 세트가 여전히 선호된다. 기회주의적 모드에서 일반 사용자 질의에 대한 응답은 이 작업을 기다릴 필요가 없다.

여기서 "현재"라는 말이 서로 다른 두 의미를 갖는다. 자식 응답은 자식이 지금 운영하는 서버가 무엇인지에 대한 가장 신뢰할 수 있는 계정일 수 있다. 부모 응답은 부모가 여전히 그 이름을 위임하는지, 재위임했거나 제거했는지에 대한 결정적인 계정으로 남는다. 부모로 돌아가지 않고 자식 데이터만 영원히 새로 고치는 리졸버는 부모가 위임을 다른 곳으로 옮긴 뒤에도 옛 운영자에게 매달릴 수 있다. 주기적 검사가 제약하려는 것이 바로 이 고스트 도메인 실패이다.

네임서버 주소는 또 다른 층을 더한다. 글루와 기타 추가 데이터는 자식에 도달하기 위해 필요할 수 있지만 그 기록은 권위가 없을 수 있다. 드래프트는 권위 있는 주소 RRset을 질의하고 등급을 올릴 것을 권한다. 권위 있는 응답의 주소가 완전하고 서명되어 DNSSEC-보안이면 검증만으로 충분할 수 있다. 그렇지 않으면 별도의 주소 질의가 필요하다. 리졸버는 상대적으로 더 나은 주소에 도달할 수 없을 때 낮은 등급의 글루를 최후의 수단으로 유지할 수 있다.

이 최후 수단은 가용성을 보호한다. 동시에 이는 단일 NS 스냅샷만으로 리졸버 동작을 추론할 수 없다는 뜻이기도 하다. 어떤 주소가 도달 가능했는지, 어떤 데이터가 더 높은 등급이었는지, 어떤 폴백이 살아남았는지, 검증 질의가 사용자 응답보다 먼저 끝났는지 모두 중요하다.

엄격 모드와 기회주의 모드는 서로 다른 예산을 쓴다

엄격한 재검증은 리졸버가 응답이 권위 있게 획득한 이름의 권위 있게 획득한 주소에 있는 서버에서 왔음을 확인할 때까지 트리거 질의를 붙잡을 수 있다. 이는 위조와 도청 노출을 줄인다. 자식 NS 데이터가 깨져 있고 낮은 등급의 레퍼럴 데이터를 폴백으로 허용하지 않으면 같은 엄격함이 검증 오류를 완전한 해석 실패로 바꾼다.

따라서 14차 개정안은 엄격한 등급 상승을 루트와 루트에서 직접 위임된 존으로 제한할 것을 권한다. 그 존들은 고품질의 자식 NS 세트를 가질 것으로 기대된다. 계층의 더 아래에서는 잘못 관리된 존에 대한 경험 때문에 전면적 엄격함을 정당화하기 더 어렵다.

기회주의 모드는 보통 검증 질의 전에 일반 해석이 끝나도록 허용한다. 현재 사용자에게 같은 지연을 추가하지 않고도 이후 사용을 위한 더 나은 인프라 데이터를 학습할 수 있다. 위임된 서버가 명시적 에이펙스 NS 질의를 잘못 처리하면 리졸버는 그 존에 대한 등급 상승을 포기하고 부모의 레퍼럴 데이터로 돌아간다.

두 모드는 단순히 성능을 조정하지 않는다. 엄격 모드는 더 강한 권한 체인을 위해 더 큰 가용성 결과를 받아들인다. 기회주의 모드는 낮은 등급의 폴백을 통해 서비스를 보존하지만 같은 수준의 보호를 주장할 수 없다. "위임 재검증 사용"이라고만 적힌 제품 라벨은 깨진 전환 중 가장 중요한 정책 선택을 감춘다.

시계는 세 시계 중 가장 짧은 것이되 바닥이 있다

캐시는 가장 짧은 관련 TTL을 넘기지 않고 부모를 다시 방문해야 한다. 부모 NS TTL, DS가 존재할 때의 부모 DS TTL, 자식 에이펙스 NS TTL이다. 부모와 자식의 시계는 상호 보완적인 제약을 부과한다. 부모 시계는 부모 측 제거나 재위임 이후 리졸버가 위임을 얼마나 오래 따를 수 있는지를 제한한다. 자식 시계는 자식이 자기 운영 세트의 더 빠른 재검토를 요청할 수 있게 한다.

그러나 드래프트는 또한 계산 서비스 거부(DoS)에 대비해 합리적인 최소 TTL 바닥을 부과하라고 말한다. 임의로 자주 재검증을 강제할 수 있는 존은 짧은 TTL을 리졸버와 권위 서버의 작업 부하로 바꿀 수 있다.

이 바닥은 드래프트가 제공하는 보편적 숫자가 아니라 필요한 재량이다. 이는 운영자가 자기가 광고하는 가장 짧은 TTL을 모든 재귀 캐시가 정확히 그 시점에 폐기를 인식하겠다는 약속으로 다룰 수 없다는 뜻이다. 리졸버 정책은 실질적인 관찰 간격을 늘일 수 있고, 장애, 부정 캐싱, 프리페치 동작이 다른 시차를 더할 수 있다.

검증 실패는 RFC 9520에 따라 캐시되어야 하며, 그래야 실패하는 존이 공격적인 반복 질의를 유발하지 않는다. 드래프트는 또한 이름과 주소의 재검증이 권위 서버로 가는 트래픽을 상당히 늘릴 수 있다고 경고한다. 작업 상한과 실패 캐싱은 보안 모델의 일부다. 무한한 작업으로 권한을 증명하는 알고리즘은 스스로 공격 표면이 될 수 있기 때문이다.

불일치는 증거이지 판결이 아니다

권위 있는 자식 에이펙스 NS 세트가 부모 레퍼럴과 다를 때 14차 개정안은 리졸버가 양쪽의 RFC 9567 보고 채널에 불일치를 보고할 수 있게 한다. 레퍼럴 NS 불일치에 대한 Extended DNS Error 코드를 제안하지만 그 코드는 드래프트에서 여전히 TBD이다.

문서는 불일치가 반드시 해석 실패는 아니라고 정확히 말한다. 마이그레이션 순서, 고정된 부모 TTL, 일상적인 운영 지연은 여전히 트래픽을 처리하는 차이를 만들 수 있다. 반대로 성공적인 응답이 남아 있는 차이가 승인되었거나 무해했다는 것을 보여주지도 않는다.

오류 보고는 하나의 리졸버 경로의 증언이다. 어떤 세트가 언제 관찰되었는지는 보여줄 수 있다. 프로비저닝 요청을 인증하거나, 어느 쪽이 바뀌어야 하는지 결정하거나, 겹침이 의도적인 것임을 증명할 수는 없다. 보고 시점도 캐시 상태, 질의 수요, RFC 9567 동작의 영향을 받는다. 운영자는 부모나 자식에 대한 자동 판단이 아니라 조정할 증거로 보고를 사용해야 한다.

사라진 전환 기록

어떤 존이 운영자 A에서 운영자 B로 이동한다고 하자. 새 부모 레퍼럴은 B의 서버가 도입되는 동안 A의 네임서버 하나를 의도적으로 유지한다. DS 세트도 통제된 롤오버 동안 서명자 하나를 유지한다. 리졸버의 세트 비교에는 이것이 연속성이다. 마이그레이션 팀에는 이름이 붙은 목적과 마감 조건을 가진 임시 상태여야 한다.

별도의 기록이 없으면 나중의 관찰자는 계획된 다리와 잔여물을 구분할 수 없다. 옛 공급자는 서비스가 끝났다고 믿을 수 있다. 레지스트리는 변경의 일부만 처리했을 수 있다. 자식 에이펙스는 이미 새 세트를 광고하는데 부모는 여전히 옛 세트를 갖고 있을 수 있다. 인시던트 대응자는 겹침을 보고 누군가 다른 사람이 소유한다고 가정할 수 있다.

위임 전환 접수증은 이 임시 권한을 읽을 수 있게 만든다. 스냅샷으로 시작한다. 옛 의도된 새 부모 NS와 글루, 옛 의도된 자식 에이펙스 NS, 그리고 두 DS 상태이다. 겹칠 것으로 예상되는 정확한 서버 이름과 서명자 신원을 명명한다. 왜 겹치는지와 그들을 폐기하는 시점 또는 조건을 기록한다.

접수증은 이어서 컨트롤 플레인 승인을 가리킨다. 레지스트리 또는 레지스트라 변경 참조, 책임 있는 옛/새 DNS 운영자, 최종 제거를 승인할 권한이 있는 사람, 롤백할 수 있는 사람이다. 접수증 자체는 인증이 아니며 재사용 가능한 자격 증명을 담아서는 안 된다. 그 목적은 와이어 관찰을 책임 있는 변경 프로세스에 연결하는 것이다.

타이밍 절은 세 TTL, 가장 짧은 프로토콜 트리거, 리졸버 바닥에 관한 선언된 가정을 기록한다. "옛 서비스가 변경을 더 이상 받지 않음", "부모가 옛 서버를 더 이상 게시하지 않음", "옛 서버가 권위 있는 응답을 중단함", "모니터링이 옛 경로를 더 이상 보지 못함"을 구분한다. 이들은 별개의 이벤트이며, 이를 하나의 완료일로 합치는 것이 잔여 권한을 보이지 않게 만드는 방식이다.

모니터링은 다양한 관점에서의 부모 레퍼럴, 자식 에이펙스 NS 응답, DS 연속성, 권위 주소, 도달 가능성, 불일치 보고, 옛 서버가 계속 응답하는지를 다루어야 한다. 테스트가 엄격 리졸버를 모델링하는지 기회주의 리졸버를 모델링하는지도 명시해야 한다. 기회주의 모드에서의 통과는 엄격 리졸버가 실패를 피할 것임을 보여주지 않는다.

마감은 의도된 새 상태가 양쪽에 존재한다는 증거, 계획된 겹침이 끝났다는 증거, 옛 운영자가 의도치 않은 권한을 더 이상 제공하지 않는다는 증거, 롤백이 더 이상 필요 없다는 증거를 요구한다. 완전히 새로운 세트가 의도된 것이라면 접수증은 결과적인 미스를 설명되지 않은 리졸버 인시던트로 기술하는 대신 하위 캐시 무효화를 예상해야 한다.

접수증은 14차 개정안을 바꾸지 않으며 어떤 리졸버도 그것을 소비하지 않는다. 레지스트리, 레지스트라, DNS 운영자 절차 옆에 놓이는 운영 거버넌스 아티팩트다. 드래프트는 캐시가 권한을 언제 연속적인 것으로 간주할 수 있는지 답한다. 접수증은 인간이 그 연속성을 의도했는지 답한다.

출처

  1. DNS 리졸버에 의한 위임 재검증 — 14차 개정
  2. 위임 재검증 Datatracker 기록
  3. 위임 재검증 문서 이력
  4. DNSOP 활성 문서
  5. DNSOP 차터
  6. RFC 1034 — 도메인 이름: 개념과 기능
  7. RFC 2181 — DNS 사양에 대한 명확화
  8. RFC 9520 — DNS 해석 실패의 부정 캐싱
  9. RFC 9567 — DNS 오류 보고
  10. DNS를 위한 확장 가능한 위임 — 11차 개정