PCAP의 DNS 시간 초과, NXDOMAIN 및 SERVFAIL: 느린 서버에서 느린 DNS를 구분하는 방법
패킷 캡처 증거를 사용하여 DNS 시간 초과, NXDOMAIN, SERVFAIL, 반복 쿼리 및 느린 애플리케이션 시작을 진단하는 방법입니다.
많은 "느린 애플리케이션" 사례는 실제로는 DNS 사례입니다. 사용자가 버튼을 클릭하면 앱이 몇 초 동안 기다린 후 첫 번째 책임은 서버에 있습니다. 패킷 캡처에서는 DNS 확인이 완료되거나 실패할 때까지 TCP 연결이 시도되지 않은 것으로 나타날 수 있습니다.
DNS 증거는 간결하지만 잘못 읽기 쉽습니다. NXDOMAIN, SERVFAIL 및 시간 초과는 다른 결과입니다. 이를 하나의 일반적인 "DNS 오류"로 취급하면 잘못된 소유자가 됩니다.
시간 초과는 사용 가능한 응답이 도착하지 않았음을 의미합니다.
DNS 시간 초과는 일반적으로 유용한 응답 없이 반복되는 쿼리로 나타납니다. 클라이언트는 동일한 이름을 다시 시도하거나, 여러 확인자를 쿼리하거나, IPv6에서 IPv4로 대체할 수 있습니다. 주요 신호는 응용 프로그램이 계속 진행되기까지 시간이 경과하는 것입니다.
검사:
- 쿼리 이름
- 쿼리 유형: A, AAAA, CNAME, SRV 등
- 확인자 IP
- 재시도 간격
- 응답이 도착했는지 여부
- TCP 또는 TLS 연결이 시작될 때까지의 시간
- 여러 확인자가 다르게 동작하는지 여부
연결을 시도하기 전에 몇 초 동안 DNS를 재시도하는 경우 서버가 아직 느리지 않은 것입니다. 클라이언트가 도달하지 못했습니다.
NXDOMAIN은 유효한 부정적인 답변입니다
'NXDOMAIN'은 이름이 존재하지 않음을 의미합니다. 이는 애플리케이션 구성 문제, 오타, 오래된 도메인, 분할-수평 DNS 문제 또는 선택적 동작에 대한 예상 조회일 수 있습니다. 응답이 없는 것과는 다릅니다.
유용한 질문:
- NXDOMAIN을 반환한 이름은 무엇입니까?
- 응용 프로그램이 다른 이름을 시도했습니까?
- 이게 내부 DNS였나요, 아니면 공용 DNS였나요?
- 검색 접미사 확장으로 인해 예상치 못한 이름이 생성되었습니까?
- 부정적인 답변이 빨리 도착했나요?
빠른 NXDOMAIN은 성능 문제가 아닌 경우가 많습니다. 정확성 문제입니다.
해결자 또는 권한 문제에 대한 SERVFAIL 포인트
'SERVFAIL'은 확인자가 답변을 완료할 수 없음을 의미합니다. 원인에는 DNSSEC 검증 실패, 신뢰할 수 있는 서버에 연결할 수 없음, 확인자 구성 오류 또는 부분적 중단이 포함될 수 있습니다.
클라이언트 근처의 PCAP에는 확인자의 최종 'SERVFAIL'만 표시될 수 있습니다. 확인자 근처의 캡처에는 업스트림 쿼리와 쿼리가 실패한 위치가 표시될 수 있습니다. 점령 지점이 중요합니다.
PCAP 수술이 중요한 이유
PCAP Surgery는 DNS 서버가 아닙니다. 그 역할은 엔지니어가 패킷 캡처 내에서 증거를 분리하고, 관련 창을 자르고, 타이밍을 보존하고, 방어 가능한 핸드오프 파일을 준비하는 데 도움을 주는 것입니다. DNS 사례에는 작고 집중된 추출이 필요한 경우가 많습니다.
- 애플리케이션 연결 전 쿼리
- 확인자 응답
- 재시도 타이밍
- 해결 후 관련 TCP/TLS 연결
- DNS가 지연되었다는 것을 증명하기에 충분한 컨텍스트
대규모 PCAP에 사용자가 볼 수 있는 10초 지연이 포함된 경우 DNS 쿼리 창과 첫 번째 연결 시도를 추출하면 지원 사례를 훨씬 쉽게 검토할 수 있습니다.
DNS 문제 해결 캡처에서 보존해야 할 사항
보존하다:
- timestamps
- DNS 트랜잭션 ID
- 쿼리 및 응답 쌍
- 응답 코드
- 확인자 IP
- 클라이언트 IP
- 후속 연결 타이밍
익명화할 때는 주의하세요. 쿼리 이름이 완전히 제거되면 수신자는 오류가 오타인지, 내부 도메인인지, 공개 도메인인지, 검색 접미사 동작인지 알 수 없습니다.
"DNS timeout pcap", "NXDOMAIN 대 SERVFAIL" 또는 "느린 DNS 패킷 캡처"와 같은 검색 쿼리의 경우 핵심은 애플리케이션이 서버에 도달하기 전에 확인을 기다렸는지 여부를 입증하는 것입니다.