NetFlow交换及其在网络管理中的应用

---- Internet/Intranet的部署和使用正在迅猛成长,并且导致了企业和消费者计算模式的重大转变。市场已经提出了对流量统计和管理技术的需求,并要求这一技术能有效提供记录网络和应用资源利用率所必须的信息。为此,Cisco系统公司在其IOS交换体系结构中引入一种新的交换技术——NetFlow交换。NetFlow交换在虚拟局域网(VLAN)技术的基础上,在同一个平台上提供了交换和路由两种功能。
---- Cisco路由和交换平台中的NetFlow服务可提供内置在快速、最优和CEF交换路径之中的网络数据流统计功能。NetFlow服务可利用网络中数据流创造价值,并可在最大限度减小对路由器/交换机性能的影响的前提下提供详细的数据流统计信息。特别是作为其交换功能的一部分,它能够为企业提供网络的容量规划、趋势分析以及数据优先级等方面的信息,这些统计信息包括用户、协议、端口和服务类型等。NetFlow交换可以部署在网络中的任何位置,作为对现有寻径基础设施的扩展。NetFlow还可对访问列表进行有效的处理,进而实现数据包过滤和安全性服务。NetFlow数据可被用于多种多样的用途,如网络管理与规划、企业财务、基于利用率的计费以及针对市场营销目的的数据仓库和数据采集等。

一、NetFlow交换及其特点

---- NetFlow交换在网络层实现高性能的交换,它提供一个高效的机制,可以用来处理安全访问列表,从而不必像其他交换方式那样,为完成同样的任务而付出很高的性能代价。NetFlow交换识别主机之间的网络流量,并在提供相关服务的同时,对网络流量中的分组进行交换。在传统的网络交换中,每一个输入分组是单独处理的,路由器为每个分组进行一系列独立的查询,利用一系列函数去检查访问列表、获取记账数据、交换该分组。然后将它发送(即交换)到目的地。这些查询包括确定是否采用安全访问过滤,以及更新网络统计计账记录。而在NetFlow交换中,查询过程仅对分组流中的第一个分组进行,当一个网络流被识别并确定了与其相关的服务后,那么后面所有的分组都作为该信息流的一部分,在面向连接的基础上进行处理,这样就绕过了访问列表的检查,进而依次对分组进行交换和获取统计信息。

---- NetFlow交换中要创建一个信息流高速缓存,里面包含对所有活动信息流进行交换和访问列表检查所需要的信息,利用标准的快速交换路径先处理信息流中的第一个分组,这样就生成了NetFlow高速缓存,这样每个信息流都与一个即将到来的接口端口号和要发出的接口端口号相关联,并且有一个特定的安全访问权限和加密策略。高速缓存中还包含用于数据流统计的条目。随着后面分组的交换,这些条目也不断地更新。NetFlow高速缓存被创建后,那些被标识为属于现有的一个信息流的分组即可以依据高速缓存信息被交换,从而绕过了安全访问列表检查。对于所有活动信息流,在NetFlow高速缓存中保留相应的信息。

---- 对分组进行交换,并且一个任务接一个任务地按顺序为分组提供服务。这种流线型处理分组的方式提高了网络服务的能力,提高了Cisco IOS有关安全性、服务质量(QoS)和网络流量计账的服务性能。同时,NetFlow交换提供了以每个用户和每个应用(即会话)为基础的更有效的服务。

二、NetFlow的数据格式

---- NetFlow以UDP数据报文的形式输出信息流,它有2种格式: (1)版本1格式。这是最初发布的格式; (2)版本5格式。这是后来发布的一种加强格式,它增加了边界网关协议(BGP)的自治系统(AS)信息和信息流的序列号。

---- 在版本1和版本5 格式中,数据报文由一个头标信息、一个或多个信息流记录构成。通常情况下,接收程序不管接收哪种格式,它都会分配一个足够大的缓冲区,以便数据报文到来时,可以容纳下最大的数据。此外,它使用头标信息中的版本信息来决定如何理解这些数据报文。头标信息中的第二个字段是数据报文中记录的个数,可以用它来对记录进行索引。

---- 因为NetFlow输出采用UDP协议来发送输出的数据报文,所以可能会丢失数据。为了确定信息流输出信息是否丢失,版本5的头标信息格式中包含了一个信息流序列号。这个序列号等于前一个序列号加上刚刚过去的数据报文中信息流的个数。当接收到一个新的数据报文后,接收程序可以从头标信息中的序列号中提取出预期的序列号,这样即可以获取丢失信息流的数目。

三、配置NetFlow交换

---- 在一个路由器中,NetFlow交换涉及到标识分组信息流、执行交换和处理访问列表。它不涉及路由器之间的任何连接设置协议,也不涉及对其他任何网络设备或端点工作站的连接设置协议。它也不要求对分组本身或其他任何网络设备进行任何外部修改。所以,NetFlow交换对现有的网络,包括端点工作站、应用软件和网络设备(如局域网交换机)是完全透明的。此外,因为NetFlow交换在每个互联的网络设备中独立地进行,所以并不需要在网络中的每个路由器中都操作它,网络规划人员可以在路由器/接口的基础上有选择地激活NetFlow交换(和NetFlow数据输出),这样就可以在特定的网络位置上进行数据流交换、控制和记账。

---- 在一个接口上配置NetFlow时,这个接口就不再使用其他交换模式了。为了配置NetFlow交换,在接口配置模式下,利用以下面命令为IP路由启用NetFlow交换:
---- ip route-cache flow

---- 该命令的no格式可以禁用NetFlow交换,具体命令如下:
---- no ip route-cache flow

---- 通常,NetFlow高速缓存的默认值可以满足需求。然而网络管理员也可以通过增加或减少高速缓存中保留的条目数,来满足信息流比率的需要。系统的默认值是64KB个流动高速缓存条目,每个高速缓存条目大约占用64B的存储空间。为了在NetFlow高速缓存中自定义条目的个数,在全局配置模式下,使用下面的命令即可改变NetFlow高速缓存中保留的条目的个数:
---- ip flow-cache entries number

---- 其中number为条目的个数,范围是1024~524288,默认值是65536。

---- Cisco公司的部分路由器带有路由/交换处理器(RSP)和VIP控制器。对VIP控制器可以这样配置:通过VIP交换接收分组,而不必每个分组都要RSP参与,这种处理称为分散式交换,可以降低对RSP的需求。可以通过配置VIP硬件,使之进行NetFlow交换。

---- 为了在VIP上配置分散式交换,首先要根据所使用的协议为IP路由配置路由器,然后就可以使用下面的命令,在全局配置模式下,开始配置IP分散式交换和NetFlow交换了。
---- interface type slot/port-adapter/port;指定接口,并且进入接口配置模式
---- ip route-cache distributed;在该接口中启用IP分组的VIP分散式交换
---- ip route-cache flow; 指定信息流交换

---- 当RSP或VIP进行信息流交换时,它们使用信息流高速缓存取代目的地网络高速缓存来交换IP分组。信息流高速缓存使用源头和目的地的网络地址、协议以及源头和目的地的端口号来区分各条目。

---- Router# show ip cache flow
---- IP packet size distribution ( 12718M total packets) :
---- 1-32 64 96 128 160 192 224 256 288 320 352 384 416 448 480
---- .000 .554 .042 .017 .015 .009 .009 .009.013 .030 .006.007
---- .005 .004 .004
---- 512 544 576 1024 1536 2048 2560 3072 3584 4096 4608
---- .003 .007 .139 .019 .098 .000 .000 .000 .000 .000 .000

---- IP Flow Switching Cache, 4456448 bytes
---- 65509 active, 27 inactive, 820628747 added
---- 955454490 ager polls, 0 flow alloc failures
---- Exporting flow to 1.1.15.1 (2057)
---- 820563238 flow exported in 34485239 udp datagrams, 0 failed
---- last Clearing of statistics 00:00:03

[1] [2] [3] [4] 下一页  

文章录入:csh    责任编辑:csh 

Protocol TotalFlows Flow
/Sec Packets
/Flow Bytes
/Pkt  Packets
/Sec Active(Sec)
/Flow Idle(Sec)
/Flow
TCP-Telent 2656855  4.3 86 78  372.3 49.6 27.6
TCP-FTP 5900082  9.5 9 71 86.8  11.4  33.1 
TCP-FTPD 3200453 5.1 193 461 1006.3  45.8  33.4 
TCP-WWW  546778274 887.3 12  325 11170.8 8.0  32.3 
TCP-SMTP 25536863  41.4 21 283 876.5  10.9  31.3 
TCP-X  116391 0.1 231  269 43.8  68.2  27.3 
TCP-BGP 24520  0.0 28  216 1.1  26.2 39.0 
TCP-Frag 56847 0.0 24  952 2.2  13.1 33.2 
TCP-other  49148540  79.7 47 338 3752.6  30.7 32.2 
UDP-DNS 117240379  190.2 3 112  570.8  7.534.7 
UDP-NTP  9378269  15.2 1 76 16.2  2.2 38.7 
UDP-TFTP 8077  0.0 3 62 0.0  9.7 33.2 
UDP-Frag 51161  0.0 14 322 1.2  11.0 39.4 
UDP-other  45502422  73.8 30 174  2272.7  8.5 37.8 
ICMP 14837957  24.0 5 224  125.8  12.1 34.3 
IGMP  40916  0.0 170 207 11.3  197.3 13.5 
IPINIP 3988  0.0 48713  393  315.2  644.2 19.6 
GRE 3838  0.0 79 101 0.4  47.3 25.9 
IP-other  77406  0.1 47 259 5.9  52.4 27.0 
Total 820563238 1331.7 15 304  20633.0 9.8 33.0

SrcIf SrcIPaddress DstIf  DstIPaddress  Pr  SrcP  DstP Pkts  b/Pk  Active
Fd0/0  80.0.0.3  Hs1/0  200.1.9.1  06 0621 0052 7 87 5.9 
Fd0/0 80.0.0.3 Hs1/0 200.1.8.1 06 0620 0052 7 87 1.8 
Hs1/0 200.0.0.3 Fd0/0 80.1.10.1 06 0052 0621 6 58 1.8 
Hs1/0 200.0.0.3 Fd0/0 80.1.1.1 06 0052 0620 5 62 5.9 
Fd0/0 80.0.0.3 Hs1/0 200.1.3.1 06 0723 0052 16 68 0.3 
HS1/0 200.0.0.3 Fd0/0 80.1.2.1 06 0052 0726 6 58 11.8 
Fd0/0 80.0.0.3 Hs1/0 200.1.5.1 06 0726 0052 6 96 0.3 
Hs1/0 200.0.0.3 Fd0/0 80.1.4.1 06 0052 0442 3 76 0.3 
Hs1/0 200.0.0.3 Fd0/0 80.1.7.1 06 0052 0381 11 1171 0.6

四、管理和使用NetFlow交换的统计信息

---- 通过NetFlow交换,还可以获取丰富的统计信息,这些统计信息包括IP分组大小的分布、IP信息流交换的高速缓存信息,以及信息流信息,例如协议、总的信息流数量和每秒的信息流数量等。上述信息可以帮助网络管理员分析路由器的运行情况。为了管理NetFlow交换的统计信息,可以在授权的可执行模式下,利用“show ip cache flow”命令显示NetFlow交换的综合统计信息,以便网络管理人员了解当前网络的流量以及各种应用的数据流情况。附图是使用该命令的输出信息范例。 IP packet size distribution给出分组大小分布的情况(百分比),如这里的.554表明55.4%的分组数在33~64B之间;接下来的数字描述了Netflow高速缓冲区的使用情况; 后面的2个表中详细地给出了使用各种协议的分组和当前信息流的统计信息。 NetFlow交换的信息还可以输出到网络管理应用程序中。为了在信息流到期时,将NetFlow高速缓存中保留的NetFlow交换的统计信息输出到一个工作站中,在全局配置模式下,利用下面的命令即可: ip flow-export ip-address udp-port version 5 [origin-as |peer-as] 在版本5中,用这条命令来配置路由器,把NetFlow高速缓存条目输出到工作站,可以选择指定最初的AS或同等的AS,默认值是2种AS都不输出,这样可以提高性能。为了保证数据来自有效的NetFlow源头,Cisco公司建议接收程序检查数据报文,首先检查数据报文的大小,确定它至少可以容纳版本字段和计数字段。然后,应该证实版本是有效的版本1或5,而且接收到的字节数足以容纳头标信息和对信息流记录进行计数。 NetFlow交换的这些信息用途很广,可以用来为企业网络管理与分析提供依据,为网络管理员合理规划企业的网络结构、均衡网络负载和优化网络性能提供参考等,为ISP提供计费根据、为诊断网络入侵和查找网络攻击提供线索以及帮助企业实现进行数据采集等等。

show controller e1内容详解
首先我想先说一下关于E1和CE1的基本概念,E1最本来的用法是在用作语音交换机的数字中继时,是把一条E1作为32个64K来用,但是时隙0和时隙15是传输控制信令用,所以一条E1可以传30路话音。这是在接入服务器上(如华为8010,北电的CVX1800等)说的E1,而和通常在路由器上说的E1概念有些不一样。在路由器上的E1是不能划分时隙的,只能做2M线使用。 
CE1的传输线路的带宽是2048K,它和E1的区别主要在于:E1不能划分时隙,CE1能划分时隙。CE1的每个时隙是64K,一共有32个时隙,在使用的时候,可以划分为n*64K,例如:128K,256K等等。CE1的0和15时隙是不用来传输用户的数据流量,0时隙是传送同步号,15时隙传送控制信令,这样实际能用的只有30个时隙,所以在具体配置CE1划分时隙时,要注意些了。CE1 和E1 也可以互联,但是CE1必须当E1来使用,即不可分时隙使用。 因为CE1比较灵活,所以我们能常常碰到CE1。 
在路由器配置E1和CE1过程中,我们遇见线路问题的时候会常常会使用show controller e1命令,下面就是show controller e1的详解,希望对各位有些帮助。在说明show controller e1命令后面附上cisco解决E1和CE1故障的流程图!

注意问题:在配置CE1的两端路由器上,下面几个参数必须保持一致。它们是:时隙,framing ,linecode ,CRC等,另外还有注意时钟保持同步。

show controller e1命令的作用:

· 查看关于E1链路的状态。如果你具体指定了slot和port ( 如:show controller e1 5/6),那么显示的是每15分钟的link状态。

· 能显示用来troubleshoot物理层和数据链路层的信息

上一页  [1] [2] [3] [4] 下一页  

文章录入:csh    责任编辑:csh 

· 本地和远端的告警信息

下面是命令输出的参数描述,先看一下show controller e1的命令输出,下面是两个不同的路由器输出的结果:

7026#show controller e1

E1 5/1 is up.

Applique type is Channelized E1 - balanced

No alarms detected.

Framing is NO-CRC4, Line Code is HDB3, Clock Source is Line.

International Bit: 1, National Bits: 11111

Data in current interval (648 seconds elapsed):

0 Line Code Violations, 0 Path Code Violations

0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins

0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs

Total Data (last 24 hours)

0 Line Code Violations, 0 Path Code Violations,

0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins,

0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs

2600#show controller e1

E1 1/0 is up.

Applique type is Channelized E1 - balanced

No alarms detected.

Framing is CRC4, Line Code is HDB3, Clock Source is Line.

Data in current interval (457 seconds elapsed):

0 Line Code Violations, 0 Path Code Violations

0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins

0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs

Total Data (last 25 15 minute intervals):

1123 Line Code Violations, 53 Path Code Violations,

2 Slip Secs, 708 Fr Loss Secs, 25 Line Err Secs, 0 Degraded Mins,

1 Errored Secs, 0 Bursty Err Secs, 2 Severely Err Secs, 709 Unavail Secs

来看看这些参数的解释:

域 描述

E1 5/1 is up

显示E1 controller 5/1 正在运行. E1 controller'可能是这三种情况:up, down, administratively down. 另外,如果打环,可以分为本地环和远端环。

Applique Type

指示E1是平衡还是非平衡的,平衡的阻抗是120欧姆,非平衡的是75欧姆

Framing

当前帧类型,缺省的是CRC4,还有 NO-CRC4。

Line Code

当前的线路编码,缺省是:HDB3. 还有ami。

No alarms detected

警告显示. 可能的警告有:

传输者发送远端告警

传输者正发送高警指示信息.

接收者有信号丢失

接收者得到AIS.

接收者有帧丢失.

接收者有远端告警

接收者没有告警

Data in current interval

(251 seconds elapsed)

显示当前的累积时间,每隔15分钟刷新一次.

Line Code Violations

指示发生 Bipolar Violation (BPV) 或者Excessive Zeros (EXZ) 错误事件.

Path Code Violations

指示有一个帧同步错误位在D4和E1-no CRC 格式, 或者一个 CRC 错误在扩展的超级帧 Extended Superframe (ESF)和 E1-CRC 格式.

Slip secs

指示DS1帧有效负荷位的复制和删除. 当相连收发两端的路由器不一致的情况,会出现Slip secs

Fr loss secs

一个丢失帧发现的积累时间.

Line Err secs

当一个或多个 Line Code Violation errors发现积累的时间

Degraded mins

一个退化的时间(degraded minute)是被评估的错误率在1E-6和 1E-3之间 的时间

Errored secs

在 ESF 和E1 CRC 链路, 它是指下面之一的错误被探测到的时间:

一个或多个Path Code Violations.

一个或多个Controlled Slip events.

对 SF and E1 no-CRC链路, Bipolar Violations 存在的时间.

Bursty Err secs

多于一个但是小于320个 Path Coding Violation错误, 不是 Severely Errored Frame 发现以及没有发现进来的AIS. Controlled slips 不包括在这个参数里面

Severly Err secs

对ESF 信号, 它是指下面之一的错误被探测到的时间:

320 或者更多的 Path Code Violation 错误

发现一个或者多个帧丢失.

一个AIS 发现.

对 E1-CRC 信号, 它是指下面之一的错误被探测到的时间:

832 或者更多的Path Code Violation 错误

发现一个或者更多的帧丢失.

对 E1-nonCRC 信号, 这是2048 个Line Code Violations 或者更多存在的时间

对 D4 信号, 是 发现分帧错误(Framing Errors), 或者帧丢失, 或者1544 Line Code Violations 的时间

Unavail Secs

上一页  [1] [2] [3] [4] 下一页  

文章录入:csh    责任编辑:csh 

接口不用的总时间,单位为秒.

上一页  [1] [2] [3] [4] 

文章录入:csh    责任编辑:csh

(0)

相关推荐

  • NetFlow交换及其在网络管理中的应用

    ---- Internet/Intranet的部署和使用正在迅猛成长,并且导致了企业和消费者计算模式的重大转变.市场已经提出了对流量统计和管理技术的需求,并要求这一技术能有效提供记录网络和应用资源利用率所必须的信息.为此,Cisco系统公司在其IOS交换体系结构中引入一种新的交换技术--NetFlow交换.NetFlow交换在虚拟局域网(VLAN)技术的基础上,在同一个平台上提供了交换和路由两种功能. ---- Cisco路由和交换平台中的NetFlow服务可提供内置在快速.最优和CEF交换路径

  • Python中交换两个元素的实现方法

    Python既具有普通程序开发语言的特点,也具有Matlab语言用于数值计算的特点,,当然了数值计算是由其其强大的第三方库numpy实现的,矩阵在python中数据类型是ndarray,python中交换两个数值的代码和交换同一矩阵(ndarray)中不同向量的写法是不一样的. 以下是用Python原生的数据结构list实现的交换 >> a = [1,2,3] >> b = [4,5,6] >> a [1,2,3] >> b [4,5,6] >>

  • Python实现在一行中交换两个变量

    我们已经讨论了在没有临时变量的情况下交换两个整数的不同方法.如何在不使用库函数的情况下换成一行? 1) Python: 在Python中,有一个简单且语法简洁的结构来交换变量,我们只需要写“x, y = y, x”. 2)C/C++: 下面是一个普遍提供的经典解决方案: // 使用按位异或交换(C/C++ 中的错误解决方案) x ^= y ^= x ^= y; 上述解决方案在 C/C++ 中是错误的,因为它会导致未定义的行为(编译器可以自由地以任何方式运行).原因是,如果修改之间没有序列点,则在

  • 第三层交换技术及在VLAN子网规划中的应用

    在传统的校园网模式中,网络互连一般是一个或多个主干交换机下连多级交换机,交换机间通过路由器来进行通信的结构,传统路由器工作在OSI模型的网络层,并且基于软件进行路由的计算和包的转发.随着校园网规模的扩大,用户的增加,各种基于IP协议的应用(如视频会议,远程教育)的迅猛发展,传统路由在校园网的安全管理和流量控制方面益发成为一个瓶颈问题,而传统交换机虽是有快速处理能力.但它本质是一种多端口网桥,不可避免会产生广播,无法实现路由,为解决这个矛盾,网络厂商提出了第三层交换的思想. 第三层交换技术工作原理

  • 如何在交换机上配置VLAN

    我们知道,传统的局域网Ethernet 使用具有冲突检测的载波监听多路访问( CSMA / CD )方法.在CSMA / CD 网络中,节点可以在它们有数据需要发送的任何时候使用网络.在节点传输数据之前,它进行"监听"以了解网络是否很繁忙.如果不是,则节点开始传送数据.如果网络正在使用,则节点等待.如果两个节点进行监听,没有听到任何东西,而开始同时使用线路,则会出现冲突.在发送数据时,它如果使用广播地址,那么在此网段上的所有PC都将收到数据包,这样一来如果该网段PC众多,很容易引起广播

  • Java8中的lambda表达式入门教程

    1.基本介绍 lambda表达式,即带有参数的表达式,为了更清晰地理解lambda表达式,先上代码: 1.1 两种方式的对比 1.1.1 方式1-匿名内部类 class Student{ private String name; private Double score; public Student(String name, Double score) { this.name = name; this.score = score; } public String getName() { ret

  • 解析Swift中的泛型支持与使用

    一.以泛型为参数的函数 泛型是Swift语言强大的核心,泛型是对类型的抽象,使用泛型开发者可以更加灵活方便的表达代码意图.我们知道,有参函数的参数必须有一个明确的参数类型,有些时候开发者会遇到这样一种情况,编写一个函数用于交换两个变量的值,由于变量有类型之分,实现相同的功能,可能需要重载成多个函数来实现,这大大浪费了开发成本,使用泛型,可以完美的解决这个问题,示例代码如下: func exchange<T>(inout param1:T,inout param2:T){ let tmp = p

  • 详解C++中实现继承string类的MyString类的步骤

    昨天师兄又出了道测试题,让我们实现类似于string类的没有MyString类,刚开始很头疼,可是真正在自己写代码的时候又很兴奋的发现,这个过程真的是个很宝贵的机会,让我又有机会可以很好的熟悉回顾C++的很多知识-类设计,构造析构函数,成员函数,友元函数,引用,重载,字符串操作,动态内存分布.....于是昨天花了半天时间写了300多行代码,并认真的进行了相关测试.修改和总结.因为内容有点丰富,所以想分几次写出来,条理也清楚些. 类的空间分配:类给它的每个对象都分配了独立的空间去存储它的数据成员,

  • Python实现变量数值交换及判断数组是否含有某个元素的方法

    本文实例讲述了Python实现变量数值交换及判断数组是否含有某个元素的方法.分享给大家供大家参考,具体如下: 本来,这两个问题都属于的编程入门简单得不能再简单的问题,根本就不值得写篇记录来记录的. 一.变量数值交换 先说变量数值交换,从C语言开始,我们就知道要先设置一个临时变量,再把某元素的值覆盖此临时变量,避免临时覆盖等,如果不设置临时变量,还有位运算的交换形式 然而Python中根本就不用这么复杂,如果要交换变量e1,e2彼此的值,就下面一行代码就足矣: e1,e2=e2,e1; 比如,如下

  • iOS开发中实现hook消息机制的方法探究

    Method Swizzling 原理 在Objective-C中调用一个方法,其实是向一个对象发送消息,查找消息的唯一依据是selector的名字.利用Objective-C的动态特性,可以实现在运行时偷换selector对应的方法实现,达到给方法挂钩的目的. 每个类都有一个方法列表,存放着selector的名字和方法实现的映射关系.IMP有点类似函数指针,指向具体的Method实现. 我们可以利用 method_exchangeImplementations 来交换2个方法中的IMP, 我们

随机推荐