2008.10.20 11:33

[공개 네트워크 모니터링 툴 활용] ② 이더리얼

쓸만한 패킷 분석기가 필요하다면 이더리얼에 관심을 가져보자. 이더리얼은 스니퍼처럼 비싼 돈을 주고 사지 않아도 되는 공개용 패킷 분석기이다. 하지만 상용 툴 못지 않은 다양한 기능을 제공하고 있다. 네트워크 상에서 실제로 패킷이 어떻게 떠다니는지 보지 못하고는 실력있는 네트워커라고 할 수 없다. 한단계 업그레이드된 네트워커의 세계로 들어가 보자.

한달 전에 필자는 네트워크 기초 관련 서적을 출간하면서 네가지 공개용 툴(시스로그서버, MRTG, 이더리얼, VNC)을 주제로 세미나를 했다. 이때 가장 비중을 두고 강의했던 주제가 바로 이더리얼(Ethereal)이다. 이더리얼은 지금까지 소개된 어떤 툴보다도 상당한 매력을 지니고 있다.

이더리얼이란 네트워크 상에 돌아다니는 패킷을 분석할 수 있는 분석 툴로, 패킷 분석기(Packet Analyzer) 중 하나라고 할 수 있다. 패킷 분석기는 네트워크를 지나다니는 패킷들을 실시간으로 수집, 각 프로토콜 포맷에 맞게 분석할 수 있도록 해 실제 네트워크 상에서 일어나는 대부분의 일을 확인할 수 있는 아주 유용한 툴이다.

네트워크 엔지니어들이 네트워크를 모니터링하고, 문제의 원인을 찾고자 할 때, 또는 어떤 프로토콜의 통신 방식에 대해 알고 싶을 때 많이 사용된다. 필자 역시 네트워크에 일어난 문제를 파악할 때 주로 사용하지만, 실제 어떤 프로토콜이 어떻게 동작하는지를 알고 싶을 때도 많이 사용하고 있다.

실제로 책으로만 보아왔던 프로토콜들을 실제 패킷 분석기를 이용해서 확인하는 것이다. 정말 책에서 이야기한데로 동작을 하고 있는지. 하지만 필자가 확인한 바로는 실제 패킷들은 대부분 책에서 소개하고 있는 방식과는 다르게 동작하고 있었다. 때문에 책에 100% 의존하기 보다는 책을 통해 어느 정도 지식을 얻었다면, 이더리얼과 같은 툴을 이용해 직접 눈으로 통신이 어떻게 이뤄지는지 확인하는 것이 좋다(물론 모든 책이 다 틀리다는 말은 아니니 오해마시라).

(그림 1) 패킷 분석기가 놓이는 위치


패킷 분석기는 (그림 1)처럼 호스트와 호스트 또는 네트워크와 호스트, 네트워크와 네트워크 사이에 위치해 패킷을 수집, 분석한다. 현업에서 가장 많이 사용하고 있는 패킷 분석기는 공개용 툴인 이더리얼이 아니라, 상용 제품인 NA(www.nai.com)의 스니퍼(Sniffer)이다.

스니퍼는 상당히 많은 사람들이 사용하고 있으며, 기능도 탁월하지만, 프로그램 하나에 1000만 원을 호가하는 고가 제품이어서 일반인이 쉽게 구매해 사용하기에는 버거운 제품이다. 물론 필자도 스니퍼를 써보기는 했지만, 실제 구매는 할 수 없었다(스니퍼가 정말 필요하다고 생각돼 회사에 품의서를 올려본 경험이 있는 독자라면 누구나 그 결과를 알 수 있을 것이다).

이더리얼은 이와 달리 다양한 기능을 제공하지만 누구나 쉽게 접근할 수 있는 공개용 툴이다. 대부분 윈도우에서 이더리얼을 사용하지만 이더리얼은 원래 리눅스용으로 사용되던 툴이다.

리눅스를 많이 사용하는 사람들은 ‘tcpdump’라는 패킷 덤프 툴에 익숙할 것이다. tcpdump 가 명령어 창에서 패킷의 헤더를 본다면 이더리얼은 GUI 형태에서 프로토콜 포맷을 구분한다. (화면 1)은 똑같은 핑(ping) 패킷을 리눅스는 tcpdump로, 윈도우에서는 이더리얼로 캡처한 것이다. 물론 리눅스용 이더리얼을 사용하면 GUI 형태로 볼 수도 있다.

 
(화면 1) tcpdump와 이더리얼로 핑 패킷 캡처한 비교 화면. 리눅스의 tcpdump(좌)와 윈도우의 이더리얼(우)


 

(화면 2) 일반적인 핑 테스트 화면


(화면 2)는 일반적으로 많이 사용하는 간단한 핑 테스트의 결과 화면이다. 이를 보고 우리는 ‘아, 정상적으로 응답이 됐구나’라고 생각할 것이다. 그렇다면 패킷이 실제로 오가는 모습을 보지도 않은 우리가 그와 같이 판단하는 근거는 무엇인가. 그것은 오로지 핑 프로그램의 결과에만 의존해 정상적으로 동작했다고 판단했을 뿐이다.

하지만 패킷 분석기는 다르다. 단순히 결과를 보고 추측하는 것이 아니라 실제 네트워크 를 지나다니는 패킷들을 살펴보고, 분석할 수 있도록 한다. 핑 요청(ping Request)이 가고, 핑 응답(ping Reply)이 되돌아오는 과정을 직접 확인할 수 있는 것이다.

만약에 ‘Request timeout’이 되면 그냥 상대방 컴퓨터가 죽었기 때문이 아니라 왜 그랬는지를 파악해야만 한다. 패킷 분석기는 ‘내 컴퓨터가 못 보냈는지’ 아니면 ‘나는 보냈는데 상대 컴퓨터에서 응답이 안 온것인지’ ‘못 보냈다면 왜 못보냈는지’ 등을 파악하는데 도움을 준다.

이더리얼은 MRTG와 마찬가지로 리눅스, 솔라리스, HP-UX, FreeBSD, 윈도우, 매킨토시 등 다양한 운영체제를 지원한다. 이번 기고에서는 일반적으로 가장 많이 사용하는 윈도우 기반의 이더리얼에 대해서만 소개하도록 한다.

이더리얼은 공식 홈페이지(www.ethereal.com)에서 다운로드 받을 수 있다. 단, 주의할 점은 이더리얼 설치 전에 윈도우에서 패킷을 캡처해 주는 툴인 WinPcap를 먼저 설치해야 한다는 점이다(참고로 리눅스에서는 libpcap가 그 역할을 한다).

알다시피 운영체제의 NIC들은 자신의 인터페이스로 들어오는 패킷 중 목적지 하드웨어 어드레스가 자신이 아닐 경우는 상위로 올려보내지 않고 버리게 돼 있다. 그래서 이런 패킷들을 모두 애플리케이션단까지 올리려면 별도의 툴을 설치해야 한다. 그것이 바로 WinPcap다. WinPcap는 해당 홈페이지(http://winpcap.polito.it)에서 다운로드 받을 수 있다.

WinPcap와 윈도우용 이더리얼은 모두 윈도우용 실행 파일이므로 설치 과정은 쉽다. WinPcap는 설치가 모두 되고 나면 이더리얼에서 캡처를 하는 동안에만 사용하게 되므로 신경쓰지 않아도 된다.

 

출처 : www.zdnet.co.kr



Trackback 0 Comment 0