IT 기획의 길

TCP/IP 이론 — DNS 캐시 테이블 본문

IT 인프라/네트워크

TCP/IP 이론 — DNS 캐시 테이블

완벽하기 쉽지 않지만 완벽해지려고 노력해야 한다 2021. 10. 12. 14:15

이번 4장에서는 DNS 캐시 테이블에 대해 알아볼 것이다.

지난번 2장에서 DNS에 대해 잠시 언급한 적이 있다. DNS는 Domain Name System의 약자로서 www.naver.com이라고 입력한 주소를 125.209.222.141과 같은 IP 주소로 변환해주는 역할을 한다.

이런 주소를 변환해 주는 역할은 보통 인터넷 회사에서 DNS 서버를 갖고 있고 사용자가 도메인 이름으로 요청을 보내면 해당 서버에서 DNS 테이블이란 것을 사용해 IP 주소로 변환해준다.

예시를 위해 아래와 같은 도메인과 IP 주소를 사용하겠다.

예시로 사용할 도메인 네임과 IP 주소

이제 사용자가 police.go.kr이라는 도메인 네임을 입력하면 IP 주소로 바꾸어주는 일련의 과정을 알아보겠다.

사용자가 도메인 네임을 입력하면 운영체제는 해당 도메인 네임에 대응하는 IP 주소를 아래의 경로에 위치한 hosts 파일에서 먼저 검색을 한다.

C:\Windows\System32\drivers\etc\hosts

해당 파일은 텍스트 편집기로 열어볼 수 있다.

hosts 파일

hosts 파일에는 police.go.kr에 대한 도메인 네임이 없는 것을 확인하였다.

그러면 운영체제는 DNS 캐시 테이블에서 해당 도메인 네임에 대응하는 IP 주소를 검색한다.

DNS 캐시 테이블은 명령 프롬프트 창에서 ipconfig/displaydns를 입력해서 볼 수 있다.

DNS 캐시 테이블 — 도메인 네임에 해당하는 IP 주소를 볼 수 있다.

만약 DNS 캐시 테이블에도 요청한 police.go.kr에 해당하는 IP 주소가 없다면 운영체제는 로컬 DNS 서버 IP 주소로 police.go.kr 도메인 네임에 대한 질의를 요청한다.

이때 로컬 DNS 서버란 인터넷을 제공하는 회사가 운영하는 DNS 서버를 뜻한다.

운영체제는 로컬 DNS 서버로부터 도메인 네임에 대한 IP 주소를 응답받으면 해당 내용을 DNS 캐시 테이블에 반영한다.

police.go.kr이 반영된 것을 알 수 있다.

이처럼 도메인 네임과 IP 주소의 대응 관계를 저장한 테이블을 DNS 캐시 테이블이라고 한다.

DNS 동작 순서

앞 3장에서 나온 ARP 캐시 테이블은 IP 주소와 맥 주소의 대응 관계를 저장한 테이블이고, DNS 캐시 테이블은 IP 주소와 도메인 네임의 대응 관계를 저장한 일종의 데이터베이스라고 이해를 하면 될 것이다.

여기서 각각 ARP 캐시 테이블과 DNS 캐시 테이블을 조작을 가해 사용자가 원하는 목적지로 가는 것을 방해하는 공격을 각각 ARP 스푸핑 공격 DNS 스푸핑 공격이라고 한다. DNS 스푸핑 공격은 다른 말로 파밍 공격이라고 한다.

DNS 스푸핑 공격은 hosts 파일 변조를 통해서도 가능하다. 운영체제는 DNS 검색 시 hosts 파일을 우선적으로 검색을 하는데 이때 hosts 파일이 변조가 되어 있으면 원하는 목적지로 갈 수가 없다.

또한 공격자가 IP 주소를 해당해주는 DHCP 서버를 장악하게 되면 해당 인터넷 회사에서 제공하는 DNS 서버의 IP 주소가 변조될 수 있으며, 이렇게 되면 사용자는 가짜 DNS 서버를 이용할 수밖에 없다. 이를 DHCP 스푸핑 공격이라고 한다.

이상으로 DNS 테이블에 대해 알아보았다.

다음 5장에서는 UDP 방식과 TCP 방식에 대해 알아볼 것이다.