我需要在通过IPSEC连接的几个客户端之间划分带宽。
我发现这篇文章:
和这个服务器错误的问题:
但是我的要求稍微复杂一点,我需要一些额外的build议。
听起来相对复杂。 我可以做到,但可能有一个更简单的解决scheme? 欢迎任何其他想法。
我知道的其他方法是从IP地址做一个散列。 在这种情况下,散列值将是16位(范围为tc类id),而IP包含32位。 不好看。
2)我想每个VPN客户端有两个类。 一个用于优先级的stream量,另一个用于其他所有 我用两个标记来实现这一点 – MARKFW_ONE和MARKFW_TWO
2.1 SSHstream量:放入优先级队列(ssh,但不是scp):
iptables -t mangle -A INPUT -i $DEV -s $IP -p tcp -m tos --tos 0x10 -j CONNMARK --set-mark ${MARKFW_ONE}
2.2 ICMP:放入优先队列:
iptables -t mangle -A INPUT -i $DEV -s $IP -p icmp -j CONNMARK --set-mark ${MARKFW_ONE}
2.3为了在上传过程中加速下载,请将ACK数据包放入优先级:
iptables -t mangle -A INPUT -i $DEV -s $IP -p tcp --tcp-flags ALL ACK -j CONNMARK --set-mark ${MARKFW_ONE}
2.4其他一切:
iptables -t mangle -A INPUT -i $DEV -s ${IP} -j CONNMARK --set-mark ${MARKFW_TWO}
最后:
# Propagate netfilter marks on connections iptables -t mangle -A POSTROUTING -j CONNMARK --restore-mark
问题是:
提前致谢!