Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Problems getting traffic into queues other than the default

    Scheduled Pinned Locked Moved Traffic Shaping
    11 Posts 4 Posters 2.1k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      bfranske
      last edited by

      I'm trying to set up some traffic shaping with HFSC and have run into a difficulty I have not been able to figure out. It doesn't seem to make any difference if I set up the queues and floating rules manually or by using the wizard. In either case I just can't seem to get much traffic into any queue other than the default queue. Here's an example:

      1. I go through the wizard and leave everything normal except that I tell the wizard I want to prioritize HTTP traffic. All the queues and floating rules I expect are created.

      2. I start a very large HTTP download on a system behind pfSense

      3. I look at the Status -> Queues page and see all the traffic in the LAN qLink queue (which is the default) and not in qOthersHigh which is where I would expect it. It's not that I see nothing in qOthersHigh, but it's very little traffic (i.e. 2.4Kbps vs 70+Mbps in qLink).

      Any idea what's going on?

      1 Reply Last reply Reply Quote 0
      • W
        wednesday
        last edited by

        same here, after upgrage to 2.1.3.
        it worked before
        i reset to default and do the setting again , nothing can help

        1 Reply Last reply Reply Quote 0
        • B
          bfranske
          last edited by

          I have a 2.1.3 system with the problem but my 2.1.2 seems to have the same problem.

          1 Reply Last reply Reply Quote 0
          • ?
            A Former User
            last edited by

            Can you post your Firewall Rules ?

            1 Reply Last reply Reply Quote 0
            • B
              bfranske
              last edited by

              These are the system rules as well as the user rules – but only through the floating rules, I left off all the user interface rules, but none of them are queue related anyway.

              $ pfctl -sr
              scrub on em1 all fragment reassemble
              scrub on em0_vlan99 all fragment reassemble
              scrub on em0_vlan301 all fragment reassemble
              scrub on em0_vlan88 all fragment reassemble
              anchor "relayd/" all
              anchor "openvpn/
              " all
              anchor "ipsec/" all
              block drop in log inet all label "Default deny rule IPv4"
              block drop out log inet all label "Default deny rule IPv4"
              block drop in log inet6 all label "Default deny rule IPv6"
              block drop out log inet6 all label "Default deny rule IPv6"
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type echorep keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type routersol keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type routeradv keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type echorep keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type routersol keep state
              pass out quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type routeradv keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type echoreq keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type routersol keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type routeradv keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type echoreq keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type routersol keep state
              pass in quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type routeradv keep state
              pass in quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type echoreq keep state
              pass in quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type routersol keep state
              pass in quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type routeradv keep state
              pass quick inet6 proto ipv6-icmp all icmp6-type unreach keep state
              pass quick inet6 proto ipv6-icmp all icmp6-type toobig keep state
              pass quick inet6 proto ipv6-icmp all icmp6-type neighbrsol keep state
              pass quick inet6 proto ipv6-icmp all icmp6-type neighbradv keep state
              block drop quick inet proto tcp from any port = 0 to any
              block drop quick inet proto tcp from any to any port = 0
              block drop quick inet proto udp from any port = 0 to any
              block drop quick inet proto udp from any to any port = 0
              block drop quick inet6 proto tcp from any port = 0 to any
              block drop quick inet6 proto tcp from any to any port = 0
              block drop quick inet6 proto udp from any port = 0 to any
              block drop quick inet6 proto udp from any to any port = 0
              block drop quick from <snort2c>to any label "Block snort2c hosts"
              block drop quick from any to <snort2c>label "Block snort2c hosts"
              block drop in log quick proto carp from (self) to any
              pass quick proto carp all keep state
              block drop in log quick proto tcp from <sshlockout>to (self) port = ssh label "sshlockout"
              block drop in log quick proto tcp from <webconfiguratorlockout>to (self) port = https label "webConfiguratorlockout"
              block drop in quick from <virusprot>to any label "virusprot overload table"
              block drop in log quick on em1 from <bogons>to any label "block bogon IPv4 networks from IHCC_DMZ"
              block drop in log quick on em1 from <bogonsv6>to any label "block bogon IPv6 networks from IHCC_DMZ"
              block drop in on ! em1 inet from 134.29.182.0/24 to any
              block drop in inet from 134.29.182.252 to any
              block drop in inet from 134.29.182.246 to any
              block drop in inet from 134.29.182.248 to any
              block drop in inet from 134.29.182.247 to any
              block drop in on em1 inet6 from fe80::250:56ff:febf:38f5 to any
              block drop in log quick on em1 inet from 10.0.0.0/8 to any label "Block private networks from IHCC_DMZ block 10/8"
              block drop in log quick on em1 inet from 127.0.0.0/8 to any label "Block private networks from IHCC_DMZ block 127/8"
              block drop in log quick on em1 inet from 100.64.0.0/10 to any label "Block private networks from IHCC_DMZ block 100.64/10"
              block drop in log quick on em1 inet from 172.16.0.0/12 to any label "Block private networks from IHCC_DMZ block 172.16/12"
              block drop in log quick on em1 inet from 192.168.0.0/16 to any label "Block private networks from IHCC_DMZ block 192.168/16"
              block drop in log quick on em1 inet6 from fc00::/7 to any label "Block ULA networks from IHCC_DMZ block fc00::/7"
              block drop in on em0_vlan99 inet6 from fe80::250:56ff:febf:5d4f to any
              block drop in on em0_vlan88 inet6 from fe80::250:56ff:febf:5d4f to any
              block drop in on ! em0_vlan99 inet6 from 2607:f930:1c00:99::/64 to any
              block drop in inet6 from 2607:f930:1c00:99::5 to any
              block drop in on ! em0_vlan99 inet from 172.17.99.0/24 to any
              block drop in inet from 172.17.99.5 to any
              block drop in on ! em0_vlan88 inet from 192.168.0.0/24 to any
              block drop in inet from 192.168.0.1 to any
              pass in on lo0 inet all flags S/SA keep state label "pass IPv4 loopback"
              pass out on lo0 inet all flags S/SA keep state label "pass IPv4 loopback"
              pass in on lo0 inet6 all flags S/SA keep state label "pass IPv6 loopback"
              pass out on lo0 inet6 all flags S/SA keep state label "pass IPv6 loopback"
              pass out inet all flags S/SA keep state allow-opts label "let out anything IPv4 from firewall host itself"
              pass out inet6 all flags S/SA keep state allow-opts label "let out anything IPv6 from firewall host itself"
              pass out route-to (em1 134.29.182.254) inet from 134.29.182.252 to ! 134.29.182.224/27 flags S/SA keep state allow-opts label "let out anything from firewall host itself"
              pass out route-to (em1 134.29.182.254) inet from 134.29.182.246 to ! 134.29.182.224/27 flags S/SA keep state allow-opts label "let out anything from firewall host itself"
              pass out route-to (em1 134.29.182.254) inet from 134.29.182.248 to ! 134.29.182.224/27 flags S/SA keep state allow-opts label "let out anything from firewall host itself"
              pass out route-to (em1 134.29.182.254) inet from 134.29.182.247 to ! 134.29.182.224/27 flags S/SA keep state allow-opts label "let out anything from firewall host itself"
              pass out route-to (em0_vlan99 2607:f930:1c00:99::1) inet6 from 2607:f930:1c00:99::5 to ! 2607:f930:1c00:99::/64 flags S/SA keep state allow-opts label "let out anything from firewall host itself"
              pass out route-to (em0_vlan301 2607:f930:1c00:301::1) inet6 from 2607:f930:1c00:301::2 to ! 2607:f930:1c00:301::/64 flags S/SA keep state allow-opts label "let out anything from firewall host itself"
              pass in quick on em0_vlan99 proto tcp from any to (em0_vlan99) port = https flags S/SA keep state label "anti-lockout rule"
              pass in quick on em0_vlan99 proto tcp from any to (em0_vlan99) port = http flags S/SA keep state label "anti-lockout rule"
              pass in quick on em0_vlan99 proto tcp from any to (em0_vlan99) port = ssh flags S/SA keep state label "anti-lockout rule"
              anchor "userrules/
              " all
              match on WAN inet proto tcp from any to any port = http flags S/SA label "USER_RULE: m_Other HTTP outbound" queue(qOthersHigh, qACK)
              match on em1 inet proto tcp from any to any port = http flags S/SA label "USER_RULE: m_Other HTTP outbound" queue(qOthersHigh, qACK)
              match on em0_vlan301 inet proto tcp from any to any port = http flags S/SA label "USER_RULE: m_Other HTTP outbound" queue(qOthersHigh, qACK)
              match on WAN inet6 proto tcp from any to any port = http flags S/SA label "USER_RULE: m_Other HTTP outbound" queue(qOthersHigh, qACK)
              match on em1 inet6 proto tcp from any to any port = http flags S/SA label "USER_RULE: m_Other HTTP outbound" queue(qOthersHigh, qACK)
              match on em0_vlan301 inet6 proto tcp from any to any port = http flags S/SA label "USER_RULE: m_Other HTTP outbound" queue(qOthersHigh, qACK)
              match on WAN inet proto tcp from any to any port = https flags S/SA label "USER_RULE: m_Other HTTPS outbound" queue(qOthersHigh, qACK)
              match on em1 inet proto tcp from any to any port = https flags S/SA label "USER_RULE: m_Other HTTPS outbound" queue(qOthersHigh, qACK)
              match on em0_vlan301 inet proto tcp from any to any port = https flags S/SA label "USER_RULE: m_Other HTTPS outbound" queue(qOthersHigh, qACK)
              match on WAN inet6 proto tcp from any to any port = https flags S/SA label "USER_RULE: m_Other HTTPS outbound" queue(qOthersHigh, qACK)
              match on em1 inet6 proto tcp from any to any port = https flags S/SA label "USER_RULE: m_Other HTTPS outbound" queue(qOthersHigh, qACK)
              match on em0_vlan301 inet6 proto tcp from any to any port = https flags S/SA label "USER_RULE: m_Other HTTPS outbound" queue(qOthersHigh, qACK)</bogonsv6></bogons></virusprot></webconfiguratorlockout></sshlockout></snort2c></snort2c>

              1 Reply Last reply Reply Quote 0
              • B
                bfranske
                last edited by

                Does anyone have any ideas why this isn't working? Thanks!

                1 Reply Last reply Reply Quote 0
                • perikoP
                  periko
                  last edited by

                  I had the same issue before, most of my traffic went to p2p, what I did was to every change I did inside the TS I restart the server because the manual say that u need to reset the states because it use floating rules and u know how those works.

                  I switch my queues to CBQ.

                  Is working now, I will look at my rules and post to compare with yours, I delete some rules because I don't why the wizard add rules for a windows share is for me a security risk.

                  I see that once the wizard finish u have to do changes to the rules to fit your network.

                  And if u setup everything manually this won't appear in your rules for pfsense.

                  Necesitan Soporte de Pfsense en México?/Need Pfsense Support in Mexico?
                  www.bajaopensolutions.com
                  https://www.facebook.com/BajaOpenSolutions
                  Quieres aprender PfSense, visita mi canal de youtube:
                  https://www.youtube.com/c/PedroMorenoBOS

                  1 Reply Last reply Reply Quote 0
                  • B
                    bfranske
                    last edited by

                    I have tried flushing the state table as well as rebooting the system and it doesn't seem to cause any change.

                    1 Reply Last reply Reply Quote 0
                    • B
                      bfranske
                      last edited by

                      After further testing I'm beginning to think that this is an IPv6 problem and that IPv6 traffic is not being placed into any queues other than the default. It's a bit hard to tell but it looks like IPv4 traffic may be going into the queues as expected but IPv6 traffic is stuck in the default queues. At least when I try to pull large files from IPv4 only sites it looks like the correct queues are filling but if I try to pull a file from an IPv6 or dual-stack site it seems to be stuck in the default queue.

                      Is anyone else able to test IPv6 and traffic shaping to confirm this hypothesis?

                      1 Reply Last reply Reply Quote 0
                      • B
                        bfranske
                        last edited by

                        Nope, nevermind, it's not IPv6 that's the problem. I am able to correctly queue traffic by port number (i.e. move all port 80 traffic into a different queue) but do not seem able to successfully do it based on IP address.

                        I want to queue the traffic based on the final destination IP address (e.g. the inside address). For example, I want all traffic destined for 172.17.110.61 (an inside host) to end up in a certain queue. It seems like the firewall rules are being applied before the NAT so the destination address is my WAN IP when the traffic passes through the rules and thus it never matches the rule for the destination IP of 172.17.110.61. I thought that floating rules were supposed to be applied to traffic in the outbound direction (i.e. traffic leaving the LAN interface). What am I missing/how can I do this?

                        1 Reply Last reply Reply Quote 0
                        • B
                          bfranske
                          last edited by

                          Well, after playing around some more with rules I think I got it to do what I want but I don't understand why. If someone can explain I would appreciate it.

                          The rule I created which ended up working (it seems) is a floating match rule applied in all directions on all interfaces with a SOURCE IP address of the inside system who's traffic I want to put through the queue (172.17.110.61 in my example). Why it's the source IP is the mystery to me because the traffic I want to shape is traffic DESTINED for 172.17.110.61 and originating from the Internet not traffic originating from 172.17.110.61…

                          Can anyone explain how/why this works?

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post
                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.