pfring的使用问题
求教一些pfring的问题:
1、能否对一个网络接口多次使用pfring_open,即一个网卡对应多个ring_handle?
2、函数pfring_set_cluster,不知道这个函数具体用途是什么,cluster是什么意思?
我最终想实现的效果是这样,应用开若干个线程(个数任意),捕获任意个网络接口的数据包(比如服务器有三个网络接口eth0、eth1、eth2,我可以指定捕获eth0,或者捕获eth1+eth2的,或者eth0+eth1+eth2的),我还可以指定环数,且分到每个环的数据包满足“流的完整性”,即同一个流的数据包被分到同一个环上,同时各个环尽量负载均衡,最后每个线程到每个环里取包,不知道pfring能否实现这种效果。如果可以的话,希望提供资料、demo(最好),谢谢了。
pfring的userguide没有明确说明上述问题,example看了若干,也没找到太符合需求的,大家帮帮忙,谢了
[解决办法]
1. 不可以
2. 多个ring放到同一个cluster里,这样原本各个ring上数据认为是个整体,是属于cluster的,根据流或者简单的计数再次分配到不同的ring,保证ring的大体均衡
你说的 “(比如服务器有三个网络接口eth0、eth1、eth2,我可以指定捕获eth0,或者捕获eth1+eth2的,或者eth0+eth1+eth2的)” 是可以实现
同时“还可以指定环数” 不知道你具体是什么用法,可以通过过滤规则中的“reflector_device_name”来实现转发到一个虚拟的网口设备上,这样就可以有多个ring了