이번 시간에는 Wireshark라는 Tool을 이용하여 DNS packet을 Capture 해보도록 하겠습니다.
가장 먼저, 우리의 목적인 DNS를 제작하기 위해서는 먼저 DNS가 어떻게 Packet을 주고받는지 알아야하는데요.
그래서 ! DNS에 대한 가장 기초적인 설명 or DNS 메세지(Packet)이 어떻게 구성되어 있는지 확인하고 이 글을 참조하신다면 보다 많은 공부를 하실 것이라 생각이 됩니다.
DNS시작하기 ! – https://jinheeahn.wordpress.com/2015/08/28/1-dns-시작하기
DNS 통신에 대하여! – https://jinheeahn.wordpress.com/2015/09/07/2-dns 통신에 대하여
DNS Header – https://jinheeahn.wordpress.com/2015/09/08/3-dns-message/
DNS 질의 메세지 – https://jinheeahn.wordpress.com/2015/09/21/4-dns-질의 메세지
자, 이제 그럼 Wireshark에 대한 설명을 이어나가도록 하겠습니다.
먼저, wireshark는 무료 tool이기 때문에 google에서 wireshark를 검색하셔서 다운로드 받으시면 되겠습니다. (아래 링크 클릭 - wireshark 다운로드)
Wireshark Download - https://www.wireshark.org/download.html
wireshark를 다운받고 실행하였다면, 아래와 같은 화면이 나올 것입니다.
wireshark의 기능에 대한 보다 자세한 설명은 wireshark 홈페이지나, 다른 자료를 검색해보시는 것을 추천드립니다.
간단한 설명을 드리자면, 빨간색테두리는 필터설정.
그 옆의 초록색 shark마크는 wireshark Capture 시작.
빨간색 아이콘의 네모상자는 wireshark Stop.
그리고 그 옆의 또다른 shark 모양은 재시작 버튼입니다. (이 버튼은 wireshark Capture 시작 후에 재시작 기능으로 사용됩니다.)
여기서 이제 DNS의 Packet을 wireshark로 Capture하는 방법을 살펴보겠습니다.
아래 그림의 빨간색 테두리 부분을 클릭합니다. (필터 설정)
누르면 아래와 같은 화면이 나타나게 됩니다.
이 기능은 필터라는 기능을 이용하여 내가 원하는 Packet을 Capture가 가능하게 합니다. 필터라는 것은 내가 원하는 것만 통과시키게 만드는 것. 이라는 점은 알고계시구요.
아래의 필터설정의 "udp port 53"이라고 기재한 것은 필터 설정을 UDP로 통신한 것 + Port 53번을 사용한 것만 Capture하겠다는 의미입니다.
부가 설명을 드리자면, DNS Server는 53 Port로 정해져있습니다. (많은 Application이 각 Port로 정의되어 있습니다. 이건 네트워크를 사용하는 사람들과의 약속으로 정해져있습니다.)
그리고 Start 버튼을 클릭합니다.
Start 버튼을 클릭하면 Wireshark 화면이 아래와 같이 변하게 됩니다.
이제 이 상태에서 Capture가 이루어지게 됩니다.
이제 DNS Data Capture를 위해 시작버튼 -> cmd를 실행해보겠습니다. (아래 그림 참조)
cmd 화면이 나오는 것이 성공했다면, 아래의 그림과 같이 "nslookup"이라는 명령어를 타이핑 후 Enter합니다.
그리고 "www.google.co.kr"을 타이핑 후 Enter하면, www.google.co.kr의 IP를 알려주게 됩니다.
여기서 nslookup이란,
nslookup - 도메인 이름과 IP 주소를 확인하는 기능을 가진 네트워크 관리 명령도구입니다.
wireshark를 실행한 상태에서 위 그림과 같이 cmd 창에서 명령어를 제대로 기입하셨다면 아래와 같이 Packet Capture한 것이 나타나게 됩니다.
이 Packet들은 우리가 cmd환경에서 nslookup, www.google.co.kr을 한 것에 대한 Capture입니다.
여기까지 Capture가 완료되었다면, wireshark Capture가 완료된 것입니다.
여기서, DHCP와 같은 다른 Application에 대해 wireshark Capture할 때도 동일합니다.
그저 필터를 어떻게 설정하냐가 다르기 때문에, 앞으로는 쉽게 wireshark를 이용하시기 바랍니다.
감사합니다.