맥OS와 윈도우10에는 nslookup 이름을 가진 명령어가 포함되어있습니다. 리눅스 버전과 사용법은 대동소이하지만 정확한 사용법은 조금 다를 수 있습니다. 리눅스에도 Ubuntu를 포함한 Debian 계열 배포판의 경우
RedHat 계열 배포판의 경우 여기서 Server와 Address 정보는 어느 DNS 서버에 쿼리를 요청했는지를 의미합니다. 별도로 DNS 서버를 지정하지 않으면 시스템에서 사용중인 DNS 서버에서 DNS 정보를 조회합니다.
nslookup으로 도메인의 IP 주소를 조회할 때 프로토콜을 포함하지 않아야 합니다. 예를 들어
IP 주소로 도메인 조회하는 방법도메인으로 IP를 조회하는 것과 반대로 IP에 연결된 도메인을 조회하려면 다음과 같이 IP로 쿼리를 합니다. 이 경우 PTR 레코드를 조회하며, 역방향 조회(인버스 도메인)라고도 합니다.
앞서 조회했던
결과를 읽는 법은 크게 다르지 않습니다. 단, 결과 값을 보고 하나의 IP에 다수의 도메인들이 연결된 것을 확인할 수 있습니다. 여기서 IP 주소 뒤의 DNS 서버를 지정하는 방법특정한 DNS 서버에 쿼리를 하고 싶다면, 다음과 같이 사용합니다.
예를 들어 구글의 퍼블릭 DNS인 8.8.8.8에서 DNS를 조회하고 싶은 경우 2번째 인자로 지정해줍니다.
출력된 내용을 통해 8.8.8.8 서버에서 DNS 조회가 이루어진 것을 확인할 수 있습니다. 인터렉티브 모드
조회하고자 하는 도메인을 입력합니다. 결과가 출력됩니다. 도메인을 추가로 입력하면, 다시 결과가 출력됩니다. 여러 도메인들을 조회해보고 싶을 때 인터렉티브 모드를 사용하면 편리합니다.
이번에는 다시
타입 별 레코드 조회(MX, TXT 등)
예를 들어
txt 레코드는 다음과 같이 조회할 수 있습니다.
DNS 레코드 타입에 대해서는 다음 문서를 참고해주세요.
쿼리 타임아웃을 지정하는 방법
0.0.0.0에 DNS 서버가 없기 때문에 타임아웃이 되고 종료됩니다. 다른 처리 때문인지 1초보다는 시간이 더 걸리네요. 기본 타임아웃은 10초입니다. (실제로 실행해보면, 좀 더 시간이 오래 걸리네요.)
이 글의 처음 예제로 돌아가보겠습니다.
구글 번역기로 뜻을 살펴보면 신뢰할 수 없는 답변이라고 합니다. 이는 사용자가 이용하는 DNS 서버가 도메인 소유자가 등록한 1차 정보원이 아니기 때문입니다. DNS 서버는 상위 DNS 서버에 쿼리를 하고 다시 이를 캐시해서 가지고 있습니다. 따라서 캐시에 따라서 최신 정보와 다르거나, 혹은 DNS 서버 자체를 신뢰할 수 없는 경우 악의적인 조작을 하는 것도 가능합니다. DNS 서버의 동작 원리에 대한 좀 더 자세한 이야기는 다음 글을 참고해주세요.
그렇다면 신뢰할 수 있는 답변을 얻기 위해서는 어떻게 해야할까요? SOA 레코드를 조회해서 해당 도메인의 정보가 등록되어있는 DNS 서버를 확인하고, 이 서버에 조회를 해보면 됩니다. 먼저 apple.com의 SOA 레코드를 조회해봅니다.
여기서
더 이상 Non-authoritative answer(신뢰할 수 없는 답변)이라는 문구가 출력되지 않습니다. 추천 문서
|