使用 SNMP 测量流量参数

网络工程 snmp 管理 负载均衡器
2021-07-16 16:14:20

首先,ifInOctetsifOutOctets 中的“Octets”实际上是指数据包吗?有人能详细解释一下吗?另外,如果我想测量某些节点集之间的流量,我如何使用 SNMP 实现它?我看到了一些指向 MIB II 和 RMON 的链接。还有其他方法吗?我可以使用SNMP MIB测量流量延迟、丢包数、网络带宽、负载均衡参数和相关参数吗?

1个回答

首先,ifInOctets 和 ifOutOctets 中的“Octets”实际上是指数据包吗?有人能详细解释一下吗?

ifInOctetsifOutOctets引用索引为ifIndex / ifName的接口接收和传输的字节(分别)使用 32 位宽的值。ifInOctetsifOutOctets

除非您以 100Mbps 或更低的速度轮询接口,否则我强烈建议使用ifHCInOctetsifHCOutOctets,它们是 64 位值。区别很重要……例如,全 TX 速率下的 1GE 接口将ifOutOctets34 秒内包装 32 位计数器这比大多数人投票的速度要快。

  • 32 位计数器 @ 10Mbps 在 57 分钟内完成
  • 32 位计数器 @ 100Mbps 5 分 42 秒
  • 32 位计数器 @ 1000Mbps 在34 秒内换行

如果要对数据包进行计数,请使用ifHCInUcastPktsifHCOutUcastPktsHC意味着它们是 64 位宽...并非所有 SNMP 对象都需要这么多空间,但高速接口需要。

另外,如果我想测量某些节点集之间的流量,我如何使用 SNMP 实现它?我看到了一些指向 MIB II 和 RMON 的链接。还有其他方法吗?我可以使用SNMP MIB测量流量延迟、丢包数、网络带宽、负载均衡参数和相关参数吗?

您无法使用 SNMP 测量两台服务器之间的流量,除非没有其他内容传输到同一台服务器(即不太可能)。在端点之间进行测量的最佳选择是:

最好从带有mtrwinmtr的主机测量随时间的延迟/平均丢包除非您使用脚本对来自wireshark的文件进行后处理(并且您必须手动编码),否则很难测量单个流的确切数据包丢失

当您询问负载平衡参数时,我不确定您的意思。

可以使用yaz进行无源可用带宽测量考虑到您的请求,主动测量不是一个可能的用例,但请使用iperf2iperf3一年前,当我最后一次尝试它时,根据我的经验iperf3的边缘仍然有点粗糙......我仍然喜欢iperf2,但如果我不提及它,有人会抱怨。