DNS 청소 설정

이 문서에서는 DNS(Domain Name System) 청소를 설정하는 방법을 설명하고 기존 영역에서 청소를 설정하는 예제를 제공합니다.

청소하면 DNS에서 오래된 레코드를 정리(삭제)합니다. 삭제가 관련됨에 따라 많은 안전 밸브가 청소에 내장되어 있으며 청소를 가능하게하는 데 오랜 시간이 걸립니다.

참고

이 문서에서는 가장 일반적인 Windows DNS 시나리오인 AD(Active Directory) 통합 영역을 호스트하는 Windows Server DNS 서버에 중점을 둡니다.

Windows Server에서는 다음 세 위치에서 청소를 설정해야 합니다.

  1. 청소할 개별 리소스 레코드에서
  2. 청소할 영역에서.
  3. 하나 이상의 서버에서 청소를 수행합니다.

리소스 레코드의 저장 설정

DNS MMC(Microsoft Management Console)에서고급보기를> 선택하고 리소스 레코드의 속성을 검사 청소 설정을 확인합니다. 예를 들면

리소스 레코드의 속성을 확인하여 청소 설정을 확인하는 스크린샷

리소스 레코드에 대한 청소는 다음 세 가지 방법으로 설정할 수 있습니다.

  • 첫 번째는 부실이 되면 이 레코드 삭제 확인란을 선택하고 적용을 선택하는 것입니다. 적용을 선택하면 현재 시간이 가장 가까운 시간으로 반올림되고 레코드의 타임스탬프로 적용됩니다. 정적 레코드의 타임스탬프는 0이며, 이는 해당 레코드가 청소되지 않았음을 나타냅니다.
  • 두 번째 방법은 DDNS(동적 DNS)를 사용하여 등록하는 클라이언트 컴퓨터에서 레코드를 만드는 경우입니다. Windows 클라이언트는 24시간마다 DNS를 동적으로 업데이트합니다. 모든 DDNS 레코드는 청소로 설정됩니다. 기존 레코드가 없는 클라이언트에서 레코드를 처음 만들면 "업데이트"로 간주되고 타임스탬프가 설정됩니다. 클라이언트에 기존 호스트 레코드가 있고 호스트 레코드의 IP를 변경하는 경우 이는 "업데이트"로도 간주되며 타임스탬프가 설정됩니다. 클라이언트에 동일한 IP 주소를 가진 기존 호스트 레코드가 있는 경우 이는 "새로 고침"으로 간주되며 타임스탬프 변경이 영역 설정에 따라 달라지는지 여부입니다.
  • 레코드에 대한 청소를 설정하는 세 번째 방법은 dnscmd /ageallrecords 명령을 사용하는 것입니다. 영역에 대해 이 명령을 실행하면 저장하지 않으려는 정적 레코드를 포함하여 영역의 모든 레코드에 대한 청소 및 타임스탬프가 설정됩니다.

레코드에 타임스탬프가 설정되면 영역을 호스트하는 모든 서버에 복제됩니다.

참고

레코드를 호스팅하는 영역이 청소를 사용하도록 설정하지 않으면 스캐닝되지 않으므로 타임스탬프는 관련이 없습니다. 타임스탬프는 클라이언트가 동적으로 등록하는 서버에서 업데이트될 수 있지만 영역의 다른 서버에는 복제되지 않습니다.

영역의 청소 설정

서버가 레코드를 검사하여 레코드가 청소되는지 확인하기 전에 영역에 청소를 사용하도록 설정해야 합니다. 영역의 청소 설정에 액세스하려면 영역을 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 일반 탭에서 노화를 선택합니다.

영역 노후화 청소 속성 창 스크린샷

참고

스크린샷은 이 영역이 복제되는 모든 DNS 서버에서 동일합니다.

영역에서 청소를 처음 설정하면 타임스탬프(맨 아래에 표시됨)가 현재 시간(가장 가까운 시간으로 반올림됨)과 새로 고침 간격으로 설정됩니다. 영역이 로드되거나 영역에서 동적 업데이트를 사용하도록 설정할 때마다 이 설정도 다시 설정됩니다.

참고

타임스탬프 후에 영역을 제거할 수 있는 영역이 표시되지 않으면 영역을 다시 로드합니다.

타임스탬프가 첫 번째 안전 밸브인 후 영역을 청소할 수 있습니다. 클라이언트가 레코드 타임스탬프를 업데이트할 시간을 제공합니다. 영역 청소를 사용하지 않도록 설정하면 새 레코드 타임스탬프가 복제되지 않으므로 복제 시간을 제공하여 작업을 순서대로 유지할 수도 있습니다.

새로 고침 및 새로 고침 없음 간격

다음 안전 밸브는 새로 고침 및 새로 고침 없음 간격입니다. 두 간격이 모두 경과하면 레코드를 삭제할 수 있습니다.

새로 고침 없음 간격은 리소스 레코드를 새로 고칠 수 없는 기간입니다. "새로 고침"은 호스트 리소스 레코드를 변경하지 않는 동적 업데이트입니다. 타임스탬프를 만질 뿐입니다. 클라이언트가 호스트 레코드의 IP를 변경하는 경우 이는 "업데이트"로 간주되며 새로 고침 없음 간격에서 제외됩니다. 새로 고침 없음 간격의 목적은 복제 트래픽을 줄이는 것입니다. 레코드를 변경하면 변경 내용이 복제되어야 합니다.

레코드 타임스탬프와 새로 고침 없음 간격이 경과한 후 새로 고침 간격을 입력할 수 있습니다. 새로 고침 간격은 타임스탬프에 대한 새로 고침이 허용되는 시간입니다. 클라이언트가 들어와서 타임스탬프를 업데이트할 수 있습니다. 이 타임스탬프가 복제되고 새로 고침 없음 간격이 다시 시작됩니다. 클라이언트가 새로 고침 간격 동안 레코드를 업데이트하지 못하면 해당 레코드를 청소할 수 있게 됩니다.

참고

새로 고침 및 새로 고침 없음 간격을 설정하면 클라이언트가 새로 고침 간격 동안 여러 등록을 시도할 수 있는 충분한 시간을 허용합니다. 이렇게 하지 않으면 새로 고침 시도 실패로 인해 레코드를 청소할 수 있습니다.

서버를 마우스 오른쪽 단추로 클릭하고 모든 영역에 대해 노화/청소 설정...을 선택하면 위의 스크린샷과 비슷한 스크린샷이 표시됩니다. 이 옵션은 이 서버가 새 영역을 만들 때 사용할 기본 설정을 설정합니다. 기존 Active Directory 통합 영역에 이러한 설정 적용 확인란을 선택하지 않는 한 설정은 기존 영역에 영향을 주지 않습니다.

서버의 저장 설정

서버에서 청소를 설정하려면 MMC에서 서버를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 그런 다음, 다음과 같이 고급 탭에서 부실 레코드 자동 청소 사용 확인란을 선택합니다.

고급 탭에서 부실 레코드 자동 청소 사용 확인란이 선택된 서버 속성의 스크린샷

청소 기간 값은 이 서버가 청소되는 빈도입니다. 서버가 청소되면 DNS 이벤트 ID 2501을 기록하여 청소되는 레코드 수를 나타냅니다. 레코드가 삭제되지 않으면 이벤트 ID 2502가 기록됩니다. 영역 데이터가 영역을 호스트하는 모든 서버에 복제되므로 한 서버만 청소해야 합니다.

가장 최근 이벤트 ID 2501 또는 2502의 타임스탬프를 가져오고 청소 기간을 추가하면 서버가 언제 청소를 시도할지 정확히 알 수 있습니다.

영역을 호스팅하는 모든 서버를 청소하도록 설정할 수 있지만 하나의 집합만 사용하는 것이 좋습니다. 서버가 청소에 실패하면 심각한 영향을 미치지 않습니다. 의심을 찾을 수 있는 한 곳과 검사 로그 집합이 하나 있습니다. 많은 서버가 청소되도록 설정된 경우 청소에 실패할 경우 검사 많은 로그가 있습니다.

영역에 대해 청소하는 서버를 제어하려면 dnscmd 명령을 사용하여 정확히 어떤 서버를 청소할 수 있는지 지정할 수 있습니다. 예를 들어 명령은 IP 주소가 dnscmd /zoneresetscavengeservers contoso.com 192.168.1.1 192.168.1.2 192.168.1.1 및 192.168.1.2인 DNS 서버만 영역에서 청소 contoso.com 할 수 있도록 허용합니다.

청소 프로세스 및 최종 검사

서버를 마우스 오른쪽 단추로 클릭하고 스 캐벤지 부실 리소스 레코드를 선택하여 청소 시도를 수동으로 시작할 수도 있습니다. 수동 시도는 안전 밸브를 우회하지 않습니다.

부실 레코드를 삭제하기 전에 다음을 확인합니다.

  • 영역에서 청소를 사용할 수 있나요?
  • 영역에서 동적 업데이트를 사용할 수 있나요?
  • 청소 서버가 영역에 대한 청소 서버 중 하나로 나열되어 있나요?
  • 영역의 타임스탬프가 초과된 후 "영역을 청소할 수 있나요?
    이렇게 하면 시작하기 전에 클라이언트 및 AD 복제를 준비할 수 있습니다.
  • 이 영역이 Active Directory에서 마지막으로 복제된 이후 새로 고침 간격보다 길었나요?
    복제 문제가 있는 서버에서 청소를 사용하도록 설정하면 다른 서버에서 여전히 유효할 수 있는 레코드의 불필요한 삭제 표시를 방지하는 데 도움이 될 수 있습니다.

위의 모든 검사가 통과되면 영역이 청소할 준비가 된 것입니다. 이 시점에서 청소 서버는 각 리소스 레코드의 타임스탬프를 확인합니다. 현재 날짜와 시간이 타임스탬프와 새로 고침 없음 및 새로 고침 간격보다 크면 레코드가 삭제됩니다.

예: 기존 영역에서 청소 설정

다음은 기존 영역에서 청소를 설정하는 예제입니다. 이 절차는 안전을 극대화하기 위해 설계되었습니다. 기본 설정을 사용하는 경우 이 프로세스에는 4~5주가 걸릴 수 있습니다(정신 검사 단계의 경우 2주, 사용 단계에는 2~3주가 소요됨).

설치 단계

  1. 모든 서버에서 청소를 끕니다. 명령을 사용하여 dnscmd /zoneresetscavengeservers 단일 서버로 청소를 제한한 다음 이 서버의 청소를 사용하지 않도록 설정할 수 있습니다.
  2. 청소하려는 영역에서 청소를 켭니다. 새로 고침 및 새로 고침 없음 간격을 원하는 대로 설정합니다. 보다 효과적으로 청소하려면 새로 고침 없음 간격을 낮추고 새로 고침 간격을 기본값으로 두는 것이 좋습니다.
  3. 오늘 날짜와 새로 고침 및 No-Refresh 간격을 추가합니다. 이 시간이 경과한 후 몇 주 후에 다시 돌아오세요.

정신 검사 단계

DNS 레코드에서 새로 고침 및 No-Refresh 간격보다 오래된 레코드를 찾습니다. 동적 등록 프로세스에 문제가 있는 경우 계속하기 전에 수정해야 합니다. 이 시점에서 철저한 검사 설정에서 가장 중요한 단계입니다.

이전 레코드를 찾으면 검사 사항:

  • 명령이 ipconfig /registerdns 작동하나요?
  • 레코드의 소유자는 누구인가요(레코드 속성의 보안 탭 참조)?
  • 레코드가 관리자가 정적으로 만든 다음 청소를 사용하도록 설정되었나요? 그렇다면 레코드를 삭제하여 소유권을 지우고 명령을 실행 ipconfig /registerdns 하여 업데이트해야 합니다.
  • 서버의 Active Directory 복제가 제대로 작동합니까?

오래된 레코드를 설명할 수 없다면 진행하지 마세요. 다음 단계에서는 삭제됩니다.

사용 단계

명령을 사용하여 dnscmd /zoneresetscavengeservers 단일 서버에서 청소를 사용하도록 설정할 수 있습니다.

청소를 사용하도록 설정하면 새 테스트 레코드를 만들고 청소에 사용하도록 설정합니다. 그런 다음 이 레코드가 사라지는 시점을 매핑합니다. 그 단계는 다음과 같습니다.

  1. 레코드의 타임스탬프로 시작합니다.
  2. 새로 고침 간격을 추가합니다.
  3. 새로 고침 없음 간격을 추가합니다.
  4. 결과는 "청소할 수 있는 적격" 시간이 됩니다. 하지만 현재 레코드는 사라지지 않습니다.
  5. DNS 서버가 청소를 실행할 시기를 찾으려면 이벤트 ID 2501 및 2502에 대한 DNS 이벤트 로그를 확인합니다.
  6. "삭제할 수 있는 자격" 시간에 따라 가장 최근 이벤트 ID 2501 또는 이벤트 ID 2502 이벤트를 찾고 서버 속성의 고급 탭에서 서버의 청소 기간을 추가합니다.
  7. 테스트 레코드가 사라지는 시점입니다.

예를 들면

  • 영역은 3일 새로 고침 간격 및 3일 새로 고침 없음 간격으로 설정됩니다.
  • 서버 청소 기간은 3일로 설정됩니다.
  • 마지막 DNS 이벤트 ID 2501 또는 2502는 2008년 1월 1일 오전 6시에 발생했습니다.
  • 2008년 1월 1일(정오) 12:00에 타임스탬프가 있는 레코드가 있습니다.

이러한 가정을 감안할 때 레코드가 2008년 1월 10일 오전 6시에 삭제될 것이라고 예측할 수 있습니다. 다음은 예제의 다이어그램입니다.

삭제할 레코드에 대한 예측 다이어그램

청소를 사용하도록 설정하면 정기적으로 검사 이벤트 ID 2501 및 2502 이벤트를 찾아 진행 상황을 확인할 수 있습니다. 또한 예측 날짜 및 시간에 돌아와서 테스트 레코드가 사라졌는지 확인할 수 있습니다.