<?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; Troubleshooting</title>
	<atom:link href="http://lbdigest.com/category/troubleshooting/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>3 Tools For Diagnosing Load Balancer Problems</title>
		<link>http://lbdigest.com/2008/07/23/welcome-to-this-old-load-balancer/</link>
		<comments>http://lbdigest.com/2008/07/23/welcome-to-this-old-load-balancer/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 20:30:28 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=156</guid>
		<description><![CDATA[I realized that this was a dupe, but I think the topic is a little more effective.Â  Plus, I haven&#8217;t written anything in a while.Â  Every craftsman has their tools,...]]></description>
			<content:encoded><![CDATA[<p>I realized that this was a dupe, but I think the topic is a little more effective.Â  Plus, I haven&#8217;t written anything in a while.Â  Every craftsman has their tools, and I&#8217;ve got three in particular that I use:</p>
<ul>
<li>Telnet (Layer 4 TCP testing utility, Layer 7 interface)</li>
<li>OpenSSL (When Layer 4 is wrapped with encryption)</li>
<li>HTTP Analyzers (several to choose from, to look at headers)</li>
</ul>
<p>Telnet is particularly handy, as I can test through Layer 7 (especially if I type &#8220;GET /&#8221; and hit return twice).Â  Ping is pretty useless, as is traceroute, but Telnet works wonders.</p>
<p>I&#8217;ve documented the tools and how I use them in the latest addition to the brand new <a href="http://lbwiki.com">lbwiki.com</a>:</p>
<p><a href="http://lbwiki.com/index.php/Troubleshooting_Tools">Troubleshooting Tools</a></p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2008/07/23/welcome-to-this-old-load-balancer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Load Balancing Troubleshooting Tools</title>
		<link>http://lbdigest.com/2008/06/24/load-balancing-troubleshooting-tools/</link>
		<comments>http://lbdigest.com/2008/06/24/load-balancing-troubleshooting-tools/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 18:08:54 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[lbwiki updates]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=157</guid>
		<description><![CDATA[Every skillset has it&#8217;s tools.Â  These are the basics of the vocation, and it&#8217;s tough to do your job without them.Â  I have my own for load balancing, and they&#8217;re...]]></description>
			<content:encoded><![CDATA[<p>Every skillset has it&#8217;s tools.Â  These are the basics of the vocation, and it&#8217;s tough to do your job without them.Â  I have my own for load balancing, and they&#8217;re not what people typically expect.Â  I&#8217;ve mentioned the somewhat unorthodox troubleshooting tools that I use on here before, and now I&#8217;ve taken the step of codifying them into a Wiki page.</p>
<p>LBWiki: <a href="http://lbwiki.com/index.php/Troubleshooting_Tools">Troubleshooting Tools</a></p>
<p>Telnet, OpenSSL, and an HTTP analyzer.Â  Probably 90% of all the issues I come up against can be solved using those.Â Â  Probably 60% of all the problems can be solved by just telnet (used to test Layer 4 and sometimes through Layer 7).</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2008/06/24/load-balancing-troubleshooting-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Think You&#8217;re Connected?  Think Again</title>
		<link>http://lbdigest.com/2007/12/16/think-youre-connected-think-again/</link>
		<comments>http://lbdigest.com/2007/12/16/think-youre-connected-think-again/#comments</comments>
		<pubDate>Sun, 16 Dec 2007 23:04:33 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Ask Tony]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://lbdigest.com/2007/12/16/think-youre-connected-think-again/</guid>
		<description><![CDATA[One issue that trips up people when diagnosing load balancer problems is they see a connection has been made to a virtual service, so it looks like they&#8217;re getting through...]]></description>
			<content:encoded><![CDATA[<p>One issue that trips up people when diagnosing load balancer problems is they see a connection has been made to a virtual service, so it looks like they&#8217;re getting through to the real server.</p>
<p>That&#8217;s not always the case.  Depending on how your load balancer is configured, it could simply mean you&#8217;ve made a connection to the load balancer&#8217;s proxy server.</p>
<p>Modern load balancers have actually two different types of virtual services:  Layer 4, and Layer 7.  Clients can&#8217;t really tell the difference, but under the hood, they&#8217;re substantially different in the way they operate.</p>
<p>A Layer 4 virtual service on a load balancer operates much like a router.  It&#8217;s just re-writing source and/or destination addresses.  Not much more than you&#8217;re basic broadband wireless router.</p>
<p><a href="http://lbdigest.com/wp-content/uploads/2007/12/l4.png" title="Layer 4"></a></p>
<p style="text-align: center"><a href="http://lbdigest.com/wp-content/uploads/2007/12/l4.png" title="Layer 4"><img src="http://lbdigest.com/wp-content/uploads/2007/12/l4.png" alt="Layer 4" /></a></p>
<p>Layer 7 code is a type of application proxy, aware of HTTP and a few other protocols depending upon the vendor (such as FTP, SIPS).    The Layer 7 code is what handles cookie persistence. When a connection is made to a Layer 7 virtual service and a request is sent, a separate TCP connection is opened to the server, and the request is forwarded.  Because of the way Layer 7 operations occur, the load balancer *can&#8217;t* send the request to a server until it sees the request, because the request (and items in the header) will tell the load balancer where it&#8217;s sending the request.</p>
<p><a href="http://lbdigest.com/wp-content/uploads/2007/12/l71.png" title="Layer 7 TCP"></a></p>
<p style="text-align: center"><a href="http://lbdigest.com/wp-content/uploads/2007/12/l71.png" title="Layer 7 TCP"><img src="http://lbdigest.com/wp-content/uploads/2007/12/l71.png" alt="Layer 7 TCP" /></a></p>
<p><a href="http://lbdigest.com/wp-content/uploads/2007/12/l7.png" title="Layer 7 TCP"> </a></p>
<p>The tricky part comes when there&#8217;s problem with connectivity between the load balancer and the servers.  If the servers are unresponsive, you will still get a connection to the virtual service.  This can trick you into thinking there&#8217;s something wrong with the servers, when the issue may be elsewhere.</p>
<p>Once this connection is made, what happens next is fairly vendor specific.  Once you&#8217;re connected and make a request, the connection can remain open and stall.  On other vendors, the connection will terminate the second you make a request, with no HTTP error code.</p>
<p>Even within the same vendor, different versions will react differently.  In BIG-IP V4, you can open a connection and make a request, and you&#8217;ll see no response.Â   Eventually the connection will terminate, but you will probably wait a while.Â  In BIG-IP V9 however, when you open a connection and send a request, you&#8217;re immediately sent a TCP reset packet.</p>
<p>If you&#8217;ve setup SSL termination, which would fall into the Layer 7 camp, you&#8217;ll get non-HTTP encoded error (such as read:errno=104, which won&#8217;t show up in the browser, but will show up in a raw TCP connection) when connecting and sending a request to a virtual service with no active real servers.</p>
<p>So it&#8217;s important to know how your virtual service is configured when you&#8217;re troubleshooting an issue.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2007/12/16/think-youre-connected-think-again/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Telnet For SSL</title>
		<link>http://lbdigest.com/2007/12/15/telnet-for-ssl/</link>
		<comments>http://lbdigest.com/2007/12/15/telnet-for-ssl/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 06:10:44 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://lbdigest.com/2007/12/15/telnet-for-ssl/</guid>
		<description><![CDATA[I mentioned I used telnet quite a bit a few posts ago. I don&#8217;t use it to log into anything (plain-text passwords over the wire anyone?), instead I use it...]]></description>
			<content:encoded><![CDATA[<p>I mentioned I used telnet quite a bit a few posts ago.  I don&#8217;t use it to log into anything (plain-text passwords over the wire anyone?), instead I use it as a basic TCP connection utility.  I see if I can establish a TCP connection, and then I might throw a &#8220;GET /&#8221; to see if the web servers responds.</p>
<p>So what if you&#8217;re using SSL?  Fortunately, there&#8217;s a utility out there that works pretty much the same.  It&#8217;s part of the freeware <a href="http://openssl.org">OpenSSL package</a>, which is included with just about every Linux, Solaris, BSD, Unix system around, and a <a href="http://www.openssl.org/related/binaries.html">Windows version is pretty easy to get</a>.</p>
<p>To specific utility is <code>openssl s_client -host [ip address or hostname] -port [tcp port]</code>. To use, do the following on a command line prompt:</p>
<p><code>openssl s_client -host 192.168.0.200 -port 443</code></p>
<p>This will attempt an SSL/TLS connection to the host 192.168.0.200 on port 443.  Initially, this spits out a bunch of debugging on the specifics of the connection, including the type of certificate, full certificate chain, cypher, etc.<br />
<code><br />
....</code></p>
<p><code>Protocol  : TLSv1<br />
Cipher    : DHE-RSA-AES256-SHA<br />
Session-ID: 07764E503</code><code>260A11EBF0D69</code><code>0</code><br />
<code> Session-ID-ctx:<br />
Master-Key: B108C37807C831EC1895324ED83FDFD4A8DDA0</code><br />
<code> Key-Arg   : None<br />
Krb5 Principal: None<br />
Start Time: 1197668809<br />
Timeout   : 300 (sec)<br />
Verify return code: 18 (self signed certificate)<br />
---</code></p>
<p>You&#8217;re then connected to the other end as if you&#8217;d used telnet.  You can give the other end whatever HTTP requests (or other protocols) you&#8217;d like.  This utility works not only with HTTPS, but any other SSL/TLS wrapped protocol, including SMTPS, IMAPS, etc.</p>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2007/12/15/telnet-for-ssl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

