이해하기 쉽게 잘 설명 해 두셔서 퍼왔음...
IP플로우는 연속된 IP 패킷들로 정의될 수 있다. 즉, IP 플로우는 응용의 주소쌍(송신자 주소, 송신자 포트 번호, 수신자 주소, 수신자 포트), 호스트 쌍(송신자 호스트 주소, 수신자 호스트 주소), 네트워크 주소 쌍(송신자 네트워크 주소, 수신자 네트워크 주소), AS 번호 쌍(송신자 AS 번호, 수신자 AS 번호) 등으로 주어지는 명세를 만족시키는 제한된 시간내에 도착하는 IP 패킷들의 흐름으로 정의된다. 이러한 플로우 모델은 Packet Train 모델로 처음 제안되었다. Packet Train 모델은 동일 송신자가 동일 수신자에게 전송하는 패킷들의 묶음을 Packet Train으로 정의 하였고, 두 패킷간의 시간이 일정시간(inter-train gap)을 초과할 경우는 다른 train에 속하는 패킷으로 구분하였다. Train간 도착 시간은 네트워크를 사용하는 응용에 따르는 것으로 사용자 인자이고, 한 Train 내에서 패킷들의 도착 간격(inter-car arrival)은 네트워크의 하드웨어나 소프트웨어에 의존적인 인자가 된다. 이 모델은 두 종단간에서 교환되는 패킷들의 시간 간격은 가깝게 붙어있다는 것을 설명해 준다. 초창기 플로우 모델은 Packet Train 모델에서와 같이 네트워크의 연결에 초점을 두었다. 예를 들어 송신자와 수신자의 주소와 포트 쌍의 TCP 연결에서는 SYN과 ACK으로 플로우의 시작과 끝을 구분할 수 있다.
하지만, 비연결형 IP 계층, IP 파편화에 따른 TCP나 UDP 포트 정보 유실, 최근의 멀티미디어 스트림 응용들의 등장 및 ATM 등장으로 IP 플로우의 ATM 연결 매핑 등을 고려하여 타임아웃을 고려한 비연결형 IP 플로우 모델이 제안되었다. 플로우의 추상적인 정의는 “어떤 기준을 만족시키면서 네트워크의 두 개체 사이에서 교환되는 일련의 패킷들”이다. 플로우 스펙이라고 부르는 일정한 조건들을 만족하면서 도착하는 패킷들은 일정한 간격으로 플로우 타이머에 의해 검사되어 지정한 시간동안 플로우 스팩을 만족하는 패킷이 도착하지 않으면 플로우의 종료를 선언한다.
트래픽 측정에서 사용되는 플로우 스펙(Flow Specification)은 패킷들의 정보를 다양한 측면에서 종합할 수 있도록 하는 것이다. 다음과 같은 인자들이 플로우 스펙을 구성할 수 있다.
l 플로우의 방향성 : 플로우 단방향 또는 양방향의 패킷 전송으로 구분할 수 있다. 예를 들어 TCP 연결에서는 A에서 B로의 데이터 전송은 B에서 A로의 데이터 전송을 수반한다.
l 플로우의 종단의 수 : 플로우는 기본적으로 양쪽의 종단 사이에서의 패킷 흐름이지만, 특정 목적지 종단으로 가는 모든 패킷들의 흐름으로 하나의 종단만으로도 정의할 수 있다.
l 플로우의 종단 타입 : 포트, 호스트, 서브넷, 네트워크, AS(Autonomous System) 및 공통 경로 등의 여러가지 종단 종류에 따라 패킷들을 다양한 측면에서 플로우를 정의할 수 있다.
NetFlow는 Cisco (Juniper) 라우터에서 플로우 기반의 트래픽 측정을 가능하게 하며, 트래픽을 플로우 단위로 분류하거나 우선순위를 구분하여 다양한 서비스 품질을 제공할 수 있도록 한다. 네트워크 플로우는 주어진 송신자와 목적지 종단간의 일련의 단방향 패킷들인데, 플로우의 세분화는 플로우의 종단에 따라 다양하다. IP 주소, 전송계층 응용포트번호 등으로 플로우 종단을 지칭할 수 있으며, NetFlow는 여기에 덧붙여 IP 프로토몰 타입, 서비스 타입(Type of Service : ToS), 입력 인터페이스 식별자를 이용하여 유일한 플로우를 식별하게 된다. 다음은 NetFlow의 7가지 플로우 구분 기준이다.
l Source IP Address
l Destination IP Address
l
l
l Layer 3 Protocol Type
l ToS Byte
Input Logical Interface (IfIndex)
NetFlow는 NetFlow Cache를 이용하여 동작하는데, NetFlow Cache Software는 특정 패킷이 기존에 존재하는 플로우에 속하는지 여부에 따라 Cache에 새로운 플로우 엔트리를 생성할지를 결정한다. 또한 플로우 해제시간(Expire Time)이 지난 플로우들의 정보를 [NetFlow Export] UDP 데이터그램의 Payload에 담아서 플로우 정보 Export 네트워크 인터페이스로 전송한다.
플로우 해제시간은 Active Timer와 Inactive Timer로 구분되며, 두 조건 어느 하나에 만족하면 플로우 정보를 Export 한다. Active Timer는 연속된 일련의 패킷 흐름이 일정시간이 지나면 새로운 플로우로 인식하도록 하고, 이전 플로우 정보를 Export 할 수 있도록 정의한 것이며, Inactive Timer는 패킷 흐름에 있어서 일정 시간동안 패킷이 도착하지 않을 때 플로우가 종료됨을 알리고 플로우 정보를 Export 하는 시간을 정의한다.
l Inactive Timer의 기본값은 15초 이며, 관리자가 10 ~ 600초까지 설정할 수 있다.
l Active Timer의 기본값은 30분이며, 관리자가 1 ~ 60분 중에서 선택하여 설정 할 수 있다.
NetFlow Version 5 Format
[그림 2-3] Exporting the Version 5 Flow Format

※ Version 5 Header Format
|
Bytes |
Content |
Description |
|
0 to 1 |
Version |
NetFlow export format version number (in this case, the number is 5). |
|
2 to 3 |
Count |
Number of flows exported in this packet (1 to 30). |
|
4 to 7 |
SysUptime |
Number of milliseconds since the routing device was last booted. |
|
8 to 11 |
unix_secs |
Number of seconds since 0000 UTC 1970. |
|
12 to 15 |
unix_nsecs |
Number of residual nanoseconds since 0000 UTC 1970. |
|
16 to 19 |
flow_sequence |
Sequence counter of total flows seen. |
|
20 |
engine_type |
Type of flow switching engine. |
|
21 |
engine_id |
ID number of the flow switching engine. |
|
22 to 23 |
sampling_interval |
Sampling mode and the sampling interval information. The first two bits of this field indicates the sampling mode: 00 = No sampling mode is configured 01 = 'Packet Interval' sampling mode is configured. (One of every x packet is selected and placed in the NetFlow cache). 10 = Reserved 11 = Reserved The remaining 14 bits hold the value of the sampling interval. The sampling interval can have any value in the range of 10 to 16382 (for example, 0x000A to 0x3FFE). |
※ Version 5 Flow Record Format
|
Bytes |
Content |
Description |
|
0 to 3 |
srcaddr |
Source IP address. |
|
4 to 7 |
dstaddr |
Destination IP address. |
|
8 to 11 |
nexthop |
IP address of the next hop routing device. |
|
12 to 13 |
input |
SNMP index of the input interface. |
|
14 to 15 |
output |
SNMP index of the output interface. |
|
16 to 19 |
dPkts |
Packets in the flow. |
|
20 to 23 |
dOctets |
Total number of Layer 3 bytes in the flow's packets. |
|
24 to 27 |
First |
SysUptime at start of flow. |
|
28 to 31 |
Last |
SysUptime at the time the last packet of flow was received. |
|
32 to 33 |
srcport |
TCP/UDP source port number or equivalent. |
|
34 to 35 |
dstport |
TCP/UDP destination port number or equivalent. |
|
36 |
pad1 |
Pad 1 is unused (zero) bytes. |
|
37 |
tcp_flags |
Cumulative OR of TCP flags. |
|
38 |
prot |
IP protocol (for example, 6 = TCP, 17 = UDP). |
|
39 |
tos |
IP ToS. |
|
40 to 41 |
src_as |
AS of the source address, either origin or peer. |
|
42 to 43 |
dst_as |
AS of the destination address, either origin or peer. |
|
44 |
src_mask |
Source address prefix mask bits. |
|
45 |
dst_mask |
Destination address prefix mask bits. |
|
46 to 47 |
pad2 |
Pad 2 is unused (zero) bytes. |
※ Exporting a Peer AS Packet Using Version 5 Format
[그림 2-4] Exporting from a Peer or

[그림 2-4]는 NetFlow 버전 5에서 AS 정보를 추출하는 것을 나타낸다. 어떠한 Packet이 AS1에서 AS5로 전달되고 있고, AS3에 있는 라우터가 NetFlow를 생성하고 있다면, 설정에 따라 AS정보는 다음 두가지 형태로 나타난다.
l 만약 [Router(Config) # ip flow-export version 5 peer-as] 라는 명령으로 설정을 하였다면 AS3로부터 생성된 NetFlow의 Source AS, Destination AS는 각각 AS2와 AS4가 된다.
l 만약 [Router(Config) # ip flow-export version 5 origin-as] 라는 명령으로 설정을 하였다면 AS3로부터 생성된 NetFlow의 Source AS, Destination AS는 각각 AS1와 AS5가 된다.
만약, Peer-AS 혹은 Origin-AS 설정을 하지 않으면, Source / Destination AS는 모두 0으로 처리된다.
Trackback URL : 이 글에는 트랙백을 보낼 수 없습니다
Trackback RSS : http://dhappy.net/rss/trackback/275
Trackback ATOM : http://dhappy.net/atom/trackback/275



