Greetings, Is this a good design? Am I way off track; does a better method exist?
I need to limit upload and download speeds of 1,000 hosts individually. Each host shall have it's own dedicated queue with an arbitrary bandwidth limit. The machine performing the traffic shaping shall be a multi homed OpenBSD machine acting as a transparent bridge. NIC A faces the customer network and NIC B faces internet. Upload shaping will be performed on outbound packets on NIC B and download shaping will be performed on outbound packets on NIC A. I plan to create one giant default CBQ and 1,000 queues below it. Bandwidth borrowing will be turned off. The idea is one IP/one queue. #define CBQ_MAX_CLASSES 256 /usr/src/sys/altq/altq_cbq.h I'll have to boost that number to 2,000 and recompile the kernel. Is there anything else I have to change? Has anyone else ever done this before? Please let me know what you think of this plan. I'm anxious for any form of input. A rough example ( don't hang me if it's wrong; I didn't check the syntax or attempt this yet ) altq on $NICA cbq bandwidth 100Mb queue { stda, qa10.1.1.1, qa10.1.1.2, qa10.1.1.3...etc } queue stda bandwidth 100Mb cbq(default) queue qa10.1.1.1 bandwidth $value queue qa10.1.1.2 bandwidth $value etc... altq on $NICB cbq bandwidth 100Mb queue { stdb, qb10.1.1.1, qb10.1.1.2, qb10.1.1.3...etc } queue stdb bandwidth 100Mb cbq(default) queue qb10.1.1.1 bandwidth $value queue qb10.1.1.2 bandwidth $value etc... pass out on $NICA inet proto ip from any to 10.1.1.1 queue qa10.1.1.1 pass out on $NICB inet proto ip from 10.1.1.1 to any queue qb10.1.1.1 Thank you in advance, Lou Goddard