<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Aaron&#039;s Worthless Words &#187; class</title>
	<atom:link href="http://aconaway.com/tag/class/feed/" rel="self" type="application/rss+xml" />
	<link>http://aconaway.com</link>
	<description>Not something you want to hear</description>
	<lastBuildDate>Wed, 08 Sep 2010 14:39:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Stubby Post &#8211; Time-based ACLs and Policy-maps</title>
		<link>http://aconaway.com/2010/04/28/stubby-post-time-based-acls-and-policy-maps/</link>
		<comments>http://aconaway.com/2010/04/28/stubby-post-time-based-acls-and-policy-maps/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 21:16:26 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
				<category><![CDATA[cisco]]></category>
		<category><![CDATA[acl]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[policy]]></category>
		<category><![CDATA[qos]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[time]]></category>

		<guid isPermaLink="false">http://aconaway.com/?p=714</guid>
		<description><![CDATA[Look.  Time-based ACLs work in policy-maps.]]></description>
			<content:encoded><![CDATA[<p>Certain divisions of the company tend to shoot themselves in the foot by kicking off large file transfers during business hours, so I had a thought that maybe we could use time-based ACLs to do some QoSing for those guys.  I fired up GNS3 with a 3600 running 12.4(25b) with some virtual PCs on it&#8217;s Ethernet interfaces.</p>
<blockquote>
<pre>time-range BUSINESSHOURS
 periodic daily 8:00 to 17:00
!
ip access-list extended PINGS
 permit icmp any any time-range BUSINESSHOURS
!
class-map match-all PINGS
 match access-group name PINGS
!
policy-map PM-F0/0-OUT
 class PINGS</pre>
</blockquote>
<p>First, I set the router&#8217;s time to outside of the time range and sent some pings over.</p>
<blockquote>
<pre>R1#sh clock
00:01:13.107 UTC Wed Apr 28 2010
R1#sh access-lists
Extended IP access list PINGS
    10 permit icmp any any time-range BUSINESSHOURS (inactive)
R1#sh policy-map int f0/0
 FastEthernet0/0

  Service-policy output: PM-F0/0-OUT

    Class-map: PINGS (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps
      Match: access-group name PINGS

    Class-map: class-default (match-any)
      11 packets, 1140 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: any</pre>
</blockquote>
<p>Alright, that&#8217;s expected.  Now let&#8217;s set the clock to within the time range and repeat.</p>
<blockquote>
<pre>R1#sh clock
13:00:12.887 UTC Wed Apr 28 2010
R1#sh access-lists
Extended IP access list PINGS
    10 permit icmp any any time-range BUSINESSHOURS (active) (10 matches)
R1#sh policy-map int f0/0
 FastEthernet0/0

  Service-policy output: PM-F0/0-OUT

    Class-map: PINGS (match-all)
      10 packets, 980 bytes
      5 minute offered rate 0 bps
      Match: access-group name PINGS

    Class-map: class-default (match-any)
      20 packets, 1970 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: any</pre>
</blockquote>
<p>How about that?  Time-based ACLs seems to work with policy-maps.  I didn&#8217;t know that.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2010/04/28/stubby-post-time-based-acls-and-policy-maps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>NBAR and HTTP Data Conversations</title>
		<link>http://aconaway.com/2010/03/07/nbar-and-http-data-conversations/</link>
		<comments>http://aconaway.com/2010/03/07/nbar-and-http-data-conversations/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 02:47:20 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
				<category><![CDATA[ccnp]]></category>
		<category><![CDATA[ont]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[nbar]]></category>
		<category><![CDATA[nmap]]></category>
		<category><![CDATA[policy]]></category>
		<category><![CDATA[qos]]></category>

		<guid isPermaLink="false">http://aconaway.com/?p=557</guid>
		<description><![CDATA[I’m still working on the ONT test and doing labs, so I marked up a lab for me to work.&#160; I’m using the same setup as I did last time.&#160; The two routers are 3640s running 12.4(25b). Part of the lab was to identify HTTP traffic coming into F0/0 and mark it as CS3.&#160; That’s [...]]]></description>
			<content:encoded><![CDATA[<p>I’m still working on the ONT test and doing labs, so I marked up a lab for me to work.&#160; I’m using the same setup as I did last time.&#160; The two routers are 3640s running 12.4(25b).</p>
<p align="center"><a href="http://aconaway.com/wp-content/uploads/2010/03/nbarclassmap1.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="nbar-classmap1" border="0" alt="nbar-classmap1" src="http://aconaway.com/wp-content/uploads/2010/03/nbarclassmap1_thumb.png" width="244" height="127" /></a> </p>
<p>Part of the lab was to identify HTTP traffic coming into F0/0 and mark it as CS3.&#160; That’s pretty easy, right?&#160; Of course, the lab I made up was a little more complicated, but the point comes clear with a simpler example.</p>
<blockquote><pre>class-map match-all HTTP
 match protocol http
!
policy-map PM-F0/0-IN
 class HTTP
  set dscp cs3
!
interface FastEthernet0/0
 service-policy input PM-F0/0-IN</pre>
</blockquote>
<p>I fired off a small script on TestHost1 to repeatedly do NMap scans on TCP/80 of TestHost2 to generate some traffic.&#160; </p>
<blockquote>
<pre>root@bt:~#while ( true ) do nmap -sT -p 80 -v -n 172.16.2.101; done</pre>
</blockquote>
<p>I let that run for a while and checked out the service policy on F0/0; there were absolutely no matches on that class. </p>
<blockquote>
<pre>R1#sh policy-map int f0/0 input class HTTP
 FastEthernet0/0

  Service-policy input: PM-F0/0-IN

    Class-map: HTTP (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: protocol http
      QoS Set
        dscp cs3
          Packets marked 0</pre>
</blockquote>
<p>I thought that was strange, so I kept the script running and captured the traffic coming out of S1/0.&#160; Looking at the packets in Wireshark showed that none of the HTTP packets were showing up as being marked as CS3; they’re all set to the default DSCP value.</p>
<p><a href="http://aconaway.com/wp-content/uploads/2010/03/HTTPnomark.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="HTTP-nomark" border="0" alt="HTTP-nomark" src="http://aconaway.com/wp-content/uploads/2010/03/HTTPnomark_thumb.png" width="244" height="81" /></a>No matter how many NMap scans cycled through, the class never incremented a bit.&#160; I let it run for two full minutes and generated a few hundred HTTP packets, but there was still nothing. </p>
<p>On a whim, I enabled NBAR protocol discovery on F0/0 to see if that would shed any light on my mess.&#160; Guess what I found.&#160; That’s right; there were no HTTP matches to NBAR, either.&#160; That makes sense since the class-map I defined uses the NBAR protocol.&#160; Alright, so it seems that it’s NBAR that doesn’t see the packets as HTTP, but why?</p>
<p>Looking through the packet captures again, I noticed that there was no real data in the streams.&#160; I saw the 3-way TCP handshake (a.k.a., my signature wrestling move) and then a RST,ACK.&#160; I only told NMap to check if the port was open, so I changed the while loop a bit and enabled version detection with the “-sV” flag.&#160; This time when I can the script, NMap was actually getting the HTTP banner.&#160; It was much traffic, but it was an actual HTTP conversation, so I checked NBAR again.&#160; Success!&#160; The same for the class, too.&#160; </p>
<p>For craps and smiles, I created a class-map that matched SIP, added it to the same policy-map, and set NMap after TCP/5060 without version detection.&#160; Without having a real SIP conversation, the class counters incremented as long as I was sending packets.&#160; That would seem unexpected until you realize that NBAR has some advanced knowledge of HTTP; you can actually match on URLs, hostnames, and MIME-types.&#160; I guess that means it also know when a real HTTP conversation is taking place.</p>
<p>To finish out the testing, I added an ACL to the router that matched any-any-eq-80.&#160; I made the class-map into a match-any and added the ACL.&#160; Since the ACL just matches the destination port and doesn’t care what the content is, every packet sent matched the class as expected.&#160; I remember reading several places and seeing a couple videos that said that you can use NBAR matching and ACLs interchangeably.&#160; That may not really be true when it comes to HTTP.</p>
<p>Send any <strike>Cisco learning credits</strike> questions my way.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2010/03/07/nbar-and-http-data-conversations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>QoS Pre-classify and Class-map Order</title>
		<link>http://aconaway.com/2010/03/06/qos-pre-classify-and-class-map-order/</link>
		<comments>http://aconaway.com/2010/03/06/qos-pre-classify-and-class-map-order/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 05:18:20 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
				<category><![CDATA[ont]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[gre]]></category>
		<category><![CDATA[policy]]></category>
		<category><![CDATA[pre-classify]]></category>
		<category><![CDATA[qos]]></category>
		<category><![CDATA[tunnel]]></category>

		<guid isPermaLink="false">http://aconaway.com/?p=539</guid>
		<description><![CDATA[I’m still studying for the ONT test, so I did some labs tonight.&#160; One of them was to demonstrate the qos pre-classify command for tunnel interfaces.&#160; When you have a packet sent over a GRE tunnel, the ToS field gets copied to the GRE packet, but there’s no way to see the original packet’s higher-level [...]]]></description>
			<content:encoded><![CDATA[<p>I’m still studying for the ONT test, so I did some labs tonight.&#160; One of them was to demonstrate the <strong>qos pre-classify</strong> command for tunnel interfaces.&#160; When you have a packet sent over a GRE tunnel, the ToS field gets copied to the GRE packet, but there’s no way to see the original packet’s higher-level headers on the way out the interface.&#160; This can be a problem if your service policy needs to see protocol, port, IPs, etc.&#160; The fix for that is to enable qos pre-classify on the tunnel interface and cyrpto map; doing so will provide a copy of the original packet to the physical interface to classify the packet thoroughly.</p>
<p>Here’s the lab.&#160; I was testing from TestHost1 to TestHost2 and configuring R1 to do the pre-classification.&#160; Both R1 and R2 are 3640s running IOS 12.4(25b) and have a GRE tunnel between them.</p>
<p><a href="http://aconaway.com/wp-content/uploads/2010/03/qospre11.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="qospre1" border="0" alt="qospre1" src="http://aconaway.com/wp-content/uploads/2010/03/qospre1_thumb1.png" width="244" height="127" /></a> </p>
<p>I created a policy map that simply acknowledges the existence of ICMP packets; the router doesn’t do anything except match them in a class-map and smile at them on the way through.&#160; Here’s the snippet.</p>
<blockquote><pre>class-map ICMP
 match protocol icmp
!
policy-map PM-S1/0-OUT
 class ICMP
!
interface S1/0
 service-policy output PM-S1/0-OUT
!
interface tunnel 0
 qos pre-classify</pre>
</blockquote>
<p>Not much going on there.&#160; We match ICMP using NBAR’s built-in protocols and do absolutely nothing.&#160; I did a few pings and noticed that there were no matches to the ICMP class and that all the packets were classified as class-default .&#160; I thought that the pre-classify wasn’t working, so I cursed for a while after making no progress at all.&#160; I had no idea what was wrong.</p>
<blockquote>
<pre>R1#sh policy-map int s1/0
 Serial1/0

  Service-policy output: PM-S1/0-OUT

    Class-map: ICMP (match-any)
      0 packets, 0 bytes
      5 minute offered rate 0 bps
      Match: protocol icmp
        0 packets, 0 bytes
        5 minute rate 0 bps

    Class-map: class-default (match-any)
      467 packets, 39832 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: any</pre>
</blockquote>
<p><em>I need to stop here so people don’t get confused.&#160; The configuration that you see is correct; the problem was actually with the NBAR protocols in the class-map.&#160; As Jeremy Stretch notes at the bottom of </em><a href="http://www.packetlife.net/blog/2009/jun/17/qos-pre-classification/"><em>this article</em></a><em>, there’s some issue with matching NBAR protocols.&#160; I later used an extended ACL to match ICMP which worked.&#160; The same is true for the SSH stuff later.&#160; Back to the show.</em></p>
<p>Here’s what I wound up with after cursing a lot and making random configuration changes to get the blasted thing to work.&#160; Notice the order of the classes.</p>
<blockquote>
<pre>class-map match-any TUNNEL
 match protocol gre
!
policy-map PM-S1/0-OUT
 class TUNNEL
 class ICMP</pre>
</blockquote>
<p>I know that order is going to be important, but these are matching two totally different things, so it shouldn’t matter, right?&#160; I checked out the policy-map again and saw that every packet was matching the TUNNEL class-map, and none were matching the ICMP class-map.</p>
<blockquote>
<pre>R1#sh policy-map int s1/0
 Serial1/0

  Service-policy output: PM-S1/0-OUT

    Class-map: TUNNEL (match-any)
      441 packets, 49392 bytes
      5 minute offered rate 2000 bps
      Match: protocol gre
        441 packets, 49392 bytes
        5 minute rate 2000 bps

    Class-map: ICMP (match-any)
      0 packets, 0 bytes
      5 minute offered rate 0 bps
      Match: access-group name ICMP
        0 packets, 0 bytes
        5 minute rate 0 bps

    Class-map: class-default (match-any)
      467 packets, 39832 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: any</pre>
</blockquote>
<p>I finally went downstairs, talked it over with my wife who is my <a href="http://etherealmind.com/network-dictionary-rubber-duck-debugging/">rubber duck</a>, and finally figured it wouldn’t hurt to change the order of the classes.&#160; Once I put ICMP before TUNNEL, it started matching.&#160; I thought that was odd, so I left ICMP and added an SSH class and put it after the TUNNEL class.&#160; I saw the ICMP match and the tunnel match, but I didn’t see a single match on SSH even though I was SSHed through (not to) the router.&#160; </p>
<blockquote>
<pre>R1#sh policy-map int s1/0
 Serial1/0

  Service-policy output: PM-S1/0-OUT

    Class-map: ICMP (match-any)
      252 packets, 28224 bytes
      5 minute offered rate 0 bps
      Match: access-group name ICMP
        252 packets, 28224 bytes
        5 minute rate 0 bps

    Class-map: TUNNEL (match-any)
      5 packets, 440 bytes
      5 minute offered rate 0 bps
      Match: protocol gre
        5 packets, 440 bytes
        5 minute rate 0 bps

    Class-map: SSH (match-any)
      0 packets, 0 bytes
      5 minute offered rate 0 bps
      Match: access-group name SSH
        0 packets, 0 bytes
        5 minute rate 0 bps

    Class-map: class-default (match-any)
      547 packets, 46588 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: any</pre>
</blockquote>
<p>When I moved SSH above TUNNEL, it started incrementing as it should.&#160; The best that I can tell is that both the original packet and the GRE packet are being evaluated when pre-classification is enabled.&#160; Since all the packets in the lab are going over a GRE tunnel, GRE will always be matched if you assess before everything else.</p>
<p>For the record, I did this lab twice – once with the GRE tunnel encrypted and once without encryption.&#160; The results of the pre-classification were the same in both attempts; GRE matches every time.</p>
<p>Send any <strike>ROUTE class vouchers</strike> questions my way.</p>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2010/03/06/qos-pre-classify-and-class-map-order/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ONT Notes &#8211; AutoQoS</title>
		<link>http://aconaway.com/2010/02/10/ont-notes-autoqos/</link>
		<comments>http://aconaway.com/2010/02/10/ont-notes-autoqos/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 23:02:04 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
				<category><![CDATA[ccnp]]></category>
		<category><![CDATA[ont]]></category>
		<category><![CDATA[642-845]]></category>
		<category><![CDATA[auto]]></category>
		<category><![CDATA[autoqos]]></category>
		<category><![CDATA[campus]]></category>
		<category><![CDATA[certification]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[headers]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[policing]]></category>
		<category><![CDATA[policy]]></category>
		<category><![CDATA[qos]]></category>
		<category><![CDATA[shaping]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[voice]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://aconaway.com/?p=484</guid>
		<description><![CDATA[Here are some more notes from my ONT studies.  AutoQoS seems to be pretty straightforward.]]></description>
			<content:encoded><![CDATA[<ul>
<li>AutoQoS benefits
<ul>
<li>Automates QoS for most deployments</li>
<li>Protects business-critical apps to maximize availability</li>
<li>Simplifies QoS deployments</li>
<li>Reduces configuration errors</li>
<li>Cheaper, faster, and simpler deployments</li>
<li>Follows DiffServ</li>
<li>Allows complete control over QoS configs</li>
<li>Allows modification of auto-generated configs</li>
</ul>
</li>
<li>AutoQoS phases of evolution
<ul>
<li>AutoQoS VOIP &#8211; Early version that configures the basics without discovery</li>
<li>AutoQoS for Enterprise &#8211; Second version that only runs on routers and uses two-step process
<ul>
<li>Autodiscovery using NBAR</li>
<li>Generation of class maps</li>
</ul>
</li>
</ul>
</li>
<li>AutoQoS key elements
<ul>
<li>Application classification</li>
<li>Policy generation</li>
<li>Configuration</li>
<li>Monitoring and reporting</li>
<li>Consistency</li>
</ul>
</li>
<li>Interfaces that you can configure AutoQoS on
<ul>
<li>Serial ifs with PPP and HDLC</li>
<li>FR point-to-point subifs (NOT multipoint)</li>
<li>ATM point-to-point subifs</li>
<li>FR-to-ATM links</li>
</ul>
</li>
<li>Prerequsites
<ul>
<li>No Qos policy already configured on if</li>
<li>CEF enabled on if</li>
<li>Correct bandwidth configured on if</li>
<li>IP address on low-speed if</li>
</ul>
</li>
<li>Configuring AutoQoS Enterprise on a router (NOT a switch)
<ul>
<li><strong>auto qos discovery</strong> &#8211; begins discovery process</li>
<li><strong>auto qos</strong> &#8211; generates and applies MQC-based policies</li>
</ul>
</li>
<li>Configuring AutoQoS VOIP
<ul>
<li><strong>auto qos voip [ trust | cisco-phone ]</strong></li>
</ul>
</li>
<li>Verifying AutoQoS on router
<ul>
<li><strong>show auto discovery qos</strong> &#8211; get autodiscovery results</li>
<li><strong>show auto qos</strong> &#8211; examine configuration generated
<ul>
<li>Number of classes</li>
<li>Classification options</li>
<li>Marking options</li>
<li>Queuing mechanisms</li>
<li>Other QoS mechanisms</li>
<li>If, subif, PVC where policy is applied</li>
</ul>
</li>
<li><strong>show policy-map interface</strong> &#8211; look at if stats</li>
</ul>
</li>
<li>Verify AutoQoS VOIP
<ul>
<li><strong>show auto qos</strong></li>
<li><strong>show policy-map interface</strong></li>
<li><strong>show mls qos maps</strong> &#8211; shows CoS to DSCP mappings</li>
</ul>
</li>
<li>Possible issues with AutoQoS
<ul>
<li>Too many traffic classes &#8211; manually consolidate some</li>
<li>Configuration doesn&#8217;t change &#8211; rerun AutoQoS</li>
<li>Configuration may not fit your situation &#8211; fine-tune it by hand</li>
</ul>
</li>
<li>Fine-tuning AutoQoS
<ul>
<li>Use QPM</li>
<li>CLI</li>
<li>copy policy into editor, change, reapply</li>
</ul>
</li>
<li>AutoQoS can match on characteristics besides ACLs and NBAR
<ul>
<li><strong>match input interface</strong></li>
<li><strong>match cos</strong></li>
<li><strong>match ip precedence</strong></li>
<li><strong>match ip dscp</strong></li>
<li><strong>match ip rtp</strong></li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2010/02/10/ont-notes-autoqos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ONT Notes &#8211; Pre-classify and End-to-end QoS</title>
		<link>http://aconaway.com/2010/02/03/ont-notes-pre-classify-and-end-to-end-qos/</link>
		<comments>http://aconaway.com/2010/02/03/ont-notes-pre-classify-and-end-to-end-qos/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 03:13:53 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
				<category><![CDATA[ccnp]]></category>
		<category><![CDATA[ont]]></category>
		<category><![CDATA[642-845]]></category>
		<category><![CDATA[campus]]></category>
		<category><![CDATA[certification]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[control plane]]></category>
		<category><![CDATA[copp]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[headers]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[physical]]></category>
		<category><![CDATA[policing]]></category>
		<category><![CDATA[policy]]></category>
		<category><![CDATA[pre-classify]]></category>
		<category><![CDATA[qos]]></category>
		<category><![CDATA[shaping]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[tunnel]]></category>
		<category><![CDATA[voice]]></category>
		<category><![CDATA[voip]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://aconaway.com/?p=482</guid>
		<description><![CDATA[Here are some more ONT notes.  We study pre-classifying and end-to-end QoS this time.]]></description>
			<content:encoded><![CDATA[<ul>
<li>VPNs (Didn&#8217;t ISCW cover this?)
<ul>
<li>Provide
<ul>
<li>Confidentiality</li>
<li>Integrity</li>
<li>Authentication</li>
</ul>
</li>
<li>Types
<ul>
<li>Remote-access
<ul>
<li>Client-initiated</li>
<li>NAS-initiated</li>
</ul>
</li>
<li>Site-to-site
<ul>
<li>LAN-to-LAN</li>
<li>Extranet</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>L3 Tunneling protocols
<ul>
<li>GRE</li>
<li>IPSec</li>
</ul>
</li>
<li>Pre-classify allows traffic to be classified before being sent across a tunnel or crypto-ed.
<ul>
<li><em>qos pre-classify</em></li>
<li>Provides a view into the original IP headers</li>
<li>To classify on pre-tunnel header, apply the policy to the tunnel interface WITHOUT pre-classify.</li>
<li>To classify on post-tunnel header, apply the policy to the physical interface WITHOUT pre-classify.</li>
<li>To classify on pre-tunnel header, apply the policy to the physical interface WITH pre-classify.</li>
</ul>
</li>
<li>SLA &#8211; agreement with provider to guarantee QoS mechanisms across their network based on your markings.
<ul>
<li>Assures availability, loss, throughput, delay, and jitter.</li>
</ul>
</li>
<li>End-to-end QoS
<ul>
<li>To be effective, each hop in the path must have QoS configured similarly.</li>
<li>Necessary in three locations
<ul>
<li>Campus &#8211; within the customer network</li>
<li>The edges &#8211; customer facing the provider, provider facing customer</li>
<li>On the provider network</li>
</ul>
</li>
</ul>
</li>
<li>QoS tasks
<ul>
<li>Campus access switches
<ul>
<li>Speed/duplex settings</li>
<li>Classification</li>
<li>Trust</li>
<li>Phone/access switch configs</li>
<li>Multiple queues on switch ports, including priority for VOIP</li>
</ul>
</li>
<li>Campus distribution
<ul>
<li>L3 policing and marking</li>
<li>Multiple queues on switch ports, including priority for VOIP</li>
<li>WRED</li>
</ul>
</li>
<li>WAN edge
<ul>
<li>SLA definitions</li>
<li>LLQ</li>
<li>LFI</li>
<li>WRED</li>
<li>Shaping</li>
</ul>
</li>
<li>Provider cloud
<ul>
<li>Capacity planning</li>
<li>PHB</li>
<li>LLQ</li>
<li>WRED</li>
</ul>
</li>
</ul>
</li>
<li>Enterprise campus QoS implementation
<ul>
<li>Implement multiple queues to avoid congestion</li>
<li>Assign VOIP and video to highest priority queue</li>
<li>Esablish trust boundaries</li>
<li>Use policing to rate-limit excess traffic</li>
<li>Use hardware QoS when possible</li>
</ul>
</li>
<li>Control Plane Policing (CoPP)
<ul>
<li>Applies QoS policy to traffic destined for the router
<ul>
<li>Routing protocols</li>
<li>Management protocols</li>
</ul>
</li>
<li>Can be used to avoid DOS attacks</li>
<li>Applied to <em>control-plane</em> in global config</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2010/02/03/ont-notes-pre-classify-and-end-to-end-qos/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ONT Notes &#8211; Congestion Avoidance, Policing, Shaping, and Link Efficiency</title>
		<link>http://aconaway.com/2010/02/02/ont-notes-congestion-avoidance-policing-shaping-and-link-efficiency/</link>
		<comments>http://aconaway.com/2010/02/02/ont-notes-congestion-avoidance-policing-shaping-and-link-efficiency/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 03:09:47 +0000</pubDate>
		<dc:creator>Aaron Conaway</dc:creator>
				<category><![CDATA[ccnp]]></category>
		<category><![CDATA[ont]]></category>
		<category><![CDATA[642-845]]></category>
		<category><![CDATA[bucket]]></category>
		<category><![CDATA[cbwfq]]></category>
		<category><![CDATA[cbwred]]></category>
		<category><![CDATA[certification]]></category>
		<category><![CDATA[cisco]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[fifo]]></category>
		<category><![CDATA[fragmentation]]></category>
		<category><![CDATA[interleaving]]></category>
		<category><![CDATA[policing]]></category>
		<category><![CDATA[policy]]></category>
		<category><![CDATA[qos]]></category>
		<category><![CDATA[queueing]]></category>
		<category><![CDATA[queuing]]></category>
		<category><![CDATA[red]]></category>
		<category><![CDATA[shaping]]></category>
		<category><![CDATA[tail drop]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[token]]></category>
		<category><![CDATA[voice]]></category>
		<category><![CDATA[voip]]></category>
		<category><![CDATA[wfq]]></category>
		<category><![CDATA[wred]]></category>

		<guid isPermaLink="false">http://aconaway.com/?p=477</guid>
		<description><![CDATA[Here's another set of notes from my ONT studies.]]></description>
			<content:encoded><![CDATA[<ul>
<li>Tail drop drawbacks
<ul>
<li>TCP synchronization &#8211; Dropping TCP packets from different flows can cause them all to window down and back up again at the same time in cycles.</li>
<li>TCP starvation &#8211; Non-TCP or aggressive flows can starve everyone else out when TCP throttles back.</li>
<li>No differentiated drop &#8211; Tail drop doesn&#8217;t care who you are, so you get dropped if the queue is full.</li>
</ul>
</li>
<li>RED &#8211; Random Early Detection
<ul>
<li>Avoids tail drop by randomly dropping packets from the queue before it gets full</li>
<li>Only dropped TCP flows slow down instead of everyone who has sent a packet since the queue filled</li>
<li>Queues are smaller.</li>
<li>Link utilization is more efficient</li>
<li>Configured with
<ul>
<li>Minimum threshold &#8211; start dropping when the queue is this size</li>
<li>Maximum threshold &#8211; if the queue is this big, start tail dropping</li>
<li>Mark probability denominator (MPD) &#8211; 1/MPD is the ratio of packets to drop when between the thresholds</li>
</ul>
</li>
</ul>
</li>
<li>WRED &#8211; Weighted RED
<ul>
<li>Based on IP precedence or DSCP values</li>
<li>Less-important packets are dropped more aggressively than important packets</li>
<li>Applied to an interface, VC or a class within a policy map</li>
</ul>
</li>
<li>CBWRED &#8211; Class based WRED
<ul>
<li>Configured with CBWFQ</li>
</ul>
</li>
<li>Policing
<ul>
<li>Limits subrate bandwidth (give you 100kbps on a T1)</li>
<li>Limits traffic of certain applications</li>
<li>Any traffic that exceeds police is dropped or re-classified; it&#8217;s a hard limit</li>
<li>Inbound or outbound</li>
</ul>
</li>
<li>Shaping
<ul>
<li>Sets a limit but buffers any in excess</li>
<li>Requires memory to store the buffer</li>
<li>Buffers = delay and/or jitter</li>
<li>Outbound only</li>
<li>Can respond to network signals like BECNs and FECNs</li>
</ul>
</li>
<li>Token and bucket
<ul>
<li>The queue is a bucket; if a byte of data needs to be sent, it needs a token.</li>
<li>If there are enough tokens, the traffic is considered conforming.</li>
<li>If there aren&#8217;t enough tokens, the traffic is considered exceeding, which triggers the drop (policing), re-classify (policing), or buffer (shaping).</li>
</ul>
</li>
<li>Frame relay traffic shaping (FRTS)
<ul>
<li>Only controls frame relay traffic</li>
<li>Applied on subif or DLCI</li>
<li>Support fragmentation and interleaving</li>
<li>Reacts to FECNs and BECNs</li>
</ul>
</li>
<li>Compression
<ul>
<li>Removed redundancy and patterns in data</li>
<li>Less data = less latency</li>
<li>Hardware compression or hardware-assisted compression does not involve the main CPU</li>
<li>Software compression does</li>
<li>Payload compression</li>
<li>Header compression</li>
</ul>
</li>
<li>Link fragmentation and interleaving
<ul>
<li>Small data might be waiting for larger data pieces to finish sending</li>
<li>Chunks data into smaller fragments so they don&#8217;t have to wait</li>
<li>Interleaving shuffles flows in the Tx queue</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://aconaway.com/2010/02/02/ont-notes-congestion-avoidance-policing-shaping-and-link-efficiency/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
