Having some problems setting up prioritization
Posted: Thu Jan 20, 2011 8:53 pm
I have been trying to get some traffic prioritization setup and have been having some problems. Ideally I would like to set up the prioritization on the same router as the PCQ/QOS setup that Janis covered in his video. I am testing this in the office and have the limits choked down quite a bit to make sure I can saturate the ques.
The problem I am having is it seems that my packets are correctly getting marked but I think I have something messed up in my que structure because when I put the router with the priority inline and ahead of our existing router that is doing customer ques it doesn't seem to be queing the traffic correctly. For example http download que will never max out even if none of the other ques are being used, also pings which are marked and put into a the highest priority que will time out even when the parent que is far from being saturated. Anyway here are my mangle rules and que tree that I am using. If anyone could help me out here it would be appreciated.
;;; HTTP
chain=prerouting action=mark-packet new-packet-mark=HTTP passthrough=yes protocol=tcp src-port=80
connection-bytes=0-500000
1 ;;; HTTP Download
chain=prerouting action=mark-packet new-packet-mark=HTTP_Download passthrough=yes protocol=tcp src-port=80
connection-bytes=500000-0
2 ;;; DNS TCP
chain=prerouting action=mark-packet new-packet-mark=DNS_TCP passthrough=yes protocol=tcp src-port=53
3 ;;; DNS UDP
chain=prerouting action=mark-packet new-packet-mark=DNS_UDP passthrough=yes protocol=udp src-port=53
4 ;;; Ping
chain=prerouting action=mark-packet new-packet-mark=icmp passthrough=yes protocol=icmp
5 ;;; Email
chain=prerouting action=mark-packet new-packet-mark=Email passthrough=yes protocol=tcp src-port=110,995,143,993,25
6 ;;; FTP
chain=prerouting action=mark-packet new-packet-mark=FTP passthrough=yes protocol=tcp src-port=21
7 ;;; SFTP
chain=prerouting action=mark-packet new-packet-mark=SFTP passthrough=yes protocol=tcp src-port=22 packet-size=1400-1500
8 ;;; Telnet
chain=prerouting action=mark-packet new-packet-mark=Telnet passthrough=yes protocol=tcp src-port=23
9 ;;; SSH
chain=prerouting action=mark-packet new-packet-mark=SSH passthrough=yes protocol=tcp src-port=22 packet-size=0-1400
10 ;;; PS3 Call of Duty
chain=prerouting action=mark-packet new-packet-mark=PS3_CODBO passthrough=yes protocol=tcp src-port=3074
11 ;;; Peer to Peer
chain=prerouting action=mark-packet new-packet-mark=PTP passthrough=yes p2p=all-p2p
12 ;;; Unmarked Traffic
chain=prerouting action=mark-packet new-packet-mark=Unmarked passthrough=yes packet-mark=no-mark
Here is the que tree for the priority ques
0 name="Priority" parent=global-in limit-at=0 priority=1 max-limit=4500k burst-limit=0 burst-threshold=0 burst-time=0s
1 name="Priority 1" parent=Priority packet-mark=DNS_TCP,DNS_UDP,icmp,PS3_CODBO limit-at=768k queue=default priority=1
max-limit=1M burst-limit=0 burst-threshold=0 burst-time=0s
2 name="Priority 2" parent=Priority packet-mark=HTTP,Telnet,SSH,Email limit-at=2M queue=default priority=2 max-limit=4M
burst-limit=0 burst-threshold=0 burst-time=0s
3 name="Lowest Priority" parent=Priority packet-mark=PTP limit-at=256k queue=default priority=8 max-limit=1M burst-limit=0
burst-threshold=0 burst-time=0s
4 name="Priority 6" parent=Priority packet-mark=HTTP_Download,FTP,SFTP limit-at=1M queue=default priority=6 max-limit=4M
burst-limit=0 burst-threshold=0 burst-time=0s
5 name="Umarked" parent=Priority packet-mark=Unmarked limit-at=512k queue=default priority=3 max-limit=4M burst-limit=0
burst-threshold=0 burst-time=0s
Thanks,
The problem I am having is it seems that my packets are correctly getting marked but I think I have something messed up in my que structure because when I put the router with the priority inline and ahead of our existing router that is doing customer ques it doesn't seem to be queing the traffic correctly. For example http download que will never max out even if none of the other ques are being used, also pings which are marked and put into a the highest priority que will time out even when the parent que is far from being saturated. Anyway here are my mangle rules and que tree that I am using. If anyone could help me out here it would be appreciated.
;;; HTTP
chain=prerouting action=mark-packet new-packet-mark=HTTP passthrough=yes protocol=tcp src-port=80
connection-bytes=0-500000
1 ;;; HTTP Download
chain=prerouting action=mark-packet new-packet-mark=HTTP_Download passthrough=yes protocol=tcp src-port=80
connection-bytes=500000-0
2 ;;; DNS TCP
chain=prerouting action=mark-packet new-packet-mark=DNS_TCP passthrough=yes protocol=tcp src-port=53
3 ;;; DNS UDP
chain=prerouting action=mark-packet new-packet-mark=DNS_UDP passthrough=yes protocol=udp src-port=53
4 ;;; Ping
chain=prerouting action=mark-packet new-packet-mark=icmp passthrough=yes protocol=icmp
5 ;;; Email
chain=prerouting action=mark-packet new-packet-mark=Email passthrough=yes protocol=tcp src-port=110,995,143,993,25
6 ;;; FTP
chain=prerouting action=mark-packet new-packet-mark=FTP passthrough=yes protocol=tcp src-port=21
7 ;;; SFTP
chain=prerouting action=mark-packet new-packet-mark=SFTP passthrough=yes protocol=tcp src-port=22 packet-size=1400-1500
8 ;;; Telnet
chain=prerouting action=mark-packet new-packet-mark=Telnet passthrough=yes protocol=tcp src-port=23
9 ;;; SSH
chain=prerouting action=mark-packet new-packet-mark=SSH passthrough=yes protocol=tcp src-port=22 packet-size=0-1400
10 ;;; PS3 Call of Duty
chain=prerouting action=mark-packet new-packet-mark=PS3_CODBO passthrough=yes protocol=tcp src-port=3074
11 ;;; Peer to Peer
chain=prerouting action=mark-packet new-packet-mark=PTP passthrough=yes p2p=all-p2p
12 ;;; Unmarked Traffic
chain=prerouting action=mark-packet new-packet-mark=Unmarked passthrough=yes packet-mark=no-mark
Here is the que tree for the priority ques
0 name="Priority" parent=global-in limit-at=0 priority=1 max-limit=4500k burst-limit=0 burst-threshold=0 burst-time=0s
1 name="Priority 1" parent=Priority packet-mark=DNS_TCP,DNS_UDP,icmp,PS3_CODBO limit-at=768k queue=default priority=1
max-limit=1M burst-limit=0 burst-threshold=0 burst-time=0s
2 name="Priority 2" parent=Priority packet-mark=HTTP,Telnet,SSH,Email limit-at=2M queue=default priority=2 max-limit=4M
burst-limit=0 burst-threshold=0 burst-time=0s
3 name="Lowest Priority" parent=Priority packet-mark=PTP limit-at=256k queue=default priority=8 max-limit=1M burst-limit=0
burst-threshold=0 burst-time=0s
4 name="Priority 6" parent=Priority packet-mark=HTTP_Download,FTP,SFTP limit-at=1M queue=default priority=6 max-limit=4M
burst-limit=0 burst-threshold=0 burst-time=0s
5 name="Umarked" parent=Priority packet-mark=Unmarked limit-at=512k queue=default priority=3 max-limit=4M burst-limit=0
burst-threshold=0 burst-time=0s
Thanks,