首页 > 解决方案 > 基于带有 PF_RING 的端口对入站流量进行优先级排序并将其路由到虚拟接口

问题描述

我有一个连接到 SPAN 端口的系统,该端口可以输出近乎恒定的 10Gbps 原始网络流量。我的主要目标是以零损失观察所有 DHCP 流量,但我还需要能够观察(可接受的有损)非 DHCP 流量流。本机接口目前正在按原样丢弃大约 %0.25 的所有流量。

为了让这个工作,我设想以下内容:

我用来处理/分析流量的代码可以并行运行,每个实例都可以观察不同的接口。对我来说最大的未知数是它使用 PF_RING。我对 PF_RING 并不太熟悉,也无法判断它是否会阻止tc基于 - 的过滤按预期工作。

我试图让这个工作通过tc,但我正在努力让它按预期工作。我使用了以下命令序列,br0原始输入界面在哪里:

ip link add dummy0 type dummy
ip link set dummy0 up

# Create the ingress queue discipline
tc qdisc add dev br0 handle ffff: ingress

# Setup the filters to mirror UDP traffic to dummy0
tc filter add dev br0 parent ffff: protocol ip u32 match ip dport 67 0x00ff action mirred egress redirect dev dummy0
tc filter add dev br0 parent ffff: protocol ip u32 match ip dport 68 0x00ff action mirred egress redirect dev dummy0
tc filter add dev br0 parent ffff: protocol ip u32 match ip sport 67 0x00ff action mirred egress redirect dev dummy0
tc filter add dev br0 parent ffff: protocol ip u32 match ip sport 68 0x00ff action mirred egress redirect dev dummy0

这似乎将 DHCP 流量镜像到dummy0未运行 PF_RING 的测试 VM 上的虚拟dummy0接口(看起来我也缺少 DHCP 流量)。我也无法在输入接口上获得基于 DHCP 的优先级,我认为这只是我对tc PRIO命令集缺乏了解。

标签: networkingroutingpf-ring

解决方案


推荐阅读