由于v1使用的计数器为32位,因此无法准确计数千兆位通信量。 另一方面,v2c是64位,所以千兆位接口可以。
snmp获取的接口流量数据是通过接口的总字节数,而不是实际速度。 计算速率时,取2次数据,将其差分除以2取得数据的间隔乘以8即可。
对于snmp
v1,接口通过字节数的mib为IF-MIB:ifOutOctets和IF-MIB:ifInOctets
对于snmp
v2c,接口通过字节数的mib为IF-MIB:ifHCOutOctets和IF-MIB:ifInOutOctets
区别是一个是32位,一个是64位。
用于计算费率的脚本如下:
####CernetEgresstraffic###
echo-n ' snmpwalk-v2c-c password 192.168.1.1
if-MIB :3360 ifhcoutoctets.5|cut-d’‘- F4’
/tmp/result.tmp
echo -n ” ” /tmp/result.tmp
sleep 10
echo ' snmpwalk-v2c-c password 192.168.1.1 if-MIB 33603360 ifhcoutoctets.5
| cut-d’‘- F4’
/tmp/result.tmp
awk‘{ printf“cernetegressrate 3360 % dmb PSn”,$2-$1(*8/10000000 ) }
/tmp/result.tmp
/tmp/result.txt
####CERNETingresstraffic###
echo-n ' snmpwalk-v2c-c password 192.168.1.1
if-MIB :3360 ifhcinoctets.5|cut-d’‘- F4’
/tmp/result.tmp
echo -n ” ” /tmp/result.tmp
sleep 10
echo ' snmpwalk-v2c-c password 192.168.1.1 if-MIB 33603360 ifhcinoctets.5
| cut-d’‘- F4’
/tmp/result.tmp
awk‘{ printf“cernetingressrate : % dmb PS”,$2-$1(*8/1000000 ) }
/tmp/result.tmp
/tmp/result.txt
输出结果如下。
Cernet egress rate: 41 mbps
Cernet ingress rate: 59 mbps