This topic created in 1400 days ago, the information mentioned may be changed or developed.
环境:100M 的宽带,内网大约 20 台主机。
问题:没有限速的情况下,任何一台机器的突发占用带宽都会让出口访问产生大抖动。比如说开了个视频蓝光,瞬间的流量就会吃满。
失败的尝试:
#内网接口
tc qdisc add dev eth1 root handle 1: htb default 1
tc class add dev eth1 parent 1:0 classid 1:1 htb rate 90Mbit burst 15k
tc class add dev eth1 parent 1:1 classid 1:10 htb rate 25Mbit ceil 10Mbit burst 15k
#wifi 的
tc filter add dev eth1 protocol ip parent 1:0 prio 2 u32 match ip src 192.168.10.250 flowid 1:10
tc class add dev eth1 parent 1:1 classid 1:20 htb rate 10Mbit ceil 2Mbit burst 15k
# 问题出现这里,这样所有的机器都上不了网了,是因为到网关也被限速了
tc filter add dev eth1 protocol ip parent 1:0 prio 3 u32 match ip dst 0.0.0.0/0 flowid 1:20
想要实现的:
1. 直接就到峰值 35Mbps 给它削去
2. 保留带宽 10M ,让小包比如 dns 和 ssh ,mysql 这些优先通过。
不会写,有没有懂的指导一下。
 |
|
1
0bing Jul 14, 2022
变成这种样子:
|
 |
|
2
0bing Jul 14, 2022
按错键了。。 变成这个样子,看起来有流量,实际上所有人都卡。。。
tc qdisc add dev eth0 root handle 1: htb default 15 tc class add dev eth0 parent 1: classid 1:1 htb rate 61440kbit ceil 20480kbit tc class add dev eth0 parent 1:1 classid 1:10 htb rate 80kbit ceil 80kbit prio 0 tc class add dev eth0 parent 1:1 classid 1:11 htb rate 80kbit ceil 20480kbit prio 1 tc class add dev eth0 parent 1:1 classid 1:12 htb rate 20kbit ceil 20480kbit prio 2 tc class add dev eth0 parent 1:1 classid 1:13 htb rate 20kbit ceil 20480kbit prio 2 tc class add dev eth0 parent 1:1 classid 1:14 htb rate 10kbit ceil 20480kbit prio 3 tc class add dev eth0 parent 1:1 classid 1:15 htb rate 30kbit ceil 20480kbit prio 3 tc qdisc add dev eth0 parent 1:12 handle 120: sfq perturb 10 tc qdisc add dev eth0 parent 1:13 handle 130: sfq perturb 10 tc qdisc add dev eth0 parent 1:14 handle 140: sfq perturb 10 tc qdisc add dev eth0 parent 1:15 handle 150: sfq perturb 10 tc filter add dev eth0 parent 1:0 protocol ip prio 1 handle 1 fw classid 1:10 tc filter add dev eth0 parent 1:0 protocol ip prio 2 handle 2 fw classid 1:11 tc filter add dev eth0 parent 1:0 protocol ip prio 3 handle 3 fw classid 1:12 tc filter add dev eth0 parent 1:0 protocol ip prio 4 handle 4 fw classid 1:13 tc filter add dev eth0 parent 1:0 protocol ip prio 5 handle 5 fw classid 1:14 tc filter add dev eth0 parent 1:0 protocol ip prio 6 handle 6 fw classid 1:15
iptables -t mangle -A PREROUTING -p icmp -j MARK --set-mark 0x1 iptables -t mangle -A PREROUTING -p icmp -j RETURN iptables -t mangle -A PREROUTING -m tos --tos Minimize-Delay -j MARK --set-mark 0x1 iptables -t mangle -A PREROUTING -m tos --tos Minimize-Delay -j RETURN iptables -t mangle -A PREROUTING -m tos --tos Minimize-Cost -j MARK --set-mark 0x5 iptables -t mangle -A PREROUTING -m tos --tos Minimize-Cost -j RETURN iptables -t mangle -A PREROUTING -m tos --tos Maximize-Throughput -j MARK --set-mark 0x6 iptables -t mangle -A PREROUTING -m tos --tos Maximize-Throughput -j RETURN iptables -t mangle -I PREROUTING -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j MARK --set-mark 0x1 iptables -t mangle -I PREROUTING -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j RETURN iptables -t mangle -A PREROUTING -p tcp -m tcp --sport 22 -j MARK --set-mark 0x1 iptables -t mangle -A PREROUTING -p tcp -m tcp --sport 22 -j RETURN #将想要高优先级的打 0x1 标签,不再赘述 ...
iptables -t mangle -A PREROUTING -j MARK --set-mark 0x6
|