如何让 ipfix 与 openvswitch 一起工作?

网络工程 监控 网络流量
2021-07-28 01:30:45

我想要监控我OpenVswitch通过IPFIX但我现在两天都在用头撞砖墙:/

根据ovs-vsctl 联机帮助页,我需要在配置数据库中添加一个新条目,更准确地说是添加到“ipfix”表中。效果很好,看起来我做对了:

# ovs-vsctl list ipfix
_uuid               : 2d54982b-6cc5-4a8c-845c-cc7ef701da01
external_ids        : {}
obs_domain_id       : 123
obs_point_id        : 456
sampling            : 64
targets             : ["<collector-ip>:<port>"]

然后我下载了libIPFIX并启动了 example_collector。但什么也没有出现。我没有收到任何信息。我用wireshark确认了...

一些 Google-Research 从邮件列表中调了一封电子邮件,其中指出人们需要

导致 IPFIX 被发送到收集器的 OpenFlow 操作

根据此电子邮件,有新的“示例操作”,但我找不到如何添加它们的更多信息。

我最好的猜测是我缺少这些 OpenFlow Sample-Actions。任何人都可以向我提供如何添加这些的信息吗?

/edit: 我在 openSUSE 13.1 (x86_64) 上运行 OpenVswitch 版本 1.11.0。

为了让 IPFix 工作,我尝试了以下操作:

# ovs-vsctl -- set Bridge s1 ipfix=@i -- --id=@i create IPFIX targets=\"10.0.0.1:4739\" obs_domain_id=123 obs_point_id=456 sampling=64
2d54982b-6cc5-4a8c-845c-cc7ef701da01

确认我执行了 ovs-vsctl list ipfix(见上文)

一个类似的命令按预期工作以使 sFlow 工作:

# ovs-vsctl -- set Bridge s1 sflow=@sflow -- --id=@sflow create sflow agent=eth0  target=\"10.0.0.1:6343\" header=128 sampling=32 polling=2
0df2b92b-8a83-4a63-acc4-fecf6f8f492f

进入该行后,我将采样结果发送到我的目标计算机。不幸的是,IPFix 没有运气。

1个回答

您用来设置 IPFix 的措辞绝对是正确的。

这是你所拥有的:

ovs-vsctl -- set Bridge s1 ipfix=@i -- --id=@i create IPFIX targets=\"10.0.0.1:4739\" obs_domain_id=123 obs_point_id=456 sampling=64

ovs-vsctl man 文件中概述了几乎相同的示例

IPFIX

Configure bridge br0 to send one IPFIX flow record per packet sample to UDP port 4739 on host 192.168.0.34, with Observation Domain ID 123 and Observation Point ID 456:

ovs−vsctl −− set Bridge br0 ipfix=@i −− −−id=@i create IPFIX targets=\"192.168.0.34:4739\" obs_domain_id=123 obs_point_id=456

根据您在评论部分中的日志文件:

2014-01-22T10:09:04Z|1017630|collectors|WARN|sending to collector failed: Connection refused

我认为假设收集器 ( 10.0.0.1) 配置错误或某些东西阻止连接入站是合理的