네트워크에서 무슨 일이 일어나고 있는지 파악하려면 DNS 쿼리를 실행할 수 있어야 합니다. 가장 좋은 방법은 네트워크 관리 도구인 NsLookup을 사용하는 것입니다. 이 커맨드라인 툴은 네트워크 문제를 더 잘 이해하고 해결하는 데 도움을 줍니다.
NsLookup으로 DNS 쿼리를 실행하는 방법은 크게 두 가지입니다. 첫 번째는 로컬 컴퓨터에서 직접 사용하는 방법이고, 두 번째는 NsLookup을 온라인으로 사용하는 방법입니다. 이 글에서는 두 가지 방법을 모두 설명하고, NsLookup 명령어 활용 사례 8가지.
DNS는 어떻게 작동하나요?
NsLookup을 제대로 이해하려면 먼저 DNS가 무엇인지, 어떤 역할을 하는지 살펴봐야 합니다. DNS는 도메인 이름 시스템. 인터넷의 모든 웹사이트에는 숫자로 된 IP 주소가 있습니다. 하지만 실제로 웹사이트에 접속할 때 IP 주소를 직접 입력하지는 않습니다. 도메인 이름을 입력하면 DNS가 그 도메인 이름을 IP 주소로 변환해 줍니다. DNS 없이는 사용자가 웹사이트를 열 수 없습니다. 웹페이지를 불러올 때는 네 가지 DNS 서버가 협력하여 해당 IP 주소를 찾아냅니다. DNS 재귀 리졸버, 루트 네임서버, TLD 네임서버, 그리고 권한 있는 네임서버. 각 DNS 유형은 이 과정의 한 단계를 담당합니다. 예를 들어 DNS 리커서는 기존 캐시 데이터를 이용해 도메인 이름 정보를 찾으려 합니다. 필요한 정보를 찾지 못하면 루트 네임서버로 요청을 넘깁니다. 이처럼 요청이 단계별로 전달되다가 DNS가 해당 IP 주소를 찾으면 과정이 완료됩니다.
NsLookup란 무엇인가요?
NsLookup, 즉 네임 서버 조회는 네트워크 문제를 진단하는 데 사용하는 커맨드라인 도구입니다.
NsLookup에 도메인 이름을 입력하면 해당 웹사이트의 IP 주소를 알 수 있고, 반대로 IP 주소로 도메인을 찾을 수도 있습니다. 이러한 DNS 쿼리를 "A 레코드"라고 하며, NsLookup으로 할 수 있는 DNS 쿼리가 이것만은 아닙니다. "AAAA 레코드" 또는 "quad A 레코드"를 조회할 수도 있습니다. A 레코드 조회 시 NsLookup은 IPv4 주소를 반환합니다. 그러나 인터넷은 점차 IPv6로 전환되고 있으므로, 도메인의 IPv6 주소도 조회할 수 있어야 합니다. "AAAA" 레코드는 NsLookup의 IPv6 명령을 사용해 이 두 번째 유형의 IP 요청을 처리합니다. NsLookup에서 얻을 수 있는 DNS 레코드의 세 번째 예로는 SOA 레코드가 있으며, 이를 통해 DNS 존에 대한 유용한 정보와 세부 사항을 확인할 수 있습니다. NsLookup으로 조회할 수 있는 DNS 레코드는 훨씬 더 많으며, 각각 고유한 명령어가 있습니다. 여기서는 NsLookup의 가능성을 소개하기 위해 대표적인 몇 가지 예만 살펴봤습니다. NsLookup 명령어의 더 많은 기능은 다음 섹션에서 자세히 다루겠습니다.
이미 Linux 또는 Windows 컴퓨터에 이 도구가 설치되어 있을 가능성이 높습니다. 단, Microsoft에 따르면 NsLookup 커맨드라인 도구는 TCP/IP 프로토콜이 설치된 경우에만 사용할 수 있습니다.
NsLookup 사용법을 알아야 하는 이유
네트워크나 서버 관리자도 아닌데 NsLookup 명령어를 왜 알아야 하나 싶을 수 있습니다. 하지만 NsLookup 사용법을 익혀두면 좋은 이유가 크게 두 가지 있습니다.
NsLookup으로 서버 연결 문제 진단하기
서버 연결에 문제가 생겼다면 NsLookup 명령어로 연결 상태를 진단하고 문제를 빠르고 효과적으로 해결할 수 있습니다.
보안
피싱 공격 중 상당수는 신뢰할 수 있는 웹사이트의 도메인 이름을 미묘하게 변조하는 방식을 사용합니다. 사용자는 가짜 웹사이트인 줄 모르고 결제를 하거나 개인정보를 입력할 수 있습니다. 그러나 NsLookup으로 예방할 수 있는 공격이 피싱만은 아닙니다. DNS 캐시 포이즈닝 공격의 경우, 해커가 데이터 트래픽을 다른 서버로 우회시킬 수 있습니다. 이로 인해 사용자가 위험한 웹사이트로 연결될 수 있습니다. 적절한 NsLookup 명령어와 DNS 레코드, 그리고 각 레코드의 정상적인 동작을 알고 있다면 비정상적인 사용 여부를 감지할 수 있습니다.
유용한 NsLookup 명령어와 CMD DNS 명령어 몇 가지를 익혀두면 기술 역량을 한층 넓힐 수 있습니다. 다음에 서버 문제가 발생하면 직접 원인을 파악하고 해결할 수 있습니다.
Windows에서 자주 사용하는 NsLookup DNS 명령어
NsLookup이 무엇인지 파악했으니, 이제 Windows에서 가장 많이 쓰이는 NsLookup DNS 명령어 6가지와 각각의 활용법을 살펴보겠습니다.
1. 도메인 A 레코드 조회
앞서 설명했듯이 A 레코드 쿼리는 NsLookup으로 IP를 확인하는 데 사용합니다. Windows에서 이 CMD DNS 명령어를 사용하려면 먼저 Windows+R을 눌러 실행 창을 열고 "cmd"를 입력한 후 확인을 클릭하여 명령 프롬프트를 실행합니다. 이 단계는 Windows의 모든 명령어에 공통으로 적용됩니다. 그런 다음 "NsLookup"을 입력하고 Enter를 누르면 기본 서버와 IP 주소가 표시됩니다.
그런 다음 웹사이트 도메인 이름을 입력하면 IP 주소를 확인할 수 있습니다. 여기서 "Non-authoritative answer(비권위적 응답)"이 표시되는데, 이는 쿼리에 대한 응답이 비권위적 소스에서 왔다는 의미입니다.

2. 도메인 NS 레코드 확인
이 DNS 명령어를 사용하면 도메인 이름의 권위적 네임서버를 찾을 수 있습니다. 권위적 서버는 해당 DNS 존의 최종 권한을 가집니다. 도메인의 NS 정보를 조회하려면 다음 명령어를 사용하세요.
set q=ns www.example.com

3. 도메인의 SOA 레코드 조회하기
또 다른 유용한 CMD DNS 명령어는 SOA 레코드 명령어입니다. 도메인의 SOA 레코드를 조회하는 방법은 앞서 살펴본 DNS 명령어와 크게 다르지 않습니다. 유일한 차이점은 쿼리 유형을 "소아" 대신네임스페이스".
명령어는 다음과 같습니다:
set q=soa www.example.com
4. 디버그 모드 활성화
도메인 이름에 대한 추가 정보는 다음 DNS 명령어를 사용하여 확인할 수 있습니다:
set debug www.example.com
이 명령어는 디버그 모드를 활성화합니다. 디버그 모드에서는 서버로 전송되는 패킷에 대한 상세 정보를 확인할 수 있습니다.

5. MX 레코드 찾기
MX 레코드(Mail Exchange 레코드)는 이메일 수신을 담당하는 메일 서버를 지정하는 DNS 레코드입니다.
다음 DNS 명령어로 MX 레코드를 조회하세요:
set q=mx domain name

6. 역방향 DNS 조회 확인
이 명령어는 IP 주소를 알고 있고 해당 도메인을 찾고 싶을 때 유용합니다. 역방향 NsLookup을 수행하려면 다음 명령어를 사용하세요:
nslookup 'IP address'

Linux에서 가장 많이 쓰이는 NsLookup 명령어
이제 Linux 서버에서 이 명령어들을 직접 실행해 보겠습니다.
1. 도메인의 A 레코드 확인하기
Linux에서 도메인의 A 레코드를 확인하려면 터미널을 열고 다음 명령어를 입력하세요:
nslookup example.com

2. 도메인 NS 레코드 확인
다음은 Linux의 도메인 네임 서버 레코드를 조회하는 nslookup 명령어입니다:
nslookup -type=ns example.com

3. 도메인의 SOA 레코드 조회하기
다음 nslookup 명령어로 SOA 레코드를 조회하세요:
nslookup -type=soa example.com
4. 디버그 모드 활성화
Linux에서 디버그 모드를 활성화하려면 다음 nslookup 명령어를 사용하세요:
nslookup -debug example.com

5. MX 레코드 찾기
다음 nslookup 명령어로 MX 레코드를 조회할 수 있습니다:
nslookup -query=mx example.com

6. 역방향 DNS 조회 확인
도메인의 A 레코드를 조회할 때와 마찬가지로, 역방향 NS 조회를 하려면 nslookup 뒤에 IP 주소를 입력하세요:
nslookup 11.11.11.11

NsLookup 온라인 도구
커맨드 프롬프트 외에도 웹 기반 도구를 사용해 네임 서버를 조회할 수 있습니다. 온라인 도구의 검색창에 도메인 이름을 입력하면 다양한 DNS 레코드를 확인할 수 있습니다. 온라인 NsLookup 도구는 커맨드 프롬프트에서 수행할 수 있는 거의 모든 조회를 지원합니다. 다음은 온라인 NsLookup 도구의 세 가지 예시입니다.
요약하면
사용자가 웹사이트에 접속하려 할 때마다 DNS가 해당 IP 주소를 찾아 연결을 가능하게 합니다. DNS 존을 더 깊이 이해하고 문제를 해결하려면 NsLookup을 활용하면 됩니다. NsLookup은 네임 서버에 대한 다양한 정보를 제공하는 유용한 커맨드라인 도구입니다. 서버 연결 문제 해결, DNS 오류 진단, 인터넷 브라우징 보안 강화 등 여러 용도로 활용할 수 있습니다. 이 글에서는 Linux와 Windows 모두에서 유용하게 쓸 수 있는 NsLookup 명령어들을 정리했습니다.
자주 묻는 질문
NsLookup과 Ping은 어떻게 다른가요?
도메인 이름을 IP 주소로 변환할 때 두 도구 모두 동일한 결과를 반환합니다. 하지만 작동 방식은 다릅니다. ping은 주로 IP 연결 여부를 확인하는 데 쓰이며, DNS 문제 진단이나 트러블슈팅에는 적합하지 않습니다.
NsLookup을 IP 주소로도 사용할 수 있나요?
네, NsLookup으로 IP 주소에 연결된 도메인 이름을 조회할 수 있습니다. 역방향 NsLookup을 사용하면 특정 IP 주소를 담당하는 도메인 이름을 확인할 수 있습니다.
DNS 조회는 어떤 정보를 알려주나요?
DNS 조회를 통해 도메인 이름을 IP 주소로, 또는 IP 주소를 도메인 이름으로 변환할 수 있습니다. 또한 해당 존의 기본 네임 서버 등 DNS 존에 관한 정보도 확인할 수 있습니다.
IPv6 네임 서비스 정보를 확인하는 방법은?
nslookup으로 IPv6 네임 서비스 정보를 확인하려면, 커맨드 프롬프트나 터미널을 열고 "nslookup -query=AAAA example.com"을 입력하세요. "example.com" 자리에 조회할 도메인을 입력하면 됩니다. 이 명령어는 해당 도메인의 AAAA 레코드를 DNS에 조회하며, AAAA 레코드에는 IPv6 주소가 담겨 있습니다.
A 레코드와 AAAA 레코드의 차이점은 무엇인가요?
A 레코드와 AAAA 레코드는 모두 도메인 이름을 IP 주소에 연결하는 DNS 레코드지만, 서로 다른 버전의 인터넷 프로토콜을 지원합니다. A 레코드는 도메인 이름을 기존 형식인 32비트 IPv4 주소에 매핑합니다. 반면 AAAA 레코드는 도메인 이름을 128비트 IPv6 주소에 연결하며, 인터넷 연결 기기의 폭발적인 증가로 인해 더 많은 IP 주소가 필요해진 상황에 대응하기 위해 만들어졌습니다.