I am confused about a QOS implimentation across a set of routers. I want to set priority to VOIP traffic on my network but CBWFQ has left me confused.
I have assigned the prioritized traffic over a simple ACL.
Internal# access-list 100 permit udp 192.168.0.0 0.0.255.255 any eq 5567 access-list 100 permit tcp 192.168.0.0 0.0.255.255 any eq 5566 ! class-map VOIP match access-group 100 ! policy-map VOICE class VOIP priority 384 ! interface Serial0/1 description Point to Point to ip address 10.10.30.1 255.255.255.252 service-policy output VOICE _________________________________________________________________
MFRAME# access-list 100 permit udp 192.168.0.0 0.0.255.255 any eq 5567 access-list 100 permit tcp 192.168.0.0 0.0.255.255 any eq 5566 ! class-map VOIP match access-group 100 ! policy-map VOICE class VOIP priority 384 ! interface Serial0/1 description Point to Point to ip address 10.10.30.2 255.255.255.252 service-policy output voice
Heres my question. To my knowledge packets that enter a port on a router first get processed into any matching ACLS before it is passed to the routing logic, At this point it would be an incoming packet type. After the packet has been handled by any relevant ACL the routing logic can then make a decision on where to send it. Once its been decided the packet is sent out the appropriate port, where there it is checked again against any outgoing ACLS that it might match. To illustrate
Port(ACL, incoming) -> Routing Logic -> (ACL, outgoing)Port
This all makes wonderfuly perfect sense to me when it comes to simple ACLS for stuff like permitting outside terminal server sessions, opening ports for your exchange server and all kinds of stuff like that. In most all situations the ACL is going to be in a single direction "incoming or outgoing" which will meet all your needs.
In this case I am using the ACL to match a range. This range must be applied in both directions. I want all VOIP traffic that passes through that router to be handled with priority. It is my understanding that with CBWFQ this is possible. The problem I run into is CBWFQ can only be applied as a "service-policy output voice ". Keyword OUTPUT. It doesnt make sense to me to tag a packet as priority AFTER its already been processed by the routing logic. My first assumption was that I would need to match this range on all incoming interfaces so that it gets passed directly to the routing processor avoiding any queing.
If I try to assign "service-policy input voice" the command dissapears within an hour or two off my router. Only "service-policy output voice" remains. So my question is, how in the heck does this work? I'm running a simple static routed network with some frame links here and there. Nothing to serious. I assumed this would be an easy go.
Any thoughts? Or links on where I can read up more on CBWFQ on cisco2600's and 1700's.