[이더리얼 강좌 6] 통계·그래픽·색지정 사용법과 팁

Posted by 잿빛푸우 greypoooh@daum.net
2007.06.12 16:23 IT 정보&리뷰

지난회 까지는 이더리얼을 사용하는 가장 핵심적이고 기본적인 필터 문법에 대해 자세히 알아봤다. 그런데 과연 이더리얼을 지난 시간까지 익혀왔던 것처럼 딱딱한 텍스트로만 사용이 가능한 것일까. 좀 더 편하게 사용하는 법은 없을까. 물론 다양한 방법이 있다. 이더리얼은 나름의 또다른 편리한 도구를 갖고 있다. 이를 이용하면 상용 패킷분석기처럼 화려하지는 않지만 전체 통계치 등을 편리하게 확인할 수 있다. 이번 시간에는 이런 방법에 대해 소개한다.

네트워크 패킷 분석기를 통해 패킷을 살펴볼 때 캡처한 패킷의 양이 얼마만큼인지, 또 여러 개의 패킷 흐름을 봐야 하는 상황에서 그것들에 대한 나름의 구별은 어떻게 할 것인지 등의 고민을 하게 된다. 이더리얼은 이 같은 고민을 해결해주는 몇 가지 다양한 기능을 지원한다.

 

캡처한 패킷 색깔별로 구분하기
이더리얼에서 사용하는 여러 가지 편리한 기능 중 하나는 캡처한 패킷들을 필터에 따라서 색깔로 구별시키는 것이다. 두세가지 종류의 패킷을 전체 흐름 속에서 추적해 나갈 때 매우 유용한 기능이다.
이더리얼 메뉴중에서 View > Coloring Rules...를 선택하면 (화면 1)과 같이 프로토콜별로 컬러링을 할 수 있는 대화창이 뜬다.

 

사용자 삽입 이미지
 (화면 1) 필터 정의시 활성화되는 Order 항목(대화창 왼쪽).

 

이미 필터가 정의돼 있을 경우에는 대화창 왼쪽의 순서(Order) 항목이 활성화 돼 있으며(화면 1), 아무것도 정의돼 있지 않을 경우는 (화면 1)과 같이 업/다운(Up/Down) 버튼이 비활성화돼 있을 것이다. 지금부터는 컬러필터를 적용시키는 방법을 알아보자.
(
화면 1)의 대화창에서 편집(Edit) 메뉴에서 새로만들기(New..) 버튼을 클릭하면 (화면 2)와 같이 컬러필터를 실제로 입력하는 대화창이 뜬다.

  

사용자 삽입 이미지
(화면 2) 컬러필터를 입력하는 대화창

  

이 편집창에서는 필터의 이름(Filter > Name)과 실제 필터 스트링(Filter > String)을 입력하기만 하면 된다. (화면 2)에서 필자는 스패닝트리 프로토콜에 관련된 패킷들에 색깔을 지정하기 위해서 stp라는 필터 이름과 프로토콜을 구분하는 stp 스트링을 입력했다. 여기서 우리가 사용하게 될 필터의 스트링은 대부분 이더리얼 화면중에서 프로토콜 항목이 될 것이다. 앞서 필자가 프로토콜을 아는 것이 중요하다고 언급했던 부분이 바로 여기서 적용이 되는 것이다.
다시 컬러필터 적용으로 돌아가서 (화면 2)처럼 이름과 스트링을 주고나서 실제로 어떤 색을 적용할 것인지를 선택하는 부분이 컬러표시(Display Colors) 항목이다. 이 항목에서 전면색(Foreground Color)과 배경색(Background Color)을 선택하면 (화면 3)과 같이 색을 조정할 수 있는 창이 뜬다.

  

사용자 삽입 이미지
 (화면 3) 색을 조정할 수 있는 창

 

여기에서 패킷을 구별할 때 나타나는 문자의 색만 다르게 하고 싶을 경우는 전면색(Foreground Color)만 선택하고, 배경색(Background Color)은 선택하지 않은 상태로 두면 된다. 또한 문자의 색은 그대로 두고 배경색(Background Color)만 바꾸고 싶을 경우는 전면색은 그대로 두고 배경색만 바꾸면 된다.
그러면, 지금까지 알아본 컬러필터를 적용해서 실제 패킷들에 이 필터가 어떤 식으로 적용되었는지를 살펴보도록 하자.

  

사용자 삽입 이미지
 

(화면 4) 색으로 구분되는 프로토콜 항목들

 

(화면 4)에서 ARP 패킷은 내용문자만 파란색으로 구별했고, 스패닝트리 프로토콜(STP) 패킷은 문자는 붉은색, 배경은 연녹색으로 처리했다. 그리고 넷바이오스(NETBIOS) 패킷은 배경색만 진한 녹색으로 설정돼 있으며, 나머지는 원래 기본적으로 보는 색이다. 앞서 이야기했던 것처럼 (화면 4)에서 보여지는 프로토콜 항목이 색을 구분하는 기준이 되는 것을 볼 수 있다.
특히 이 컬러필터 기능은 실시간 모니터링 시에 유용한데, 무차별 모드로 패킷을 캡처하면서 특정 패킷의 흐름을 아주 정확하고 편리하게 볼 수 있다.

캡처한 패킷의 통계보기
이더리얼은 캡처한 패킷들의 크기가 평균적으로 어느 정도인지, 그리고 초당 어느 정도의 패킷들이 지나다니는지 살펴볼 수 있다(화면 5).

  

사용자 삽입 이미지
(화면 5) summary 항목 선택시 볼 수 있는 결과창.

 

(화면 5)는 앞서 컬러필터를 적용했던 캡처파일을 이더리얼의 분석(Analyze) 메뉴에서 요약(Summary) 항목을 선택했을 때 볼 수 있는 결과창이다. 이 결과창을 분석할 때 필요한 부분은 전체패킷 수(Packet count)와 초당 패킷수(Avg. packets/sec), 초당 바이트 수(Bytes of traffic) 패킷의 평균크기와 전체 크기 등이 될 것이다.
이더리얼로 패킷을 살펴보는 구간의 대체적인 네트워크 상태 등은 이를 통해 알 수 있는데, (화면 5)에서는 전체 3305개의 패킷을 캡처했다. 이 캡처된 패킷들로 분석할 때 현재 초당 1.367개의 패킷들이 지나고 있고, 이 패킷들의 평균크기는 85.857바이트이며 캡처한 인터페이스를 기준으로 초당 117.385바이트의 대역폭(117.385bps)을 차지하고 있음을 알 수 있다.
통계 요약정보보기 툴로서 이더리얼이 갖고 있는 또 하나의 기능은 캡처한 패킷들을 전체 캡처된 패킷들 중에서 각 프로토콜 종류별로 얼마만큼의 비율을 차지하는지를 살펴보는 프로토콜 구조 통계(Protocol Hierarchy Statics)이다.
이더리얼 메뉴중에서 Analyze > Protocol Hierarchy Statics를 선택하면 (화면 6)과 같이 전체 패킷들의 종류별 구조도와 점유하는 비율을 알 수 있다.

 

사용자 삽입 이미지
(화면 6) 전체 패킷의 종류별 구조도와 점유비율

 

이 프로토콜 구조 통계는 앞서의 요약정보와 함께 네트워크 상태의 판단기준이 된다. 과도하게 넷바이오스 패킷들이 발생한다거나, ARP 브로드 캐스팅이 발생하는 것은 많은 경우 비정상적인 네트워크 환경에서 유발되기 때문이다. (화면 6)은 각 항목을 클릭하면 보다 자세한 하부구조의 프로토콜 종류가 표시되기 때문에 하나하나의 패킷보다는 전체적인 트래픽의 흐름을 살펴보는데 큰 도움을 줄 것이다.

 

캡처한 패킷의 통계치를 그래프로 나타내기
'
간단하게 살펴본 패킷의 통계치를 그래프로 나타낼 수는 없을까?' 하는 의문을 필자도 늘 해왔다. 이런 통계치는 실제 데이터베이스화된 패킷들을 가지고 다른 프로그램과 연동하는 방식 등을 통해 이뤄질 수 있을 것이다. 이더리얼에서는 간단한 그래프 기능이 있는데 'Analyze > Statics > IO > IO-Stat'이 바로 그것이다.

 

사용자 삽입 이미지
(
화면 7) IO 상태 그래프

 

캡처한 패킷의 I/O 상태를 나타내는 상태 그래프를 실제 패킷들의 필터를 색으로 구분해서 표시할 수 있다. 기본적으로 표현할 수 있는 필터의 개수는 (화면 7)에서와 같이 5가지 이다. (화면 7)에서 보이는 바와 같이 각각의 필터를 기록하고, styile 란에서 선으로 표시할 것인지 아니면 점으로 표시할 것인지 등을 지정할 수 있다. 그리고 막대그래프의 간격과 하나하나의 구분점(Tick)당 얼마의 픽셀을 적용할 것인지, 그리고 y축의 크기 등도 지정할 수가 있다.
이런 상태그래프는 패킷을 캡처하는 인터페이스를 기준으로 앞서봤던 프로토콜 구조 통계와 같은 정보를 그래픽으로 표현해 주는 것으로 볼 수 있다. 물론 어떤 필터를 쓰는가에 따라서 다를 수 있지만, 기본적으로 프로토콜별 구분을 그래픽화하기 위해서 많이 사용하고 있다.


프로토콜에 대한 선행 학습 필수
지금까지 현존하는 가장 직관적인 패킷 분석기인 이더리얼의 또다른 측면을 살펴보았다. 이들 기능은 이더리얼의 탄생배경에서 살펴봤던 것처럼 많은 개발자들이 패킷을 분석하면서 조금씩 편리한 기능들을 추가해가면서 생겨난 것들이다. 물론 직관적이고 명확한 패킷의 분석을 위해 사용하는 이더리얼의 숨겨진 편리한 기능들도 실제로는 잘 사용하지 않는 경우도 많지만, 버전 업이 될 때마다 조금씩 더 개선되고 있기 때문에 나중에는 이더리얼의 강력한 핵심기능이 될 것이라 생각한다.
다음 호에는 실제로 이더리얼을 사용해 문제를 해결해 가는 과정을 다뤄볼 것이다. 패킷을 분석해서 문제를 해결하기 위해서는 그 패킷이 어떤 프로토콜인지를 먼저 알아야 한다. 그리고 이를 위해서는 우리가 자주 접하는 프로토콜들에 대한 선행학습이 이뤄져야만 한다.
먼저 네트워크 장비만을 놓고 볼때는 OSI 7계층에 기반해서 패킷들을 볼 수 있을 것이지만, (80)이나 DB(1521) 또는 DNS(53), FTP(21), SMTP(25), 텔넷(23) 등과 같이 잘 알려진 애플리케이션을 분석할 때는 TCP/IP 계층구분에 기반해서 패킷들을 분석해야 한다. 인터넷의 TCP/IP 통신을 통해 이뤄지고, 이런 인터넷을 연결하는 각종 네트워크 장비들은 OSI 7 계층의 표준을 따르고 있기 때문에 어느 한쪽으로만 생각해서는 완전히 문제를 파악하기 힘들 것이다. 예를 들어 스위치와 어떤 장비들 사이의 통신 문제를 파악하는 데는 대부분 MAC 통신이기 때문에 ARP를 기준으로 문제의 범위를 좁혀나갈 수 있고, FTP 통신이 문제가 있다고 할 경우는 IP와 포트 번호를 기준으로 애플리케이션의 소켓 통신쪽 문제를 확인할 수 있을 것이다. 다음에는 이런 상황별 특성을 고려한 이더리얼 적용기를 다뤄보고자 한다.

 

출처 : www.ionthenet.co.kr

이 댓글을 비밀 댓글로