OVS 和 IPFIX::为什么我的桥接器只导出桥接器到收集器的流?

OVS 和 IPFIX::为什么我的桥接器只导出桥接器到收集器的流?

我是 OVS 新手,正在尝试让 IPFIX 在我的 OVS 桥上运行。我借鉴了之前这篇文章中的精彩信息:

https://networkengineering.stackexchange.com/questions/5848/how-to-get-ipfix-working-with-openvswitch

好消息是,我已经让 OVS 交换机将 IPFIX 流导出到我的收集器。坏消息是交换机没有导出我想要的流。交换机没有导出描述我的测试主机之间流量的流记录,而是只导出描述交换机和收集器之间流量的记录……而这些流量是我并不感兴趣的。

简要描述我的概念验证环境:我有一个带有三台虚拟机的 OVS 交换机;两个测试主机和一个收集器:

root@OVSHost# ovs-vsctl list bridge
_uuid               : 2fb2fa30-e1ed-4cbf-a365-7462e5f83cbc
...
name                : "myBridge"
...
ports               : [1940fd00-2dcb-4c85-a077-bae1653d9841, 279e489d-a940-4056-b753-2213fd46d5fd,
31258106-589b-40b9-94c9-a29711991a91, ee38080d-3446-4760-a297-801c5ffe76bb]
root@OVSHost#

我首先承认我不知道哪些端口支持测试主机,哪些端口支持收集器。我在收集器虚拟机上设置了 libIPFIX(一个免费的 IPFIX 收集器)。最后,我通过运行以下两个命令在我的 OVS 网桥上启用了 IPFIX 导出:

ovs-vsctl clear bridge myBridge ipfix
ovs-vsctl -- set Bridge myBridge ipfix=@i -- --id=@i create IPFIX targets=\"192.168.2.2:4739\" obs_domain_id=123 obs_point_id=456 sampling=5

一旦上述命令到位,我就会看到流记录到达我的收集器。但仔细检查后,我意识到我看到的流描述了网桥 (192.168.2.1) 和收集器 (192.168.2.2) 之间的流量。以下是一条这样的记录,使用我为故障排除编写的 Python 脚本进行处理:

  RECORD 123, using Template 284
    138(observationPointId:4)        456
    61(flowDirection:1)              0
    4(protocolIdentifier:1)          17
    8(sourceIPv4Address:4)           192.168.2.1
    12(destinationIPv4Address:4)     192.168.2.2
    7(sourceTransportPort:2)         37512
    11(destinationTransportPort:2)   4739

起初,我以为我的收集器软件配置不正确,但后来我在收集器虚拟机上运行了 tshark,看到了同样的事情。(经过编辑以使其简洁):

root@6bfcec0a4bd8:/# tshark -f 'port 4739' -d udp.port==4739,cflow -V -i eth1
Capturing on 'eth1'
Frame 64: 314 bytes on wire (2512 bits), 314 bytes captured (2512 bits) on interface 0
...
Ethernet II, Src: 32:fa:b2:2f:bf:4c (32:fa:b2:2f:bf:4c), Dst: 82:9e:f8:b2:e7:27 (82:9e:f8:b2:e7:27)
...
Internet Protocol Version 4, Src: 192.168.2.1, Dst: 192.168.2.2
...
User Datagram Protocol, Src Port: 37512, Dst Port: 4739
...
Cisco NetFlow/IPFIX
        Flow 1
            Observation Point Id: 456
            IfName: myBridge
            Protocol: UDP (17)
            SrcAddr: 192.168.2.1
            DstAddr: 192.168.2.2
            SrcPort: 37512 (37512)
            DstPort: 4739 (4739)

明白我的意思了吗?我的网桥似乎在 IPFIX 导出本身上报告流量信息。这很好……

…除了我的 100% 的流量记录都像上面那样。当我在两个测试主机之间运行测试流量时,我从未看到任何描述该流量的记录。从来没有。这就像桥接器仅在流量描述发往收集器的流量时导出流量数据,而忽略所有其他流量。

因此,此时,我假设我用来从 OVS 网桥导出流量的命令仅导出与网桥收集器流量相关的记录?我可以修改这些命令以包含或专注于测试主机吗?

答案1

一位同事发现了我的错误...我的测试主机并没有真正连接到我的网桥,尽管我确信它们已经连接上了。一旦我们正确连接了测试主机,我“自动”看到了我希望看到的导出。

这就是虚拟化的问题,不是吗?有时你看不到最明显的问题...感谢所有阅读并考虑我帖子的人。

相关内容