<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>.ForEach(delegate (Blog blog){</title>
    <description>at my core, I'm a scientist/engineer.  Translation : A big nerd, like you have no idea</description>
    <link>http://blog.rileytech.net/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.NET 1.4.5.0</generator>
    <language>en-GB</language>
    <blogChannel:blogRoll>http://blog.rileytech.net/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://blog.rileytech.net/syndication.axd</blogChannel:blink>
    <dc:creator>JesseRiley</dc:creator>
    <dc:title>.ForEach(delegate (Blog blog){</dc:title>
    <geo:lat>40.146340</geo:lat>
    <geo:long>-82.944980</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/rileytech" type="application/rss+xml" /><item>
      <title>NFS on Server 2008 == annoying</title>
      <description>&lt;p&gt;
Got a linux box that has a nfs share - say its at 192.168.1.10 and the share under /etc/exports is 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;em&gt;/some_nfs_share 192.168.1.0/24(rw,no_root_squash)&lt;/em&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
No problem right?&amp;nbsp; On another linux box within the 192 subnet, the following works quite nicely.&amp;nbsp; Assume folders exist.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;mount.nfs -rw 192.168.1.10:/some_nfs_share&amp;nbsp;/myfiles&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
No sweat, mounts right up and I get read-write so I know I did it correctly and ready for the Win2k8.&amp;nbsp; Hop over, install the unix file share stuff (NFS, SMB) and do this ...
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;em&gt;mount -o fileaccess=777 nolock casesensitive=yes -u:root -p:*&amp;nbsp;\\192.168.1.10\some_nfs_share&amp;nbsp; *&lt;/em&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
I can read files ...sort of and I can&amp;#39;t write anything.&amp;nbsp; In the windows application logs, I get Event ID: 16397, Source: NfsClnt with this crap
&lt;/p&gt;
&lt;span&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;em&gt;Windows(R) Lightweight Directory Access Protocol (LDAP) failed a request to connect to Active Directory Domain Services(R) for Windows user &amp;lt;Domain\MyUserAccount&amp;gt;.&lt;/em&gt;
	&lt;/p&gt;
	&lt;p&gt;
	&lt;em&gt;Without the corresponding UNIX identity of the Windows user, the user cannot access Network File System (NFS) shared resources.&lt;/em&gt;
	&lt;/p&gt;
	&lt;p&gt;
	&lt;em&gt;Verify that the Windows user is in Active Directory Domain Services and has access permissions&lt;/em&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/span&gt;
&lt;p&gt;
The hell?&amp;nbsp; WHY are you trying to authenticate to LDAP?&amp;nbsp; I just gave you a user/pass, why would I need more than that?&amp;nbsp; Ok, FINE I bust out a local account, take that.&amp;nbsp; Nope, exactly same error.&amp;nbsp; Authen fail.&amp;nbsp; I guess I&amp;#39;ll have to go uber-lame and go ftp.&amp;nbsp; I hate ftp.
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/x5qmE0GyQDU/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2009/06/29/NFS-on-Server-2008-3d3d-annoying.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=c8b704e6-e5fa-4004-8ca0-03c38d495667</guid>
      <pubDate>Mon, 29 Jun 2009 08:03:00 -1000</pubDate>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=c8b704e6-e5fa-4004-8ca0-03c38d495667</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=c8b704e6-e5fa-4004-8ca0-03c38d495667</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2009/06/29/NFS-on-Server-2008-3d3d-annoying.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=c8b704e6-e5fa-4004-8ca0-03c38d495667</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=c8b704e6-e5fa-4004-8ca0-03c38d495667</feedburner:origLink></item>
    <item>
      <title>Customer Service - Nexsan</title>
      <description>&lt;p&gt;
Back in January, I was tossed into a fire regarding an environment from your absolute worst nightmare.&amp;nbsp; Yes, that bad.&amp;nbsp; It&amp;#39;s been called a &amp;quot;technology showcase&amp;quot;, &amp;quot;how to do everything wrong&amp;quot;, &amp;quot;what happens when you have no plan&amp;quot; and so on -- a real top notch problem suited for those who are &lt;strike&gt;stupid enough&lt;/strike&gt;&amp;nbsp;given the opportunity to fix something so terrible, I didn&amp;#39;t&amp;nbsp;really know where to start. 
&lt;/p&gt;
&lt;p&gt;
When I got my mind around this environment and some of the terrible things within it, I found something rather surprising -- lack of support and willingness to assist by vendors of hardware and low-level software -- &lt;strong&gt;that were under warranty&lt;/strong&gt;.&amp;nbsp; Some of which when contacted return an email saying &amp;quot;we don&amp;#39;t recognize your email address, go away&amp;quot;, others go into a black hole.&amp;nbsp; Then came one whoop-ass exception - Nexsan. 
&lt;/p&gt;
&lt;p&gt;
For those who&amp;#39;ve never heard of them, &lt;a href="http://www.nexsan.com/" target="_blank"&gt;Nexsan&lt;/a&gt; makes Storage Area Network devices and other storage centric solutions (archiving, compliance)&amp;nbsp;for various industries such as Financial, Health care, etc.&amp;nbsp; I was unfamiliar with Nexsan before this, but now, I&amp;#39;m a big fan for a bunch of reasons. 
&lt;/p&gt;
&lt;p&gt;
First off,&amp;nbsp;finding a contact.&amp;nbsp; I was AMAZED at how hard it was to get a simple &amp;quot;support@&amp;quot; or &amp;quot;contact@&amp;quot; addresses from some other site, but Nexsan does it right -- &amp;quot;support@nexsan.com&amp;quot; what a concept!&amp;nbsp; Simple, easy.&amp;nbsp; Sooo how&amp;#39;s the response?&amp;nbsp; Well, you get the auto-reply as confirmation and normally you get a reply within an hour or so.&amp;nbsp; That&amp;#39;s more than reasonable.&amp;nbsp; I typically expect 4 business hours give or take. 
&lt;/p&gt;
&lt;p&gt;
Second, willingness to help.&amp;nbsp; This is where Nexsan &amp;quot;gets it&amp;quot;.&amp;nbsp; Most companies I&amp;#39;ve found give you a not-so-greatly-trained person that is probably looking though a book to find your problem and are more than happy to push you off to the next person.&amp;nbsp; This never happened, not once.&amp;nbsp; My first contact person, Darrell Snipes asked that I give him a call and discuss our situation.&amp;nbsp; After a short talk, he emailed me some recommendations for performance, a best practice document, a new firmware version, when our current support was going to run out&amp;nbsp;&lt;strong&gt;and&lt;/strong&gt; how to send him back the logs so he could take a deeper look ... and he followed&amp;nbsp;up.&amp;nbsp; What else could you want from a device you know nothing about?&amp;nbsp; I couldn&amp;#39;t think of one! 
&lt;/p&gt;
&lt;p&gt;
Third, following though and going beyond.&amp;nbsp; At where I work, we push for exceeding client&amp;#39;s expectations all the time -- someone must have told them the same thing.&amp;nbsp; Our support ran out and, of course, we ran into a problem.&amp;nbsp; With no more contract, nothing, I expected the rightfully-so &amp;quot;too bad, so sad&amp;quot;.&amp;nbsp; I contacted them asking if we could open up a pay-per-incident ticket&amp;nbsp;and this is the response I got ...
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;strong&gt;&lt;span style="font-family: 'Calibri','serif'; color: #004080; font-size: 10pt"&gt;Jesse,&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Calibri','serif'; color: #004080; font-size: 10pt"&gt;If your unit is out of warranty/support as a industry leading company we don&amp;rsquo;t mind providing you with a help Monday to Friday 7AM to 5 PM PST.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Calibri','serif'; color: #004080; font-size: 10pt"&gt;However we will not be able to issue any RMA for damaged parts or anything similar.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Calibri','serif'; color: #004080; font-size: 10pt"&gt;Please let me know if you need any additional help,&lt;/span&gt;&lt;/strong&gt;&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
It isn&amp;#39;t a failure and wow, how great is that.&amp;nbsp; I sent a reply asking them about a problem and&amp;nbsp;again, totally reasonable, expecting the stated&amp;nbsp;7am to 5pm PST -- I sent my reply around 7:45pm fully NOT expecting a reply until the next day.&amp;nbsp; At 11:42pm EST Chad Steele responded to my question, saying it was very fixable (firmware, we&amp;#39;re WAY out of date) and to boot, 11:42pm is&amp;nbsp;not within the 5pm PST time frame.&amp;nbsp; Define : &lt;u&gt;Awesomeness&lt;/u&gt;.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
I have a short list of companies on my &amp;quot;list&amp;quot;.&amp;nbsp; Companies I&amp;nbsp;do not hesitate recommending or sending anyone to&amp;nbsp;-- Nexsan is definitely on that list.&amp;nbsp; I &lt;strong&gt;&lt;em&gt;highly&lt;/em&gt;&lt;/strong&gt; recommend them.
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/DVC1OK4UUOw/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2009/06/25/Customer-Service-Nexsan.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=628319f7-bd27-4649-91a6-6f199bec5ff5</guid>
      <pubDate>Thu, 25 Jun 2009 06:34:00 -1000</pubDate>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=628319f7-bd27-4649-91a6-6f199bec5ff5</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=628319f7-bd27-4649-91a6-6f199bec5ff5</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2009/06/25/Customer-Service-Nexsan.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=628319f7-bd27-4649-91a6-6f199bec5ff5</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=628319f7-bd27-4649-91a6-6f199bec5ff5</feedburner:origLink></item>
    <item>
      <title>Reverse phishing?</title>
      <description>&lt;p&gt;
I&amp;#39;m convinced there&amp;#39;s a new type of phishing expedition going on in an attempt to hack search engine results.&amp;nbsp; Why?&amp;nbsp; Comments on my blog&amp;nbsp;that don&amp;#39;t add up.&amp;nbsp; For one, the magic key words the person leaves as their name.&amp;nbsp; I&amp;#39;ve dropped this as an image because I want none of those getting picked up by a search engine but its pretty clear they want an email.  
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blog.rileytech.net/image.axd?picture=2009%2f6%2fposts.jpg" alt="" /&gt; 
&lt;/p&gt;
&lt;p&gt;
The IP traces back to .ph ...hmmm, think they&amp;#39;re could be a &amp;quot;California Orange County Lawyer&amp;quot;? Hardly not.&amp;nbsp; Website comes back to nothing, which surprises me, but I&amp;#39;ve seen them come back to random, infested sites.&amp;nbsp; Icing on the cake, the half right, confusing context english.&amp;nbsp; Ahhh I love it.&amp;nbsp; Curious, should I send an email to that account (after I create a new fake one of course)?&amp;nbsp; Could be fun... 
&lt;/p&gt;
&lt;p&gt;
Update : 6/17/09 - here&amp;#39;s another one I got.&amp;nbsp; I post &amp;quot;interesting matters here&amp;quot;!&amp;nbsp; Yay!
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blog.rileytech.net/image.axd?picture=2009%2f6%2fphish1.jpg" alt="" /&gt;
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/of0hmwuajMs/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2009/06/12/Reverse-phishing.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=83d146ba-1b10-4233-9015-e4cea97f4224</guid>
      <pubDate>Fri, 12 Jun 2009 02:35:00 -1000</pubDate>
      <category>Security</category>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=83d146ba-1b10-4233-9015-e4cea97f4224</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=83d146ba-1b10-4233-9015-e4cea97f4224</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2009/06/12/Reverse-phishing.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=83d146ba-1b10-4233-9015-e4cea97f4224</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=83d146ba-1b10-4233-9015-e4cea97f4224</feedburner:origLink></item>
    <item>
      <title>Rolling off the Net Admin - 12 lessons learned</title>
      <description>&lt;p&gt;
My past rash of posts have mostly focused on hardware, servers, linux and other related devices and I&amp;#39;m glad to say, I&amp;#39;m heading back into development.&amp;nbsp; Granted, its VB but its development.&amp;nbsp; So what have I learned in my nearly 6 month absence?&amp;nbsp; Quite a few things, some of which will change my approach on a variety of things. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;0. Doing lists of things is cool.&lt;/strong&gt;&amp;nbsp; I like lists.&amp;nbsp; I like sites that give me lists.&amp;nbsp; It gives me a&amp;nbsp;clear beginning and end but also limits the amount of content for each point.&amp;nbsp; I don&amp;#39;t have to explain in great detail how I get to the point, it&amp;#39;s already spelled out and I can get to explaining it. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;1. Outages&amp;nbsp;suck on any platform.&lt;/strong&gt;&amp;nbsp; Windows, Linux, don&amp;#39;t matter.&amp;nbsp; When the system goes down, regardless of the reason, its always&amp;nbsp;like cockroaches when the lights turn on -- everyone&amp;nbsp;darts around wildly until someone gets an&amp;nbsp;answer ...or the lights go out.&lt;strong&gt;&amp;nbsp;&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;2. If you know nothing about linux, doing everything is near impossible without someone who does or one uber well written book or ...ten.&lt;/strong&gt;&amp;nbsp; Forums, web sites, etc are not very effective when you want to know how to do something linux.&amp;nbsp; There are rare exceptions to this (&lt;a href="http://nagios.org/docs" target="_blank"&gt;Nagios&lt;/a&gt; website is _very_ nicely documented for instance), but an overwhelming majority of them assume you already know 99% of the problem or issue you are searching for - worse, it doesn&amp;#39;t get better when you do have a specific problem.&amp;nbsp; There&amp;#39;s so many distros, code bases, dependencies, etc you might as well be kicked out into the Congo with a bag full of money and t-bone steaks pinned to your body. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;3. Few Linux admins understand anything about Windows, other than they don&amp;#39;t like it.&amp;nbsp; &lt;/strong&gt;Yes, this is a bold statement, but I&amp;#39;ve found compounding evidence that it is true.&amp;nbsp; Opinions run rampant and&amp;nbsp;a common approach is &amp;quot;if I don&amp;#39;t understand it, it must be doing it wrong&amp;quot;&amp;nbsp;-- which is a total setup for failure.&amp;nbsp; I&amp;#39;ve learned how to make linux do things ...why can&amp;#39;t linux admins do the same in windows?&amp;nbsp; The arguments of changing things, seeing things and modifying every little aspect&amp;nbsp;is completely, utterly&amp;nbsp;a lack of an ability to understand and drive to FIND how one OS does something and 99.999% of the time is&amp;nbsp;unnecessary. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;4. The art of asking the right question is still solid gold.&lt;/strong&gt;&amp;nbsp; See #2.&amp;nbsp; Being able to ask those who have a good idea of how it works is great, knowing how to ask them the right question to get an answer is best.&amp;nbsp; Ask your questions carefully and fully.&amp;nbsp; Listen a lot, speak less. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;5. Things that are simple in windows are not in linux. &lt;/strong&gt;I don&amp;#39;t care if every linux admin on the planet says otherwise, it&amp;#39;s simply not true.&amp;nbsp; Compiling code, making then making installs is the most bass akwards way of getting something to work that I have ever seen.&amp;nbsp; If I download something and run it, I expect it to install.&amp;nbsp; Linux does not do this very well.&amp;nbsp; Further, the code you download, build and install may not work on the next version of OS or another distro.&amp;nbsp; I won&amp;#39;t have to worry about this as much with windows applications ...they typically tell you that up front. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;6. Once setup,&amp;nbsp;linux services&amp;nbsp;are easier to replicate than in windows.&amp;nbsp; &lt;/strong&gt;It might be a pain to get up and running at first, but once its setup -- copy paste that conf file out and you can clone it just about anywhere, quickly and easily and you can do it with just about anything.&amp;nbsp; Windows, that&amp;#39;s not always the case. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;7. The configuration process is nearly identical for every service in linux. &lt;/strong&gt;Most services come with a /etc/&amp;lt;service&amp;gt;, /etc/&amp;lt;service&amp;gt;.conf where most of the action occurs.&amp;nbsp; Lots of services are setup this way. Some of them have a check config command of some kind so you can test it before you punt it out there.&amp;nbsp; Also, some of it will hot-replace one instance with another without killing people using your system.&amp;nbsp; Now that&amp;#39;s kinda cool. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;8. A linux OS version 5 and version 5.3 could mean months ...or years have passed between them.&lt;/strong&gt;&amp;nbsp; We have been using CentOS 4.4 and 5.0 - current version is 5.3.&amp;nbsp; At first glance, assumption could be that it&amp;#39;s only a minor revision from 5 to 5.3.&amp;nbsp; Later I found out it&amp;#39;s been 3 years between them, 4.4 was 5+ years.&amp;nbsp; Minor revision numbers aren&amp;#39;t. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;9. Admins are ignored as much as Devs. &lt;/strong&gt;Tangent story time.&amp;nbsp; The Army core of engineers told the city of New Orleans years ago that, at best, it was &lt;strong&gt;&lt;em&gt;&lt;u&gt;DESIGNED&lt;/u&gt;&lt;/em&gt;&lt;/strong&gt; to withstand a category 3 hurricane.&amp;nbsp; When a category 5 hit, everyone when into an uproar that&amp;nbsp;it, the levy,&amp;nbsp;failed.&amp;nbsp; No, wrong, it exceeded its tolerance and therefore should not have been expected to withstand that level of force at all.&amp;nbsp; It&amp;#39;s like taking a common home and building it to 20 stories and wondering why the foundation fell apart.&amp;nbsp; The warnings of devs and admins are ignored ...until the category 5 hits.&amp;nbsp; Then its &amp;quot;oh wow, this works so much better&amp;quot;.&amp;nbsp; Yep, tried to warn ya! 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;10. Free versions of stuff&amp;nbsp;still kinda suck.&lt;/strong&gt;&amp;nbsp; VMware 2, CentOS, and don&amp;#39;t get me started about the bajillion other items within the app itself -- a lot of these things suck.&amp;nbsp; No support, spotty &amp;quot;community&amp;quot; following (much less help), limitations because after all, they want you to pay for the big boy version, makes these things not so great.&amp;nbsp; If you want the real toys, pony up and pay for it.&amp;nbsp; Trail versions still suck more, but free&amp;nbsp;has its drawbacks.&amp;nbsp; Cept for nagios ...I&amp;#39;m a fan of nagios ...and PNP4Nagios.&amp;nbsp; Both are free and ain&amp;#39;t that bad.&amp;nbsp; Needs a better gui though. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;11. Mind stretching is rewarding&amp;nbsp;the most when it&amp;#39;s something you know nothing about.&amp;nbsp;&lt;/strong&gt;Going into this I knew how to download linux ...sometimes and knew next to nothing about it.&amp;nbsp; Now I&amp;#39;ve got SVN on a home server just for kicks along with it doing some other random junk &amp;quot;just because I can&amp;quot;.&amp;nbsp; It&amp;#39;s equally nice to know I can do it again whenever and it wasn&amp;#39;t a fluke. 
&lt;/p&gt;
&lt;p&gt;
To wrap things up - am I a fan of linux?&amp;nbsp; No.&amp;nbsp; Between rpms, dependencies, compiling code&amp;nbsp;that isn&amp;#39;t mine, sudo-ing&amp;nbsp;and other silliness (did you know root can be called reut?),&amp;nbsp;it&amp;nbsp;isn&amp;#39;t my first choice.&amp;nbsp; Does it have a place?&amp;nbsp; Sure.&amp;nbsp; I would use linux at home to monitor sensors all over my house but&amp;nbsp;I wouldn&amp;#39;t use it in something that requires a living&amp;nbsp;application, by that I mean something that&amp;#39;s going to move constantly and change it&amp;#39;s &amp;quot;shape&amp;quot;.&amp;nbsp;&amp;nbsp;It was interesting to work on and downright annoying at others, but I&amp;#39;m glad I did - &amp;quot;it&amp;#39;s just another club in the bag&amp;quot;. 
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/A7ldA1DNQ2Y/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2009/05/29/Return-from-Net-Admin-lessons-learned.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=d679c453-27ea-4d55-b5b1-193a349833e7</guid>
      <pubDate>Fri, 29 May 2009 03:43:00 -1000</pubDate>
      <category>Linux</category>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=d679c453-27ea-4d55-b5b1-193a349833e7</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=d679c453-27ea-4d55-b5b1-193a349833e7</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2009/05/29/Return-from-Net-Admin-lessons-learned.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=d679c453-27ea-4d55-b5b1-193a349833e7</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=d679c453-27ea-4d55-b5b1-193a349833e7</feedburner:origLink></item>
    <item>
      <title>Return to Area 51 ...or telnet into a cisco</title>
      <description>&lt;p&gt;
Having a wide range of experience like I have, you often find yourself back in a land once long forgotten -- today was one of those days.&amp;nbsp; I returned to very low level network land to which I haven&amp;#39;t been in over 8 years.&amp;nbsp; We&amp;#39;ve been having a problem with a port on a switch recently, freaking out and disabling itself.&amp;nbsp; Not just any switch, a cisco 3600 series.&amp;nbsp; I hold cisco&amp;#39;s in high regard, and &lt;a href="http://en.wikipedia.org/wiki/OSI_model#Layer_3:_Network_Layer" target="_blank"&gt;layer 3&lt;/a&gt; switches are pretty high on the uber w00t-tastic scale, so just seeing this error was a new experience all in and of itself.&amp;nbsp; I present the faulty port. 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blog.rileytech.net/image.axd?picture=2009%2f5%2ffaceplate.jpg" alt="" width="347" height="87" /&gt; 
&lt;/p&gt;
&lt;p&gt;
Faulty eh?&amp;nbsp; Take a look at the port stats and sure enough, there&amp;#39;s a BOAT LOAD of errors, more than I&amp;#39;ve ever seen.&amp;nbsp; A &amp;quot;rule&amp;quot; is 1% is considered excessive, and we are hitting 1.2% solidly.&amp;nbsp; Checking out the receive detail, getting a lot of FCS (meaning &lt;a href="http://support.3com.com/infodeli/tools/netmgt/tncsunix/product/091500/c11ploss.htm#20985" target="_blank"&gt;CRC&lt;/a&gt; didn&amp;#39;t check out) along with&amp;nbsp;Undersize errors&amp;nbsp;(packets are not the right size) -- so what does this mean?&amp;nbsp; Nothing specific, it&amp;#39;s just info, and in this case, it is incomplete.&amp;nbsp; Off I went onto the switch, into the telnet console and wanted to know what IT was saying about this.&amp;nbsp; Sometimes the graphical interfaces don&amp;#39;t tell the whole story ...this is one of those times.&amp;nbsp; I had to really dig into the archives to remember how to get into a cisco the way I wanted (logged in, config mode) so I ran &lt;strong&gt;show interface gi0/3&lt;/strong&gt; (show me interface gigabit bank 0 port 3) and I get some hotness ... 
&lt;/p&gt;
&lt;font face="courier new,courier" size="2"&gt;GigabitEthernet0/3 is up, line protocol is up (connected)&lt;br /&gt;
&amp;nbsp; Hardware is Gigabit Ethernet, address is&amp;nbsp;&amp;lt;removed&amp;gt;&lt;br /&gt;
&amp;nbsp; Description:&amp;nbsp;&amp;lt;removed&amp;gt;&lt;br /&gt;
&amp;nbsp; MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reliability 254/255, txload 13/255, rxload 4/255&lt;br /&gt;
&amp;nbsp; Encapsulation ARPA, loopback not set&lt;br /&gt;
&amp;nbsp; Keepalive set (10 sec)&lt;br /&gt;
&amp;nbsp; Full-duplex, 100Mb/s, media type is 10/100/1000BaseTX&lt;br /&gt;
&amp;nbsp; input flow-control is off, output flow-control is unsupported&lt;br /&gt;
&amp;nbsp; ARP type: ARPA, ARP Timeout 04:00:00&lt;br /&gt;
&amp;nbsp; Last input 00:00:24, output 00:00:00, output hang never&lt;br /&gt;
&amp;nbsp; Last clearing of &amp;quot;show interface&amp;quot; counters 5d22h&lt;br /&gt;
&amp;nbsp; Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0&lt;br /&gt;
&amp;nbsp; Queueing strategy: fifo&lt;br /&gt;
&amp;nbsp; Output queue: 0/40 (size/max)&lt;br /&gt;
&amp;nbsp; 5 minute input rate 1912000 bits/sec, 688 packets/sec&lt;br /&gt;
&amp;nbsp; 5 minute output rate 5479000 bits/sec, 755 packets/sec&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 135263414 packets input, 2818426259 bytes, 0 no buffer&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Received 174958 broadcasts (0 multicast)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 runts, 81 giants, 0 throttles&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;u&gt;1254363 input errors, 1254282 CRC,&lt;/u&gt; 0 frame, 0 overrun, 0 ignored&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 watchdog, 8537 multicast, 0 pause input&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 input packets with dribble condition detected&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 153425270 packets output, 896631553 bytes, 0 underruns&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 output errors, 0 collisions, 0 interface resets&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 babbles, 0 late collision, 0 deferred&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 lost carrier, 0 no carrier, 0 PAUSE output&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 output buffer failures, 0 output buffers swapped out&lt;/font&gt; 
&lt;p&gt;
Again, reconfirms CRC errors but notice no frame errors.&amp;nbsp; This is a big huge hint - it means the size of the packet is OK but the packet itself isn&amp;#39;t checking out.&amp;nbsp; This leads me to believe its a cable that&amp;#39;s run too long or unshielded.&amp;nbsp; Cables are susceptible to EM, electromagnetic interference and every wire is an antenna, period, I don&amp;#39;t care how long, if its got ferris metal in it, it&amp;#39;s an antenna.&amp;nbsp; I put money on unshielded.
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/KfJz7aEsBjA/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2009/05/21/Return-to-Area-51-or-telnet-into-a-cisco.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=06cadc6e-8e0c-40b1-b2f6-8065bfacabb6</guid>
      <pubDate>Thu, 21 May 2009 08:21:00 -1000</pubDate>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=06cadc6e-8e0c-40b1-b2f6-8065bfacabb6</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=06cadc6e-8e0c-40b1-b2f6-8065bfacabb6</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2009/05/21/Return-to-Area-51-or-telnet-into-a-cisco.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=06cadc6e-8e0c-40b1-b2f6-8065bfacabb6</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=06cadc6e-8e0c-40b1-b2f6-8065bfacabb6</feedburner:origLink></item>
    <item>
      <title>Security - part 4 of X - Policy.</title>
      <description>&lt;p&gt;
Ah, policy.&amp;nbsp; The magic document that says how things should be done.&amp;nbsp; I love them the most when they haven&amp;#39;t been reviewed in 6 months.&amp;nbsp; Why?&amp;nbsp; The world wasn&amp;#39;t the same 6 months ago: New laws, new trends, ideas, methods, products, people (remember them?), all of them are changing in 6 months.&amp;nbsp; Why am I picking on 6 months?&amp;nbsp; I just made it up - if your shop is more dynamic, lean&amp;nbsp;and fast paced, it might even be shorter.&amp;nbsp; Most major companies don&amp;#39;t change them for years, good companies review them often.&amp;nbsp; Notice I didn&amp;#39;t say change?&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Policies are great when they are simple, clear and most importantly, understandable.&amp;nbsp; Years ago, Steve Riley (no relation) gave a talk about asking for the rules governing a&amp;nbsp;firewall and&amp;nbsp;received 2 reams of paper.&amp;nbsp; No surprise, it wasn&amp;#39;t effective.&amp;nbsp; As he put it &amp;quot;an exception, to the exception, to the exception&amp;quot; let traffic in the network that never should&amp;#39;ve been allowed.&amp;nbsp; Due to its complexity, no one knew what the firewall was doing.&amp;nbsp; This should serve as the initial indication that it&amp;#39;s time to review the policy, simplify it and put it into practice. 
&lt;/p&gt;
&lt;p&gt;
This is totally my opinion, but policy should have solid, clear reason behind it and every item within it.&amp;nbsp; Keeping company morale isn&amp;#39;t&amp;nbsp;one of them.&amp;nbsp;Why?&amp;nbsp;Morale doesn&amp;#39;t mean&amp;nbsp;a thing if the business&amp;nbsp;goes&amp;nbsp;belly up because someone let their kid download porn and the media finds out a system with customer data was compromised by a big DUH.&amp;nbsp; Ok, so it&amp;#39;s not always that drastic (is it?), but its not the driving force, the business IS.&amp;nbsp;&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
A while back when I was running a terminal service cluster, we disabled flash.&amp;nbsp; Why?&amp;nbsp;Some sites spiked the cpu load to high values and since we couldn&amp;#39;t control where they went (business driven), we just controlled the flash.&amp;nbsp; No problem, flash disabled, performance remained consistent for all users instantly.&amp;nbsp; Within 24 hours while walking though the halls I was stopped by one of our TS users and asked, and I quote &amp;quot;Hey, why doesn&amp;#39;t mountain dew dot com come up anymore?&amp;quot;&amp;nbsp;to which I explained our policy (it slows the system down, shared resources, etc) and I was amazed by the response : &amp;quot;well, we need to turn it back on, I need to get to mountain dew dot com, this is unacceptable.&amp;quot; and for the record, this was a municipal govt agency.&amp;nbsp; This user went to their supervisor, and I use that term loosely, and I&amp;nbsp;was told to &amp;quot;just turn it back on&amp;quot;.&amp;nbsp; Yes, I&amp;#39;m serious, and no, the policy stayed so long as there wasn&amp;#39;t &amp;quot;acceptable, business driven reason&amp;quot; -- news flash, this will not earn you popularity points and be prepared to defend it. 
&lt;/p&gt;
&lt;p&gt;
This comes full circle when any policy is challenged and it SHOULD be challenged.&amp;nbsp; If there IS&amp;nbsp;a business reason, the policy will need to be changed.&amp;nbsp; Ultimately it&amp;#39;s the business that makes the policy, more specifically, those in&amp;nbsp;power.&amp;nbsp; Without their buy in, there&amp;#39;s no weight.&amp;nbsp; Without weight, it won&amp;#39;t be enforced. 
&lt;/p&gt;
&lt;p&gt;
So how do you know when there&amp;#39;s a policy problem?&amp;nbsp; One clear indication is when you hear &amp;quot;it&amp;#39;s always been done that way&amp;quot;; the translation is &amp;quot;we don&amp;#39;t know why, the process sucks but its what we&amp;#39;re use to.&amp;quot;&amp;nbsp; For a slightly humorous look on how this happens, check out the &lt;a href="http://www.mwls.co.uk/anecdotes/5monkeys.htm" target="_blank"&gt;Five Monkeys experiment&lt;/a&gt; (not sure if it was ever conducted, but either way, it tells the story well).&amp;nbsp; That should be a green light to start ripping into it and finding out WHY it&amp;#39;s done that way. 
&lt;/p&gt;
&lt;p&gt;
So what&amp;#39;s your company policy on access?&amp;nbsp; On disasters?&amp;nbsp; On hiring?&amp;nbsp; On firing?&amp;nbsp; On lay offs?&amp;nbsp; On sensitive documents?&amp;nbsp;On system usage?&amp;nbsp;...you do have one right?&amp;nbsp; Does it still apply and make sense? 
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/qi_VsmiKNCQ/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2009/04/29/Security-part-4-of-X.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=8ead5016-04c1-4371-83e9-3bc76db530aa</guid>
      <pubDate>Wed, 29 Apr 2009 23:15:00 -1000</pubDate>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=8ead5016-04c1-4371-83e9-3bc76db530aa</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=8ead5016-04c1-4371-83e9-3bc76db530aa</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2009/04/29/Security-part-4-of-X.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=8ead5016-04c1-4371-83e9-3bc76db530aa</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=8ead5016-04c1-4371-83e9-3bc76db530aa</feedburner:origLink></item>
    <item>
      <title>Production Outage Planning - 10 (or so) points</title>
      <description>&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;I&amp;#39;ve recently went through a number of production planned outages of a group of systems we&amp;#39;ve recently taken over. I like these outages because of that magical word &lt;em&gt;planned&lt;/em&gt;. This isn&amp;#39;t planned like you put it in your planner and write down a time, no this is a concrete list with no surprises, no unclear roles, everything is laid out and everyone knows what they are doing. This doesn&amp;#39;t seem hard and it really isn&amp;#39;t, just takes some attention. Being my 2nd or 3rd one on this current project and I&amp;#39;m noticing some good stuff and possible fail routes that can easily be avoided.  &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;0. &lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'"&gt;Know everything you can about the systems humanly possible.&lt;/span&gt;&lt;/strong&gt; If you have never restarted server X, how do you know it will come back and operate as you expect? Are services set to start manually? How do you know? &amp;quot;It should&amp;quot; doesn&amp;#39;t cut it. Worse, what happens if it does not come back, at all? Do you have another system to replace it? How do you direct traffic to that server? Does the backup server work? Does it work completely and 100%? Do you have access to stand up another server from nothing if you need to? These are absolutely necessary and can cause you to invoke the UpdateResume(); method -- and quite frankly, this is the scariest part. No documentation is your enemy here. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;1. &lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'"&gt;Solid communication&lt;/span&gt;&lt;/strong&gt; among the team is a total, 100% must. It only takes one parasitic team member can destroy this whole process and render the outage a total failure. Ask other team members &amp;quot;what do you think&amp;quot; if you feel certain members are feeling uncomfortable or one person is doing all the talking. There should be a lot of people jumping in and commenting, confirming, asking &amp;quot;what if&amp;quot;. Talk it out as much as possible. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;2. &lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'"&gt;Everyone&amp;#39;s role is the same as it is day to day.&lt;/span&gt;&lt;/strong&gt; This means your DBA talks about risks and procedures to the database, the devs talk about the code and the risks to the app, etc. This doesn&amp;#39;t necessarily mean there isn&amp;#39;t cross talk but it does mean the DBA should _NOT_ outline a code deployment. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;3. &lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'"&gt;Include at least one of every role on you project&lt;/span&gt;&lt;/strong&gt;, even if they&amp;#39;re not directly involved in the deployment. Just because your developer isn&amp;#39;t pushing any code doesn&amp;#39;t mean they should not be aware that you are changing a script to start a particular service that could affect something the dev team is doing down the road, along with mimicking the internal systems to production. Do not forget QA if there is a code push of any kind; they should be involved in every outage as well. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;4. &lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'"&gt;Run though the plan, outloud, multiple times, in the middle of the room.&lt;/span&gt;&lt;/strong&gt; This goes back to number 3 and if you forget to include someone you didn&amp;#39;t know you should&amp;#39;ve -- sometimes a BA will ask &amp;quot;hey will this have any impact on &amp;lt;some obscure system you didn&amp;#39;t know about that will be totally screwed when you do this&amp;gt;?&amp;quot; This happens almost every time in the beginning, as time goes on, the question goes the other direction and it&amp;#39;s the sys admin or devs or DBA asking the BA. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;5. &lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'"&gt;Ask the tough questions and don&amp;#39;t rush it.&lt;/span&gt;&lt;/strong&gt; If one team member responsible for system X and can&amp;#39;t explain why doing a certain upgrade, setting change, etc will or will not be beneficial, then that is not to be included in the plan.&amp;nbsp; On the same though, allow that person to figure out why and/or verify what they believe.&amp;nbsp; If that means putting it off completely, then so be it, don&amp;#39;t force an answer that you want to hear --&amp;nbsp;expect and ask for real evidence, something that says &amp;quot;THIS is why we are doing this&amp;quot;.&amp;nbsp; On the same page, do NOT be rushed into an outage because it will be nothing but pain.&amp;nbsp; Push back and be clear about WHY.&lt;/span&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;6. &lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'"&gt;Have a failover/rollback plan.&lt;/span&gt;&lt;/strong&gt; Code breaks, servers fail, systems stop working -- it happens, so plan for it. Backup/zip/move/copy what you are changing out -- and that means onto a totally different system&amp;nbsp;and understand how to get it back to where it was. Make sure you&amp;#39;ve tested this type of rollback as well. Just know &amp;quot;how to do it&amp;quot; is very different from &amp;quot;I know it will work&amp;quot;.&amp;nbsp; Understand the risks, be realistic about their impact and prepare for it to all go wrong. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;&lt;/span&gt;&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;7. &lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'"&gt;Pre-outage steps are solid gold!&lt;/span&gt;&lt;/strong&gt; Do everything you can early to make it easier. If code can be copied up into a pre-determined directory, do it. If a config file can be set aside and ready, do it. Verify the outage window everyone&amp;#39;s thinking about has been given the rubber stamp. Verify everyone has access, etc. Pre-steps can save you a ton of time and make your outage that much cleaner. &lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;8. &lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'"&gt;Make a timeline and start from the ends.&lt;/span&gt;&lt;/strong&gt; Say your window is 6 hours. It&amp;#39;ll take you 5 hours to complete your task, you&amp;#39;ve got one hour extra. Wrong, if it takes 3 hours to roll back your changes. Start at the ends. If it&amp;#39;ll take you 30 minutes to shutdown the systems and 3 hours to roll back, you&amp;#39;ve only got 2.5 hours to do your work. Make your timelines from the ends and work toward the middle.&amp;nbsp; This will save much pain and suffering.&lt;/span&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;9. &lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'"&gt;Execute the plan and nothing more.&lt;/span&gt;&lt;/strong&gt; It&amp;#39;s ok for the devs to say &amp;quot;well if we can just change this while we&amp;rsquo;re at it&amp;quot; bring down the hammer &lt;u&gt;immediately&lt;/u&gt;. It&amp;#39;s too late and not part of the plan, BUT it does mean it can go into the next one. Have them write it down and include it on the next process and stand your ground.&lt;/span&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;9b. &lt;strong&gt;Have alternate ways to do the same thing.&lt;/strong&gt;&amp;nbsp; Sometimes reindexing a database takes 2 hours, others it takes 15 minutes.&amp;nbsp; Consider service shutdowns and &amp;quot;cleaner&amp;quot; ways of running.&amp;nbsp; This &lt;em&gt;will&lt;/em&gt; increase your risk, but sometime save an outage from being completely worthless fail whale waste of time&amp;nbsp;to a total success (been there, done that, got the t-shirt).&lt;/span&gt; 
&lt;/p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;10. &lt;strong&gt;&lt;span style="font-family: 'Verdana','sans-serif'"&gt;Do a post-opt review.&amp;nbsp; &lt;/span&gt;&lt;/strong&gt;What did you learn?&amp;nbsp; What surprises did you get and why?&amp;nbsp; Can they be stopped from happening again?&amp;nbsp; How long did the whole thing take?&amp;nbsp; Why did it take longer, shorter than you expected?&amp;nbsp; What can you do differently?&amp;nbsp; These answers will make subsequent plans far more refined and get you that much closer to perfection. &lt;/span&gt;
&lt;p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;11. Catch up on sleep.&amp;nbsp; Ok, this one is more of a reminder for myself to cash in on weekends and time that I don&amp;#39;t spend on outages to restock on sleep.&amp;nbsp; Make no mistake; being up at midnight to 5am and into work at 8:30am isn&amp;#39;t glorious by any means, but the rewards will come when you return back to a normal day and maybe even leave early a few times.&lt;/span&gt; 
&lt;/p&gt;
&lt;span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt"&gt;I&amp;#39;m sure that if you follow these, your plans will be utterly painful at first but will get better over time.&amp;nbsp; It&amp;#39;s not fun, easy nor exciting, but it&amp;#39;s a good, solid way to make sure you and your client are not surprised (or at least it&amp;#39;s kept to a minimum). &lt;/span&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/UcAgLgQne-E/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2009/03/27/Production-Outage-Planning-10-(or-so)-points.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=e8d87330-2fd6-4676-b1f5-3eb343f11e8a</guid>
      <pubDate>Fri, 27 Mar 2009 02:51:00 -1000</pubDate>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=e8d87330-2fd6-4676-b1f5-3eb343f11e8a</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=e8d87330-2fd6-4676-b1f5-3eb343f11e8a</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2009/03/27/Production-Outage-Planning-10-(or-so)-points.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=e8d87330-2fd6-4676-b1f5-3eb343f11e8a</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=e8d87330-2fd6-4676-b1f5-3eb343f11e8a</feedburner:origLink></item>
    <item>
      <title>Bringing HBA SAN and LUNs together with .Net</title>
      <description>&lt;p&gt;
After writing my last post on tracing the two items together, the magical lazy comment came about to -- there has to be a better way.&amp;nbsp; Of course there is, no one in their right mind would even THINK to do this by hand time and time again.&amp;nbsp; So I went hunting for a way to pull this info into something useful, like an application of some kind.&amp;nbsp; Sure enough, there is an API out there for SSH for .net called SharpSSH and it works, with a bit of thinking.  
&lt;/p&gt;
&lt;p&gt;
I approached this problem with the idea being simple - if I can get the result from a console into a string, I can do whatever I want with it from there.&amp;nbsp; One of the commands does exactly that -- SshExec.RunCommand(string).&amp;nbsp;&amp;nbsp;Thanks to my &lt;strike&gt;documentation&lt;/strike&gt; blog post, I know everything I need to do, now to work the string values when they come back. 
&lt;/p&gt;
&lt;p&gt;
One of the commands I use quite frequently is &lt;strong&gt;&lt;em&gt;more&lt;/em&gt;&lt;/strong&gt;.&amp;nbsp; So my first attempts with SharpSSH was to use more because it was a sure fire way to get everything, except for one problem.&amp;nbsp; If you&amp;#39;ve ever used more at least twice, there&amp;#39;s a condition that exists when a screen is smaller than the requested information, &amp;quot;pages&amp;quot; are created so you can read parts at a time.&amp;nbsp; This poses a serious issue since using this method, I can&amp;#39;t control this.&amp;nbsp; I COULD have executed a space command if it held out longer than, say 5 seconds but that seemed a bit cumbersome for what I wanted.&amp;nbsp; After all, most of what I need is within 100 lines or so.&amp;nbsp; Knowing this, I decided to go with &lt;strong&gt;&lt;em&gt;tail -1000&lt;/em&gt;&lt;/strong&gt;. 
&lt;/p&gt;
&lt;p&gt;
First, you have to create a connection and authenticate.&amp;nbsp; SharpSSH makes this rather simple by doing the following... 
&lt;/p&gt;
&lt;font size="2"&gt;
&lt;p&gt;
&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#2b91af"&gt;SshExec&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; exec = &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#2b91af"&gt;SshExec&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;(server, user, pass);&lt;br /&gt;
exec.Connect();&lt;br /&gt;
&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;if&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (exec.Connected)&lt;br /&gt;
{ }&lt;/font&gt; 
&lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;
So far, stupid easy.&amp;nbsp; Next, you do the exec.RunCommand(string) as such... 
&lt;/p&gt;
&lt;font size="2"&gt;
&lt;p&gt;
&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; scsiInfo = exec.RunCommand(&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;@&amp;quot;tail -1000 &amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; + procScsiLocation);&lt;br /&gt;
&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;&lt;br /&gt;
if&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.IsNullOrEmpty(scsiInfo))&lt;br /&gt;
{ }&lt;/font&gt; 
&lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;
Here, I simply ask for the /proc/scsi/&amp;lt;adapter&amp;gt; info.&amp;nbsp; Since I&amp;#39;m working with servers that are all the same, I made these static&amp;nbsp;but this could be pulled back with a simple &lt;strong&gt;&lt;em&gt;ls&lt;/em&gt;&lt;/strong&gt; on /proc/scsi/ command and a selection could be made, probably with radio buttons.&amp;nbsp; The result of this can be ugly, but each line is terminated with a \n which makes it very predictable and easily split into a list of strings (my favorite). 
&lt;/p&gt;
&lt;font size="2"&gt;
&lt;p&gt;
&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#2b91af"&gt;List&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;gt; scsiInfoList = &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;new&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#2b91af"&gt;List&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;string&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;gt;(&lt;/font&gt;&lt;font size="2" color="#2b91af"&gt;&lt;font size="2" color="#2b91af"&gt;Regex&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;.Split(scsiInfo, &lt;/font&gt;&lt;font size="2" color="#a31515"&gt;&lt;font size="2" color="#a31515"&gt;&amp;quot;\n&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;));&lt;/font&gt; 
&lt;/p&gt;
&lt;/font&gt;
&lt;p&gt;
I used Regex.Split instead of String.Split strictly based on personal preference.&amp;nbsp; With this newly created list, I can create test conditions that filter out the junk I don&amp;#39;t want and append to a string builder what I DO what.&amp;nbsp; Feeding the result into a simple multiline textbox makes this easy to read.&amp;nbsp; From there, you can do just about everything you need to do.
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/Edv8Rx_kznI/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2009/03/11/Bringing-HBA-SAN-and-LUNs-together-with-Net.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=521115b7-bbea-4da8-b538-37311f01d434</guid>
      <pubDate>Wed, 11 Mar 2009 05:33:00 -1000</pubDate>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=521115b7-bbea-4da8-b538-37311f01d434</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=521115b7-bbea-4da8-b538-37311f01d434</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2009/03/11/Bringing-HBA-SAN-and-LUNs-together-with-Net.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=521115b7-bbea-4da8-b538-37311f01d434</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=521115b7-bbea-4da8-b538-37311f01d434</feedburner:origLink></item>
    <item>
      <title>Tracing volume groups with an HBA in linux</title>
      <description>&lt;p&gt;
I&amp;#39;ve been off in Linux land for a while and I&amp;#39;ve ran into HBAs, fiber channels, SANs and volume groups.&amp;nbsp; Honestly, they&amp;#39;re a billion times more complex than they EVER need to be but if you are unlucky enough to run across such things, here&amp;#39;s how I did it, do it and will continue to find it was the professor in the library with the candlestick. 
&lt;/p&gt;
&lt;p&gt;
First, log into your linux box and head over to /proc/scsi.&amp;nbsp; In here you should see a folder with a semi-recognizable driver, in this case a qlogic 2000. 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="courier new,courier" size="2"&gt;[root@mybox scsi]# ls&lt;br /&gt;
device_info&amp;nbsp; &lt;strong&gt;qla2xxx&lt;/strong&gt;&amp;nbsp; scsi&amp;nbsp; sg&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
If you want to know EXACTLY what card is installed, a lspci -v will display this for you ... in this case, ISP2312. 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="courier new,courier" size="2"&gt;10:01.0 Fibre Channel: QLogic Corp. ISP2312-based 2Gb Fibre Channel to PCI-X HBA (rev 02)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Subsystem: QLogic Corp. Unknown device 0100&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Flags: bus master, 66MHz, medium devsel, latency 128, IRQ 130&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I/O ports at 5000 [size=256]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory at fdff0000 (64-bit, non-prefetchable) [size=4K]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [virtual] Expansion ROM at d1000000 [disabled] [size=128K]&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Capabilities: [44] Power Management version 2&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Capabilities: [4c] PCI-X non-bridge device&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Capabilities: [54] Message Signalled Interrupts: 64bit+ Queue=0/3 Enable-&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Capabilities: [64] #06 [0080]&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
So anyway, jump into your HBA&amp;#39;s driver directory and you&amp;#39;ll find a file or two, probably just numbers, 0, 1, 2, etc.&amp;nbsp; In my case, I have 1 and 2.&amp;nbsp; Run a &lt;font face="courier new,courier" size="2"&gt;&lt;em&gt;more 1&lt;/em&gt;&lt;/font&gt; on this and you&amp;#39;ll get a dump of information similar to this.&amp;nbsp; I&amp;#39;ve snipped the top because it&amp;#39;s irrelevant. 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="courier new,courier" size="2"&gt;...&amp;nbsp;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="courier new,courier" size="2"&gt;SCSI Device Information:&lt;br /&gt;
scsi-qla0-adapter-node=&lt;strong&gt;&lt;em&gt;200000145e249594&lt;/em&gt;&lt;/strong&gt;;&lt;br /&gt;
scsi-qla0-adapter-port=&lt;strong&gt;&lt;em&gt;210000145e249594&lt;/em&gt;&lt;/strong&gt;;&lt;br /&gt;
scsi-qla0-target-0=5000402101fc137a;&lt;br /&gt;
scsi-qla0-target-1=5000402201fc137a;&lt;br /&gt;
scsi-qla0-target-2=5000402001fc137a;&lt;br /&gt;
scsi-qla0-target-3=5000402301fc137a;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="courier new,courier" size="2"&gt;FC Port Information:&lt;br /&gt;
scsi-qla0-port-0=2001000402fc137a:5000402101fc137a:010000:81;&lt;br /&gt;
scsi-qla0-port-1=2101000402fc137a:5000402201fc137a:010400:82;&lt;br /&gt;
scsi-qla0-port-2=2001000402fc137a:5000402001fc137a:020400:83;&lt;br /&gt;
scsi-qla0-port-3=2101000402fc137a:5000402301fc137a:020000:84;&lt;br /&gt;
scsi-qla0-port-4=200000145e249595:210000145e249595:020600:1;&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="courier new,courier" size="2"&gt;SCSI LUN Information:&lt;br /&gt;
(Id:Lun)&amp;nbsp; * - indicates lun is not registered with the OS.&lt;br /&gt;
( 0: 0): Total reqs 3, Pending reqs 0, flags 0x0*, 0:0:81 00&lt;br /&gt;
( 0: 8): Total reqs 80235, Pending reqs 0, flags 0x0, 0:0:81 00&lt;br /&gt;
( 0:15): Total reqs 80236, Pending reqs 0, flags 0x0, 0:0:81 00&lt;br /&gt;
( 0:17): Total reqs 80235, Pending reqs 0, flags 0x0, 0:0:81 00&lt;br /&gt;
( 0:21): Total reqs 80235, Pending reqs 0, flags 0x0, 0:0:81 00&lt;br /&gt;
( 0:25): Total reqs 80253, Pending reqs 0, flags 0x0, 0:0:81 00&lt;br /&gt;
( 1: 0): Total reqs 3, Pending reqs 0, flags 0x0*, 0:0:82 00&lt;br /&gt;
( 1: 1): Total reqs 80235, Pending reqs 0, flags 0x0, 0:0:82 00&lt;br /&gt;
( 1:11): Total reqs 80236, Pending reqs 0, flags 0x0, 0:0:82 00&lt;br /&gt;
( 1:19): Total reqs 80235, Pending reqs 0, flags 0x0, 0:0:82 00&lt;br /&gt;
( 1:21): Total reqs 80235, Pending reqs 0, flags 0x0, 0:0:82 00&lt;br /&gt;
( 1:25): Total reqs 80235, Pending reqs 0, flags 0x0, 0:0:82 00&lt;br /&gt;
( 2: 0): Total reqs 3, Pending reqs 0, flags 0x0*, 0:0:83 00&lt;br /&gt;
( 2: 8): Total reqs 80235, Pending reqs 0, flags 0x0, 0:0:83 00&lt;br /&gt;
( 2:15): Total reqs 80257, Pending reqs 0, flags 0x0, 0:0:83 00&lt;br /&gt;
( 2:17): Total reqs 80253, Pending reqs 0, flags 0x0, 0:0:83 00&lt;br /&gt;
( 2:21): Total reqs 80256, Pending reqs 0, flags 0x0, 0:0:83 00&lt;br /&gt;
( 2:25): Total reqs 80262, Pending reqs 0, flags 0x0, 0:0:83 00&lt;br /&gt;
( 3: 0): Total reqs 3, Pending reqs 0, flags 0x0*, 0:0:84 00&lt;br /&gt;
( 3: 1): Total reqs 80312, Pending reqs 0, flags 0x0, 0:0:84 00&lt;br /&gt;
( 3:11): Total reqs 80236, Pending reqs 0, flags 0x0, 0:0:84 00&lt;br /&gt;
( 3:19): Total reqs 80235, Pending reqs 0, flags 0x0, 0:0:84 00&lt;br /&gt;
( 3:21): Total reqs 80235, Pending reqs 0, flags 0x0, 0:0:84 00&lt;br /&gt;
( 3:25): Total reqs 80235, Pending reqs 0, flags 0x0, 0:0:84 00&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
This tells us a bunch of things, useful things we&amp;#39;ll need later.&amp;nbsp; Most importantly the adapter-node/adapter-port IDs that I have bolded.&amp;nbsp; This is the ID we need to find out WHAT exactly this server has access to.&amp;nbsp; Out on the SAN, find this information and which volumes the ID has access to.&amp;nbsp; Those volumes should have a serial number of some kind which is the next step.&amp;nbsp; This part I can&amp;#39;t help you with because every SAN is different, but I can tell you the SAN I am working with gave me an ID of &lt;strong&gt;603BD80A&lt;/strong&gt; that is 1000.0GB -- according to my linux server, I don&amp;#39;t have one of those volumes mounted of that size, a &lt;strong&gt;df -h&lt;/strong&gt; tells me this.&amp;nbsp; So what the hell?&amp;nbsp; There&amp;#39;s a volume group that&amp;#39;s combined multiple volumes into 1, hints the name v&amp;nbsp;that happens to be over 1000GB, as &lt;strong&gt;vgdisplay&lt;/strong&gt; tells me so... 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;&lt;font face="courier new,courier" size="2"&gt; [root@mybox ~]# vgdisplay&lt;br /&gt;
&amp;nbsp; --- Volume group ---&lt;br /&gt;
&amp;nbsp; VG Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; datagroup&lt;br /&gt;
&amp;nbsp; System ID&lt;br /&gt;
&amp;nbsp; Format&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lvm2&lt;br /&gt;
&amp;nbsp; Metadata Areas&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;br /&gt;
&amp;nbsp; Metadata Sequence No&amp;nbsp; 8&lt;br /&gt;
&amp;nbsp; VG Access&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read/write&lt;br /&gt;
&amp;nbsp; VG Status&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; resizable&lt;br /&gt;
&amp;nbsp; MAX LV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&amp;nbsp; Cur LV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;
&amp;nbsp; Open LV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;
&amp;nbsp; Max PV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&amp;nbsp; Cur PV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;br /&gt;
&amp;nbsp; Act PV&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;br /&gt;
&amp;nbsp; VG Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.73 TB&lt;br /&gt;
&amp;nbsp; PE Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.00 MB&lt;br /&gt;
&amp;nbsp; Total PE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 715292&lt;br /&gt;
&amp;nbsp; Alloc PE / Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 715292 / 2.73 TB&lt;br /&gt;
&amp;nbsp; Free&amp;nbsp; PE / Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 / 0&lt;br /&gt;
&amp;nbsp; VG UUID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pY6jLp-rZcZ-MVQS-BKH2-XmHx-xJhb-5BpxSa&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
Ok, so what?&amp;nbsp; I haven&amp;#39;t proved anything, and worse, what if there&amp;#39;s multiple groups that have bigger than 1000GB?&amp;nbsp; Next step ... use that serial number we got earlier off our SAN to determine WHAT &amp;quot;drives&amp;quot; are what.&amp;nbsp; Time to hit the &lt;strong&gt;multipath -ll &lt;/strong&gt;...and look for our serial number 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="courier new,courier" size="2"&gt;mpath13 (36000402001fc137a&lt;strong&gt;&lt;em&gt;603bd80a&lt;/em&gt;&lt;/strong&gt;00000000)&lt;br /&gt;
[size=931 GB][features=&amp;quot;0&amp;quot;][hwhandler=&amp;quot;0&amp;quot;]&lt;br /&gt;
\_ round-robin 0 [prio=1][active]&lt;br /&gt;
&amp;nbsp;\_ 2:0:2:25 &lt;strong&gt;sdaj&lt;/strong&gt; 66:48&amp;nbsp; [active][ready]&lt;br /&gt;
\_ round-robin 0 [prio=1][enabled]&lt;br /&gt;
&amp;nbsp;\_ 1:0:0:25 &lt;strong&gt;sdf&lt;/strong&gt;&amp;nbsp; 8:80&amp;nbsp;&amp;nbsp; [active][ready]&lt;br /&gt;
\_ round-robin 0 [prio=1][enabled]&lt;br /&gt;
&amp;nbsp;\_ 1:0:2:25 &lt;strong&gt;sdp&lt;/strong&gt;&amp;nbsp; 8:240&amp;nbsp; [active][ready]&lt;br /&gt;
\_ round-robin 0 [prio=1][enabled]&lt;br /&gt;
&amp;nbsp;\_ 2:0:0:25 &lt;strong&gt;sdz&lt;/strong&gt;&amp;nbsp; 65:144 [active][ready]&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
Sweet, we got a hit and its the right size.&amp;nbsp; So multipath13 is really sdaj, sdf, sdp and sdz.&amp;nbsp; Ok, so what?&amp;nbsp; Call on the powers of pvdisplay to tell you where it&amp;#39;s really living... 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="courier new,courier" size="2"&gt;[root@mybox ~]# pvdisplay&amp;nbsp;&lt;strong&gt;/dev/sdaj&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp; --- Physical volume ---&lt;br /&gt;
&amp;nbsp; PV Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;/dev/dm-15&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp; VG Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; datagroup&lt;br /&gt;
&amp;nbsp; PV Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 931.39 GB / not usable 0&lt;br /&gt;
&amp;nbsp; Allocatable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yes (but full)&lt;br /&gt;
&amp;nbsp; PE Size (KByte)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4096&lt;br /&gt;
&amp;nbsp; Total PE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 238437&lt;br /&gt;
&amp;nbsp; Free PE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&amp;nbsp; Allocated PE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 238437&lt;br /&gt;
&amp;nbsp; PV UUID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EUt6gs-8AIF-sAXe-q2MH-3L27-v57p-P6aESM&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
There you have it, it IS in fact living inside your datagroup volume group -- but what about the other drives sdf, sdp and sdz?&amp;nbsp; Do another pvdisplay on THOSE and notice the PV UUIDs are the same... 
&lt;/p&gt;
&lt;p&gt;
&lt;font face="courier new,courier" size="2"&gt;[root@mybox ~]# pvdisplay&amp;nbsp;&lt;strong&gt;/dev/sdf&lt;br /&gt;
&lt;/strong&gt;&amp;nbsp; --- Physical volume ---&lt;br /&gt;
&amp;nbsp; PV Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;/dev/dm-15&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp; VG Name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;datagroup&lt;br /&gt;
&amp;nbsp; PV Size&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 931.39 GB / not usable 0&lt;br /&gt;
&amp;nbsp; Allocatable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yes (but full)&lt;br /&gt;
&amp;nbsp; PE Size (KByte)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4096&lt;br /&gt;
&amp;nbsp; Total PE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 238437&lt;br /&gt;
&amp;nbsp; Free PE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&lt;br /&gt;
&amp;nbsp; Allocated PE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 238437&lt;br /&gt;
&amp;nbsp; PV UUID&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EUt6gs-8AIF-sAXe-q2MH-3L27-v57p-P6aESM&lt;/font&gt; 
&lt;/p&gt;
&lt;p&gt;
This come in very handy when doing an IO check and noticing a high state of wait on a particular drive and pvdisplay works on those as well.&amp;nbsp; In order to get the whole volume group, we would have to trace back the rest of them to complete the picture to get the full 3000GB assigned on the SAN. 
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/hzhFX0p0phk/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2009/03/09/Tracing-volume-groups-with-an-HBA-in-linux.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=0eeba3b2-b3f4-4ea8-827c-4e0ce1b125a8</guid>
      <pubDate>Mon, 09 Mar 2009 09:32:00 -1000</pubDate>
      <category>Linux</category>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=0eeba3b2-b3f4-4ea8-827c-4e0ce1b125a8</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=0eeba3b2-b3f4-4ea8-827c-4e0ce1b125a8</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2009/03/09/Tracing-volume-groups-with-an-HBA-in-linux.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=0eeba3b2-b3f4-4ea8-827c-4e0ce1b125a8</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=0eeba3b2-b3f4-4ea8-827c-4e0ce1b125a8</feedburner:origLink></item>
    <item>
      <title>Problems you can't test for</title>
      <description>&lt;p&gt;
Right now I&amp;#39;m waiting on a QA person to verify the code push that just happened, which seems like no big deal ...until I mention that half the team was unable to connect in for most of the time&amp;nbsp; I&amp;#39;ve come to find out that things happen that you NEVER see coming and I&amp;#39;m talking about really odd ball things you can NEVER plan for.&amp;nbsp; This is a perfect example. 
&lt;/p&gt;
&lt;p&gt;
This evening,&amp;nbsp;after making contact with everyone involved, I disabled the load balancer and let the others know its time to do their thing.&amp;nbsp; One at a time, each server went down, files were being copied, everything was as it should be, noooo problems&amp;nbsp;...until about 1 hour into it, I lost my VPN connection.&amp;nbsp; Not good.&amp;nbsp; Why?&amp;nbsp; Last time this happened it was (still is) a huge fire causing all sorts of pain and suffering and it happened right @ 1am on the dot.&amp;nbsp; I message the other two connected in and they report no problems.&amp;nbsp; About that time I ask the 4th person -- they lost connection about the same time I did.&amp;nbsp; Long story short, road runner must have been doing and outage around the same time we were.&amp;nbsp; All DNS requests resolved, but IP routes fell flat.&amp;nbsp; Trace routes&amp;nbsp;did their usual hop a few&amp;nbsp;then disappear&amp;nbsp;(no ping reply).&amp;nbsp; The other two (At&amp;amp;t / WOW) had no problems.&amp;nbsp; After about an hour and&amp;nbsp;a half, we were back up.
&lt;/p&gt;
&lt;p&gt;
So how do you plan for this?&amp;nbsp; Indirectly, you do, by having multiple people in multiple places if at all possible.&amp;nbsp; If you&amp;#39;re all at work and that has an issue, it would&amp;#39;ve been a fire sale and people would&amp;#39;ve been freaking out (rightfully so) -- your app is down in a remote location, you just disabled your network gear and there&amp;#39;s no way to get it back quickly other than to get the connection you just lost, back.&amp;nbsp; At the same time, because we had multiple networks at our disposal, we were able to nail down that indeed it WAS road runner and not the production systems&amp;nbsp;perceived&amp;nbsp;to be&amp;nbsp;lost.&amp;nbsp; Imagine the conversations about what really happened ...and what the REAL answer was?
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/qop_mFpO2Ys/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2009/03/02/Problems-you-cant-test-for.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=54e7622d-9d8f-4469-b6da-c4ebfc845b5c</guid>
      <pubDate>Mon, 02 Mar 2009 21:23:00 -1000</pubDate>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=54e7622d-9d8f-4469-b6da-c4ebfc845b5c</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=54e7622d-9d8f-4469-b6da-c4ebfc845b5c</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2009/03/02/Problems-you-cant-test-for.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=54e7622d-9d8f-4469-b6da-c4ebfc845b5c</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=54e7622d-9d8f-4469-b6da-c4ebfc845b5c</feedburner:origLink></item>
    <item>
      <title>Security - Part 3 of X</title>
      <description>&lt;p&gt;
In the first two parts of this covered the idea of security and physical security.&amp;nbsp; We now move into access security.&amp;nbsp; Access security is a highly religious topic, bent with emotions, misinformation, egos, principals&amp;nbsp;and typically (worthless)&amp;nbsp;corporate policy so prepare for battle on this one if you dare tackle it.&amp;nbsp; Let&amp;#39;s dive right into this using our previous example of an office building and I&amp;#39;m looking for a port to plug into the network.&amp;nbsp; How long will that take?&amp;nbsp; Virtually no time, they&amp;#39;re everywhere, which leads me to my first not-really bold statement of this post. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Network access cannot be controlled.&lt;/strong&gt;&amp;nbsp; If you haven&amp;#39;t heard this yet, let this be the end all.&amp;nbsp; Under no circumstance can any company in today&amp;#39;s world do business without having network access available to&amp;nbsp;the world, period.&amp;nbsp;&amp;nbsp;Clients, employees, your own staff need access to the net at a moments notice for a variety of business reasons (or not so business reasons) and the network should not get in the way - costs too much money and overhead.&amp;nbsp; Generally speaking, the network should never be seen nor heard but &amp;quot;just there&amp;quot;.&amp;nbsp; So accepting this, the next issue is anything&amp;nbsp;device attached to your network can&amp;#39;t be trusted, regardless if it actually has your policy on it ...at least initially.&amp;nbsp; Taking the same mindset from the previous post of doing &amp;quot;what if&amp;quot; with a slight tweak, we&amp;#39;re going to add &amp;quot;and I wanted to affect &amp;lt;blank&amp;gt;&amp;quot;.&amp;nbsp; We&amp;#39;re going to say the network policy is&amp;nbsp;basic - some sites are blocked,&amp;nbsp;most&amp;nbsp;ports are blocked except the usuals (http,&amp;nbsp;smtp, some other services) and we ask &amp;quot;What if I came in with a laptop/pda/some-wireless-device and plugged it into the network and wanted to affect the entire network?&amp;quot; 
&lt;/p&gt;
&lt;p&gt;
That&amp;#39;s a hugely vague question isn&amp;#39;t it?&amp;nbsp; The first one that comes to my mind is network speed -- why?&amp;nbsp; It&amp;#39;s fairly easy to flood the bejesus out of a network with multicast packets (refereed to as a&amp;nbsp;multicast/&lt;a href="http://www.pcmag.com/encyclopedia_term/0,2542,t=broadcast+storm&amp;amp;i=38949,00.asp" target="_blank"&gt;broadcast&amp;nbsp;storm&lt;/a&gt;).&amp;nbsp; I did this once, by total accident while doing a norton ghosting -- meant to select unicast and missed, but it pointed to some flaws in network management, which brings up another point that requires a slight tangent&amp;nbsp;-- &lt;strong&gt;not all attacks are intentional&lt;/strong&gt;. Some of them are completely, totally innocent.&amp;nbsp; They might be stupid, or misinformed or just downright unknowing, but sometimes it happens and a well protected system will resist these accidental attacks as well.&amp;nbsp; So, back to the multicast storm - I&amp;#39;ve started one and tons of junk data is now flooding the network at an amazing rate, taking the system down to a crawl (think 14.4 modem speed).&amp;nbsp; This fix is easy - simple flood control turned on will limit the effect if not eliminate it (depends on size of the network, infrastructure, etc).&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Ok, cheap shot, that &amp;quot;hole&amp;quot; is plugged, what&amp;#39;s my next vector?&amp;nbsp; Well, I&amp;#39;d would like a login, a username and pass, maybe some network share info so I launch a man in the middle attack and get some unsuspecting user (someone that comes in late and hasn&amp;#39;t logged in is ideal) and get some hash values, sids and a username, run my favorite password cracker and gain some entry.&amp;nbsp; Sound hard?&amp;nbsp; Nope, I&amp;#39;ve done it before as a demo, proof of concept and had a secretaries password busted in under 3 minutes.&amp;nbsp; Even worse, recent advances in hardware and of all things, gaming &lt;a href="http://www.technewsworld.com/story/59996.html" target="_blank"&gt;video cards have made it possible to crack that tougher password&lt;/a&gt; MUCH faster.&amp;nbsp; This is where a decision would have to be made in regards to what you are protecting.&amp;nbsp; Should you enforce long, complex passwords?&amp;nbsp; Should you bump your domain to NTLMv2 or kerbrose?&amp;nbsp; Those are decisions that will have to be weighed and decided per the requirements (cost vs risk) but lets say you do kerbrose but not long passwords so that should protect them a bit more. 
&lt;/p&gt;
&lt;p&gt;
Now the passwords are heavy on the encryption (not to be confused with hashing), I can&amp;#39;t flood the network anymore, now what?&amp;nbsp; Oh look, a pc with a hard drive -- let&amp;#39;s clone it!&amp;nbsp; If this doesn&amp;#39;t make you wince in pain, I don&amp;#39;t know what will.&amp;nbsp; Notice I didn&amp;#39;t say steal it, I said clone.&amp;nbsp; I&amp;#39;m more interested in the cache of users and passwords on the drive than anything else first and foremost.&amp;nbsp; The random slew of documents and other junk on the drive is a nice bonus, maybe I can find other apps to attack (we&amp;#39;ll get to that later) but for now, I want a copy to see what I can see.&amp;nbsp; Now, since I&amp;#39;m downright evil, I want to change an HR document and toss it back on the network that clearly has promises that are way out of line (you get a corvette for your 5 year anniversary).
&lt;/p&gt;
&lt;p&gt;
Data&amp;#39;s now on a server somewhere, encrypted, so changing stupid stuff isn&amp;#39;t&amp;nbsp;easy ...how about a keylogger like I mentioned in the other posts?&amp;nbsp; I&amp;#39;m going to stop here because I think the point is made -- they&amp;#39;re impractical to control in most situations.&amp;nbsp; Enforcing long passwords is known to increase your helpdesk tickets (see : expensive) -- talk about a hassle but you should get the idea by now.&amp;nbsp; Their ARE many ways to fix these problems with quarantine networks, 802.11x authentications, IPSec (a GREAT IDEA), radius and others.&amp;nbsp; If you&amp;#39;ve never heard of these, look into them, now.&amp;nbsp; Next post, I want to talk about the touchy subject of policies and how I feel they should be approached.
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/trhrIJQG7C0/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2008/12/11/Security-Part-3-of-X.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=2d5ec130-a3c5-4413-a770-147d79808dd5</guid>
      <pubDate>Thu, 11 Dec 2008 06:31:00 -1000</pubDate>
      <category>Design</category>
      <category>Engineering</category>
      <category>Security</category>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=2d5ec130-a3c5-4413-a770-147d79808dd5</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=2d5ec130-a3c5-4413-a770-147d79808dd5</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2008/12/11/Security-Part-3-of-X.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=2d5ec130-a3c5-4413-a770-147d79808dd5</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=2d5ec130-a3c5-4413-a770-147d79808dd5</feedburner:origLink></item>
    <item>
      <title>Security - part 2 of X</title>
      <description>&lt;p&gt;
In part 2 of X, I&amp;#39;m going to cover the aspects of physical security.&amp;nbsp; This doesn&amp;#39;t seem like rocket science, but again, I&amp;#39;m surprised how the same breaches happen again and again so it&amp;#39;s necessary to cover it.&amp;nbsp; Physical security is often overlooked.&amp;nbsp; If a bad guy has access to the server room, network gear, etc, he owns it, not you.&amp;nbsp;&amp;nbsp;The biggest, baddest&amp;nbsp;security is worthless if it&amp;#39;s taken out by&amp;nbsp;pulling a power cord -- game over and time to update the resume. 
&lt;/p&gt;
&lt;p&gt;
Personally, I think physical security is the easiest to figure out.&amp;nbsp; Look around a room, figure out the logistics of people coming and&amp;nbsp;going and put something in between it.&amp;nbsp; Also, consider the&amp;nbsp;ifs - &amp;quot;If I&amp;nbsp;made it here, what would be my next easy target&amp;quot;.&amp;nbsp; Sticking with the previous post&amp;#39;s style, we&amp;#39;re going to create a server room to help illustrate the various aspects of this particular topic.&amp;nbsp;&amp;nbsp;Also, get into the mindset of being downright evil and I mean &lt;strong&gt;EVIL&lt;/strong&gt;.&amp;nbsp; It will help you expose real problems that could be easy to protect and its fun. 
&lt;/p&gt;
&lt;p&gt;
Let&amp;#39;s say the server room is&amp;nbsp;on the 3rd floor of an office building.&amp;nbsp; It&amp;#39;s a real room, has a door with a lock, an AC unit for environmental control and 50 servers of various kinds.&amp;nbsp; Let&amp;#39;s start with the first if.&amp;nbsp; &amp;quot;If I wanted to get in, how would I start?&amp;quot;&amp;nbsp; By simply walking in the front door.&amp;nbsp; I know, lame, but if there&amp;#39;s nothing providing access control to the whole building, getting in is the easiest part.&amp;nbsp; Now there&amp;#39;s a guard.&amp;nbsp; The guard doesn&amp;#39;t necessarily control who comes in when, but we&amp;#39;ll come back to the guard&amp;#39;s role&amp;nbsp;as we move though this.&amp;nbsp; Now I move to the server room. 
&lt;/p&gt;
&lt;p&gt;
&amp;quot;If I got to the server room, what would be my next easy target?&amp;quot;&amp;nbsp; The ceiling.&amp;nbsp; Surprised?&amp;nbsp; How many office buildings have you seen that have &lt;strike&gt;false&lt;/strike&gt; free hanging ceilings?&amp;nbsp; The first thing I would do is look around for an adjoining office,&amp;nbsp;jump up on the desk, push up some tiles and hop up and over - fancy locks and doors&amp;nbsp;are now worthless.&amp;nbsp; Also, if the walls are weak, ie, made of drywall, how long would it take to punch though that?&amp;nbsp; Seconds.&amp;nbsp; The door itself - could it take a brute force kick? 
&lt;/p&gt;
&lt;p&gt;
Notice I didn&amp;#39;t talk about &lt;a href="http://www.masterlock.com/" target="_blank"&gt;locks&lt;/a&gt;.&amp;nbsp; Why?&amp;nbsp; As hard as it was to get my head around it, I do not consider locks a security piece.&amp;nbsp; Many companies would have you believe if you have a lock on something, that&amp;#39;s it, no one can get into it which is dead wrong.&amp;nbsp; At best, locks are a delayed&amp;nbsp;access control device, nothing more.&amp;nbsp; Example&amp;nbsp;:&amp;nbsp;if I put a big, $500 lock on a door made of 3/16&amp;quot; plywood, I&amp;#39;m not attacking the lock, I&amp;#39;m attacking the door.&amp;nbsp; Game over.&amp;nbsp; Removing the idea of a lock making something &amp;quot;secure&amp;quot; helps in this thought process. 
&lt;/p&gt;
&lt;p&gt;
Now, moving on into the server room itself.&amp;nbsp; &amp;quot;If I made it into the server room, what would be my next easy target&amp;quot; -- this one is stupid easy, I&amp;#39;m looking for incredible impact with the least amount of effort - the network cables.&amp;nbsp; Most companies have their network cables funneling into the room in one BIG pipe - &lt;a href="http://www.dewalt.com/us/products/tool_detail.asp?productID=216" target="_blank"&gt;cut that&lt;/a&gt; and I win!&amp;nbsp; No level of documentation will save you on this one because that bundle of cables goes to 500 different locations all over the building and you&amp;nbsp;shouldn&amp;#39;t (can&amp;#39;t) splice the wires back together or&amp;nbsp;worse, fiber,&amp;nbsp;so now what?&amp;nbsp; Told you to get into an evil mindset!&amp;nbsp; Next I&amp;#39;m looking at the power, another big win if I knock it out.&amp;nbsp; A switch, a panel, something that I can blow to kingdom come (not just throw the switch, I want that puppy to fry, spark and smoke - real damage).&amp;nbsp; What about the AC (or now more commonly called the EU, environmental unit)?&amp;nbsp; If I can disable that in some way, especially on a long weekend in July, it&amp;#39;ll be the gift that keeps on giving!&amp;nbsp; How quickly would YOU notice? 
&lt;/p&gt;
&lt;p&gt;
Ok, I&amp;#39;m having fun wrecking a server room, but let&amp;#39;s say all those are protected.&amp;nbsp; The power/network wires are under the floor, the servers are the only thing I really have access to.&amp;nbsp; Regardless if the servers are in a rack or otherwise sitting out, if I can get to the cables going INTO them, this opens a whole new list of problems.&amp;nbsp; Many KVMs have an input and 4, 8, 16 outputs.&amp;nbsp; Now I install a &lt;a href="http://www.wirelesskeylogger.com/" target="_blank"&gt;keylogger device that transmits wirelessly&lt;/a&gt;, game over.&amp;nbsp; I can also pull cables at random and take out other systems one by one (or with one big pull). 
&lt;/p&gt;
&lt;p&gt;
The servers are all in enclosed racks, no wires outside at all, I can see the lights blinking, and thats it.&amp;nbsp; Ok, fine, lets just take the whole thing!&amp;nbsp; Roll that puppy out the door!&amp;nbsp; Most companies don&amp;#39;t assemble their racks, so it&amp;#39;s going to fit rolling out the door.&amp;nbsp; Oh, and nevermind the wires your ripping up while you do it, maybe it&amp;#39;ll be just intertwined enough to pull other stuff out as you go (or just cut it).&amp;nbsp; At this point, the guard comes into play.&amp;nbsp; Without that guard, no one would think twice, much less say anything but any (good) guard would stop that in a heartbeat.&amp;nbsp; Easier fix for this is just bolt the thing to the floor in some manner, most racks come with a kit.&amp;nbsp; If not, build your own.&amp;nbsp; No really. 
&lt;/p&gt;
&lt;p&gt;
Ok, now what?&amp;nbsp; I can&amp;#39;t get into the server room because there&amp;#39;s concrete walls to the ceiling, a nice steel door with no visible lock and it wouldn&amp;#39;t matter because the servers are locked down tighter than the outside.&amp;nbsp; I can&amp;#39;t get to the wires, I can&amp;#39;t get to anything inside that room.&amp;nbsp; Ok, so let&amp;#39;s plug our laptop into the network and see what we can find -- which I&amp;#39;ll talk more about in the next posting. 
&lt;/p&gt;
&lt;p&gt;
Hopefully this has got you thinking.&amp;nbsp; Granted yes, some of the things covered here are a bit extreme but not unrealistic.&amp;nbsp; I&amp;#39;m sure some are thinking &amp;quot;that person would be caught and throw in&amp;nbsp;prison forever!&amp;nbsp; No one is stupid enough to do that&amp;quot; -- I beg to differ and&amp;nbsp;ultimately, if&amp;nbsp;someone&amp;nbsp;does something amazingly destructive&amp;nbsp;to your companies ability to be productive, it doesn&amp;#39;t make ANY difference what happens to the person that did it, none, zero because it&amp;#39;s already done and money is already being lost.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Cost wise, with the exception of the guard and the true floor-to-ceiling walls, none of them are all that expensive.&amp;nbsp; Most important, consider&amp;nbsp;your needs.&amp;nbsp; You may not need the 5000$ RFID system where a simple key-code door will do.&amp;nbsp; That will be left to cost analysis&amp;nbsp;and &lt;strike&gt;religion&lt;/strike&gt; policy. 
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/-GQ3NweuMy0/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2008/12/07/Security-part-2-of-X.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=55557178-92a2-45cc-9b86-9976250a21a3</guid>
      <pubDate>Sun, 07 Dec 2008 23:21:00 -1000</pubDate>
      <category>Architecture</category>
      <category>Design</category>
      <category>Security</category>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=55557178-92a2-45cc-9b86-9976250a21a3</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=55557178-92a2-45cc-9b86-9976250a21a3</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2008/12/07/Security-part-2-of-X.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=55557178-92a2-45cc-9b86-9976250a21a3</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=55557178-92a2-45cc-9b86-9976250a21a3</feedburner:origLink></item>
    <item>
      <title>Security - part 1 of X</title>
      <description>&lt;p&gt;
In this world we live in today, there are many issues that hit in the security realm but I&amp;#39;m astonished at how the same issues keep coming up so I feel it&amp;#39;s necessary to go over them as best I can.&amp;nbsp; Some things may shock you, freak you out, piss you off and generally make you think I&amp;#39;m full of it.&amp;nbsp; That&amp;#39;s ok, I welcome it! 
&lt;/p&gt;
&lt;p&gt;
When I first started writing this, I realized there&amp;#39;s a lot to to cover, so I am going to make this a multi-part posting.&amp;nbsp; It won&amp;#39;t be geek-cool in a lot of places, nor will it be super exciting&amp;nbsp;but informative and thought provoking.&amp;nbsp; I will attempt to the best I can to cover points, counter points, countermeasures and realistic expectations.&amp;nbsp; Some of them will be overlapping, cross referencing, contradicting&amp;nbsp;and downright confusing but stick with it, at the end it should make sense ...sort of.&amp;nbsp; So let&amp;#39;s drive right into it. 
&lt;/p&gt;
&lt;p&gt;
Security is really risk management, not necessarily protection or what we typically think of as being safe.&amp;nbsp; It seems backwards, but it&amp;#39;s true.&amp;nbsp; For this to make any bit of sense, I&amp;#39;m going to use a house as an example, your house.&amp;nbsp; Look around your house and think about what keeps people out, where they keep people out and how it keeps those people out.&amp;nbsp; How does it let people in? 
&lt;/p&gt;
&lt;p&gt;
Quick observations would show a front door that has a lock, maybe even a deadbolt, windows with locks, some lights for the front, perhaps motion activated and maybe a garage door with internal access.&amp;nbsp; Those are the obvious, but what about the less obvious?&amp;nbsp; How about dogs (detectors), a safe (heavy protection), internal door locks (light protection)?&amp;nbsp; What is even less obvious ...what about you (security policy) and anyone that lives in the house?&amp;nbsp; There&amp;#39;s a lot of things going on and I haven&amp;#39;t even got to the point where someone wants in!&amp;nbsp; Now, say someone comes up to the front door, knocks (makes a request) -- does that person get in immediately?&amp;nbsp; The first reaction is &amp;quot;no! of course not!&amp;quot; -- What about big gatherings during the summer say a graduation or retirement?&amp;nbsp; Enter the all mighty &amp;quot;It depends&amp;quot;. 
&lt;/p&gt;
&lt;p&gt;
&amp;quot;It depends&amp;quot; will get used often, but for good reason - it refers to the policy and the decisions based on that policy.&amp;nbsp; We all have them in some capacity but we don&amp;#39;t think about it much, it just happens.&amp;nbsp; For example: grandma comes over.&amp;nbsp; Grandma knocks or you see her coming, you open the door, let her in and she is now inside.&amp;nbsp; Is grandma now part of the internal policy? YES!&amp;nbsp; How?&amp;nbsp; Grandma can let people in, open/unlock doors, windows, and overall apply her own policy.&amp;nbsp; Now, I don&amp;#39;t mean to pick on grandma, but if someone comes to the front door with a big smile&amp;nbsp;and says they know you or your family, do you think grandma will be the first to say &amp;quot;no!&amp;quot; ...maybe not, and that could be a problem depending on who it is.&amp;nbsp; Instead, if grandma goes to answer the door,&amp;nbsp;without thinking you&amp;nbsp;policy her policy -- &amp;quot;Who is it grandma?&amp;quot; and await a reply (request) of who it is.&amp;nbsp; If that person is unknown or something isn&amp;#39;t quite right, you go and check it out (authenticate).&amp;nbsp; This also varies with the type of neighborhood, where you grew up, where grandma grew up and so on.&amp;nbsp; If you live in a downtown area, more likely than not you&amp;#39;ll look out your peep hole before you open the door whereas if you live out in the country, you might just yell &amp;quot;come in!&amp;quot;. 
&lt;/p&gt;
&lt;p&gt;
I&amp;#39;m going to take this to the extreme.&amp;nbsp; Let&amp;#39;s say the house is &amp;quot;high&amp;quot; security.&amp;nbsp; Cameras, bullet proof glass, steel reinforced doors, heavily armed guards (with guard dogs!), iron gates, laser turrets with a large open, unobstructed lawn surrounding the house (seriously, you didn&amp;#39;t think that was just for looks did you?) -- and grandma comes over.&amp;nbsp; In and of itself, grandma&amp;#39;s way of getting in is the same -- a request is made and once inside she can apply her own policy, albiet less dramatic, still can cause problems. 
&lt;/p&gt;
&lt;p&gt;
Same goes for every type of security.&amp;nbsp; Security in this context does not mean protection necessarily it means management of &lt;strong&gt;realistic&lt;/strong&gt; risk.&amp;nbsp; Take the first example -- most people feel perfectly comfortable and &amp;quot;safe&amp;quot; inside their home, as they should, but does that -really- stop someone from entering?&amp;nbsp; NO!&amp;nbsp; The second example with the extreme (insane) security doesn&amp;#39;t either.&amp;nbsp; It&amp;#39;s the amount of effort required for someone unauthorized to enter and &lt;strike&gt;wreak havok&lt;/strike&gt; come for a visit.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&amp;quot;How do you figure?&amp;nbsp; You mean to tell me that my family isn&amp;#39;t as important as someone in a stupid crazy high security compound?&amp;quot; NO! and this is where it gets really interesting, at least I think so anyway.&amp;nbsp; I&amp;#39;m going to use another set of examples.&amp;nbsp; First up, a business of 50 employees.&amp;nbsp; They are in the (yep, I&amp;#39;m goin there) widget business.&amp;nbsp; They&amp;#39;re not big enough to have a full IT staff, and more importantly, it isn&amp;#39;t their business, but they do just fine.&amp;nbsp; Another business, Flashing 12 Inc has 50,000 employees across 24 countries and has a full, robust IT staff but like Widget Express, they&amp;#39;re not in the business of IT.&amp;nbsp; Each has a laptop stolen with &amp;quot;personal information&amp;quot; -- by law, this must be reported and both companies report it stolen.&amp;nbsp; Which company is effected more?&amp;nbsp; Widget Express.&amp;nbsp; As a matter of fact, because of the stolen laptop, the company goes bankrupt from all the bad press, lost business and cost to cover the breach - the other company can. 
&lt;/p&gt;
&lt;p&gt;
So what am I getting at?&amp;nbsp; Widget Express can&amp;#39;t handle a major disruption, much like many families cannot handle someone coming in and stealing a bunch of their stuff.&amp;nbsp; Am I saying that every family should have a laser turret out front? As cool as that would be&amp;nbsp;it&amp;#39;s not practical; the cost does not justify the potential loss.&amp;nbsp; What can (should) be done is handle the areas that make sense.&amp;nbsp; Example: a lock on the front door, first floor windows are locked,&amp;nbsp;lights are on and so on.&amp;nbsp; Easy, &lt;em&gt;cost effective &lt;/em&gt;&amp;nbsp;things that will clearly make it more difficult or even better make enough noise to take notice.&amp;nbsp; Most importantly they must be maintained -- having the 2nd house but leaving the tunnel outside of the compound open makes all those fancy, flashy things WORTHLESS. 
&lt;/p&gt;
&lt;p&gt;
In the next post, I hope to break this down into smaller pieces and look at the aspects of security - risk management, potential loss, and a bunch of other stuff regarding the more physical aspect of security. 
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/MvOgTwm-owI/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2008/12/05/Security-part-1-of-X.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=0a9ee6e0-9d75-4728-b3b4-70d99d39fa82</guid>
      <pubDate>Fri, 05 Dec 2008 06:07:00 -1000</pubDate>
      <category>Design</category>
      <category>Engineering</category>
      <category>Security</category>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=0a9ee6e0-9d75-4728-b3b4-70d99d39fa82</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=0a9ee6e0-9d75-4728-b3b4-70d99d39fa82</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2008/12/05/Security-part-1-of-X.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=0a9ee6e0-9d75-4728-b3b4-70d99d39fa82</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=0a9ee6e0-9d75-4728-b3b4-70d99d39fa82</feedburner:origLink></item>
    <item>
      <title>Dropdown lists with the same value, different text</title>
      <description>&lt;p&gt;
I&amp;#39;ve been working on some calculators that are rather heavy on the number side, but because of the nature of what these things are, there&amp;#39;s some issues that totally surprised me.&amp;nbsp; If you have two values in a dropdown and do a postback, unexpected things happen. 
&lt;/p&gt;
&lt;p&gt;
On a page, paste this into the source... 
&lt;/p&gt;
&lt;p&gt;
&amp;lt;asp:DropDownList ID=&amp;quot;DropDownList1&amp;quot; runat=&amp;quot;server&amp;quot; AutoPostBack=&amp;quot;true&amp;quot; &amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem Value=&amp;quot;3&amp;quot;&amp;gt;ItemA&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem Value=&amp;quot;4&amp;quot;&amp;gt;ItemB&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem Value=&amp;quot;3&amp;quot;&amp;gt;ItemC&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem Value=&amp;quot;4&amp;quot;&amp;gt;ItemD&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ListItem Value=&amp;quot;9&amp;quot;&amp;gt;ItemE&amp;lt;/asp:ListItem&amp;gt;&lt;br /&gt;
&amp;lt;/asp:DropDownList&amp;gt; 
&lt;/p&gt;
&lt;p&gt;
Load it up and watch what happens (select ItemA, then ItemB, ItemC, ItemD, ItemE) and note the behavior.&amp;nbsp; This is because (as I found out) .net keeps track of it in viewstate by value, not index, text or anything else (as demonstrated). 
&lt;/p&gt;
&lt;p&gt;
&amp;quot;Why is this a problem?&amp;nbsp; When would you have two values the same, that&amp;#39;ll never happen!&amp;quot;&amp;nbsp; - wrong!&amp;nbsp; In front of me is an xml doc with pressure values on it for the project I&amp;#39;m working on -- guess what, the pressure for itemC is the same as itemW, but the names are very different so this is a real world, totally practical reason why this should not work this way. 
&lt;/p&gt;
&lt;p&gt;
So how do you fix it?&amp;nbsp; Great question.&amp;nbsp; If I ever come up with a good one, I&amp;#39;ll post up an answer ...unless someone else does?&amp;nbsp; I have a feeling it will be saving the index, the value and the text into viewstate or a combination thereof by using an inherited control.&amp;nbsp; Just a thought. 
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/DWKn9ZS9ZR8/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2008/12/01/Dropdown-lists-with-the-same-value-different-text.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=46c27287-a643-4cab-a0c7-10fbd7f1f3bf</guid>
      <pubDate>Mon, 01 Dec 2008 05:00:00 -1000</pubDate>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=46c27287-a643-4cab-a0c7-10fbd7f1f3bf</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=46c27287-a643-4cab-a0c7-10fbd7f1f3bf</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2008/12/01/Dropdown-lists-with-the-same-value-different-text.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=46c27287-a643-4cab-a0c7-10fbd7f1f3bf</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=46c27287-a643-4cab-a0c7-10fbd7f1f3bf</feedburner:origLink></item>
    <item>
      <title>NFL Live is a joke</title>
      <description>&lt;p&gt;
I&amp;#39;m sitting here, right now, watching the horrible service known as &amp;quot;NFL LIVE&amp;quot;.&amp;nbsp; They advertise it for sprint &amp;quot;nfl mobile live&amp;quot; and it has made me a firm believer in NEVER buying the service, ever. 
&lt;/p&gt;
&lt;p&gt;
On paper, its a good deal - they broadcast the game online.&amp;nbsp; But what they don&amp;#39;t tell you is they don&amp;#39;t let you watch much of the game, at all.&amp;nbsp; What do I mean?&amp;nbsp; I&amp;#39;ve been watching the Bengals/Steelers game for an entire half.&amp;nbsp; I&amp;#39;ve seen maybe a total of 10 plays.&amp;nbsp; At first I thought it was an injury time out or they were doing something else to kill time -- no, they&amp;#39;re not.&amp;nbsp; It&amp;#39;s terrible!!&amp;nbsp; What&amp;#39;s worse, the picture quality leaves much to be desired.&amp;nbsp; More so, the audio quality sounds like I&amp;#39;m in a sewer pipe.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
They want someone to pay for this junk?&amp;nbsp; I&amp;#39;m sorry guys, go back to the drawing board and start alllllll over. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
</description>
      <link>http://feedproxy.google.com/~r/rileytech/~3/MABssUaknx0/post.aspx</link>
      <author>jeriley.nospam@nospam.gmail.com (Jesse)</author>
      <comments>http://blog.rileytech.net/post/2008/11/20/NFL-Live-is-a-joke.aspx#comment</comments>
      <guid isPermaLink="false">http://blog.rileytech.net/post.aspx?id=0554b66f-9648-457e-ac5a-f81c3469212c</guid>
      <pubDate>Thu, 20 Nov 2008 15:23:00 -1000</pubDate>
      <dc:publisher>Jesse</dc:publisher>
      <pingback:server>http://blog.rileytech.net/pingback.axd</pingback:server>
      <pingback:target>http://blog.rileytech.net/post.aspx?id=0554b66f-9648-457e-ac5a-f81c3469212c</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://blog.rileytech.net/trackback.axd?id=0554b66f-9648-457e-ac5a-f81c3469212c</trackback:ping>
      <wfw:comment>http://blog.rileytech.net/post/2008/11/20/NFL-Live-is-a-joke.aspx#comment</wfw:comment>
      <wfw:commentRss>http://blog.rileytech.net/syndication.axd?post=0554b66f-9648-457e-ac5a-f81c3469212c</wfw:commentRss>
    <feedburner:origLink>http://blog.rileytech.net/post.aspx?id=0554b66f-9648-457e-ac5a-f81c3469212c</feedburner:origLink></item>
  </channel>
</rss>
