소개
이 문서에서는 OpenDNS/Umbrella 리졸버가 리소스 레코드를 캐시하는 방법에 대해 설명합니다.
개요
OpenDNS/Umbrella 확인기는 ODC(OpenDNSCache)라는 프로그램을 사용하여 DNS 쿼리를 확인합니다. ODC는 더 빠르고 효율적으로 결과를 클라이언트에 반환하기 위해 수신하는 데이터를 캐시합니다. 이 문서에서는 캐싱이 발생하는 방법과 사용되는 시기에 대해 중점적으로 다룹니다.
이 문서는 ODC 캐싱의 세부 사항(일반적으로 네임서버 및 도메인 관리자)에 대해 자세히 알아보거나 DNS 확인이 예상대로 작동하지 않을 수 있는 경우를 위해 작성되었습니다.
캐시되는 데이터는 무엇입니까?
RFC 2181(https://datatracker.ietf.org/doc/html/rfc2181)에 따르면, 응답은 응답에서 반환되거나 데이터의 신뢰성에 따라 캐시에 저장될 수 있습니다. RFC는 섹션 5.4.1에서 7개의 신뢰 수준을 정의합니다.
- 기본 영역 파일의 데이터(접착제 데이터 제외)
- 이는 신뢰할 수 있는 네임서버에만 적용되며 OpenDNS 확인자에게는 적용되지 않습니다
- 접착제 이외의 영역 전송 데이터.
- 이는 신뢰할 수 있는 네임서버에만 적용되며 OpenDNS 확인자에게는 적용되지 않습니다
- 신뢰할 수 있는 회신의 응답 섹션에 포함된 신뢰할 수 있는 데이터.
- 신뢰할 수 있는 답변의 권한 섹션의 데이터.
- 기본 영역의 접착제 또는 영역 전송의 접착제.
- 이는 신뢰할 수 있는 네임서버에만 적용되며 OpenDNS 확인자에게는 적용되지 않습니다
- i) 권한 없는 답변의 답변 섹션의 데이터, ii) 권한 있는 답변의 답변 섹션의 권한 없는 데이터.
- i) 리졸버가 반환하는 항목의 예입니다. 즉, 권한 없는 데이터입니다.
- ii)의 경우 신뢰할 수 있는 답변의 답변 섹션에는 일반적으로 신뢰할 수 있는 데이터만 포함되어 있습니다. 그러나 이름이 별칭인 경우(섹션 10.1.1 참조) 해당 별칭을 설명하는 레코드만 권한이 있어야 합니다. 클라이언트는 다른 레코드가 서버의 캐시에서 가져와야 한다고 가정할 수 있습니다. 신뢰할 수 있는 답변이 필요한 경우 클라이언트는 별칭과 연결된 정식 이름을 사용하여 다시 쿼리할 수 있습니다.
- i) 신뢰할 수 있는 답변의 추가 정보 ii) 권한 없는 답변의 권한 섹션의 데이터 iii) 권한 없는 답변의 추가 정보.
- 이러한 모든 기능은 OpenDNSCache에 적용됩니다.
- 이러한 소스에서 받은 레코드는 결과를 쿼리에 반환하기 위해 캐시해서는 안 됩니다.
OpenDNSCache는 신뢰 수준 3, 4 및 6의 응답에서 데이터를 캐시합니다. 신뢰 수준이 더 높거나 동일한 새 데이터를 받으면 이전 캐시 항목을 대체합니다.
단, NS 기록의 경우 더 나은 신뢰 수준으로 데이터를 교체하는 것만 예외입니다.
캐시에서 데이터가 어떻게 추가 및 제거됩니까?
만료된 데이터는 캐시에서 삭제되지 않습니다. 이는 SmartCache 기능의 기반이며, 어떤 이유로 당국에 연결할 수 없는 경우 캐시에서 만료된 RR(리소스 레코드)을 반환합니다.
대신 각 확인자의 캐시는 고정 크기이며 캐시에 새 RR을 추가하면 가장 오래된 RR이 제거됩니다. 이는 새로운 엔트리가 큐에 추가되고, 이전 엔트리가 큐에서 삭제되는 큐로 시각화될 수 있습니다(컴퓨터 과학자의 경우, 이것은 실제로 순환 이중 연결 목록으로 구현됨).
위에서 설명한 것처럼 DNS 응답에는 신뢰 수준이 서로 다른 여러 RR이 포함될 수 있으며, 이 RR이 모두 원래 요청된 데이터였던 것은 아닙니다. 따라서 응답을 받은 후 캐시에 추가할 여러 RR이 있을 수 있습니다.
위에서 언급한 대로, 데이터의 신뢰 수준이 기존 항목보다 높은 경우 캐시에 있는 NS 레코드에 대한 항목만 교체하므로 NS 레코드는 이 동작에서 제외됩니다. 이는 이전 당국이 여전히 반응하고 권위로서 복귀하는 경우 우리가 부모 풀에서 권위에 대한 변화를 탐지할 수 있도록 하기 위한 것이다.