Cisco CCNP Certification Training For The ONT Exam:
Configuring Priority Queuing
By Chris Bryant, CCIE #12933
In the first part of this Cisco CCNP training tutorial on priority queuing for the ONT exam, we talked about the basic theory of PQ and the danger of queue starvation. Today, we'll configure PQ on a Cisco router and use IOS Help to look at our options.
Remember how you wrote dialer lists in your CCNA studies to define interesting traffic? Creating priority lists in PQ is a similar operation, but the priority list will actually do two things - define traffic, and define which queue that traffic named by the list should be placed into. If traffic is not explicitly placed into a queue, it will be placed into the Normal queue.
Since we're studying Cisco, you just know we're going to have quite a few options! Let's use IOS Help to view the options for priority lists:
R1(config)#priority-list ?
<1-16> Priority list number
This list number has the same purpose as the dialer list number in your CCNA studies - this is the number that must be used in the interface-level command in order to put this list into effect.
R1(config)#priority-list 1 ?
default Set priority queue for unspecified datagrams
interface Establish priorities for packets from a named interface
protocol priority queueing by protocol
queue-limit Set queue limits for priority queues
The first option, default, allows us to change the default queue priority from Normal. We'll use this command to make the Low queue the default queue.
R1(config)#priority-list 1 default ?
high
medium
normal
low
R1(config)#priority-list 1 default low
Always trust your configs, but verify them as well. We'll use show queueing priority throughout this section to perform that verification. Here, we see that the Low queue is now the default queue for priority list 1.
R1#show queueing priority
Current DLCI priority queue configuration:
Current priority queue configuration:
List Queue Args
1 low default
Let's take another look at the priority-list command.
R1(config)#priority-list 1 ?
default Set priority queue for unspecified datagrams
interface Establish priorities for packets from a named interface
protocol priority queueing by protocol
queue-limit Set queue limits for priority queues
The middle two options are key. We can apply this queuing scheme on a per-interface level or a per-protocol level. If we choose the per-interface approach, note that we can use physical or logical interfaces to do so.
R1(config)#priority-list 1 interface ?
Async Async interface
BRI ISDN Basic Rate Interface
BVI Bridge-Group Virtual Interface
CTunnel CTunnel interface
Dialer Dialer interface
Ethernet IEEE 802.3
Group-Async Async Group interface
Lex Lex interface
Loopback Loopback interface
Multilink Multilink-group interface
Null Null interface
Serial Serial
Tunnel Tunnel interface
Vif PGM Multicast Host interface
Virtual-Template Virtual Template interface
Virtual-TokenRing Virtual TokenRing
We'll configure all traffic coming in on this router's Serial0 interface to go into the Normal queue. This does not affect traffic exiting the router via Serial0.
R1(config)#priority-list 1 interface serial 0 ?
high
medium
normal
low
R1(config)#priority-list 1 interface serial 0 normal ?
<cr>
When IOS Help shows the only option is <CR>, that means we're out of options! After entering this command, we'll verify with show queueing priority.
R1(config)#priority-list 1 interface serial 0 normal
R1#show queueing priority
Current DLCI priority queue configuration:
Current priority queue configuration:
List Queue Args
1 low default
1 normal interface Serial0
When using the protocol option, the syntax of the command can be a little awkward at first. To illustrate, we'll write a line placing all TCP traffic into the Medium queue. Let's use IOS Help to figure out how to do so.
R1(config)#priority-list 1 protocol ?
aarp AppleTalk ARP
appletalk AppleTalk
arp IP ARP
bridge Bridging
cdp Cisco Discovery Protocol
compressedtcp Compressed TCP
decnet DECnet
decnet_node DECnet Node
decnet_router-l1 DECnet Router L1
decnet_router-l2 DECnet Router L2
ip IP
ipx Novell IPX
llc2 llc2
pad PAD links
snapshot Snapshot routing support
Hmmm. I've highlighted IP in this list, but that covers a lot of territory! How can we define TCP traffic in this list, since it's not listed here? Actually, TCP traffic is an option -- at the end of the command.
R1(config)#priority-list 1 protocol ip medium ?
fragments Prioritize fragmented IP packets
gt Prioritize packets greater than a specified size
list To specify an access list
lt Prioritize packets less than a specified size
tcp Prioritize TCP packets 'to' or 'from' the specified port
udp Prioritize UDP packets 'to' or 'from' the specified port
<cr>
Like I always say, IOS Help is a lifesaver! If we wanted to specify a certain TCP port for PQ, the port number can be named as well.
R1(config)#priority-list 1 protocol ip medium tcp ?
<0-65535> Port number
bgp Border Gateway Protocol (179)
chargen Character generator (19)
cmd Remote commands (rcmd, 514)
daytime Daytime (13)
The router lists about 50 different port numbers at that point, so I'm only showing you a few. We'll choose port 13 to place Daytime packets into the Medium queue - unless we have even more options.
R1(config)#priority-list 1 protocol ip medium tcp 13 ?
<cr>
Nope! Just hit <enter> and Daytime packets will then be placed into the Medium queue. Verify with show queueing priority.
R1#show queueing priority
Current DLCI priority queue configuration:
Current priority queue configuration:
List Queue Args
1 low default
1 normal interface Serial0
1 medium protocol ip tcp port daytime
If you really want to be specific, you can use the gt and lt options to specify queuing for packets of certain size. You can also define the queue that fragmented packets should be placed into.
R1(config)#priority-list 1 protocol ip medium ?
fragments Prioritize fragmented IP packets
gt Prioritize packets greater than a specified size
list To specify an access list
lt Prioritize packets less than a specified size
tcp Prioritize TCP packets 'to' or 'from' the specified port
udp Prioritize UDP packets 'to' or 'from' the specified port
<cr>
That's probably going to be too specific for most queuing strategies, but you may well want to incorporate access lists when using PQ. Say you wanted to place all traffic from the private network 10.0.0.0 /8 into the Normal queue. An ACL is used to name that network - you could also specify the destination if you use an extended ACL - and the list is then named by the priority list.
R1(config)#access-list 10 permit 10.0.0.0 0.0.0.255
R1(config)#priority-list 1 protocol ip normal ?
fragments Prioritize fragmented IP packets
gt Prioritize packets greater than a specified size
list To specify an access list
lt Prioritize packets less than a specified size
tcp Prioritize TCP packets 'to' or 'from' the specified port
udp Prioritize UDP packets 'to' or 'from' the specified port
<cr>
R1(config)#priority-list 1 protocol ip normal list ?
<1-199> IP access list
<1300-2699> IP expanded access list
R1(config)#priority-list 1 protocol ip normal list 10
You know the drill from here on out....
R1#show queueing priority
Current DLCI priority queue configuration:
Current priority queue configuration:
List Queue Args
1 low default
1 normal interface Serial0
1 medium protocol ip tcp port daytime
1 normal protocol ip list 10
After all of this work, we should apply the list to an interface! We'll use the priority-group command to apply this list to interface serial0. It may surprise you to find that there are no options with this command!
R1(config)#interface serial0
R1(config-if)#priority-group 1 ?
<cr>
R1(config-if)#priority-group 1
The syntax of PQ, as well as the other queuing strategies available on Cisco routers, takes some getting used to. Once you get some hands-on practice with these queuing methods, though, you'll quickly master these vital skills and pass the CCNP ONT exam!
Get ready for the ultimate in CCNP ONT exam certification training - with The Ultimate ONT Study Package!
To your success,
Chris Bryant
CCIE #12933
chris@thebryantadvantage.com
|