'네트워크'에 해당되는 글 143건

  1. 2008.10.20 [공개 네트워크 모니터링 툴 활용] ② 이더리얼
  2. 2008.10.20 [공개 네트워크 모니터링 툴 활용] ① MRTG
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
2008.10.20 11:32

[공개 네트워크 모니터링 툴 활용] ① MRTG

MRTG는 장비의 CPU, 메모리, 4~7계층 스위치, 다양한 서버와 애플리케이션의 상태를 모니터링 하는 툴로, 네트워크 관리자라면 한번 이상은 사용해 봄직한 공개용 툴이다. 하지만 알고 있는 것과 실제로 잘 활용하는 것은 별개의 문제. MRTG 설치시 유의할 점과 MRTG 전체 구조의 이해 등을 통해 실력있는 네트워크 관리자의 세계로 한단계 성큼 다가서 보자.

네트워크에 연결돼 있는 수많은 스위치, 라우터, 서버 등과 같은 여러 장비들을 관리하는 엔지니어들이 가장 궁금해 하는 것 중에 하나가 바로 ‘어떻게 장비의 상태를 주기적으로 모니터링할 수 있을까’일 것이다.

과거 네트워크 장비 상태를 점검한다고 하면 대부분 ‘트래픽’의 양에만 국한됐다. 하지만 최근에는 장비의 CPU, 메모리, 4~7계층 스위치, 다양한 서버와 애플리케이션까지 등장하면서 보다 다양한 값을 포함하게 됐다.

MRTG는 이런 상태를 모니터링하는 툴 중 하나로, ‘Mutli Router Traffic Grapher’의 줄임말이다. MRTG는 이름에서 알 수 있듯이 기본적으로 라우터에서 가장 중요한 여러 인터페이스들의 ‘In/Out’ 트래픽을 일간, 주간, 월간, 년간을 기준으로 각각 별도의 그래프를 그려주고, 이들의 현재, 평균, 최대치를 한눈에 알 수 있게끔 해주는 아주 유용한 툴이다.

(화면 1) 네트워크 장비의 트래픽(주간)

 

MRTG는 라우터를 기본적으로 하고 있지만 조금만 응용해서 사용한다면 상상 이상의 것들도 모니터링이 가능하다. MRTG 활용으로 유명한 국내 사이트인 www.mrtg.co.kr로 가면 네트워크 장비들의 내부 온도를 나타내는 수치를 이용해, 온도 그래프까지 그려보이고 있다.

그만큼 네트워크를 하는 사람들에게 MRTG는 잘 알려진 툴이며, 많이들 사용하고 있고, 실제 상용화된 네트워크 제품들이 통계치를 가진 그래프가 필요할 때 많이 사용된다. 아직 MRTG를 접해보지 않은 독자들이 있다면 이번 글을 통해 유용한 툴 하나를 얻을 수 있을 것이다.

MRTG의 동작 원리
MRTG는 여러 가지 요소가 복합적으로 동작을 하기 때문에 제일 먼저 MRTG가 전체적으로 어떻게 구성돼 있는지를 이해해야만 한다. 필자가 처음 MRTG를 접하고 나서 어느 정도 익숙해지기까지 시간이 많이 걸렸던 것도 바로 이런 부분을 그냥 지나쳤기 때문이었던 것으로 기억한다. 때문에 이 같은 시행착오를 거치지 않으려면 MRTG의 전체 구성을 반드시 이해하고 넘어가는 것이 좋다.

MRTG는 (그림 2)와 같이 모니터링 대상이 되는 시스템과 그 시스템을 모니터링 하는 두 개의 시스템으로 구성된다.

(그림 1) MRTG의 구성과 동작 원리


(그림 2)와 같이 네트워크 장비의 트래픽을 모니터링하고 싶을 경우 MRTG 서버의 SNMP(Simple Network Management Protocol) 요청에 응답하기 위해 시스템에서 제일 먼저 SNMP는 에이전트(Agent)를 구동시켜야 한다. 물론 이때 두 시스템은 네트워크에서 연결이 돼야 한다(인터넷 구간에서도 많이들 사용한다).

다음으로 MRTG가 구동될 서버에는 모니터링 장비에 정보를 요청하고, 그 값을 로그로 남기고, 그래프를 만드는 MRTG 프로그램을 설치해야 한다. 이들 결과값을 사용자가 웹 브라우저를 이용해서 볼 수 있도록 웹 서버를 설치해야 한다. 웹 서버는 결과값을 만드는데는 필요하지 않고, MRTG의 결과값이 gif, png 형태의 그래프와 HTML 형식으로 만들어지기 때문에 사용될 뿐이다.

여기서 웹 서버는 자주 사용하는 리눅스(유닉스 계열)의 아파치나 마이크로소프트의 윈도우 NT 계열 이상에 설치되는 IIS 또는 개인용 웹서버라고 불리우는 ‘Persnal Web Server’이어도 상관없다.

다시 한번 정리하면 모니터링 대상이 되는 시스템에 SNMP가 구동돼야 하고, MRTG가 설치된 서버에 MRTG 프로그램과 웹 서버를 설정하면 모든 작업은 끝난다. 이제 필요할 때마다 웹 브라우저를 이용해 장비 상태를 점검하면 된다.

 

출처 : www.zdnet.co.kr



Trackback 0 Comment 0