基于数据包丢失和 VPN 延迟的 QoS 流量整形

基于数据包丢失和 VPN 延迟的 QoS 流量整形

我目前遇到以下情况:

我正在使用 VPN(OpenVPN),网络连接相当不稳定。这意味着最大带宽在 100kbs 和 1mbit 之间变化。每当连接相当不稳定且流量很大时,我就会丢失大量数据包,一切都会变得非常慢。为了防止这种情况,我需要某种机制来根据数据包丢失/延迟来控制最大带宽,以低于大量丢包的阈值。我考虑在 VPN 服务器之间建立一个 icmp(ping)控制通道,使用某种脚本不断分析该通道,如果 ping 变差或丢包,将通过使用 tc(用于 QoS)设置新的最大带宽来调整最大带宽。

我的问题是:1. 仅使用 tc 就能完成这个吗?2. 有没有一个工具可以完成我想要的功能?

提前感谢并致以最诚挚的问候!

答案1

我认为您需要找到一种方法,在封装发生之前对流量进行整形,例如在具有桥接以太网的虚拟机内。您的计算机整形并路由到您的虚拟机,您的虚拟机进行封装。

此外,由于您无法固定速率,因此您应该使用带有 tc 的 prio 调度程序。由于 TCP 具有拥塞避免机制而 UDP 没有(QUIC 除外),因此请将 UDP 和 TCP 放在不同的 qdisc 中。您的问题可能是 TCP 流降低速率而 UDP 流不降低。

此外,在您不知道线路速率的情况下,您应该优先考虑 TCP qdiscs 而不是 UDP qdiscs,但有一个例外:低速率高优先级 UDP 流(DNS,NTP)应该具有最高优先级。

相关内容