본문 바로가기

IT인생_스크랩/Network

네트워크 분석 바이블 I - 스니퍼 활용 가이드

출처 까비모님의 블로그 | 까비모
원문 http://blog.naver.com/kabimo/40018469083
철저한 사전 준비만이 정확한 네트워크 문제 분석 가능
네트워크·애플리케이션 효율성 점검...네트워크 다운 방지 효과


김근혜
피지피넷 스니퍼 분석 기술지원부 차장
kgsun@pgpnet.com

본 기고는 가장 널리 사용되고 있는 네트워크 분석 툴인 스니퍼를 이용해 보다 정확하고 체계적인 분석을 할 수 있도록 스니퍼 활용 가이드를 소개한다. 이번 호에서는 네트워크 분석을 위해 네트워크 관리자는 어떻게 계획을 세우고, 사전 준비를 해야 하는지, 어떤 부분에 초점을 맞춰 분석을 해야 하는지 등을 중심으로 다뤄본다. <편집자>


연·재·순·서

1. 네트워크 분석 바이블 I (이번 호)
2. 네트워크 분석 바이블 II
3. 네트워크 분석 바이블 III
4. TCP/IP 트러블슈팅 I
5. TCP/IP 트러블슈팅 II
6. 애플리케이션 성능 관리


최근 비즈니스 애플리케이션의 종류 및 네트워크 사용량 증가에 따라 사용자들은 더욱 빠르고 안정적인 네트워크 환경을 요구하고 있다. 따라서 네트워크 관리자들은 네트워크와 애플리케이션 서비스의 속도 및 효율성을 주기적으로 점검해야 하며, 그 성능을 최대한으로 활용할 수 있도록 해주는 한편 네트워크 다운타임을 줄이기 위해 노력해야 한다.

네트워크 분석시 스니퍼 연결 방법
오래 전부터 많은 네트워크 관리자들은 네트워크 문제 발생시 무작정 스니퍼(Sniffer)를 들고 간다. 측정기의 성능이 아무리 좋아도 측정 방법이 잘못된다면 문제 발생 원인에 대한 데이터 수집에서부터 난관에 부딪치게 될 것이다. 따라서 네트워크 관리자는 네트워크 문제를 해결하기 위해 스니퍼를 들고 측정에 들어가기 전에 준비해야 될 몇 가지 사항이 있다.



첫 째, 측정 장비의 벤더와 종류(스위치 또는 허브)를 파악하고, 측정하고자 하는 세그먼트를 정확히 판별해야 한다. 허브인 경우에는 모든 패킷이 브로드캐스트되기 때문에 컴퓨터를 연결하듯 허브에서 다이렉트 케이블(Direct Cable)을 사용해 스니퍼가 설치된 시스템에 연결한다. 스위치인 경우에는 각 포트들이 충돌영역(Collision Domain)이므로 측정하고자 하는 구간에 대해 포트 미러링(Port Mirroring)을 한 후 스니퍼가 설치된 시스템에 허브와 같은 방식으로 연결해야 한다.
포트 미러링은 장비의 벤더와 소프트웨어 버전마다 다르기 때문에 측정하고자 하는 장비가 지원하는 포트 미러링 기능이 어디까지인지를 파악해야 할 것이다. 예를 들면 시스코의 경우 버전에 따라 1:1, N:1, 가상랜:1 등 다양한 포트 미러링 기능이 제공되지만 기타 다른 벤더의 스위치인 경우 기본적으로 1:1만을 제공하고 있다. 정확한 포트 미러링을 하지 않을 경우에는 스니퍼에 브로드캐스트 데이터만 올라올 뿐이다. 따라서 정확한 분석을 위해서는 측정하고자 하는 구간이 어디인지, 그 구간에 대한 포트 미러링은 정확히 설정했는지를 확인한 후 분석을 시작해야 한다.

둘째, 기가비트 코어 네트워크에서의 백본 트래픽을 분석하기 위해서는 포트 미러링 보다는 기가비트 스플리터(Gigabit Splitter)를 권장한다. 이 방식은 핵심 코어 네트워크 관련 트래픽 분석시 포트 미러링으로 인한 시스템 부하를 줄이고 전이중(Full-Duplex) 방식에 대해 네트워크에 영향을 주지 않는 패시브(Passive) 방식으로 분석 가능하도록 하기 위한 최선의 방법으로 이용되고 있다. 현재 대다수 ISP나 기업의 코어 네트워크에서는 미리 탭(Tap)을 주요 구간에 설치해 두는 경우가 종종 있는데 이는 측정이 필요하면 언제든 스니퍼를 연결하고 분석해 신속하게 원인을 찾아내기 위해서다.

셋째, 스니퍼를 설치하다 보면 간단한 설치임에도 불구하고 약간의 문제를 일으키는 경우가 있다. 다음 <표 1>은 스니퍼 설치시 자주 문의되는 질문들을 위주로 작성한 것으로 스니퍼 동호회(www.pgpnet.com)에 올라온 질문을 참조했다.
앞서 언급한 것처럼 준비가 됐다면 이제 스니퍼를 활용한 실제 네트워크 트래픽 분석으로 들어가 보자. 먼저 스니퍼에서 제공하는 실시간 모니터링 기능들을 어떻게 활용해야 하는지에 대해 알아보자.
스 니퍼의 기능은 크게 3가지로 나눠 볼 수 있다. 실시간 트래픽 분석을 위한 모니터 기능과 데이터 패킷을 캡쳐해 OSI 7계층별 심층 분석을 제공하는 전문가(Expert) 기능, 그리고 트래픽의 경향을 파악하기 위한 분석 보고서 기능 등이다. 이번 호에서는 실시간으로 네트워크의 트래픽을 분석하기 위한 모니터링 기법 중에 대시보드(Dashboard)와 호스트 테이블(Host Table)을 이용한 분석 방법론에 대해 살펴본다.

[Tech Guide / 스니퍼 활용 가이드]

대시보드
대시보드는 현재 측정하고 있는 구간의 전체 대역폭 사용률, 초당 패킷 수, 초당 바이트 수, 에러 패킷 현황, 패킷 사이즈별 발생 수 등에 대한 실시간 현황을 네트워크 관리자에게 제공한다.
① 그래프 상단 우측에 ‘Short Time’ 항목은 24분, ‘Long Time’ 항목은 24시간 동안 네트워크 상태를 그래프에 표시하도록 하는 것이다.
② 그래프 내부에 있는 4번 항목의 검은색 선은 ‘current line’이라고 하며, 그 선이 위치한 곳의 상세한 시간이 상단 중앙 부분에 표시된다. 이 선은 마우스 클릭으로 이동시킬 수 있으며, 좌측에 있는 두개의 화살표를 이용해 좌우로 이동시킬 수도 있고, 3가지 그래프 내에서 동일하게 움직인다.
③ 두 화살표를 클릭할 때마다 ‘Short Time’으로 설정돼 있는 그래프에서는 30초 간격으로 ‘current line’이 이동하며, ‘Long Time’으로 설정된 그래프에서는 30분 간격으로 이동한다.
④ ‘current line’을 적절히 이동시키면서 그래프들을 관찰하면 대역폭 사용률이 급격하게 증가한 시간에 초당 패킷 발생율은 어느 정도인지, 에러는 얼마나 발생했는지, 어떤 에러들이 주로 발생했는지, 그 시간대에 전송된 패킷들의 크기 등을 알 수 있다.
⑤ 무선랜 측정용 스니퍼 와이어리스를 설치하면 대시보드의 게이지 하단에 802.11이라고 하는 탭이 추가된다. 이 탭을 클릭하면 다음과 같은 802.11b 네트워크에 대한 전체 통계 자료 및 매니지먼트 패킷, 컨트롤 패킷에 대한 정보를 관찰할 수 있다.
- 통계 자료 : Data Pkts, Management Pkts, Control Pkts, Retry Pkts, WEP Pkts, Order Pkts, PLCP Short Pkts, PLCP Long Pkts, 1 Mb Pkts, 2 Mb Pkts, 5.5 Mb Pkts, 11 Mb Pkts.
- 매니지먼트 패킷 : Association Request, Association Response, Reassociation Rqst, Reassociation Resp, Probe Request, Probe Response, Beacon, ATIM, Disassociation, Authentication, Deauthentication
- 컨트롤 패킷 : PS Poll, RTS, CTS, Acknowledge, CF End, CF End/CF ACK, BSSID, ESSID
⑥ 게이지의 Utilization %는 대역폭 사용률을 제공하는데 이는 스니퍼 측정 인터페이스를 기준으로 한다. 예를 들어 100Mbps 인터페이스를 측정했다면 <그림 3>의 항목 7번에 100Mbps라고 확인할 수 있을 것이며, 이 값이 30이라면 30Mbps 대역폭 사용률을 의미한다.
⑦ 게이지의 Packets/s는 초당 발생 패킷 수를 제공하는데 이는 실제 네트워크 시스템의 성능과 대역폭에 영향을 주기 때문에 패킷의 각 크기별로의 분포를 집중 관찰해야 한다. 이더넷의 정상 프레임은 64~1518바이트 내의 크기를 가져야 하며, 그 크기 내에서는 가변적이다.
일반적으로 브로드캐스트 패킷은 64바이트의 크기를 가지며, 네트워크 장비/서버 등 시스템 성능에 영향을 미치는 네트워크 유해 패킷들의 사이즈는 65~127바이트의 크기를 가진다. http나 일반 애플리케이션 그리고 P2P 관련한 패킷들은 1024~1518바이트의 비교적 큰 크기를 가진다. 크기가 작은 패킷은 네트워크 장비나 서버 등 시스템의 CPU/메모리 등의 성능에 영향을 주며, 크기가 큰 패킷은 네트워크 대역폭 점유에 영향을 주므로 이 패킷 크기들에 대한 분석은 네트워크 트래픽 분석시 중요한 부분이다.
이는 네트워크 웜 트래픽 발생시 장비 성능에 문제를 가져온다든지, DoS 공격시 서버에 문제가 생긴다든지, P2P 다운로드 사용률 증가로 인한 네트워크 대역폭 점유로 네트워크 서비스 지연을 가져온다든지 하는 모든 현상들과 밀접한 관계가 있기 때문이다. 따라서 <그림 3> 4번 항목의 current line으로 트래픽 추이를 관찰하면서 초당 패킷 수 대비 각 패킷 크기별로의 발생 분포도와 에러 프레임의 발생을 주의 깊게 살펴봐야 한다.
이때 초당 패킷 수 대비 65~127바이트의 패킷이 70% 이상 발생할 경우에는 캡쳐된 데이터를 분석해 그 원인이 된 패킷을 네트워크 장비에서 드롭할 수 있는 부분에 적용해야 할 것이며, 1024~1518바이트의 패킷이 50% 이상 차지하게 될 경우에는 QoS 기능과 연동해 비업무 트래픽을 조절해야 한다.
⑧ 게이지의 errors/s는 정상 프레임의 크기를 가지지 않은 패킷의 발생 현황을 제공한다. 이는 이더넷의 정상 프레임의 크기를 가지지 않는 64바이트보다 작거나 1518바이트보다 큰 패킷들이 발생할 경우 스니퍼에서 에러 프레임으로 간주하고 표시해주며, 대부분이 하드웨어 오류로 인해 발생한다. 스니퍼가 측정하는 에러프레임들의 상세 내역은 <표 2>를 참조하기 바란다.
이러한 에러프레임 유발 시에는 대부분이 하드웨어 문제로 인한 것이므로, 그 발생 노드를 확인해 조치해야 한다. 발생 노드 확인 방법은 호스트 테이블로 확인이 가능하다.
⑨ 마지막으로 ‘Set Threshold’에 살펴본다. ‘Threshold’ 값을 적당히 설정해 문제가 발생한 이후 원인 분석보다는 네트워크 다운타임을 줄이고 원활한 서비스 망을 유지하기 위해 24×7 상시 모니터링을 한다. 만일 이상 징후가 보이면 그 소스 데이터를 캡쳐하고 분석해 문제 원인을 제거함으로써 사전 조치의 성격으로 스니퍼를 사용할 수 있도록 한다.
위에서 설정된 임계치 값 초과시에는 관리자에게 알람을 제공할 수 있으며, 자동 캡쳐를 통해 임계치 값을 초과시킨 원인이 됐던 패킷을 자동으로 수집할 수 있다. 많은 관리자들이 문제가 됐던 원인 패킷이 수집돼 있지 않아 그 문제가 발생할 때까지 다시 기다려야 하는 상황에 직면하게 되는 경우가 종종 있다. 이러한 부분들은 스니퍼의 트리거(Trigger) 기능을 사용하면 임계치 설정 값과 함께 충분히 해결할 수 있게 된다.
다음 <그림 5>에서 볼 수 있듯 앞으로 네트워크 관리자들은 적절한 시스템에 스니퍼를 준비한 후 중요 구간에 지속적으로 연결하고 임계치를 초과하는 이상 징후 발생시 자동 캡쳐를 통해 원인 분석을 신속히 할 수 있도록 구성해야 할 것이다.
 
[Tech Guide / 스니퍼 활용 가이드]

호스트 테이블
호스트 테이블은 각 MAC, IP, IPX 별로의 TX/RX 패킷 발생률과 TX/RX 바이트 발생률, 그리고 각 IP별로 사용중인 프로토콜 현황을 제공한다. 이 기능을 이용하면 개별적인 스테이션들의 트래픽 통계 자료를 수집할 수 있고, 특정 프로토콜을 사용하는 노드들을 확인할 수 있으며, 트래픽을 가장 많이 발생시키고 있는 사용자와 패킷 에러를 유발하고 있는 스테이션을 확인 할 수 있다.
호스트 테이블에서 위의 트래픽을 확인할 때는 항상 정렬 후 분석하는 습관을 가지도록 해야 한다. 대시보드의 유틸리제이션 % 점유율이 높을 경우에는 호스트 테이블 → 아웃라인(Outline) 화면에서 RX 바이트 순으로 정렬한 후 사용자와 프로토콜을 확인해야 하고, Packets/s 발생률이 높을 경우에는 TX 패킷 순으로 정렬한 후 모니터링 해야 할 것이다. 호스트 테이블의 내용은 테이블, 막대형, 파이형 차트 형태로 볼 수 있다.
① ‘Outline’ 테이블은 각 네트워크 노드에서 송수신된 전체 바이트와 패킷들의 개략적인 내용을 제공한다.
② ‘Detail’ 테이블은 각 네트워크 노드에서 송수신된 트래픽의 부하와 상위 계층 프로토콜 유형에 대하여 정리된 내용을 제공한다.
③ ‘Outline’과 ‘Detail’ 창은 일반 테이블 형식이기 때문에 필요하다면 파일 변환(Export) 기능을 사용해 테이블에 있는 내용을 파일(csv, txt)로 변환할 수 있다.
④ 스니퍼의 주 메뉴인 ‘Tools’에 있는 옵션 설정 항목(Options)을 선택해 나타나는 옵션 창의 ‘General’ 탭 우측에 있는 테이블에는 각 모니터 도구들의 업데이트 간격이 정리돼 있다.
⑤ ‘Outline’ 창에서는 마우스 오른쪽 버튼을 클릭하면 해당 호스트에 대한 캡처, 핑(Ping), 트레이스 라우트(Trace Route) 등 다양한 추가 메뉴를 사용할 수 있다.
⑥ ‘Bar’와 ‘Pie’ 버튼을 클릭해 나타나는 차트에서는 ‘Properties’ 상자의 ‘TopN Chart’ 탭에 숫자를 입력하면, 최대 20개의 호스트에 대한 트래픽을 관찰할 수 있다.
⑦ 각 호스트에 해당하는 막대나 파이 조각에서 마우스 왼쪽 버튼을 클릭하면 상세한 정보를 볼 수 있다.
⑧ 막대 차트의 상단과 좌우측 모서리 부분을 드래그해 차트의 크기를 조절할 수 있으며, 파이 차트에서는 각 조각을 드래그해 분리시킬 수도 있다.
⑨ ‘Outline’ 창에서 한 호스트를 선택하면 해당 호스트의 아이콘이 파란색으로 바뀌며 ‘Capture’, ‘Define Filter’ 및 ‘Single Station’ 버튼의 기능을 사용할 수 있다. ‘Capture’는 선택된 호스트에 대한 패킷만 캡처하는 기능이고, ‘Single Station’은 그 호스트만의 통신 상태를 메트릭스 창으로 관찰 할 수는 기능이며, 해당 호스트에서 마우스 왼쪽 버튼을 두 번 클릭하면 동일한 창이 나타난다. <그림 6의 1번 참조>
⑩ 특정 호스트를 선택한 후 필터 정의 창을 보면 ‘Address’ 탭의 ‘Station 1’ 항목에 해당 호스트의 정보가 자동으로 입력된다. 물론 ‘Station 1’과 ‘Station 2’에 대한 정보는 사용자가 임의로 수정하거나 추가 입력할 수 있다. 필터를 정의하기 전에 프로파일 상자에서 먼저 새로운 필터의 이름을 입력해 자신만의 필터를 구성한다.<그림 6의 1번 참조>
⑪ 일반적으로 호스트 테이블 창에서는 각 호스트별 트래픽 상태에만 관심을 가지고 관찰하지만 뒷부분에 각 호스트에서 발생하는 에러 상황을 실시간으로 관찰할 수 있다.


다 음 호에서는 실시간 트래픽을 모니터링 하기 위한 나머지 기능인 ‘Matrix’, ‘Protocol Distribution’, ‘History Sample’ 들에 대해 자세히 살펴보도록 한다.