피드로 돌아가기
Your DNS check is lying to you
Dev.toDev.to
Infrastructure

DNS Resolver 한계를 극복한 3단계 Reachability Gate 설계로 크롤링 효율 최적화

Your DNS check is lying to you

Harish2026년 6월 6일9intermediate

Context

단일 net.LookupHost 호출에 의존한 단순 DNS 확인 방식의 Reachability Gate 운용. CNAME Chain 타임아웃, Datacenter IP 차단, TLS 버전 불일치로 인해 정상 호스트를 Dead로 오판하거나 불필요한 Proxy 비용을 소모하는 구조적 한계 노출.

Technical Solution

  • DNS CNAME Chain 수동 추적 로직 구현을 통한 Resolver 타임아웃 문제 해결 및 최대 5단계 Hop 제한으로 Loop 방지
  • TLS Handshake 결과의 세분화(Usable, Incompatible, Unreachable)를 통한 버전 불일치 호스트의 조기 필터링
  • 비용 최적화를 위해 '저비용-고확신' 순으로 배치된 3단계 검증 파이프라인 설계
  • Datacenter IP 차단 여부를 판별하기 위해 최종 단계에서만 Residential Proxy를 Tiebreaker로 활용하는 전략 채택
  • 시스템 설정 오류가 호스트 장애로 오인되지 않도록 Fail-Open 메커니즘 적용

- 표준 라이브러리의 Resolver 결과가 비즈니스 요구사항(존재 여부 확인)과 일치하는지 검토 - 외부 API 호출 전 비용/시간 효율에 따른 단계적 Filter-chain 구성 여부 확인 - 네트워크 장애 상태를 단순 Boolean이 아닌 다중 상태(Error Type)로 정의하여 처리 로직 분리 - 인프라 환경(Datacenter vs Residential)에 따른 네트워크 가시성 차이를 설계에 반영

원문 읽기