한국에서 사용하는 주요 DNS서버에서 도메인이 어느 ip와 연결돼 있는지 확인하는 리눅스용 bash 스크립트다(맨 아래 있다). 도메인 ip를 변경한 뒤 적용됐는지 확인할 때 쓸 용도로 만들었다.

KT, SKT, LGU+, 구글DNS, 1.1.1.1, 오픈DNS 서버의 기본, 보조 DNS 서버에 도메인 ip를 질의한다.

그리 아름다운 스크립트는 아니고 그냥 복붙으로 노가다해 만들었다. 스크립트는 맨 아래 있다.

사용 방법

초보를 위해 사용방법을 설명한다.

아래 코드를 복사해서 test-dns.sh 같은 파일로 만든 뒤 실행 권한을 준다.

실행 권한을 주려면 chmod +x test-dns.sh라고 명령어를 치면 된다. 탐색기에서 마우스 우클릭 후 속성에서 실행 권한을 줘도 되고.

실행 방법

그리고 실행한다. 리눅스 커맨드라인에서는 실행하려면 앞에 경로를 적어 줘야 한다. 윈도우와 다르다. 같은 폴더라면 ./test-dns.sh domain.com 식으로 쳐서 실행한다. 실행 파일명 뒤에 체크하고 싶은 도메인 주소를 적도록 한다. 아래처럼 말이다.

./test-dns.sh mytory.net

실행 결과물

실행하면 DNS 서버 테스트 결과, DNS 조회에 걸린 시간을 알려 준다. 아래처럼 말이다.

=====================
KT primary DNS Server
=====================
Server:		168.126.63.1
Address:	168.126.63.1#53

Non-authoritative answer:
Name:	mytory.net
Address: 104.24.99.57
Name:	mytory.net
Address: 104.24.98.57


real	0m0.011s
user	0m0.004s
sys	0m0.000s

내부 동작

시간 기록은 time 명령어로 간단히 잰 거다. 그래서 내부적으로는 아래와 같은 명령어를 사용한다.

time nslookup mytory.net 168.126.63.1

이상이다. 아래는 스크립트다.

스크립트

#!/bin/bash
if [ "$1" = "" ]
	then
		echo "An argument is required." 
		echo "ex) $0 domain-to-test.com"
		exit 1;
fi;

echo "====================="
echo "KT primary DNS Server"
echo "====================="
time nslookup $1 168.126.63.1
echo ""
echo ""
echo ""
echo "====================="
echo "KT sub DNS Server"
echo "====================="
time nslookup $1 168.126.63.2

echo ""
echo ""
echo ""
echo "====================="
echo "SKT primary DNS Server"
echo "====================="
time nslookup $1 210.220.163.82
echo ""
echo ""
echo ""
echo "====================="
echo "SKT sub DNS Server"
echo "====================="
time nslookup $1 219.250.36.130

echo ""
echo ""
echo ""
echo "====================="
echo "LGU+ primary DNS Server"
echo "====================="
time nslookup $1 164.124.107.9
echo ""
echo ""
echo ""
echo "====================="
echo "LGU+ sub DNS Server"
echo "====================="
time nslookup $1 203.248.252.2

echo ""
echo ""
echo ""
echo "====================="
echo "Google primary DNS Server"
echo "====================="
time nslookup $1 8.8.8.8
echo ""
echo ""
echo ""
echo "====================="
echo "Google sub DNS Server"
echo "====================="
time nslookup $1 8.8.4.4

echo ""
echo ""
echo ""
echo "====================="
echo "CloudFlare+APNIC primary DNS Server"
echo "====================="
time nslookup $1 1.1.1.1
echo ""
echo ""
echo ""
echo "====================="
echo "CloudFlare+APNIC sub DNS Server"
echo "====================="
time nslookup $1 1.0.0.1

echo ""
echo ""
echo ""
echo "====================="
echo "OpenDNS primary DNS Server"
echo "====================="
time nslookup $1 208.67.222.222
echo ""
echo ""
echo ""
echo "====================="
echo "OpenDNS sub DNS Server"
echo "====================="
time nslookup $1 208.67.220.220