根据端口的优先级并使用PF_RING

时间:2019-12-30 16:06:18

标签: networking routing pf-ring

我有一个连接到SPAN端口的系统,该端口可以抽出几乎恒定的10Gbps原始网络流量。我的主要目标是观察所有DHCP流量的零丢失,但是我还需要能够观察非DHCP流量的(可接受的有损)流。本机接口当前下降了所有流量的%0.25左右。

要实现此目的,我设想以下内容:

  • 入站SPAN流量通过单个接口进入,该接口将DHCP优先于其他所有接口
  • 根据是否为DHCP(端口67/68)将流量路由到两个虚拟接口

我用来处理/分析流量的代码可以并行运行,并且每个实例可以监视不同的接口。对我来说最大的未知数是它使用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流量镜像到未运行PF_RING的测试VM上的虚拟接口(dummy0),但是当我在完整系统上尝试相同操作时,它会产生不稳定的结果(我得到非dummy0接口上的DHCP内容,似乎我也丢失了DHCP流量)。我也无法在输入接口上使基于DHCP的优先级工作,我认为这只是我对tc PRIO命令集缺乏了解。

0 个答案:

没有答案