我将我的 Pi 2 设置为 WiFi 接入点教程。
我想根据每个数据包标头中的 DSCP 字段实现基本的 QoS。这意味着,使用低优先级服务阻止数据包(对于发送例如电子邮件的连接主机)并转发具有高优先级服务的数据包(对于使用例如 VoIP 的连接主机)。
我不知道从哪里开始:如何放入等待数据包然后发送它们,或者在紧急情况下转发它们?
从技术上讲,我必须在 WiFi 加密狗 ( wlan0
) 上侦听数据包,查看每个数据包的 DSCP 字段,然后通过以太网电缆 ( eth0
) 发送它们或将它们置于等待状态。
我不知道从哪里开始。
编辑1:根据我的教授的说法,检查 DSCP 字段并不可靠,因为它并不总是充满某些东西。因此,我将只查看地址,并通过检查站点地址来查看发送数据包的服务。
答案1
libnetfilter_queuenetfilter 项目的库似乎是这样:来自 netfilter.org:
libnetfilter_queue 是一个用户空间库,为已由内核数据包过滤器排队的数据包提供 API。它是弃用旧的 ip_queue / libipq 机制的系统的一部分。
我将数据包放入队列中:
sudo iptables -I FORWARD (parameters) -j NFQUEUE --queue-num x
与libnetfilter_queue我可以访问存储在上面队列中的数据包。