합동회사 코무라소프트
7장

종합 연습과 전체 복습

케이스 문제 8 문제로 bailiwick·entropy·NAT·DNSSEC·운용의 관점을 넘나들며 강좌를 마무리합니다.

여기서 마무리한다

이 장에서는 케이스 문제 8 문제를 통해 glue / entropy / NAT / AD bit / negative caching / split-horizon 을 횡단하며 풉니다. 장별 지식이 아니라, 여러 장을 조합한 관점에서 판단할 수 있는지를 확인합니다.

합격의 기준: 케이스 문제 8 문제 중 6 문제 이상 정답이면, cache poisoning 방어·관측에서 현장의 1차 분리 진단에 충분히 쓸 수 있는 상태입니다.

종합 연습에서 사용하는 관점

이 장에서 사용하는 관점
제 1 장"누구의 cache 에 누가 답을 넣었는가" 를 구분한다
제 2 장in-bailiwick glue 와 out-of-bailiwick additional 의 차이
제 3 장ID / source port / question / time window 의 일치와 entropy
제 4 장2008 년의 교훈과, patch / recursion control 의 단기 대책
제 5 장DNSSEC 의 방어 범위와 last-hop 의 trust 문제
제 6 장dig·로그·negative caching / split-horizon 의 분리 진단

종합 연습 7-1 — bailiwick · entropy · DNSSEC(구조 축)

referral 의 취급, port entropy, AD bit 와 last hop 등 「구조로 어디까지 지킬 수 있는가」를 케이스로 확인합니다.

Q1. 부모 존의 referral 에서 NS ns1.shop.example.comA ns1.shop.example.com 192.0.2.53 이 함께 반환되었습니다. 가장 타당한 취급은 어느 것입니까?

Q2. referral 에 NS ns.partner.netA ns.partner.net 198.51.100.10 이 Additional 로 따라왔습니다. 가장 안전한 판단은 어느 것입니까?

Q3. resolver 가 NAT 하위에 있어, 외부로 나가는 source port 가 실질적으로 256 가지의 연속 번호로 축소되어 있습니다. 이때 가장 올바른 설명은 어느 것입니까?

Q4. stub resolver 가 AD=1 의 응답을 받았지만, 그 upstream recursive resolver 와 통신 경로도 충분히 신뢰하지 않습니다. 이때의 해석으로 가장 적절한 것은 어느 것입니까?

Q5. 대상 zone 이 unsigned 입니다. 가장 올바른 설명은 어느 것입니까?

종합 연습 7-2 — 운용·모니터링·종합 방침(운용 축)

모니터링 시그널, cache TTL 의 수명, 조직 방침까지 「현장에서 어떻게 운영하는가」를 확인합니다.

Q6. 어떤 zone 에 대해, 짧은 시간에 대량의 random 한 존재하지 않는 라벨에 대한 query 가 이어지고 있습니다. cache poisoning 관점에서 주의할 이유로 가장 가까운 것은 어느 것입니까?

Q7. patch 를 적용한 직후인데도, 같은 resolver 를 쓰는 사용자가 앞으로 2 분 정도 같은 오답을 볼 것으로 예상됩니다. 가장 직접적인 이유는 어느 것입니까?

Q8. 조직의 recursive resolver 에 대한 종합 방침으로 가장 적절한 것은 어느 것입니까?

이 강좌의 도착점

  • shared recursive resolver 의 cache 에 잘못된 RRset 이 남는다 는 것이 어떻게 사용자 전체에게 같은 오답이 배포되는 구도로 이어지는지 설명할 수 있다.
  • referral / final answer / glue 를 구분하여, in-bailiwick / out-of-bailiwick 을 의식하며 다룰 수 있다.
  • 응답 수락 조건(question / ID / address / port) 과, entropy 와 시도 횟수 의 관계를 식과 숫자로 파악할 수 있다.
  • DNSSEC 의 origin authentication / integrity / authenticated denial of existence 와 confidentiality 가 별개라는 점을 설명할 수 있다.
  • AD bit 의 의미를 last hop 의 trust 문제 와 함께 읽을 수 있다.
  • 트러블 시에는 먼저 dig @resolver / dig +trace / dig +dnssec 로 응답을 관찰하고, negative caching 이나 split-horizon 을 먼저 제외할 수 있다.
  • 최종적으로는 patch·entropy·bailiwick·DNSSEC·운용 모니터링 을 조합하여 생각할 수 있다.

정착을 돕기 위해 다음에 해 볼 것

  1. 자신이 관리하는 resolver 에서 dig +tracedig +dnssec 을 실행하여, referral 과 서명 검증의 출력을 눈으로 확인한다.
  2. unsigned zone 과 signed zone 을 하나씩 골라 ad flag 의 차이를 관찰한다.
  3. negative caching 의 TTL 이 남아 있는 상황을 의도적으로 만들어, "만들었는데 보이지 않는다" 의 전형적인 패턴을 직접 체험한다.
  4. 운용 측에서는, random label 의 급증이나 서명 검증 failure 의 로그를 포착하는 모니터링이 있는지 확인한다.