개요
트러블 슈팅을 진행하거나 도메인 관련 설정을 할 때 에러가 발생한 적이 있는데 명확히 파악하지를 못했다. 원인이 무엇인지 관련된 증상이 발생했을 시 어떤 것을 확인하면 좋을 지 정리해보고자 한다.
NXDOMAIN
위는 아무 도메인에 접속한 결과이다.
위와 같이 NXDOMAIN 관련된 에러가 발생하면 아래와 같은 항목을 확인하는 것이 좋다.
- 도메인을 올바르게 입력했는지 확인하기
- 다른 기기, 브라우저, 네트워크 또는 캐시를 날리고 접속해보기
- 크롬에서 캐시를 지우기 위해서는 chrome://net-internals/#dns 로 접속해 "Clear host cache"를 선택하면 된다.
- 개발자 모드에서 캐시를 지워도 된다.
- 방화벽, VPN 등 소프트웨어가 막고 있는 것은 아닌지 확인하기
- DNS 설정이 최근에 변경된 경우 기다렸다가 나중에 다시 시도하기
- 웹사이트에 대한 성능 모니터링하기
- DNS 클라이언트 서비스 다시 시작해보기
- 윈도우의 경우 DNS Client Service가 있다. `net stop dnscache` `net start dnscache` 명령어를 사용해 다시 시작해주면 된다.
SERVFAIL
SERVFAIL(Server Failure)은 DNS Resolver가 특정 도메인에 대해 Authoritative Server로부터 유효한 응답을 얻지 못했을 때 발생한다.
아래와 같은 항목을 확인하면 된다.
- 잘못 구성된 DNS 레코드 또는 Name Server가 있는지 확인하기
- Zone file에 syntax 오류가 있거나, DNSSEC 서명이 없거나 오류가 있는 경우, 부적절한 위임 문제 등이 있음
- DNS Resolver와 Authoritative server간 네트워크 연결이 중단될 경우
- 네트워크 중단, 라우팅 문제, 방화벽 제한으로 인해 발생할 수 있다.
- DNSSEC 검증 실패
- DNSSEC은 DNS 레코드에 디지털 서명을 하여 보안 계층을 제공한다. DNSSEC 서명이 유효하지 않거나 누락된 경우 오류가 발생한다.
- 서버 과부하
- DNS 쿼리가 갑자기 급증하거나 잘못 구성된 DNS 서버로 인해 시스템이 과부하되어 서버가 붕괴되고 SERVFAIL 응답이 발생할 수 있다.
- Authoritative Server 문제
- 도메인을 담당하는 Authoritative Server에 기술적인 문제가 발생하거나 응답하지 않을 때 발생할 수 있다. 서버 유지 관리, 소프트웨어 버그 또는 하드웨어 오류가 문제의 원인이 될 수 있다.
REFUSED
DNS Name Server가 정책상의 이유로 쿼리를 거부할 때 발생한다. 예를 들어 네임 서버를 남용하는 특정 장치를 차단하거나 특정 정보를 제공하지 않기 위해 응답을 발생한다.
- DNS 호스트에서 서버 구성을 확인
- 도메인에 대한 쿼리에 응답하도록 설정되어 있는지 확인
- 액세스 제어 목록(ACL) 확인
- 액세스 제어 목록이나 방화벽 규칙이 DNS 서버에 대한 쿼리를 방해하지 않는지 확인하기
- Authoritative Server 분석하기
- 도메인에 대해 Authoritative Server가 연결 가능하고 작동하는지 확인하기
- 다른 DNS 서버로 테스트
- Google의 8.8.8.8과 같은 공개 DNS 서비스와 같은 다른 DNS 서버를 사용해서 도메인을 쿼리해보기
- DNS 서버 로그 검토
- 거부된 쿼리와 관련된 오류 메시지나 경고가 있는지 DNS 서버의 로그를 검사하기
- DNS 속도 제한 확인
- 일부 DNS 서버 또는 서비스는 남용을 방지하기 위해 속도 제한을 구현할 수 있다. 가능한 한도 내에 있는지 확인해보기
내 생각
보통 Route53으로 DNS 작업을 많이 하다보니 DNS 서버에 대한 설정을 확인할 생각은 안해봤던 것 같다. 혹시 이런 오류를 마주하게 된다면 일단 내 서버 DNS 설정 확인 -> Route53 설정 확인 -> (만약 온프레미스로 통신한다면) 온프레미스 DNS 서버 설정 확인 요청 -> Authoritative Server 문제 있는지 확인 등등의 프로세스를 거칠 것 같다.
$ nslookup [domain] [nameserver] 명령어를 이용해서 다른 도메인 네임 서버를 이용해 질의하는 방법도 좋을 것 같다.
[참조] :
https://www.greengeeks.com/tutorials/dns-probe-finished-nxdomain-error/
'Network' 카테고리의 다른 글
Nginx에서 Upstream의 의미 (0) | 2024.05.22 |
---|---|
Web Socket 통신이란? (0) | 2023.09.22 |
localhost 와 127.0.0.1 차이 (0) | 2023.08.01 |
NAT와 NAPT란? (0) | 2023.07.06 |
HTTP 상태 코드란? (0) | 2023.01.02 |