作者 主題: 請教tc 命令,已可控制上傳流量,但第二優先總是會lag。  (閱讀 3158 次)

0 會員 與 1 訪客 正在閱讀本文。

sct181

  • 活潑的大學生
  • ***
  • 文章數: 329
    • 檢視個人資料
請問一下,
當10.0.0.0/27確定無人使用時,(自用)
192.168.3.6還是偶而會變慢,斷線,重連又正常(自用)
斷線的當時,mrtg上下傳流量又不高,
192.168.3.8-30(分享),使用情況不明,

我想請問的是,
是否ppp0自已的封包並無優先權,(被歸到 90)
這樣的tc命令,ppp0的封包是否帶"mark",
如果沒有的話,
那它的優先權排在那裏,
或者我該如何對ppp0對外的封包設最高優先呢

下面是我的tc命令




#!/bin/sh

EXT_IF="ppp0"

SUBNET_0="10.0.0.0/27"
SUBNET_1="192.168.3.6"
SUBNET_2="192.168.3.8/31"
SUBNET_3="192.168.3.10"
SUBNET_4="192.168.3.11"
SUBNET_5="192.168.3.12"
SUBNET_6="192.168.3.13"
SUBNET_7="192.168.3.14/31"
SUBNET_8="192.168.3.16/28"



tc qdisc del dev $EXT_IF root 2>/dev/null

tc qdisc add dev $EXT_IF root handle 10: htb default 90

tc class add dev $EXT_IF parent 10: classid 10:1 htb rate 80kbps ceil 80kbps

tc class add dev $EXT_IF parent 10:1 classid 10:10 htb rate 4kbps ceil 60kbps prio 0
tc class add dev $EXT_IF parent 10:1 classid 10:20 htb rate 3kbps ceil 60kbps prio 1
tc class add dev $EXT_IF parent 10:1 classid 10:30 htb rate 2kbps ceil 16kbps prio 2
tc class add dev $EXT_IF parent 10:1 classid 10:40 htb rate 2kbps ceil 16kbps prio 2
tc class add dev $EXT_IF parent 10:1 classid 10:50 htb rate 2kbps ceil 16kbps prio 2
tc class add dev $EXT_IF parent 10:1 classid 10:60 htb rate 2kbps ceil 16kbps prio 2
tc class add dev $EXT_IF parent 10:1 classid 10:70 htb rate 2kbps ceil 16kbps prio 2
tc class add dev $EXT_IF parent 10:1 classid 10:80 htb rate 2kbps ceil 16kbps prio 2
tc class add dev $EXT_IF parent 10:1 classid 10:90 htb rate 1kbps ceil 8kbps prio 3


tc qdisc add dev $EXT_IF parent 10:10 handle 101: pfifo
tc qdisc add dev $EXT_IF parent 10:20 handle 102: pfifo
tc qdisc add dev $EXT_IF parent 10:30 handle 103: pfifo
tc qdisc add dev $EXT_IF parent 10:40 handle 104: pfifo
tc qdisc add dev $EXT_IF parent 10:50 handle 105: pfifo
tc qdisc add dev $EXT_IF parent 10:60 handle 106: pfifo
tc qdisc add dev $EXT_IF parent 10:70 handle 107: pfifo
tc qdisc add dev $EXT_IF parent 10:80 handle 108: pfifo
tc qdisc add dev $EXT_IF parent 10:90 handle 109: pfifo


tc filter add dev $EXT_IF parent 10: protocol ip prio 100 handle 10 fw classid 10:10
tc filter add dev $EXT_IF parent 10: protocol ip prio 100 handle 20 fw classid 10:20
tc filter add dev $EXT_IF parent 10: protocol ip prio 100 handle 30 fw classid 10:30
tc filter add dev $EXT_IF parent 10: protocol ip prio 100 handle 40 fw classid 10:40
tc filter add dev $EXT_IF parent 10: protocol ip prio 100 handle 50 fw classid 10:50
tc filter add dev $EXT_IF parent 10: protocol ip prio 100 handle 60 fw classid 10:60
tc filter add dev $EXT_IF parent 10: protocol ip prio 100 handle 70 fw classid 10:70
tc filter add dev $EXT_IF parent 10: protocol ip prio 100 handle 80 fw classid 10:80
tc filter add dev $EXT_IF parent 10: protocol ip prio 100 handle 90 fw classid 10:90


iptables -t mangle -F  

iptables -t mangle -A PREROUTING -s $SUBNET_0 -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -s $SUBNET_1 -j MARK --set-mark 20
iptables -t mangle -A PREROUTING -s $SUBNET_2 -j MARK --set-mark 30
iptables -t mangle -A PREROUTING -s $SUBNET_3 -j MARK --set-mark 30
iptables -t mangle -A PREROUTING -s $SUBNET_4 -j MARK --set-mark 40
iptables -t mangle -A PREROUTING -s $SUBNET_5 -j MARK --set-mark 50
iptables -t mangle -A PREROUTING -s $SUBNET_6 -j MARK --set-mark 60
iptables -t mangle -A PREROUTING -s $SUBNET_7 -j MARK --set-mark 80
iptables -t mangle -A PREROUTING -s $SUBNET_8 -j MARK --set-mark 90




echo "QoS 9class set done"