-1

我的 Raspberry Pi 2 配置为接入点,使用以下iptables设置:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

我正在使用libnetfilter_queue库的 Python 绑定。

我正在尝试进行基本的 Qos 读取(成功)我收到的每个数据包的源端口(使用-j NFQUEUE --queue-num x规则),并且根据从端口 25、80 或 5060 发送的数据包,我可能会延迟或立即发送数据包。

我的问题是:最后两条规则中的哪一条应该应用于NFQUEUE目标?

到目前为止,我只将数据包放入--queue-numfrom wlan0to eth0,但我想也不需要将NFQUEUE目标应用于最后一条规则并监控数据包 from eth0to wlan0...对吗?

4

1 回答 1

0

如果您尝试对从互联网服务器(SMTP、HTTP、SIP)返回的 QoS 数据包进行 QoS,您将需要对第二条规则进行 NFQUEUE。这将使您在从无线接口 (wlan0) 发出之前从 eth0(您的有线接口)传入的 QoS 数据包。

如果你想要双向 QoS 数据包,你可以在没有-iand-o标志的情况下执行相同的规则,然后根据nfq_get_indevandnfq_get_outdev函数的结果在用户空间中进行匹配。

编辑

我应该再补充一点。

您决定 QoS 的方向将取决于您尝试获得的内容。如果您想确保您的 RPi 从其 eth0 接口发送的所有数据包都没有受到上游 (ISP) 路由器/调制解调器的限制,您应该对从 wlan0 到 eth0 的数据包进行 QoS。如果您更关心降低无线端的争用(即减少重传),则应该在另一个方向(eth0 到 wlan0)进行 QoS。

于 2015-10-05T17:03:22.427 回答