1、Panabit开发指南XX08301.Panabit开发指南XX0830系统诊断命令要紧用来对硬件配置及性能进行诊断,目前要紧提供以下诊断功能:1)HT(Hyper Threading)问题诊断2)硬件性能评估1.1HT问题诊断(jflow stat)Panaos在某些打开了CPU HT(Hyper Threading)选项主机上CPU调度功能不能正常工作,要紧表现为数据处理CPU不能正确切换,因此,要想确保Panaos的调度能正常工作,一样需要在BIOS里关闭HT。通过jflow stat命令能够发觉Panaos的调度是否正常工作。下面是执行一次该命令的屏幕输出:# floweye jflo
2、w statjflow_pkt_count=0jflow_loop_count=404695071jflow_mbuf=0x0jflow_stage=21event_qsize=2047event_count=0event_reader=0event_writer=0要紧看jflow_loop_count那个计数器,假如在两次命令执行之间,那个参数一直没有变化,或者第一次执行时,那个参数为0,那么就表示Panaos的调度没有正常工作,HT确信被打开了,需要在BIOS里将HT关掉。1.2硬件性能评估(if sendpkt)为了方便合作伙伴快速并方便的诊断自己采购的硬件设备的性能,Panabit在
3、10.04版本中集成了一个用来测试设备网络性能的工具,那个工具由if sendpkt来触发。下面先介绍一下如何构建测试的环境。构建测试环境的工作专门简单,只需要被测试机和一根或几根网线即可。假如想测试设备上em0和em1两个网络端口之间的性能,能够如下实现:1)将em0和em1设置成网桥模式(注意:必须属于同一个网桥)2)将em0和em1用网线连接起来3)使用if sendpkt命令发种子包4)使用if stat命令查看实时em0和em1上的实时统计结果If sendpkt命令格式如下:If sendpkt if-name packet-num packet-size 其中:1)if-name
4、:网卡的名称,比如em0或em12)packet-num:发送种子包的个数,一样使用32或643)packet-size:发送种子包的长度,比如64、128和256等等例如:if sendpkt em0 32 64,就表示发送32个长度为64字节的UDP数据包(注意,Panabit使用UDP数据包作为测试种子包,目前还不支持其它类型的数据包)。使用那个命令后,就能够测试从em0到em1方向上的64字节数据包时的性能。假如想同时测试两个方向的性能,只需要执行一次if sendpkt em1 32 64命令即可,if stat命令会显示两个方向上的统计结果。假如只想测试硬件的裸体性能(确实是不通过
5、Panabit业务逻辑),能够在执行if sendpkt命令之前,先将网卡设置成软件bypass模式(注意不是硬件bypass),具体命令如下:# floweye if set name=em0 bypass=1# floweye if set name=em1 bypass=12.对象统计分析依照对象类型,网络流量统计命令能够分为几个大类:1)网卡流量统计:统计网卡流量以及收发包信息2)应用流量统计:统计应用或应用组流量信息3)IP流量统计:统计某个内网IP流量信息4)应用对象统计:统计QQ号码,MSN账号和共享用户等信息5)数据库信息显示2.1 网卡流量统计(if stat, if get
6、) If stat命令要紧用来查看网卡数据速率(bps),收发包速率(pps)和TCP、UDP以及网卡上面的寄存器信息,它的格式为:If stat if-name 假如指定网卡名称(if-name),则显示该网卡内部驱动所统计到的信息,比如寄存器信息,网卡队列信息等等。 假如不指定任何网卡,则显示所有网卡的统计信息,下面是一个统计例子:ix3 9823.46M 9823.48M 959322 959324 0 0 9823.46M 9823.48M 0 0 959322 959324 0 0ix1 9823.48M 9823.46M 959324 959322 0 0 9823.48M 982
7、3.46M 0 0 959324 959322 0 0 上面输出总共有15列,每列顺序如下:name bps-in bps-out pps-in pps-out bps-tcpin bps-tcpout bps-udpin bps-udpout pps-tcpin pps-tcpout pps-udpin pps-udpout pps-syn pps-synack其中:1)name 表示网卡名称2)bps是bit per second的简写3)pps是packet per second的简写4)in表示输入,out表示输出5)syn表示TCP的SYN包6)synack表示TCP的SYN-ACK
8、包if get命令用来猎取某个网卡上的统计信息,比如下面的输出:quota=20mtu=1500zone=insidemode=0ifdesc=82545EM_COPPERpeer=nonedriver=PANAOSlink-state=upmacaddr=00:0C:29:67:51:F7rx-byte=185973rx-pkt=1417rx-tcp-byte=168970rx-tcp-pkt=1328rx-udp-byte=14543rx-udp-pkt=48tx-byte=0tx-pkt=0tx-tcp-byte=0tx-tcp_pkt=0tx-udp-byte=0tx-tcp-pkt=
9、0invalid-pkt=0no-buffer=0tx-drop=0watchdog-events=0big-packets=0bps-in=0 bps-out=0 bps-tcp-in=0 bps-tcp-out=0 bps-udp-in=0 bps-udp-out=0 pps-in=0pps-out=0pps-tcp-in=0pps-tcp-out=0pps-udp-in=0pps-udp-out=0上面每一行的输出含义自明,那个地点不再赘述。2.2 应用流量统计(app stat) 应用流量统计命令能够依照用户指定的参数或选项显示对应的应用流量统计信息,这些统计信息包括如下内容:1)当前
10、连接数2)当前节点数3)累计上下行流量和总流量4)最近10分钟上下行流量和总流量5)流量所占列表项的百分比6)当前的上下行速率和总速率下面是app stat的命令格式:app stat app=XXX sort=xxx bridge=xxx showsum其中:1)app表示应用名称或应用组名称。比如app=p2p表示显示P2P协议组里的所有应用统计信息;2)sort表示排序方式。sort=all表示按照累计总流量排序; sort=last表示按照最近10分钟总流量排序;sort=bpsup表示按照当前上行速率排序;sort=bpsdn表示按照当前下行速率排序;sort=bps表示按照当前总速
11、率排序;sort=allup表示按照累计上行流量排序;sort=alldn表示按照累计下行流量排序;sort=lastup表示按照最近10分钟上行流量排序;sort=lastdn表示按照最近10分钟下行流量排序;sort=flow表示按照当前连接数排序;3)bridge表示网桥编号。0表示整个系统;14分别表示网桥1至网桥4;58表示虚拟链路1至4;4)showsum表示是否在最后显示一行汇总信息,假如没有那个参数,则表示不显示汇总信息;下面是一次输出结果:default 未知应用 0 0 155.18K 0 155.18K 81.66 135.78K 0 135.78K 87.61 0 0
12、0 s S 8 0 584.43K 0 584.43K 3.16 124.89K 0 124.89K 4.36 0 0 0 .thunder 迅雷 0 0 0 0 0 0.00 0 0 0 0.00 0 0 0 每列的含义依次如下:应用英文名;应用中文名;应用连接数;应用节点数;累计上行流量;累计下行流量;累计上下行流量之和;累计流量所占百分比;最近10分钟上行流量;最近10分钟下行流量;最近10分钟累计上下行流量之和;最近10分钟累计流量所占百分比;上行速率;下行速率;上下行总速率。2.3 内网IP流量统计(ipobj get,ipobj listflow,ipobj listipa, ip
13、obj list) 当打开“内网IP统计”选项后,Panabit就会记录并统计每个它所检测到的内网IP的相关信息,这些信息包括:1)汇总信息(比如流入和流出速率,TCP和UDP连接数)2)身份信息(比如QQ号码,MSN账号,POP3账号)3)共享用户信息4)连接数信息5)当前应用流量信息Ipobj get命令用来猎取汇总信息,它的格式为:ipobj get ip-address# floweye ipobj get 192.168.0.2addr=192.168.0.2ttl=600life=6181inbytes=692.30K outbytes=1.04M bpsin=0 bpsout=0
14、 flowcnt=2tflowpassed=0uflowpassed=0bindmac=0mac=00.1c.bf.83.26.57其中ttl表示该IP的生存期,假如在那个时刻内没有流量的话,该IP对象就会从系统那个中删除掉;bindmac表示是否做IP和MAC地址绑定(目前那个字段只是保留,并没有实现);life字段表示该IP从第一次检测到现在所存在的时刻;其它字段不言自明,那个地点就不赘述了。ttl和life的单位均为秒。 Ipobj listflow命令用来列出某个IP地址当前所有的TCP和UDP连接信息,它的格式为:ipobj listflow ip-addr app。app为可选参数
15、,假如指定app,则只显示属于该app的连接,app能够是一个单独的应用,也能够是一个应用组比如ipobj listflow 192.168.0.2 p2p显示192.168.0.2的所有p2p连接。下面是一条连接的信息:67 S tcp 192.168.0.2:2855-192.168.0.20:443 1624 3040 83 4664 0 0 其中: 1)67表示这条连接从创建到现在存在了67每秒; 2) S表示这是一条 S应用连接; 3)tcp表示这是一条TCP连接; 4)192.168.0.2:2855-192.168.0.20:443包含连接的IP地址和端口信息; 5)1624和3
16、040为连接正反两个方向的流量分别为1624Bytes和3040Bytes,4664是这两个数之和; 6)83表示该连接的剩余生存期为83秒身份信息和共享用户信息使用appobj list命令显示,请参考它的使用说明。Panabit会实时记录分析内网IP的当前流量信息,用户能够使用ipobj listipa命令,命令使用方式如下:ipobj listipa ip xxx.xxx.xxx.xxx s in|out|all app app-name其中:1)-ip参数表示指定IP地址,能够指定某个IP地址,也能够指定一段IP地址或一个子网段;2)-s参数指定排序方式,in表示按照管用流入速率排序,
17、out表示按照管用流出速率排序,all表示按照管用总速率排序。3)-app指定应用或应用组ipobj listipa命令输出的每一行格式如下:ip地址 应用英文名称 应用中文名称 应用流入速率 应用流出速率 应用总速率那么,用户如何能得到目前在线的内网IP列表呢?这能够使用ipobj list命令,ipobj list命令格式如下:ipobj list -ip ip-addr -s all|in|out|allbps|inbps|outbps|flowcnt|ipaddr|account|natip -n xx其中:1)-ip 参数指定要显示的IP地址及其范畴,比如10.1.1.1-10.1.
18、1.255,也能够指定单个IP地址;2)-s参数指定如何对显示结果排序,all、in和out分别对应总流量、流入流量和流出流量;allbps、inbps和outbps分别对应总速率、流入速率和流出速率;flowcnt指按照连接数排序;ipaddr表示按照IP地址排序;account表示按照身份信息个数排序;natip表示按照共享用户数排序;3)-n xx参数表示只显示前xx项;Ipobj list命令针对每个IP,输出一行信息,每行信息对应的字段含义从前到后依次为:1)IP地址2)在线时刻(以秒为单位)3)TTL4)连接数5)MAC地址6)流入流量7)流出流量8)流入速率9)流出速率10)身份
19、信息数11)共享用户数2.4 应用对象统计(appobj list)在Panabit中,像MSN账号、QQ号码、POP3账号以及共享用户等信息差不多上作为应用对象(Application Object)来治理的。能够使用appobj list命令来显示系统中的所有应用对象。需要注意的是,那个命令没有提供过滤功能,因此需要自己使用grep或其它的方式进行过滤。appobj list命令显示的每一行为一个对象,每行格式如下:type type-description object-id ip-address last-time 其中:1)type为对象的类型.qq表示对象为QQ号码;msn表示对象
20、为MSN账号;lip表示共享用户;2)type-description是对对象类型的描述性信息;3)object-id依照对象类型不同,内容也不一样。假如type为qq,那么object-id确实是QQ号码,其它类推;4)ip-address为该对象所属的内网IP地址;5)last-time为该对象最后一次检测到的时刻;2.5 数据库信息显示(chart dump,chart rowlist) Panabit有一个进程叫ipe_datamon,那个进程要紧功能确实是爱护Panabit数据库,它要紧负责下面的情况:1)定期从Panaos采集各种数据对象的信息(目前缺省的是5分钟采集一次),比如网
21、卡流量信息,应用流量信息等;2)所有数据都储存在内存中,最多储存30天的数据记录;3)每隔5小时将内存中的数据刷新到CF卡或硬盘上,储存的数据文件名为panabit.rrd;4)同意floweye的数据库操作命令,比如chart dump命令;chart dump命令使用方式如下:chart dump bridge=n hours=nn tmend=nnn tag=tag1 tag=tag2 tag=tagN其中:1)bridge参数用来指定要显示的网桥或虚拟链路,0表示整个系统,14表示网桥1网桥4,58表示虚拟链路14;2)hours和tmend两个参数决定了要显示时段的数据,命令显示的时
22、段为tmend hours * 3600, tmend;不在时段之外的数据不显示;3)tag参数用来指定要显示的字段。比如p2p.thunder.flow表示迅雷连接数;p2p.thunder.bpsout表示迅雷上下速率;p2p.thunder.bpsin表示迅雷下行速率;p2p.thunder.bps表示迅雷总速率;em0.ppsin表示网卡em0的流入pps;em0.ppsout表示网卡em0的流出pps;em0.pps表示网卡em0的总pps。具体tag 参数能够参见Web界面脚本里的实现。关于每个tag,chart dump输出如下内容:TAG tag-name tag-descDA
23、TA time value 上面的TAG和DATA为关键字,time的单位为秒,value是该时刻的值。需要注意的是,chart dump会自动依照时长给出相应间隔的数据,比如1周时长的时段的数据实际上确实是数据库里若干条数据平均后的结果。用户也能够使用chart rowlist命令显示最后一次采集的数据,具体显示的内容其含义不言自明,那个地点离就不举例了。2.6 IP群组 1)添加IP群组 floweye table add 群组名称 2)删除IP群组 floweye table remove群组序号 1)添加IP floweye table addip 群组序号 添加的IP 2)删除IP
24、floweye table rmvip 群组序号 添加的IP 群组序号是依照IP群组名称下拉列表从上而下,从1开始依次加13.配置治理Panabit的配置治理要紧包括:1)网络配置2)应用参数配置3)节点治理4)内网伪IP防护5)网桥带宽配置6)内网IP统计选项配置3.1 网络配置(ifconfig,route,if set,em setspeed)Panabit的网络配置方面比较简单,要紧包括:1)治理口配置2)数据口配置治理口由FreeBSD直截了当治理,因此它的配置是使用FreeBSD的ifconfig(配置接口)和route(配置路由)命令。比如,将治理口fxp0的IP地址配置成192
25、.168.1.100/24,使用下面命令即可做到:#ifconfig fxp0 192.168.1.100/24或者#ifconfig fxp0 192.168.1.100 netmask 255.255.255.0route命令用来增加或删除路由,比如下面的命令用来添加缺省网关为192.168.1.1:#route add default 192.168.1.1数据口要紧使用floweye的if set命令,它的使用方法如下:If set name=if-name mode=n zone=inside|outside其中:1)if-name为网卡名称,如em0, em1等等;2)mode为网
26、卡模式,0表示监控模式,1,2,3和4分别表示网桥1,网桥2,网桥3和网桥4;3)zone表示网卡接入位置,inside表示接内网,outside表示接外网;假如数据接口是Intel千M卡(比如82571/2/3/3/5/6芯片),那么能够使用em setspeed命令设置网卡的协商模式(如自动协商、强制1000M全双工等)。em setspeed命令使用方式为em setspeed if-name speed,其中:1)if-name为网卡名称,如em0, em1等;2)speed为网卡协商速率设置,auto表示自动协商,1000LX表示单模强制全双工,1000SX表示多模强制全双工,100
27、0T表示电口强制全双工;需要注意的是,设置网卡协商模式命令发出后,Panaos会reset网卡,因此会显现短暂的断网,请尽量幸免在有高流量的时候做设置。3.2 应用参数配置(app set) 关于每个应用协议,目前有三个标准参数可供配置:1)连接老化时刻,指连接没有通过流量时的最大生存时刻,以秒为单位。2)节点老化时刻,指节点没有新建连接时的最大生存时刻,以秒为单位。3)是否缓存节点,指是否缓存节点,游戏协议一样会打开此选项。app set命令格式为:app set app-name flowttl=nnn nodettl=nnn cachesn=yes|no其中,flowttl、nodett
28、l和cachesn分别对应上述三个参数。3.3 节点治理(node add, node remove) 节点在Panabit中是一个专门重要的概念,它对性能的提升有着专门重要的作用。所谓节点,实际上确实是一个IP地址和端口的二元组,比如一个游戏服务器的IP地址和端口。Panabit所识别的专门多应用协议都打开了节点缓存功能,在某些极端情形下,节点缓存会导致一些误识别,在显现如此的情形下,能够通过node add命令强制将误识别的节点修正或使用node remove强制将它删除。它们的使用方法如下: node add ip-address port app-name type node remo
29、ve ip-address port 其中:1)ip-address为节点的IP地址2)port为节点的端口号3)app-name为节点应用类型4)type为节点的4层协议类型,如tcp表示TCP类型,udp表示UDP类型,both表示既是TCP,又是UDP3.4 内网伪IP防护(ipverify addip, ipverify rmvip,ipverify clearip, ipverify enable, ipverify disable)由于网络中病毒的问题,经常会显现一些恶意攻击包,其中有专门多攻击包的源地址是伪造的,这些非正常的数据包会给Panabit带来一系列的问题:1)内网IP池
30、专门快被耗尽,导致正常的IP流量不能统计。2)连接池专门快被耗尽,导致正常的连接信息不能记录,因而无法分析网络流量。基于上述两个缘故,同时出于Panabit自身功能正常运转的目的,Panabit内置了一个内网伪IP防护模块。那个模块的工作原理如下:1)用户通过ipverify addip命令将内网合法的IP地址或IP段告诉Panabit2)当Panabit接收到一个IP包后,它先判定其源IP(假如是从内网卡进来的包)或目的IP(假如是从外网口进来的包)是否在合法IP表中,假如在,就进入正常的应用分析模块;假如不在,直截了当将此数据包当做“内网伪IP”应用,进入策略处理模块。Panabit缺省情
31、形下,对这种类型的数据包是做放行处理的,假如用户需要对此类数据包进行处理,就需要在策略组中添加相应的处理策略。另外,在缺省情形下,内网伪IP防护模块是没有打开的,用户能够使用ipverify enable命令打开此模块,也能够使用ipverify disable功能关闭它。需要注意的是,假如打开此功能模块而没有将合法的内网IP地址或地址段告诉Panabit,那么正常的流量就会被Panabit标记成“内网伪IP”,从而阻碍设备的正常使用。用户能够使用ipverify addip将合法内网IP地址添加到IP池进行操作,比如:1)ipverify addip 192.168.1.1,将192.168.1.1添加到池中2)ipverify addip 192.168.1.1-192.168.1.3,将192.168.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1