윈도우와 리눅스에서의 DNS 질의 과정 및 우선순위 총정리

2017. 5. 1. 00:09보안 & 해킹/정보 보안

윈도우와 리눅스시스템에서 DNS 질의 과정과 우선순위를 총정리해봤습니다.

빠트리거나 틀린 내용이 있으면 알려주세요. 인터넷 어딜 찾아봐도 한방에 정리된게 없네요....


순서의 기준은 'spoofing등의 비정상적인 행위를 제외하고 패키지 설치, 설정 수정, 추가서버 등을 설치하여 질의 순서를 설정할 수 있다'는 기준입니다.


숫자가 커질수록 나중에 탐색하고 동작하는 순위가 밀립니다.



DNS 질의 과정중 단 한부분이라도 해킹이나 수정된다면 파밍에 당할 수 있음을 생각하며...




윈도우에서의 DNS 질의 과정과 우선순위


1. DNS cache에 질의. - 해당 dns cache는 ipconfig /displaydns 명령어로 볼 수 있음. 주로 자동으로 캐시가 생성됨.


2. C:\windows\system32\drivers\etc\hosts.ics 파일 검토. - hosts 파일보다 먼저 검사함. ics 파일은 인터넷 연결 공유 (ICS: Internet Connection Sharing) 시 해당 시스템의 네트워크 주소를 강제로 지정하는 기능


3. C:\windows\system32\drivers\etc\hosts 파일 검토


4. 로컬에서 설정한 DNS 서버 : 윈도우 네트워크 인터페이스에서 속성 변경 과정





5. 내부 네트워크 DNS 질의 - 4번 과정에서 내부 네트워크 DNS로 맵핑했을 경우 ex) Active Directory의 DNS서버, VMWare의 Gateway 등.


6. 외부 네트워크 DNS 질의

6.1 ROOT DNS : 전 세계에 13개만 존재하는 최상위 DNS 서버. 트래픽 경감을 위한 미러서버가 존재한다. 13개만 존재하는 이유는 초창기 UDP 패킷 사이즈가 512바이트로 제한되었었기 때문이다.

6.2 Top-level Domain Name Server : 예를 들어 .com DNS

6.3 Second-level Domain Name Server : 예를 들어 tistory.com DNS

6.4 Third-level Domain Name Server : 예를 들어 ftp.tistory.com DNS, ns1.daum.net DNS, ns2.daum.net





리눅스 DNS 질의 과정과 우선순위


1. nscd ( Name Service Cache Daemon ) - nscd 데몬이 설치되었을 경우에만 활성화. 윈도우의 dns cache와 같다.


2. /etc/host.conf 파일의 설정에 따라서 순서가 바뀔 수 있다. 기본 설정으로는 /etc/hosts 파일을 참조한다. 두번째로 bind 패키지를 따른다. bind 패키지로 리눅스 DNS 서버를 구축할 수 있다. 이는 패키지가 설치되어 있을 경우에만 활성화된다. bind 내부 설정에 따른 순위 변화는 생략.


3. 리눅스에 따라 GUI 환경의 네트워크 설정 어플리케이션으로 DNS 설정(리눅스마다 약간씩 차이가 있을 수 있음. 보통은 GUI 환경에서 설정하는 것이 우선적으로 작용한다.)


4. /etc/resolvconf/resolv.conf.d 디렉토리 내부 설정. 이 디렉토리는 base, head 파일과 /etc/network/interfaces 파일을 이용하여 resolv.conf 파일을 수정함.(리눅스마다 약간씩 차이가 있을 수 있음. 우분투에서 확인)


5. /etc/resolv.conf 파일 : 윈도우의 네트워크 인터페이스 설정과 같음.


6. 내부 네트워크 DNS 질의 - 5번 과정에서 내부 네트워크 DNS로 맵핑했을 경우. ex) Kerberos Linux DNS server, Active Directory DNS, VMWare의 Gateway 등.


7. 외부 네트워크 DNS 질의 - 윈도우 항목과 동일



위의 과정을 크게 나누어 보면 아래와 같다.


1. Local 환경 쿼리 (자기 자신)


2. 내부 네트워크 쿼리


3. 외부 공인 DNS 쿼리





리눅스에서 DNS 질의 과정 추적 명령어 dig를 사용할 수 있다. 윈도우는 따로 설치해야 한다.




추가 : 공유기에서 할당하는 DNS 설정은 보통 KT, SKT 등의 통신사 DNS 서버인데, 공유기에서 설정하는 값 보다 시스템에서 설정하는 값이 먼저이다. 하지만 별도의 설정이 없다면 OS 부팅 시 DHCP를 공유기 정보에서 받아 설정하도록 되어있다. 









dig 다운받기


dig_win32.zip



ex) dig ns




dig a.root-servers.net 을 해보면 198.41.0.4의 ROOT DNS 서버주소를 볼 수 있다.