<?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>Load Balancing Digest &#187; Feature Articles</title>
	<atom:link href="http://lbdigest.com/category/feature-articles/feed/" rel="self" type="application/rss+xml" />
	<link>http://lbdigest.com</link>
	<description>Server Load Balancing Articles and News</description>
	<lastBuildDate>Mon, 22 Aug 2011 12:16:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>OCSP And You</title>
		<link>http://lbdigest.com/2011/04/06/ocsp-and-you/</link>
		<comments>http://lbdigest.com/2011/04/06/ocsp-and-you/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 21:16:14 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Feature Articles]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=533</guid>
		<description><![CDATA[As you may have heard, the SSL certificate vendor Comodo had a security breach recently which allowed a hacker to get valid, signed certificates for a number of websites including...]]></description>
			<content:encoded><![CDATA[<p>As you may have heard, the SSL certificate vendor Comodo had a security breach recently which allowed a hacker to get valid, signed certificates for a number of websites including google.com, mail.google.com, and login.skype.com. The hacker could then set up a fake web site for these domains that would look legit, and the browser bar would show the green &#8220;everything is OK&#8221;.</p>
<p>I&#8217;ll give you a minute because I assume if you were drinking a beverage, it&#8217;s now all over your computer screen.</p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2011/03/stephen-colbert-spit-take.jpg"><img class="aligncenter size-full wp-image-536" title="Colbert does a spit-take as he and fellow comedian Stewart engage in a debate at the &quot;Rally to Restore Sanity and/or Fear&quot; on the National Mall in Washington" src="http://lbdigest.com/wp-content/uploads/2011/03/stephen-colbert-spit-take.jpg" alt="" width="610" height="405" /></a></p>
<p>How much damage could someone do? Take Google for example. This means they could set up a fake Gmail-looking server, and collect the username and password of a user. The user might not ever realize that the site was fake, and their passwords were compromised.</p>
<p>So now there are totally legit-looking certificates out there. Your browser, and every other browser <em>in the entire world</em> trusts them.</p>
<p>Remember, SSL gives us two things: Privacy and trust. Privacy comes though symmetric encryption, and trust is done through signed certificate chains.</p>
<p>Trust needs to start somewhere.  With your browser, whether its Firefox, Safari, IE, Chrome, Opera, whatever, they all come with pretty much the same set of root certificate that act as the start of trust.  Essentially, they come trusting several sources.</p>
<p>So what happens if this trust is broken, or if the certificate was issued under false pretenses? There needs to be a way to revoke that trust on a certificate by certificate basis. There&#8217;s only two ways to do this: A manually updated CRLs (certificate revocation list), or through the <a href="http://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol">OCSP protocol</a>.</p>
<p>CRLs aren&#8217;t a terribly good way to handle it. A CRL is simply of list of certificates that would validate the chain of trust through the regular way (Picard -&gt; LaForge -&gt; Ensign Tony), but aren&#8217;t trusted anymore. Each of your browsers have their own CRLs, and they can be updated by an OS or browser patch. This relies on you or your organization reliably updating software and/or OS, which doesn&#8217;t always happen in a timely manner. Even if it&#8217;s timely, there&#8217;s always a period of time between when the certificate is revoked and when you get that revoked certificate added to your CRL.  This could be hours, days, or even weeks where your browser would trust an otherwise bogus certificate.  This just doesn&#8217;t scale.</p>
<p>OCSP is a better approach, as it can check with a certificate authority <em>every time</em> it hits a website with an SSL certificate. So not only does the browser do the usually trust check, it double checks by checking with the source (an OCSP server hosted by the certificate authority) that the trust is still valid.</p>
<p>If my browser ran OCSP, I don&#8217;t have to worry that I might miss a revoked certificate because I haven&#8217;t updated my browser or OS.  It can also check every time, so if a cert has been revoked, my browser finds out right away.</p>
<p>So while OCSP is a better approach to CRLs, it isn&#8217;t used universally. And it isn&#8217;t &#8220;fail closed&#8221; by default on some browsers, as shown in this table from <a href="http://devcentral.f5.com/weblogs/david/archive/2011/04/03/run-the-fukushima-of-the-security-world-is-coming.aspx">David Holmes at F5</a>.</p>
<table border="1" cellspacing="0" cellpadding="2" width="600">
<tbody>
<tr>
<td width="164" valign="top"><strong>Browser</strong></td>
<td width="236" valign="top"><strong>OCSP Support</strong></td>
<td width="200" valign="top"><strong>Market Share (Mar 2011)</strong></td>
</tr>
<tr>
<td width="164" valign="top">Firefox 3+</td>
<td width="236" valign="top">Yes, Default = Yes</td>
<td width="200" valign="top">26%</td>
</tr>
<tr>
<td width="164" valign="top">IE 7+ [Vista/Win7]</td>
<td width="236" valign="top">Yes, Default = Yes, buts fails open</td>
<td width="200" valign="top">16%</td>
</tr>
<tr>
<td width="164" valign="top"><span style="color: #ff0000;">IE 6 / IE 7 [XP]</span></td>
<td width="236" valign="top"><span style="color: #ff0000;">None</span></td>
<td width="200" valign="top"><span style="color: #ff0000;">30%</span></td>
</tr>
<tr>
<td width="164" valign="top">Opera</td>
<td width="236" valign="top">Yes, but fails open</td>
<td width="200" valign="top">3%</td>
</tr>
<tr>
<td width="164" valign="top">Chrome</td>
<td width="236" valign="top">Yes, Default = Yes</td>
<td width="200" valign="top">10%</td>
</tr>
<tr>
<td width="164" valign="top">Safari</td>
<td width="236" valign="top">Yes, Default = No</td>
<td width="200" valign="top">4%</td>
</tr>
</tbody>
</table>
<p>So right now, OCSP and CRLs are no guarantee that you can trust a certificate unless you use Firefox or Chrome.</p>
<p>Wait, what? No guarantee? Shit.</p>
<p><a href="http://lbdigest.com/wp-content/uploads/2011/04/Reservoir-Dogs-1992.jpg"><img class="aligncenter size-medium wp-image-540" title="Reservoir-Dogs-1992" src="http://lbdigest.com/wp-content/uploads/2011/04/Reservoir-Dogs-1992-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p style="text-align: center;"><em>This is what happens when people don&#8217;t trust each other</em></p>
<p>There are some opinions that certificates should be handled <a href="http://www.imperialviolet.org/2011/03/18/revocation.html  ">differently than they are now</a>. He discusses some interesting ideas, but I think it&#8217;s fair to say PKI (public-key infrastructure) needs a bit of overhaul.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/04/06/ocsp-and-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iRules: Cold Dead Hands</title>
		<link>http://lbdigest.com/2011/03/28/irules-cold-dead-hands/</link>
		<comments>http://lbdigest.com/2011/03/28/irules-cold-dead-hands/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 20:41:13 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Load Balancing 101]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=523</guid>
		<description><![CDATA[One of the biggest differentiators in load balancing is whether or not the product has the ability to manipulate traffic using application logic, not just direct traffic. The best known...]]></description>
			<content:encoded><![CDATA[<p>One of the biggest differentiators in load balancing is whether or not the product has the ability to manipulate traffic using application logic, not just direct traffic.</p>
<p>The best known product for traffic manipulation is likely F5&#8242;s legendary iRules, but other vendors have similar capability such as A10&#8242;s aFlex.   Essentially, this puts an application development platform. Typically this is done with a standard programming language, such as a modified <a href="http://en.wikipedia.org/wiki/Tcl">TCL</a> for iRules and aFlex.</p>
<p>Some vendors, (Cisco I&#8217;m looking at you, as well as Brocade but I&#8217;m less familiar with them lately) lack the ability to manipulate traffic using application logic.</p>
<p>For vendors, this is a great feature to have. Its attractive to potential customers, and it makes it difficult to move to a platform that doesn&#8217;t have this feature. I call it the Charlton Heston feature, since you&#8217;ll only pull it out of a client&#8217;s cold dead hands.  Once you use it, you&#8217;re fairly dependent on it.</p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2011/03/colddeadhands.jpg"><img class="aligncenter size-full wp-image-525" title="colddeadhands" src="http://lbdigest.com/wp-content/uploads/2011/03/colddeadhands.jpg" alt="" width="447" height="280" /></a><em>Get your paws off me, you damned dirty network admins!</em></p>
<p>In general, I&#8217;m a fan of iRules and their ilk. There&#8217;s just too many situations where the ability to manipulate HTTP content has saved the day.</p>
<p>So what kind of manipulation can you do?  There are rules to scrub credit card numbers, so if a web application tries to display a credit card number such as &#8220;5123-1234-1234-1234&#8243; (a big no-no according to <a href="https://www.pcisecuritystandards.org/security_standards/index.php">PCI-DSS</a>), the load balancer would do a regular expression search for that pattern, and replace it with &#8220;XXX-XXX-XXXX-1234&#8243; before sending the response off to the client.</p>
<p>With a programming language and regular expressions, just about anything is possible. And there in lies a problem.</p>
<p><em>Two Edged Sword</em></p>
<p>Having application logic on the load balancer is a double-edged sword.  One the one hand, it allows you to have very granular control over headers and content for requests and responses.  The drawback is <em>it allows you to have very granular control over headers and content for requests and responses.</em></p>
<p>The awesomeness of this manipulation is evident, but there are some caveats.</p>
<p><em>We&#8217;ll fix it in post</em></p>
<p>There&#8217;s a running joke in the film industry called &#8220;we&#8217;ll fix it in post&#8221;.  Essentially, it means who cares if we get it right here, we&#8217;ll just fix it with special effects or editing.  Except it hardly ever works.  You&#8217;ve got the same hazard in something like iRules; it can be a lousy and lazy way to fix to a problem that really should be fixed in the code.</p>
<p><em>Capacity</em></p>
<p>Of course, all this regular expressioning and application logic come at a cost in terms of CPU.  The more of it you do, the lower capacity you&#8217;ll have.  A load balancer capable of serving up 4 Gbits of second of traditional Layer 4-7 traffic may have its capacity dropped to 500 Mbps.  And there&#8217;s no way of telling what the new performance ceiling would be (until you hit it like Wile E Coyote on a rocket sled).</p>
<p><a href="http://lbdigest.com/wp-content/uploads/2011/03/wileecoyote.jpg"><img class="aligncenter size-full wp-image-526" title="wileecoyote" src="http://lbdigest.com/wp-content/uploads/2011/03/wileecoyote.jpg" alt="" width="147" height="200" /></a>This is less of an issue than it used to be, as Moore&#8217;s law has made processors faster and faster, allowing load balancers to handle increasingly difficult tasks, while bandwidth requirements have not increased nearly as dramatically. Not many organizations have more than a couple hundred megabits per second to the Internet, while load balancers are capable of handling several (even dozens) of Gigabits.</p>
<p><em>Latency</em></p>
<p>Latency is a dirty word in networks and applications, and certainly a potential issue with application logic.  If you&#8217;re going to look at a cookie, the latency imposed by a load balancer will be minimal.  If you&#8217;re going to calculate Pi to the 100th digit on every HTTP request, that&#8217;s going to add a certain amount of latency to the transaction.  Like the capacity ceiling, it&#8217;s very difficult to predict what that additional latency will be when adding more and more logic. And depending on the load profile, that latency may vary quite a bit over time.</p>
<p><em>Creep</em></p>
<p>Capacity and latency are easy enough issues to deal with, but creep is very problematic.  It&#8217;s a &#8220;Layer 8&#8243; problem, and one that can quickly spiral out of control.</p>
<p>Typically the creep comes into play when you first implement application logic, and it fixes a vexing problem. You&#8217;re the hero, and someone perks their ears up and says &#8220;wow, what else can you do with it?&#8221;</p>
<p>&#8220;Anything&#8221;, you say confidently.  And anything is what they throw at you. Add semi-colons at the end of paragraphs, replace all double-spaces after a period with single spaces, etc.</p>
<p>It can very easily spiral out of control, so you need to know when to put your foot down (hint: early).</p>
<p><em>Skills</em></p>
<p>To develop this application logic, you need to understand HTTP really well. When developing most web applications on a platform like ASP or PHP, you don&#8217;t really need to understand HTTP all that well.  But the load balancer manipulates on the HTTP level, so you&#8217;ll really need to be up on your HTTP. You also need to have the programming skills to pay the bills. Especially for a network admin, those programming muscles might not get flexed on a regular basis.</p>
<p>I&#8217;ve also heard the argument that iRules and their ilk are only there to fix problems that should have been fixed in the code. And there&#8217;s a lot of truth in that; they are typically used in situations where the problem could also be solved at the application.</p>
<p>But that&#8217;s also like saying that I shouldn&#8217;t need a lock on my door, because people should not be jerks and go around stealing stuff.</p>
<p>In IT, there are always going to be situations where its either easier to fix the problem on the load balancer, or it&#8217;s the only viable solution (code locked down, client doesn&#8217;t control the code as its a third party, developer ran away to Brazil with their secret family and won&#8217;t return calls).</p>
<p>Bottom line? I&#8217;d rather have it than not have it, but I&#8217;m very careful with it. After all, with great power comes great potential for epic fail.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/03/28/irules-cold-dead-hands/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Achilles Heal for Virtual Load Balancers: SSL</title>
		<link>http://lbdigest.com/2011/03/14/achilles/</link>
		<comments>http://lbdigest.com/2011/03/14/achilles/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 18:03:07 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[In the Wild]]></category>
		<category><![CDATA[Load Balancing 101]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=512</guid>
		<description><![CDATA[I&#8217;m a big fan of virtualization.  There&#8217;s a lot to like about it, including consolidation (getting rid of space-heater servers that do nothing running 1% CPU and sucking up electricity...]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-516" title="maxheadroom" src="http://lbdigest.com/wp-content/uploads/2011/03/maxheadroom.jpg" alt="" width="440" height="331" /></p>
<p>I&#8217;m a big fan of virtualization.  There&#8217;s a lot to like about it, including consolidation (getting rid of space-heater servers that do nothing running 1% CPU and sucking up electricity and throwing off heat), flexibility, and management.  I&#8217;ve even gone and got my VCP4 (VMware Ceritified Professional 4) certification.  (Hear that ladies? I&#8217;m <em>certified.</em>)</p>
<p>One aspect of virtualization I&#8217;m a fan of is the appliances.  Vendors are taking physical appliances (such as a Vyatta router) and turning it into a VM appliance.  I don&#8217;t have to worry about an underlying operating system (and the requisite patches), the appliance vendor handles the software and the OS.</p>
<p>Several load balancing vendors have gotten into that virtualization game.  Vendors that have traditionally offered hardware appliances now have virtual appliances (some for years).  From From F5 to KEMP, from Coyote Point to loadbalancer.org, there are a number of virtual load balancers/ADCs to choose from.   And for the most part, they offer the same features as their hardware brethren.</p>
<p>Their throughput and performance is hampered somewhat by the fact that they&#8217;re all software and no silicon. Everything is done in the x86 virtualized CPU(s).  Still, depending on how you provision them, they can generally handle several thousand HTTP requests per second even in Layer 7 mode.</p>
<p>The one caveat to virtual load balancers is that their SSL performance is severely limited.  Even value-market load balancers that do most of their functions in a general purpose CPU will still use SSL ASICs for the asymmetric crypto (even using the general processor for the less CPU-intensive symmetric crypto).</p>
<p style="text-align: left;">The first part of every new SSL connection is a very CPU-intensive asymmetric operation (about 1000x more CPU intensive than symmetric operations).    CPUs that can normally handle tens of thousand of regular TCP connections per second can only handle a few thousand SSL connections at the most.</p>
<p>It is technically possible to do hardware SSL acceleration on a VM load balancers however.  It requires that the virtual machine host (like VMWare ESXi) have an SSL card installed, and VM Passthrough enabled (where the virtual machine can have direct access to physical hardware).</p>
<p>Unfortunately, these SSL cards are tough to come by.  Cavium is probably the most notable vendor, but cards from them aren&#8217;t exactly easy to come by, and they&#8217;re fairly expensive.  You may not have the option if you&#8217;re using blade systems.   And if you you want to leverage features like HA and DRS (using ESX hosts in a cluster), then every machine in the cluster would need to have such a card.  I&#8217;m not aware of any virtual load balancer vendor that even supports this configuration.</p>
<p>There are a lot of situations where virtual load balancers make a lot of sense, but keep in mind that the SSL performance capability is going to be fairly constrained.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/03/14/achilles/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CPS versus TPS: How to Measure SSL Performance</title>
		<link>http://lbdigest.com/2011/03/11/cps-versus-tps-how-to-measure-ssl-performance/</link>
		<comments>http://lbdigest.com/2011/03/11/cps-versus-tps-how-to-measure-ssl-performance/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 07:44:34 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Buyer's Guide]]></category>
		<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Load Balancing 101]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=506</guid>
		<description><![CDATA[SSL performance is a tricky thing to measure.  There are a lot of different aspects to consider, and on top of that different vendors use slightly different definitions for the...]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="http://icanhascheezburger.files.wordpress.com/2010/01/funny-pictures-cat-will-do-science.jpg" alt="" width="500" height="674" /></p>
<p>SSL performance is a tricky thing to measure.  There are a lot of different aspects to consider, and on top of that different vendors use slightly different definitions for the same terms. I was talking with a vendor the other day, and I realized as we were talking performance numbers we had different definitions for the term TPS (Transactions Per Second) and CPS (Connections Per Second).</p>
<p>TPS is probably one of the more ill-advised acronyms (<a href="http://it.toolbox.com/blogs/oracle-guide/i-smell-a-rat-an-oracle-rat-acronyms-may-or-may-not-be-your-friend-20767?reftrk=no" target="_blank">boy do we love acronyms</a>) for load balancers, because it&#8217;s open to debate what the &#8220;transaction&#8221; in transactions per second means.</p>
<h3><strong>SSL Basics</strong></h3>
<p>Before we talk about CPS versus TPS, let&#8217;s review some SSL basics.  In a new SSL connection, two things happen: An asymmetric exchange, then a transition to symmetric encryption.</p>
<p>The asymmetric part is why load balancers from <a href="http://www.f5.com" target="_blank">F5</a> to <a href="http://kemptechnologies.com" target="_blank">KEMP</a> use SSL accelerator chips.  It&#8217;s incredibly CPU intensive; so much so that a server that is capable of tens of thousands of connections per second of regular TCP connections is only capable of several hundred SSL connections.  To keep this from crippling the CPU, SSL accelerator processors are used to offload the cryptographic functions from the main CPU.</p>
<p>So when we measure SSL performance of a load balancer, we typically want to measure three things:</p>
<p>1: How many new SSL connections per second can a device handle, that is how many of the expensive RSA operations per second are possible.</p>
<p>2: How much bandwidth of SSL traffic can the device push.  This is symmetric encryption (such as AES), and is much easier on a CPU.</p>
<p>3: How many HTTP requests per second can the device handle after an SSL connection is established.  In HTTP 1.1, a client is allowed to make multiple HTTP requests off a single TCP/SSL connection.  This is far more efficient than the old HTTP 1.0 standard, that required a separate TCP connection for each object.  Many sites will have pages with literally hundreds of objects (I&#8217;m looking at you http://vg.no).</p>
<p>The trick is how many HTTP requests per SSL connection?  Personally, I&#8217;d say anywhere between 10 to 20 is a pretty good place to start, but that&#8217;s not what everyone uses.  In an epically flawed fight that <a href="http://www.o3magazine.com/4/a/0/2.html">o3 magazine picked with F5</a>, author John Buswell claimed that an Nginx-based box he built could handle 25,000 TPS.</p>
<blockquote><p><em>The system had no problems handling over 26,590 TPS, the test lab ran out of capacity to generate additional transactions. Compare that to the F5 Networks Big-IP 6900 which handles a maximum of 25,000 TPS but carries a starting price tag of $55,000. </em></p></blockquote>
<p>The box he used had 2 quad core Opteron CPUs that <em>were in no way capable</em> of doing 26,000+ new SSL connections per second without an SSL accelerator card (which he didn&#8217;t use).  A few thousand 1024-bit RSA operations per second at the most, but definitely not 26,000.</p>
<p>He likely made the mistake of opening a couple of SSL connection, and running 25,000+ HTTP request per second off those open TCP/SSL connections (which is not even close to a real world scenario).   25,000 HTTP requests per second is within the capabilities of his box.  This is not how F5 measures TPS, nor how any other vendor measures TPS.  Of course, I&#8217;m only guessing at his methodology, as he never bothered to share his testing methodology.  (F5 and other vendors share their methodology).</p>
<p>TPS versus CPS</p>
<p>While SSL throughput is pretty easy to measure and the definition is identical for all vendors, the terms TPS and CPS aren&#8217;t.  So what do they mean?  CPS (Connections per Second) can mean a couple of things.  For SSL, it would typically mean <em>new</em> SSL connections, requiring the asymmetric operation.  Some vendors use TPS for this definition (the T standing for an asymmetric transaction), while other vendors use CPS for the SSL portion, and TPS for the HTTP-within-an-SSL connection.</p>
<p>So it&#8217;s important to understand what&#8217;s being measured.  Different vendors have different ideas of what that means, although they are honest differences of opinions (things reasonable people can disagree on).  Most vendors are reputable and will outline the methodology they used to come up with their numbers (03 magazine did not).</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/03/11/cps-versus-tps-how-to-measure-ssl-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3 Most Common SSL Problems</title>
		<link>http://lbdigest.com/2010/10/05/common-ssl-problems/</link>
		<comments>http://lbdigest.com/2010/10/05/common-ssl-problems/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 22:28:00 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=485</guid>
		<description><![CDATA[Ah, SSL.  Everyone uses it, but to most people it&#8217;s a confusing mess of protocols and configurations.   What&#8217;s worse is that even if dealing with SSL is part of...]]></description>
			<content:encoded><![CDATA[<p>Ah, SSL.  Everyone uses it, but to most people it&#8217;s a confusing mess of protocols and configurations.   What&#8217;s worse is that even if dealing with SSL is part of our job description, we typically don&#8217;t deal with it day-to-day.   When a problem arises, it can be a little confusing.</p>
<p>So to help with the common ailments of SSL, and how to resolve and/or avoid them, I give you the 3 most common SSL problems.</p>
<p><strong>1: SSL Scramble</strong></p>
<p>You get a call from your help desk, and they say they&#8217;re getting quite a few calls about SSL errors.  You punch up your website, and sure enough, &#8220;cannot verify&#8221; of some sort comes up on your screen.  You haven&#8217;t changed anything, so what gives?  Then you check the date on your SSL certificate.</p>
<p>It expired two days ago.  And thus begins the SSL shuffle, where you frantically try to get the SSL certificate provider to turn around an updated certificate as quickly as possible.</p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2010/10/Polish-Mickey-Riot-Police.jpg"><img class="aligncenter size-full wp-image-493" title="Polish-Mickey-Riot-Police" src="http://lbdigest.com/wp-content/uploads/2010/10/Polish-Mickey-Riot-Police.jpg" alt="" width="470" height="331" /></a><em>Chaos reigns supreme when your SSL certificates expire</em></p>
<p>The SSL shuffle has happened to a lot of organizations over the years, including <a href="http://www.storefrontbacktalk.com/securityfraud/target-com-blocked-ssl-certs-blamed/">Target.com back in July</a>.</p>
<p>Most SSL shops will turn a certificate request in a day or so, but minutes seem to last quite a long time when your site is running on an expired SSL cert.</p>
<p>It&#8217;s not like you don&#8217;t know when the certificate is going to expire.  It says so on the certificate you get back from the certificate authority.  So why does this keep happening?  Well, most certificates expire in 1 or 2 years, and that&#8217;s about 10-20 years in IT years.  Reminder emails get filled and forgotten, or the person is on vacation, etc.  So put the expiration in you Outlook, Google or iCal calendar.</p>
<p><strong>2: Domain Name Mismatch</strong></p>
<p>Another common issue with SSL is the domain name mismatch.   This is actually part of a larger issue, &#8220;To WWW, or not too WWW&#8221;.  When you post links to your site, advertise it, write applications that use full domains names in the URL, do you pre-pend your domain name with &#8220;www&#8221;, or do you just use the domain name?</p>
<p>For example, does this site show up as &#8220;www.lbdigest.com&#8221;, or &#8220;lbdigest.com&#8221;.  If you try to punch in &#8220;www.lbdigest.com&#8221; on this site, you actually get an HTTP 301 redirect to &#8220;lbdigest.com&#8221;.   I picked non-WWW, because that&#8217;s what&#8217;s hip and cool, and I&#8217;m nothing <em>but</em> hip and cool.  However, it doesn&#8217;t matter which one you pick so long as you&#8217;re consistent.</p>
<p><img class="aligncenter size-full wp-image-494" title="301lbdigest" src="http://lbdigest.com/wp-content/uploads/2010/10/301lbdigest1.png" alt="" width="580" height="259" /></p>
<p style="text-align: center;"><em>See what I did there? I bounced you like a low-rider in a Dr Dre Video</em></p>
<p>Why do you need to be consistent? Well, one reason is your SSL certificate.  If you get an SSL certificate for &#8220;www.lbdigest.com&#8221;, and you link to &#8220;lbdigest.com&#8221;, you&#8217;ll get an SSL warning (unless you get a wildcard certificate).</p>
<p>When you apply for a typical SSL certificate, there&#8217;s a field called &#8220;common-name&#8221;, which is the fully qualified domain name (www.lbdigest.com, webmail.lbdigest.com, etc.) that you&#8217;re going to use for your site.  Make sure you pick the correct domain name, because getting a new one usually requires buying a new certificate.</p>
<p><strong>3: Intermediate Certificates</strong></p>
<p>This one is the most confusing for people.   Most SSL certificate authorities now require the use of intermediate SSL certificates.  These provide protection to the root CA key (perhaps the most valuable 2048 bits in the world) and also allow companies who haven&#8217;t gotten their root certificates into your browser to sell SSL certificates (by piggy-backing off of Verisign or another root CA&#8217;s cert).   I&#8217;ll now show you my world-famous SSL diagram again:</p>
<p><img class="aligncenter" title="Why Women Don't Talk To Tony" src="http://lbdigest.com/wp-content/uploads/2010/08/trustchain.png" alt="" width="505" height="907" /></p>
<p style="text-align: center;"><em>Tony, have you even talked to a girl? </em></p>
<p>So we all agree, SSL certificates are great (and Tony looks great in a Starfleet uniform), but how do we utilize them?  Well, they&#8217;re installed along side your SSL certificate in the SSL device (load balancer or web server).  They deliver your certificate along with the intermediate to the SSL client, that builds a chain in the client&#8217;s browser to the root CA.</p>
<p>So what&#8217;s the problem? Well, each certificate authority may have several different intermediate certificates.  And you need to pick the right one.  For instance, Verisign has <a href="https://knowledge.verisign.com/support/ssl-certificates-support/index?page=content&amp;id=AR657&amp;actp=LIST&amp;viewlocale=en_US">about 18 to choose</a> from. So make sure you get the right one, and test it using a validation tool from your certificate authority vendor, such as this<a href="https://www.digicert.com/help"> universal one</a> from Digicert.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2010/10/05/common-ssl-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSL: Who Do You Trust?</title>
		<link>http://lbdigest.com/2010/08/11/ssl-who-do-you-trust/</link>
		<comments>http://lbdigest.com/2010/08/11/ssl-who-do-you-trust/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 20:23:09 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=473</guid>
		<description><![CDATA[One of the most important technologies used in the modern Internet is the TLS/SSL protocol (typically called just SSL, but that’s a whole different article).  The two benefits that TLS/SSL...]]></description>
			<content:encoded><![CDATA[<p>One of the most important technologies used in the modern Internet is the <a href="http://en.wikipedia.org/wiki/Transport_Layer_Security">TLS/<strong>SSL</strong></a> protocol (typically called just <strong>SSL</strong>, but that’s a whole different article).  The two benefits that TLS/<strong>SSL</strong> gives us are <em>privacy</em> and <em>trust</em>.</p>
<p>Privacy comes through the use of digital encryption (RSA, AES, etc.)  to keep your web interactions, such as credit card numbers, emails,  passwords, confidential documents, etc., safe from prying eyes.</p>
<p>But having private communications with another party is all for  naught if you’re talking to the wrong party.  You also need trust.   Trust that someone is who they say they are. For Internet commerce to  work on a practical level, you need to able to trust that when you’re  typing your username and password into your bank’s website, that you’re  actually connecting to a bank, and not someone pretending to be your  bank.</p>
<p>Trust is accomplished through the use of SSL certificates, CAs (certificate authorities), intermediate certificates, and certificate chains which combined is known as <a href="http://en.wikipedia.org/wiki/Public_key_infrastructure">PKI (Public Key Infrastructure)</a>.    To elaborate on the use of these technologies to provide trust, I’m  going to forgo the traditional Bob and Alice encryption examples, and go  for something a little closer to your heart.  I’m going to drop some <strong>Star</strong> <strong>Trek</strong> on you.</p>
<p>Let’s say you’re in the market for a starship.  You’re looking for a  sporty model with warp drive, heated seats, and most importantly, a  holodeck. You go to your local Starfleet dealer, and you find this guy.</p>
<p>Ensign Tony.</p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2010/08/ensigntony-300x228.jpg"><img class="aligncenter size-full wp-image-474" title="ensigntony-300x228" src="http://lbdigest.com/wp-content/uploads/2010/08/ensigntony-300x228.jpg" alt="" width="300" height="228" /></a><em>Seriously Tony, how do you get girls to even talk to you?</em></p>
<p style="text-align: left;">The problem is, you don’t trust this guy.  It’s nothing personal, but  you just don’t know him. He says he’s Ensign Tony, but you have no idea  if it’s really him or  not.  But there is one Starfleet officer you do  know and trust implicitly, even though you never met him.  You trust  Captain Jean-Luc Picard.</p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2010/08/picard.jpg"><img class="aligncenter size-full wp-image-475" title="picard" src="http://lbdigest.com/wp-content/uploads/2010/08/picard.jpg" alt="" width="292" height="356" /></a><em>If there’s a problem a peace negotiation can’t solve, I haven’t met it yet</em></p>
<p>Captain Picard is the kind of guy you <em>start out</em> automatically trusting.  His reputation precedes him. Your browser is  the same way, in that right out of the gate there are several sources  (such as Verisign) that your browser trusts implicitly.</p>
<p>But you’re not dealing with Picard directly.  Instead, you’re dealing  with Ensign Tony.  So Picard vouches for Ensign Tony, and thus a trust  chain is built.   You trust Picard, and Picard trusts Ensign Tony, so by  the transitive property, you can now trust Ensign Tony.</p>
<p>Whether it’s Internet Explorer, Firefox, Safari, Chrome, Opera, or  other browsers, they come built-in trusting a number of sources.</p>
<p><strong>Intermediate Certificates</strong></p>
<p>One of the lesser understood concepts in the us of SSL certificates is the intermediate certificates.  These are certificates  that sit between the CA (Picard) and the site certificate (Ensign Tony).</p>
<p>You see, Picard is an important man.  The Enterprise has over a  thousand crew members and he can’t possibly personally know and trust  all of them.  (In Ensign Tony’s case, there’s also the little matter of a  restraining order.)  So he farms the trust out to his subordinates. And  one crew member he does implicitly trust is Chief Engineer Geordi La  Forge.</p>
<p><a href="http://lbdigest.com/wp-content/uploads/2010/08/99problemsjordi-300x229.jpg"><img class="aligncenter size-full wp-image-476" title="99problemsjordi-300x229" src="http://lbdigest.com/wp-content/uploads/2010/08/99problemsjordi-300x229.jpg" alt="" width="300" height="229" /></a></p>
<p style="text-align: center;"><em>I have not clever caption for this image, as it is perfect.</em></p>
<p>Ensign Tony works for Geordi, and Geordi trusts Ensign Tony.   Thus  Geordi becomes the intermediate certificate.  You can’t trust Ensign  Tony directly through Picard because Picard can’t vouch for Tony, but  Geordi can vouch fro Tony, and Picard can vouch for Geordi, so we have  built a chain of trust.   This is why load balancers and web servers  often require you to install an intermediate certificate.</p>
<p><a href="http://lbdigest.com/wp-content/uploads/2010/08/trustchain.png"><img class="aligncenter size-full wp-image-477" title="trustchain" src="http://lbdigest.com/wp-content/uploads/2010/08/trustchain.png" alt="" width="505" height="907" /></a></p>
<p style="text-align: center;"><em><em>This may be the greatest SSL diagram ever made.</em></em></p>
<p>Here’s what happens when you don’t install an intermediate certificate onto your load balancer/ADC/web server:</p>
<p><a href="http://lbdigest.com/wp-content/uploads/2010/08/nochain.png"><img class="aligncenter size-full wp-image-478" title="nochain" src="http://lbdigest.com/wp-content/uploads/2010/08/nochain.png" alt="" width="560" height="692" /></a></p>
<p style="text-align: center;"><em>You’re 33 years old Tony, you’d think you would have made Lieutenant by now</em></p>
<p>One of the practical issues that comes up with intermediate certificates is which one do you use?  The various SSL certificate vendors such as Thawte, Digicert, and Verisign have several  intermediate certificates depending on the type of certificate you  purchase. Sometimes it’s not always obvious.  If you have any doubts,  use one of the SSL certificate validation tools from the various vendors , including this one by <a href="http://www.digicert.com/help">Digicert</a>.  It will tell you if the certificate chain works or not. Do <em>not</em> let a test from your browser determine whether your certificate works.   Browsers handle certs differently, and a validation tool will tell you  if it will work with all browsers.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2010/08/11/ssl-who-do-you-trust/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tony, You Idiot</title>
		<link>http://lbdigest.com/2010/08/10/tony-you-idiot/</link>
		<comments>http://lbdigest.com/2010/08/10/tony-you-idiot/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 21:19:36 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=462</guid>
		<description><![CDATA[Wondering WTF happened?  Wondering why we seemed to have gone back in time?  Well, the explanation is rather simple. I&#8217;m an idiot. I migrated from one hosting system to another. ...]]></description>
			<content:encoded><![CDATA[<p>Wondering WTF happened?  Wondering why we seemed to have gone back in time?  Well, the explanation is rather simple.</p>
<p>I&#8217;m an idiot.</p>
<p>I migrated from one hosting system to another.  I run regular backups of my MySQL database.</p>
<p>Well, apparently there was a field in one of the wordpress databases that the mysql backup application didn&#8217;t like.   So as it dumped the contents of the database, it hit this particular record and then stopped.  So the backups are frozen in time.</p>
<p>By the time I figured this out, I had purged all the data off my old server.</p>
<p>Woops.</p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2010/08/picard-facepalm.jpg"><img class="aligncenter size-medium wp-image-463" title="picard-facepalm" src="http://lbdigest.com/wp-content/uploads/2010/08/picard-facepalm-300x197.jpg" alt="" width="300" height="197" /></a><em>Ensign Tony, Didn&#8217;t Anyone Tell You To Test Those Backups?</em></p>
<p>I&#8217;ll be reconstructing the old articles as best I can.  But for now, enjoy Picard&#8217;s epic facepalm.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2010/08/10/tony-you-idiot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One Arm, One Network, To Rule Them All</title>
		<link>http://lbdigest.com/2009/10/25/one-arm-one-network-to-rule-them-all/</link>
		<comments>http://lbdigest.com/2009/10/25/one-arm-one-network-to-rule-them-all/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 22:08:19 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=425</guid>
		<description><![CDATA[Ok, I&#8217;m not really a Tolkin fan (you dare speak such heresy! -ed), but I couldn&#8217;t resist the nerd reference.Â  Especially from a guy with a license plate that says...]]></description>
			<content:encoded><![CDATA[<p>Ok, I&#8217;m not really a Tolkin fan (<em>you dare speak such heresy! -ed</em>), but I couldn&#8217;t resist the nerd reference.Â  Especially from a guy with a license plate that says &#8220;NERD 1&#8243; (I&#8217;m not kidding).</p>
<p>This post covers network topology, which is how the load balancer fits into the network.Â  How a device fits into the network is usually a difficult concept to get, and often that&#8217;s simply because people make it tougher than it need be. Basically, for a load balancer to be put into a network effectively, two things need to happen.</p>
<ol>
<li>Traffic needs to flow through the load balancer on the way in</li>
</ol>
<ol>
<li>Traffic needs to flow through the load balancer on the way out</li>
</ol>
<p>The first part is easy, as there&#8217;s only one way.Â  We direct traffic to the virtual IP (VIP) and port sitting on the load balancer.Â  This is the IP and port that pretends to be the server.Â  Getting traffic through the load balancer on the way out is probably one of the toughest concepts to grasp when learning load balancers, as there are several ways to accomplish this.</p>
<p>There&#8217;s on method of getting traffic through the load balancer on the way out that&#8217;s a quick way to drop a load balancer into an existing infrastructure with minimal changes to the network topology.Â  This is called one-armed, route-path.</p>
<p>One-armed, route path is not as popular as some of the other methods, although it has the distinct benefit of being a good, quick &#8220;drop-in&#8221; deployment.Â  Here&#8217;s how it works.</p>
<p style="text-align: left;">Let&#8217;s say you&#8217;ve got a network with a couple of servers sitting behind a firewall.Â  This firewall does NAT from a public address space to private IPs. This is a pretty common scenario for a small to medium sized business.</p>
<p style="text-align: center;"><img class="size-medium wp-image-429 aligncenter" title="onearmedroutepathBEFORE" src="http://lbdigest.com/wp-content/uploads/2009/10/onearmedroutepathBEFORE-193x300.png" alt="onearmedroutepathBEFORE" width="193" height="300" /></p>
<p>In the example shown above, the default gateway for the servers is the firewall, at 192.168.1.1.Â  To network admins, The concept of a default gateway is second nature.Â  To server folks, keep this in mind:Â  If you want to send IP traffic to a system not on your local network, you need a router to handle delivery.Â  That is your default gateway.Â  Without a default gateway for your servers, you can&#8217;t communicate with the Internet.</p>
<p>So now lets say we want to drop a load balancer into the network.Â  There are several options, and for the most part the advantages of one over another are logistical, not performance related.Â  For example, to do two-armed, Layer 3 path (arguably the most common topology), you would need to put in a new IP network between the firewall and the servers, and one new Layer 2 network.Â  This would require re-addressing the IPs on all the servers.</p>
<p>And while adding a new Layer 2 and Layer 3 network would certainly work, we can use one-armed, Layer 3 path without the need to re-IP all the servers or adding new networks.</p>
<p style="text-align: center;"><img class="size-medium wp-image-430  aligncenter" title="onearmedroutepathAFTER" src="http://lbdigest.com/wp-content/uploads/2009/10/onearmedroutepathAFTER-195x300.png" alt="onearmedroutepathAFTER" width="195" height="300" /></p>
<p>In the figure above, you see that we&#8217;ve changed the default gateway on the servers to that of the administrative IP of the load balancer (if there were two load balancers, they would have a floating administrative IP which you would use as the default gateway).Â Â  The default gateway of the load balancer is that of the firewall.</p>
<p>This seems a little odd, as we&#8217;ve got two default gateways on the same IP network.Â  While unusual, it works, and it&#8217;s a handy way to drop a load balancer into a network with minimal changes.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2009/10/25/one-arm-one-network-to-rule-them-all/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Your Epic Fail:  Fast or Slow?</title>
		<link>http://lbdigest.com/2009/10/11/your-epic-fail-fast-or-slow/</link>
		<comments>http://lbdigest.com/2009/10/11/your-epic-fail-fast-or-slow/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 00:10:11 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Pontification]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=412</guid>
		<description><![CDATA[In the load balancing world, many vendors have the concept of &#8220;sorry servers&#8221;, or &#8220;backup server farms/pools&#8221;.Â  Essentially, if most or all of your primary servers are down, traffic is...]]></description>
			<content:encoded><![CDATA[<p>In the load balancing world, many vendors have the concept of &#8220;sorry servers&#8221;, or &#8220;backup server farms/pools&#8221;.Â  Essentially, if most or all of your primary servers are down, traffic is redirected to a backup server(s) containing either reinforcements of the same web application, or a &#8220;sorry&#8221; page.</p>
<p>The idea is that if everything goes terribly wrong, at least your visitors will see something, instead of nothing.</p>
<p>Which begs the question: How do you like to fail?Â  Fail fast or fail slow? Would it be better to fail slow, where your site becomes slower and slower, or possibly just unresponsive, or would it be better to put up a quick-serving sorry page if the infrastructure melts?<img class="size-medium wp-image-414 alignright" style="margin: 4px;" title="technical_difficulties" src="http://lbdigest.com/wp-content/uploads/2009/10/technical_difficulties-300x216.jpg" alt="technical_difficulties" width="300" height="216" /></p>
<p>A wildly successful website can easily become a victim of its own success.Â  Take the case of two sites that experienced exponential growth in a relatively short period of time:Â  Twitter.com and Myspace.com.</p>
<p>They took two different paths in the realm of failure.Â  One failed fast, and one failed slow.</p>
<p>Although Myspace has lost most of its lead to Facebook, it&#8217;s still a wildly popular social media site.Â  They had exponential growth from their start in 2003, and there were many periods of time when Myspace.com was just&#8230; slow.Â  Really really slow. You can&#8217;t really blame them.Â  It&#8217;s tough when users come faster than you can install servers and provision bandwidth.Â  It&#8217;s a happy problem to have usually, but it&#8217;s still a logistical challenge.</p>
<p><img class="size-medium wp-image-413 alignleft" style="margin: 5px;" title="Fail Whale" src="http://lbdigest.com/wp-content/uploads/2009/10/fail_whale-300x225.jpg" alt="Fail Whale" width="300" height="225" /></p>
<p>Twitter.com came around a bit later, but it also had exponential growth and problems coping.Â  But for the most part, they failed in a different way:Â  Fail Whale. When something went terribly awry, instead of a slow site, you&#8217;d get a very quick fail whale image.</p>
<p>Perhaps this is a matter of personal opinion, but I think if you&#8217;re going to fail, it&#8217;s better to fail quick than fail slow.Â  That is, have a sorry page or sorry site that comes up quick, rather than a site that is too slow for anyone to use.</p>
<p>The quick sorry page can be done with many of the load balancing/ADC vendors by using the backup/sorry serverfarm feature.Â  Keeping a group of reserve servers, serving up only a &#8220;oops, sorry about that&#8221; type of page, your own fail whale, can be better than having a really slow or unresponsive web site.</p>
<p>Of course, you won&#8217;t always be able to choose the method of your failure.Â  If your upstream ISP goes dark, there&#8217;s not much you can do (unless you have an offsite fail site).Â  But I personally think having a fail site is a more &#8220;professional&#8221; way to fail than having a slow or unresponsive site when things go belly up (and we all know they will).</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2009/10/11/your-epic-fail-fast-or-slow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HTTP Message: The PDU of Layer 7</title>
		<link>http://lbdigest.com/2009/08/02/http-message-pdu-layer/</link>
		<comments>http://lbdigest.com/2009/08/02/http-message-pdu-layer/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 23:51:23 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Load Balancing 101]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=394</guid>
		<description><![CDATA[If there&#8217;s one thing that made load balancing and web servers in general &#8220;click&#8221; with me, and make it much simpler to troubleshoot, it&#8217;s this:Â  See the world like a...]]></description>
			<content:encoded><![CDATA[<p>If there&#8217;s one thing that made load balancing and web servers in general &#8220;click&#8221; with me, and make it much simpler to troubleshoot, it&#8217;s this:Â  See the world like a load balancer.Â  We see web pages, page layouts, &#8220;page cannot be displayed&#8221; errors, and menus.Â  But your load balancer/web server doesn&#8217;t see any of this.Â  In fact, they only see <em>one</em> thing.Â  HTTP messages.</p>
<p>In the networking realm, there is the concept of PDUs, or Protocol Data Units.Â  These are the discreet messages for a particular protocol. Â  Every protocol has them.Â  In Layer 2, the Ethernet protocol has the Ethernet Frame, and for Layer 3 the IP protocol has the IP packet, just to name a few examples.Â Â  Each of theses PDUs have their own format.</p>
<p>For the HTTP protocol, which operates on Layer 7, we also have a PDU: <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html">The HTTP message</a>.Â  HTTP messages are further divided into two categories: HTTP requests and responses.</p>
<p>When your browser wants an object, such as an JPG or HTML file, it must make a properly formatted HTTP request.Â  The server responds with an HTTP object.Â  One object equals one request plus one response.Â  Typically the response includes the object, although sometimes the response says simply &#8220;file not found&#8221; (HTTP 404), &#8220;object moved&#8221; (HTTP 301 or 302), or even &#8220;access denied&#8221; (HTTP 400), among others.</p>
<p>But the thing to keep in mind is that every object, which is to say every JPG, HTML, Flash, CSS, MPEG, every individual file, will require its own HTTP request and will generate an HTTP response from the server.Â  A web page consisting of 10 objects will require 11 HTTP requests:Â  One for the HTML page itself, and 10 additional requests to pull all of the objects referenced in the HTML.</p>
<p>In the next post, we&#8217;ll discuss some tools you can use to troubleshoot HTTP requests and responses.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2009/08/02/http-message-pdu-layer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

