Wizard Created Shaping Rules (HTTP getting into P2P queue)
-
I ran the shaping wizard for 1WAN/1LAN setup and what seems to be happening is that all HTTP traffic gets sent to the P2P queue. After checking the rules, it seems that the wizard doesn't assign the interfaces, so if I go in, and select both WAN and LAN and click save… reload the rules and it works as it should.
Problem with the wizard?
(20090904 snapshot)
-
ijin, there seems to be a bug where rules created by the wizards do not actually assign a queue to the rule. If you look at your /tmp/rules.debug you will probably see something like this.
pass out proto tcp from any to any port = 3389 label "USER_RULE: m_Other MSRDP outbound" pass out proto tcp from any to any port = 3283 label "USER_RULE: m_Other AppleRemoteDesktop1 outbound" pass out proto udp from any to any port = 3283 label "USER_RULE: m_Other AppleRemoteDesktop3 outbound" pass out proto udp from any to any port = 5900 label "USER_RULE: m_Other AppleRemoteDesktop4 outbound"
They should look like this, notice the queue keyword.
pass proto tcp from any to any port = 443 keep state queue (qOthersLow,qACK) label "USER_RULE: m_Other HTTP S outbound" pass inet proto icmp from any to any keep state queue (qOthersHigh) label "USER_RULE: m_Other ICMP outbound"
At first I thought that changing the direction from out to any made the rules work, but now I think that it was just the re-saving of the rules that fixed the problem, since that was mentioned in the original shaper bounty thread. Try disabling all the rules you want, apply, then enable them again and apply. Then check your rules.debug to see if the queue keyword is there for those rules.
I'll test a little more here also.
Josh -
I played around with it a little and this is what I found.
Just clicking on the green arrow to disable the rules doesn't work. You have to edit the rule, check disable, save, apply changes, edit rule, uncheck disable, save, apply changes and then the queue is applied correctly.
Interfaced don't need to be applied. The point of the floating rules was that the interface didn't need to be selected so you can classify traffic with less work.
I think what adding a specific interface did, which disabling and enabling does also, is force the rule to be rebuilt.
My rule went from this.
pass out proto tcp from any to any port = 3389 label "USER_RULE: m_Other MSRDP outbound"
to this.
pass out proto tcp from any to any port = 3389 keep state queue (qOthersHigh,qACK) label "USER_RULE: m_Other MSRDP outbound"
Josh