1 장프로젝트목적 2장 프로그램소개 2.1 프로그램개요및개발환경 2.2 Netflow5 Monitor소개 2.3 안드로이드 OS 용클라이언트 3장네트워크가상환경설명 4 장 프로그램설계 4.1 프로그램구성요약 4.2 Netflow5 Monitor 프로그램설계 4.3 안드로이드클라이언트설계 3P 5P 5P 10P 11P 12P 13P 14P 부록. 부록.1 부록.2 부록.3 첨부자료라우터, 네트워크상세설정자료프로그램상세구조도프로그램동작과정그림 15P 17P 18P NetFlow5 Monitor는시스코라우터에서지원하는 NetFlow 트래픽감시기술을지원하는트래픽감시프로그램입니다. 유입및유출트래픽의통계, 분석을실시하여트래픽발생량, 프로토콜사용분포를도식으로써사용자에게제공하고정보를데이터베이스화하여일자별로저장합니다. 안드로이드용클라이언트를지원합니다.
1장프로젝트목적 1) 트래픽감시기술 Netflow의활용및프로그램개발 Netflow 기술은 Cisco 라우터에서지원하는트래픽분석기술입니다. Cisco사는전세계라우터시장의 2/3 이상을차지하고있으며표준이라고할수있을정도로폭넓게쓰입니다. 타모니터링기술에비해자세한상태및구조확인이가능하며 Layer4 까지트래픽을실시간모니터링할수있습니다. 수집된정보는 UDP나 SCTP 패킷으로 Netflow Collector (Netflow 패킷수집자, 이하수집자 ) 에게보낼수있습니다. Netflow Collector는수집된정보를분석하여출력을수행하게되며상용프로그램으로 PAESSLER사의 PRTG Network Monitor, Manage Engine사의 NetFlowAnalyzer등이있습니다. 본프로젝트는직접이수집자프로그램을개발, Netflow 기술을보다깊게이해하고각종요구에맞게정보를수집, 가공하여결과물을만들어낼수있는능력의증진이목표입니다. PRTG Network Monitor NetFlow Analyzer NTOP Traffic Monitor Cisco ADSM Traffic Viewer 그림 1. 상용 NetFlow 분석프로그램들 3
2) Netflow의정확한이해와데이터를요구사항에맞게분석, 처리할수있는능력 Cisco 라우터의 Netflow 기능은유입과유출패킷의정보를수집하고수집자에게다양한정보를 UDP 패킷에실어전송하게됩니다. 이패킷은주기적으로보내지며각바이트마다정해진정보를가지고있습니다. 하지만일반사용자시점에서는이모든정보가필요한것이아니며단순한패킷정보가필요한것이아닙니다. 이렇게바이트형식으로구성된패킷을요구사항에맞게해석, 가공하는것, 즉각종기술의원시적인데이터를요구사항에맞게처리하여하여최종사용자에게보여줄수있는능력의증진이목표입니다. 이능력은네트워크관리자및프로그램개발자가되기위해서는꼭필요한능력이라고생각합니다. 그림 2.NetFlow5 패킷의구조 3) 다양한플랫폼을위한연동기술의구현 정보의중요한특징은다양한환경에서요구될수있고변화될수있다는것입니다. 해당프로젝트는트래픽정보를수집하여처리하고그저장하는프로그램의개발입니다. 결과를출력, 이러한결과정보를그저수집자프로그램에서만출력, 저장하는것에서그치지않고다양한플랫폼에서도해당정보를요청, 활용할수있도록합니다. 이렇게다양한사용자로부터의요구에도쉽게정보를제공할수있도록설계하는능력을증진하는것이그목표입니다. 본프로젝트에서는다양한플랫폼에서활용될수있는 XML 포맷을활용, 안드로이드에서이데이터를요청, 처리하는방식으로모바일환경과연동하였습니다. 그림 3. 본프로그램의흐름 4
21 2.1 프로그램개요및개발환경 2장프로그램소개 프로그램명 Netflow5 Monitor 개발환경 Visual C# Express 2008 사용라이브러리.NET Framework 3.5 및 Windows Forms Chart Controls ADO.NET 2.0/3.5 SQLite Data Provider 프로그램명개발환경사용라이브러리 Netflow5 Monitor Client Eclipse For Google Android Application Google Android OS 4.0.3 Icecream Sandwich 2.2 Netflow5 Monitor (NetFlow5 수집자 프로그램 ) 소개 1) 트래픽감시 그림 3 NetFlow5 Monitor 메인화면 Cisco 라우터에서제공하는기능인 NetFlow5 트래픽감시기술은트래픽정보를 UDP패킷에실어수집자에게송신합니다. 이수집자를 NetFlow Collector라고하며본프로그램은해당기능을 C# 을이용해구현하였습니다. 5
그림 4. 프로그램상태화면 각종프로그램상의이벤트들을트리형식으로로그창에표시합니다. 우측에는서버정보가표시됩니다. 그림 5. 트래픽분석도표 트래픽상태를도식화하여사용자에게보여줍니다. 통계주기는사용자필요에따라업데이트주기를설정하여변경가능합니다. 유입, 유출트래픽과각프로토콜ID의사용분포도를표시합니다. 6
그림 6. 수신한 N etflow5 패킷내용 Cisco 라우터로부터받은 NetFlow UDP 패킷의상세내용을표시합니다. 발신지, 목적지, 넥스트홉, 유입형식, 유출형식, 패킷수, 패킷크기, 패킷시작시간, 패킷종료시간, 발신지포트, 목적지포트, 프로토콜ID, Netflow송신자의정보를담고있습니다. 2) SQL 을이용한 DB 저장및조회 그림 7. 데이터베이스조회 수신한 NetFlow 패킷내용은즉시 DB로저장됩니다. 데이터베이스일자별조회를통해내역을조회할수있으며 SQL문을통한조건조회도가능합니다. DBMS로는 SQLite를이용합니다. 7
그림 8. 데이터베이스구조및내용 데이터베이스는프로그램폴더내의 data폴더에 log.db로써저장되며일자별로테이블이생성됩니다. 3) TCP 소켓활용한정보조회서버 그림 9. 클라이언트로부터받은정보요청메시지내용 본프로그램은 TCP 소켓서버기능이있습니다. 다음과같이다른클라이언트에서 TCP 접속요청을하면메시지를받고그에알맞은결과를서버에서생성하여클라이언트로송신합니다. 정보요청에는서버설정및트래픽통계정보를담은요약정보요청과데이터베이스일자별조회요청이있습니다. 해당결과는 XML형식으로생성되어클라이언트로전송됩니다. 8
요청된정보는다음과같이 XML형식으로작성되어클라이언트에게전송하게됩니다. 클라이언트에서의활용은 1장의 (2. 안드로이드클라이언트 ) 에서소개하겠습니다. 4) 설정및프로그램정보화면 그림 10. XML문서화된요청정보의결과 NetFlow 패킷을수신하기위한UDP포트및 TCP 서버용포트등프로그램과관련된설정이가능하며프로그램정보가표시됩니다. 그림 11. 프로그램설정및정보 9
2.3 안드로이드 OS 용클라이언트 1) 요약정보수신 그림 12. 안드로이드용 NetFlow5 클라이언트앱 서버 IP와포트를입력후정보수신버튼을터치할시다음과같이서버로부터서버정보와트래픽통계정보를 XML형식으로받아온후안드로이드에서파싱, 사용자에게보여집니다. XML형식은 1장의 3) TCP 소켓활용한정보조회서버 에서소개하였습니다. 2) 데이터베이스일자별조회 안드로이드 OS 에서 TCP 소켓을생성. 서버로 SQL 조회메시지를보낸후그결과를 XML 로받습니다. 그림 13. 안드로이드에서데이터베이스조회 10
3) 앱위젯기능 안드로이드바탕화면에서도트래픽분석정보를볼수있습니다. 앱위젯기능을이용하여다음과같이정보를표시해주며위젯을터치함으로써정보를업데이트할수있습니다. 그림 14. 안드로이드위젯 3장네트워크가상환경설명 3.1 개요 Netflow5 기술을활용한네트워크트래픽감시프로그램의개발에는 Netflow5 기술을활용할수있는환경이필요합니다. 본프로젝트에서는 Cisco 라우터에뮬레이터인 Dynamips와 VMWare를활용, 가상네트워크환경을구축하여 Netflow5 기술을구성합니다. 3.2 네트워크환경토폴로지 다음과같은환경에서 NetFlow5 라우터의 FastEthernet 0/1 번포트에서유입, 유출되는트래픽을감시합니다. 본프로그램은 NetFlow5가동작하는네트워크환경과윈도우환경이면어디에서나사용가능합니다. 그림 15. NetFlow5 Collector 개발을위한가상네트워크환경토폴로지 11
4장프로그램설계 4.1 프로그램구성요약 그림 16. NetFlow5 Monitor 프로그램의전체구조 그림 17. NetFlow5 Monitor 안드로이드드용클라이언트프로그램의구조 12
4.2 Netflow5 Monitor 프로그램설계 1) UDP 패킷수신및분석 그림 18. UDP 패킷수신및분석의흐름 라우터로부터 NetFlow5 UDP 패킷을받은후로그에출력합니다. 그후분석을위해해당클래스로패킷내용을그대로전달합니다. 패킷의내용중필요한정보만읽은후바이트형자료에서정수, 문자등의값으로변환후맴버에저장합니다. 이데이터를기반으로각각필요에맞는정보를반환합니다. 2) SQL DB 저장및출력 패킷의해석이완료되면데이터베이스에기록하기위해 DBMS 에 SQL 쿼리를요청합니다. DBMS 는 SQLite 를이용하며일자별로테이블을생성, 저장합니다. 저장된데이터베이스는필요에따라해당클래스를거쳐결과를제공받을수있습니다. 그림 19. 데이터베이스 SQL 처리의흐름 3) 데이터가공및출력 데이터베이스에저장이완료되면해석된정보를누적하여통계분석을하기위해해당클래스로전달됩니다. 유입또는유출패킷의여부, 패킷크기, 종류등을해당항목별로누적하고업데이트주기에맞추어그결과를요청, 출력합니다. 그림 20. 데이터누적및분석의흐름 13
4) 클라이언트요청처리 모바일응답서버를가동하면 TCP 소켓을생성하고접속요청이있을때까지대기합니다. 클라이언트에서는 요약정보요청 과 데이터베이스조회 두가지메시지를전송할수있으며메시지종류에따라주기적으로생성하는요약정보 XML파일또는 SQL 쿼리결과를 XML형식으로생성후클라이언트로답신하게됩니다. 그림 21. TCP 서버처리의흐름 4.3 안드로이드클라이언트설계 그림 22. 안드로이드용클라이언트프로그램의동작흐름 MainActivity : 안드로이드메인프로그램 Widget1Provider : 앱위젯프로그램 MainActivity에서는요약정보와데이터베이스조회의요청, 앱위젯에서는요약정보의요청이가능합니다. 버튼터치등의이벤트발생시 ServerDataRequest 클래스로해당이벤트사항을알립니다. 그후해당클래스에서는 TCP 소켓을생성하고서버에접속후필요한정보의내용을담은메시지를전달합니다. 서버에서메시지를해석하고결과를 XML 형식으로생성한후답신메시지를보냅니다. 답신을받은해당클래스는 TCP 소켓을종료하고 XML 결과만을다시반환합니다. XML 결과를받은 MainActivity 또는 Widget1Provider 는 XML 파싱을수행한후결과를출력하게됩니다. 14
부록. 첨부자료 부록.1 라우터, 네트워크상세설정자료 1) 다이나밉스설정파일 autostart = False ghostios = False sparsemem = Ture [localhost] workingdir = E:\111lecture\network\dynamips\netflow\work [[3660]] image = E:\111lecture\network\dynamips\ciscoimage\c3660-jk9o3s-mz.124-15.T8.bin ram = 256 idlepc = 0x606480c0 [[router netflow]] # Netflow가동라우터 console = 2001 model = 3660 fa0/1 = NIO_gen_eth:\Device\NPF_{0984274E-46D1-4BC9-94AA-B7686F5C2A59} #vm nat8 fa0/0 = NIO_gen_eth:\Device\NPF_{ECFD565C eth:\device\npf {ECFD565C-9 927E-49F2-8355-B039CE9DD614} #vm1 s1/0 = subrouter s1/0 [[router subrouter]] # 보조라우터 console = 2002 model = 3660 fa0/0 = NIO_gen_eth:\Device\NPF_{90241CCE-C0AD-4B79-9618-379DC1863484} #vm2 2) 라우터 Netflow5 설정 Netflow 버전 5 로설정 FastEthernet 0/1 포트를 Netflow 의소스로설정 수집자 IP 를내부네트워크의 192.168.0.100 과.6 으로설정 15
3) NetFlow 가동라우터 IP 할당및라우팅 OSPF에등록된네트워크 200.200.0.0/16 0 0/16 Area 0 192.168.68.0/24 Area 0 FastEthernet 0/0 VMWare Client1 과연결 FastEthernet 0/1 인터넷과연결 Serial 1/0 보조라우터와연결 4) 보조라우터 IP 할당및라우팅 OSPF 에등록된네트워크 200.200.0.0/16 Area 0 100.100.0.0/24 Area 2 FastEthernet 0/0 VMWare Client2 과연결 Serial 1/0 Netflow 가동라우터와연결 16
부록.2 프로그램 상세 구조도 1) NetFlow5 N Fl 5 Monitor M i 17
2) NetFlow5 Monitor Client 안드로이드 OS 부록.3 프로그램동작과정 ( 가상네트워크가동과정, Netflow 분석과정, 안드로이드프로그램가동과정 ) 본내용은동영상중일부분으로써아래의사이트에서 http://youtu.be/bx-buex_pog?hd=1 감상하실수있습니다. 18
19
20
21