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

<channel>
	<title>Your Warranty Is Void.com &#187; Networking</title>
	<atom:link href="http://www.yourwarrantyisvoid.com/category/networking/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yourwarrantyisvoid.com</link>
	<description>Linux, Hardware, Software and Chaos. What more is there?</description>
	<lastBuildDate>Wed, 18 Jan 2012 03:59:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Networking: Bringing IPv6 into your network using pfSense</title>
		<link>http://www.yourwarrantyisvoid.com/2011/12/01/networking-bringing-ipv6-into-your-network-using-pfsense/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/12/01/networking-bringing-ipv6-into-your-network-using-pfsense/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 23:06:05 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[IPv6]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[pfSense]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=1047</guid>
		<description><![CDATA[The Internet as we know it is undergoing a significant change.  With the last IPv4 addresses being allocated out, the Internet has officially run out of address space.  IPv6 is the next-generation IP addressing system that aims to resolve this issue however the changes proposed are drastically different than the current IP schema currently in [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-1049" title="he-pfsense-ipv6-logo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/he-pfsense-ipv6-logo.png" alt="Hurricane Electric, PfSense and IPv6" width="497" height="172" />The Internet as we know it is undergoing a significant change.  With the last IPv4 addresses being allocated out, the Internet has officially run out of address space.  IPv6 is the next-generation IP addressing system that aims to resolve this issue however the changes proposed are drastically different than the current IP schema currently in place and for most is quite a daunting task to switch. In this post, we will cover some basic IPv6 information and some fundamental differences between v4 and v6 (aside from tons of IPs), and finally we will build out a pfSense firewall with IPv6 using pfSense and a free IPv6 tunnel provided by Hurricane Electric. Read more to get started on the cutting-edge of Internet infrastructure.<span id="more-1047"></span></p>
<h1>IPv6 Introduction</h1>
<h2>First, the basics&#8230;.</h2>
<p>Understanding IPv6 networking may first come off as an extremely complicated endeavor however it&#8217;s not that much different from IPv4.  The biggest thing about IPv6 is the massive amount of IPs that are made available by the change in the network protocol.  To put it in perspective, the entirety of the existing IPv4 address space consists of approximately 4,228,250,625 addresses (from 0.0.0.0 to 255.255.255.255, or 255^4 including private network blocks and multicast addresses) An IPv6 network block (like the /64 network block that we&#8217;ll get from Hurricane Electric) contains  18,446,744,073,709,551,616 IPs.  The /64 network assigned to us from Hurricane Electric is only a minuscule fraction of the entire IPv6 address space.</p>
<p>An IP address in IPv4 uses four numbers in a dotted quad notation with numbers between 0 and 255, like 192.168.1.4 and will include a subnet mask like 255.255.255.0.  This is used to establish the &#8220;network&#8221; that an IP address is a member of. An IPv6 address is radically different, with 8 hexidecimal (from 0000 to FFF) numbers seperated by a colon (:), then following up with a subnet mask in CIDR notation. An example of an IPv6 address (in this case, ipv6.google.com) is 2001:4860:4002:0802:0000:0000:0000:1010.  Rather than spell all that out, you can use :: to represent one contiguous block of zeros, and leading zeros can be removed.  The formidable example address now becomes slightly less scary 2001:4860:4002:802::1010.  Another example of an IPv6 address in this &#8220;compressed&#8221; notation, would be the IP address for Facebook 2620:0:1cfe:face:b00c::3 (faceb00c, lol). Yet another funny IPv6 address is cisco.com, at 2001:420:80:1:c:15:c0:d06:f00d (c15co, f00d).</p>
<h2>Some differences in IPv4 and IPv6</h2>
<p>The biggest difference in IPv6 from a network standpoint is that it virtually eliminates the requirement for Network Address Translation.  Instead of proxying an IP address for multiple home networks/hosts, your IPv6 network is fully routable, meaning that you can access your home computer from the Internet without the need of using port forwarding or IP masquerading.  While you technically can NAT an IPv6 address, it&#8217;s no longer an absolute requirement for Internet access. Because the Internet can now access your network, it is especially important that your firewall is configured to deny incoming connections from the Internet and explicitly allow connections on an as-needed basis (like running a web server from home, etc..). We will establish a common ruleset later on, once we have completed the IPv6 configuration.</p>
<p>Another significant change in IPv6 is changes made to the DHCP protocol.  Instead of a DHCP server telling a host what the default gateway is for the attached network, the host will instead listen for a router advertisement and will use that in its internal routing table to know how to get to the public Internet.  This router advertisement is handled by radvd which announces the router&#8217;s IP address to the network.</p>
<h2>A few things to consider</h2>
<p>When <a href="http://www.worldipv6day.org/" target="_blank">World IPv6 Test Day</a> was enacted and executed last June, many major websites went online and started offering IPv4 and IPv6 dual stack websites for the purpose of testing the world&#8217;s readiness for IPv6.  Many important things were discovered that day including the fact that most CPE devices (like Linksys routers, DSL and Cable modems and other devices) were not IPv6 compatible.  This was later broadened to include many Internet-connected devices like DVRs, Media machines and other devices were also not ready for IPv6. While some sites maintain IPv6 connectivity, once World IPv6 Test Day closed, so did many sites on IPv6 connectivity.</p>
<p>Before you start out on bringing IPv6 into your network, it is important to understand that IPv6 is still regarded as being an experimental protocol. Most of the sites you are used to won&#8217;t work in a pure IPv6 environment so we are going to set up a dual-stack network.  This means that you will be able to bring in IPv6 connectivity for IPv6 only sites and still be able to access your IPv4 sites just like your network has done in the past.</p>
<p>It is also important to realize that most embedded class devices will not use IPv6.  Devices like embedded media players, game systems, WiFi access points, printers and the like  may not support IPv6 even with firmware updates from the manufacturer.  Some devices may get support later on through vendor updates however many devices will probably not work.</p>
<p>At the very least you will learn a lot about IPv6 deployment, and you will have plenty of time to test your equipment prior to IPv6 becoming mandatory.</p>
<h1>Enough of the theory already, Let&#8217;s get started.</h1>
<p>In order to bring IPv6 into your home, we will be using an IPb6 tunnel provided by Hurricane Electric&#8217;s <a href="http://tunnelbroker.net/" target="_blank">TunnelBroker.net</a> service.  The service is free, and they provide you with a full /64 IPv6 network to play with.  In addition, they provide a certification service to test your IPv6 knowledge and skills once your IPv6 connectivity is up and running.  They give you a series of goals to accomplish even after your tunnel is up and you&#8217;re routing away and plus, it makes for great bragging rights.</p>
<p>In order to pull this off, you&#8217;ll need the following:</p>
<ul>
<li>PfSense 2.0 installed and working at the edge router on your network.<strong></strong></li>
<li>A client computer for testing. ( Windows Xp, Windows Vista, Windows 7, Linux, etc..)</li>
<li>Network switch, etc to make sure your client computer is connected to your router.</li>
<li>A WAN Internet connection.  (DHCP, Static, PPPoE, etc does not matter as long as it&#8217;s broadband)</li>
</ul>
<p><strong>Please Note:</strong> Due to the fact that we are using git to sync experimental code, you <strong>cannot</strong> use pfSense Embedded.  I tried to find a way around this, but unfortunately even at the 4GB disk image size, I was never able to get it to fit and work.</p>
<p>The IPv6 configuration will be split up into six sections:</p>
<ol>
<li>Configuring your existing pfSense router to sync up the latest IPv6 code.</li>
<li>Registering for an IPv6 Tunnel from Hurricane Electric.</li>
<li>Configuring pfSense for the tunnel, and DHCPv6.</li>
<li>Configuring workstations for IPv6.</li>
<li>Performing website testing</li>
</ol>
<h2>1: Sync up the latest IPv6 code</h2>
<p>We&#8217;ll start off with our already established and running pfSense router. We will need to enable SSH on the router so we can get to the commandline.  This will be the only time you will need to access the commandline however I do recommend leaving it enabled so you can troubleshoot the IPv6 connection later on.</p>
<p>Start off by logging into the router.  Click on &#8220;System&#8221;, then &#8220;Advanced&#8221;.  Place a check box next to &#8220;Enable Secure Shell&#8221;.  If you don&#8217;t want to use the standard port of &#8220;22&#8243;, you can specify a different port below.  Scroll down to the bottom and hit &#8220;Save&#8221;.  Don&#8217;t worry about opening up your SSH port, this does not enable it on the WAN interface.</p>
<div id="attachment_1055" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/enablessh.png"><img class="size-medium wp-image-1055 " title="Enabling SSH" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/enablessh-300x196.png" alt="Enabling SSH" width="300" height="196" /></a><p class="wp-caption-text">Enabling SSH in pfSense</p></div>
<p>Open up PuTTY and type in the IP address of your router.  If you specified an SSH port, be sure to specify it here as well.  For reference, here is my PuTTY configuration.</p>
<div id="attachment_1056" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/enablessh2.png"><img class="size-medium wp-image-1056 " title="PuTTY settings" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/enablessh2-300x287.png" alt="PuTTY settings" width="300" height="287" /></a><p class="wp-caption-text">PuTTY settings</p></div>
<p>Upon successful connection, you will be prompted for a username.  Use the same username and password you use for the Web UI (admin/pfsense).  Once you have successfully logged in, you will get the same status screen like you see on the serial port showing the WAN and LAN statuses and a menu.</p>
<div id="attachment_1057" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession.png"><img class="size-medium wp-image-1057 " title="SSH menu" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession-300x240.png" alt="SSH menu" width="300" height="240" /></a><p class="wp-caption-text">SSH menu</p></div>
<p>Select option 8 (Shell) and then type in the following command:  <strong>pkg_add -r http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/ports/i386/packages-8.1-release/Latest/git.tbz</strong>  This will install GIT and perform the update.  This will take several minutes to download and install all of the packages required to perform the sync.</p>
<div id="attachment_1058" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession2.png"><img class="size-medium wp-image-1058 " title="Installing Git" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession2-300x240.png" alt="Installing Git" width="300" height="240" /></a><p class="wp-caption-text">Installing Git</p></div>
<p>Once it has completed, type in <strong>exit</strong> or hit Ctrl-D to return to the SSH menu. At the SSH menu, type option <strong>12</strong> for the &#8220;pfSense Developer Menu&#8221;.</p>
<div id="attachment_1059" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession3.png"><img class="size-medium wp-image-1059 " title="Accessing the Developer Shell" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession3-300x240.png" alt="Accessing the Developer Shell" width="300" height="240" /></a><p class="wp-caption-text">Accessing the Developer Shell</p></div>
<p>Now we will do the GIT sync. It is important to follow these instructions exactly as this is where the current running pfSense code is synched up with the pfSense developer code.    At the pfSense developer shell prompt, type in <strong>playback gitsync</strong> and hit enter.</p>
<div id="attachment_1060" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession4.png"><img class="size-medium wp-image-1060 " title="Performing the Git sync" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession4-300x240.png" alt="Performing the Git sync" width="300" height="240" /></a><p class="wp-caption-text">Performing the Git sync</p></div>
<p>You will be prompted for the git branch to sync against.  Type in <strong>master</strong> and hit enter.  The next prompt will be for a custom RCS branch, just hit enter as we want to use the master branch only.  After you hit enter, the GIT Sync will begin.</p>
<div id="attachment_1061" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession5.png"><img class="size-medium wp-image-1061 " title="Specifying the Git Branch" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession5-300x240.png" alt="Specifying the Git Branch" width="300" height="240" /></a><p class="wp-caption-text">Specifying the Git Branch</p></div>
<p>Ok, now here&#8217;s the kicker.  <strong><em><span style="text-decoration: underline;">You must reboot!</span></em></strong> In the screenshot below, it looks like the upgrade has terminated and the device has restarted services however there are settings that have been changed that will only take effect on the next reboot.  The SSH Session should drop you back to the main SSH menu (what you saw when you initially logged in).  From here, select option <strong>5</strong> and answer <strong>y</strong> to reboot the device.</p>
<div id="attachment_1062" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession6.png"><img class="size-medium wp-image-1062 " title="Reboot after your SSH session gets terminated" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/sshsession6-300x240.png" alt="Reboot after your SSH session gets terminated" width="300" height="240" /></a><p class="wp-caption-text">Reboot after your SSH session gets terminated</p></div>
<p>When the router has successfully rebooted, check that your Internet connection works and that all is working well.  The one thing that remains is to set up an ICMP rule to allow Hurricane Electric to ping your WAN interface.  This is required as part of the tunnel setup. Login to your router, click on &#8220;<strong>Firewall</strong>&#8220;, then &#8220;<strong>Rules</strong>&#8220;.  Click the &#8220;+&#8221; add button at the bottom and add a new rule.  Set the interface to <strong>WAN</strong>, protocol to <strong>ICMP</strong>, and ICMP Type to <strong>Any</strong>.  (This can be modified later).  For the source, set the type to &#8220;<strong>Single Host or Alias</strong>&#8221; and enter the IP address of <strong>66.24.2.74</strong>.  This is the IP address of the IPv6 test endpoint.  Set the destination to &#8220;<strong>WAN Address</strong>&#8221; and lastly, enter a description.   Refer to the screenshot below if you need help.</p>
<div id="attachment_1063" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/wanping.png"><img class="size-medium wp-image-1063  " title="WAN Ping rule" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/wanping-300x257.png" alt="WAN Ping rule" width="300" height="257" /></a><p class="wp-caption-text">WAN Ping rule</p></div>
<p>Now that everything is in place in your router, it&#8217;s time to get your tunnel.</p>
<h2>2:Registering with Hurricane Electric</h2>
<p>Now that our router is prepped for the IPv6 installation, it&#8217;s time to register the account with Hurricane Electric.  Head on over to <a title="Hurricane Electric Tunnel Broker" href="http://tunnelbroker.net/" target="_blank">tunnelbroker.net</a> and register an account.  Once you&#8217;ve registered the account, you will get an email with the account information and a validation link.  After you validate, click on the &#8220;Create Regular Tunnel&#8221; on the left hand sidebar and you will be provided a form similar to the one in the screenshot below.  Be sure to select an endpoint that is as geographically close to you as possible or let the tool recommend the closest endpoint.  (Note: Hurricane Electric allows you to create up to five tunnels. If this is your first tunnel, you will not see the &#8220;You currently have 1 of 5 tunnels&#8221; message.)  Type your WAN IP address into the &#8220;IPv4 Endpoint&#8221; field, select the endpoint, then scroll down and hit &#8220;Create Tunnel&#8221;.</p>
<div id="attachment_1067" class="wp-caption aligncenter" style="width: 263px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel1.png"><img class="size-medium wp-image-1067 " title="Hurricane Electric Tunnel Setup" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel1-253x300.png" alt="Hurricane Electric Tunnel Setup" width="253" height="300" /></a><p class="wp-caption-text">Hurricane Electric Tunnel Setup</p></div>
<p>After your tunnel has been successfully created, you will get a page that shows your tunnel information.  At the bottom of the page, you will notice that the rDNS delegation fields are blank. Click the &#8220;delegate to dns.he.net&#8221; link to autofill the reverse nameservers with Hurricane Electric&#8217;s default nameservers.  Click &#8220;Save&#8221; to commit the changes, then print this page. You will need it for the pfSense page.  Keep in mind that the tunnel IP address and the Routed /64 are off by <strong><span style="text-decoration: underline;">one digit</span></strong>. This will be important later on.</p>
<div id="attachment_1068" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel2.png"><img class="size-medium wp-image-1068 " title="Tunnel Information Page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel2-300x286.png" alt="Tunnel Information Page" width="300" height="286" /></a><p class="wp-caption-text">Tunnel Information Page</p></div>
<p>If you are on a dynamic IP connection (DSL, Cable Internet, FiOS, etc&#8230;), there&#8217;s one more thing you need to be aware of.  Should your WAN IP change, you will need to update your tunnel. When you login to Hurricane Electric, you will get a page similar to the below, showing all of the configured tunnels on your account.</p>
<div id="attachment_1069" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel3.png"><img class="size-medium wp-image-1069 " title="Tunnel List Page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel3-300x205.png" alt="Tunnel List Page" width="300" height="205" /></a><p class="wp-caption-text">Tunnel List Page</p></div>
<p>To edit the tunnel, click on the tunnel name and you&#8217;ll be taken to the Tunnel Information page.  Click on the Client IPv4 address and make your IP change then simply click elsewhere on the page (not on a link) and wait for the text field to turn back to a link.  If it does not, it will provide an error message indicating the error (usually that it can not ping the WAN).</p>
<div id="attachment_1070" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel4.png"><img class="size-medium wp-image-1070 " title="WAN IP Setup Error" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/11/hetunnel4-300x297.png" alt="WAN IP Setup Error" width="300" height="297" /></a><p class="wp-caption-text">WAN IP Setup Error</p></div>
<h2>3: Configuring pfSense</h2>
<h3>Building up our tunnel endpoint</h3>
<p><strong>Note</strong>:  From here on out, I will be using the example IPs of <strong>2001:470:1234:567<span style="text-decoration: underline;">8</span>::</strong> for the IPv6 tunnel and <strong>2001:470:1234:567<span style="text-decoration: underline;">9</span>::</strong> for the Routed /64.  In your tunnelbroker.net configuration, you should have a similar offset (your tunnel is one IP less than your routed netblock).  Please keep this in mind as we go through the next steps as you can not get the two confused.</p>
<p>We have a synched router and we have our tunnel configuration. Now it&#8217;s time to start configuring pfSense.  We will start out by building out the tunnel endpoint. Login to the router and click on <strong>Interfaces &gt; Assign</strong> and click on the <strong>GIF</strong> tab.  We will be adding a GIF tunnel in order to bring in the IPv6 connectivity to our router. GIF uses <a href="http://www.ietf.org/rfc/rfc2893.txt" target="_blank">RFC2893</a> to encapsulate IPv6 into an IPv4 packet.  When we receive an encapsulated packet, pfSense will &#8220;unpack&#8221; it and reassemble it into an IPv6 packet before acting on it according to the firewall policy.  On the GIF tab, click the &#8220;<strong>+</strong>&#8221; link and enter your IPv6 tunnel endpoint information.</p>
<ul>
<li>Parent Interface should be set to WAN</li>
<li>GIF Remote Address should be the &#8220;Server IPv4 address&#8221;</li>
<li>GIF Tunnel Local Address should be the &#8220;Client IPv6 address&#8221;</li>
<li>GIF Tunnel Remote Address should be the &#8220;Server IPv6 address&#8221;</li>
<li>Description should be something descriptive but can be freeform.</li>
</ul>
<div id="attachment_1076" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense1.png"><img class="size-medium wp-image-1076" title="GIF interface page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense1-300x167.png" alt="GIF interface page" width="300" height="167" /></a><p class="wp-caption-text">GIF interface page</p></div>
<p>Once complete, hit &#8220;Save&#8221;. This will add the tunnel endpoint to the router. Click on <strong>Interface Assignments</strong> so we can assign it to a virtual interface.  To do this, click on the &#8220;<strong>+</strong>&#8221; icon and the GIF tunnel should show up as an OPT interface as shown in the screenshot below.</p>
<div id="attachment_1077" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense2.png"><img class="size-medium wp-image-1077" title="Interfaces page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense2-300x124.png" alt="Interfaces page" width="300" height="124" /></a><p class="wp-caption-text">Interfaces page</p></div>
<p>Now we need to configure the OPT interface. Click on <strong>Interfaces &gt; OPT1</strong>.  This will be the equivalent to the &#8220;WAN&#8221; of our IPv6 network.  Since it has never been used before, it is disabled by default. Place a checkbox next to &#8220;<strong>Enable Interface</strong>&#8221; which will add the IPv6 configuration section shown here. Set the <strong></strong></p>
<p>Click on the text &#8220;<strong>Add a new one</strong>&#8221; in the Gateway section and enter the configuration as shown.</p>
<ul>
<li>Default v6 Gateway should be <strong>Checked</strong>.</li>
<li>Gateway Name IPV6 is a brief one-word name to help you identify the gateway.  I have chosen &#8220;IPV6GW&#8221;.</li>
<li>Gateway IPv6 should be the <strong>Server IPv6 Address</strong>.</li>
<li>Description is an arbitrary length text to describe this gateway definition.</li>
</ul>
<p>When you&#8217;re done, you should have something similar to what is in the below screenshot.  For some reason, the gateway text showed up very small, so I increased the zoom so it was readable.</p>
<div id="attachment_1078" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense3.png"><img class="size-medium wp-image-1078" title="IPV6WAN setup" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense3-300x288.png" alt="IPV6WAN setup" width="300" height="288" /></a><p class="wp-caption-text">IPV6WAN setup</p></div>
<p>Click on &#8220;<strong>Save Gateway</strong>&#8221; first to commit the gateway information. You should see te IPv6 gateway show up in a dropdown.  Next, scroll down and click &#8220;<strong>Save</strong>&#8221; to save the Interface information.  Finally, click &#8220;<strong>Apply Changes</strong>&#8221; to apply the interface configuration and start the tunnel.  You can validate the tunnel&#8217;s operation by checking the dashboard (click on the pfSense logo).  If you don&#8217;t have the Interfaces and the Gateways windows, they can be added by clicking on the &#8220;<strong>+</strong>&#8220;  and selecting the relevant options.</p>
<div id="attachment_1079" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense4.png"><img class="size-medium wp-image-1079" title="Dashboard status page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense4-300x228.png" alt="Dashboard status page" width="300" height="228" /></a><p class="wp-caption-text">Dashboard status page</p></div>
<p>Now that the endpoint is up and running, it&#8217;s time to configure the LAN interface.</p>
<h3>Setting up the LAN interface</h3>
<p>Since we&#8217;re running in a dual-stack configuration, we are going to just add the IPv6 information to the existing IPv4 interface.  As an option, you could theoretically set up a VLAN and a new LAN interface and create an IPv6 only network.  This is something I&#8217;m planning on my network and something I&#8217;m sure I&#8217;ll cover in another article. Let&#8217;s start off by pulling up the LAN configuration via <strong>Interfaces &gt; LAN</strong>.</p>
<p>First thing to do is set the <strong>IPv6 Configuration Type</strong> to <strong>Static IPv6</strong>. This will show the IPv6 configuration section.  Enter the first IP address in the Routed /64 section from the tunnel information.  When complete, you should have something like the screenshot below.  Scroll down and hit <strong>Save</strong> to write the settings, then <strong>Apply</strong> to make the new settings active.</p>
<div id="attachment_1080" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense5.png"><img class="size-medium wp-image-1080" title="LAN configuration page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense5-300x279.png" alt="LAN configuration page" width="300" height="279" /></a><p class="wp-caption-text">LAN configuration page</p></div>
<h3>Setting up DHCPv6</h3>
<p>In order to bring the IPv6 configuration to your workstations, we will set up DHCPv6.  This is entirely optional as right now you could go ahead and set up static IPv6 addresses just as well as using DHCP however rather than typing insanely larger addresses into all of your workstations, it&#8217;s easier and faster to set up DHCPv6 and let the client OSes pull the DHCPv6 as needed.  To get started, click on <strong>Services &gt; DHCPv6 Server</strong> and then on the <strong>LAN</strong> tab.</p>
<ul>
<li>Set the <strong>Router Advertisements</strong> to <strong>Assisted</strong>.  This controls the radvd daemon mentioned earlier.  By setting the mode to &#8220;Assisted&#8221;, you are telling radvd to perform router advertisements on the local network. The radvd broadcasts are used by the DHCP client applications to set the default router.</li>
<li>Place a check next to <strong>Enable the DHCPv6 server on the LAN interface</strong>.</li>
<li>Enter the desired start and end addresses for your network DHCP range. Please note that unlike the &#8220;short notation&#8221; using the double colon, you must explicitly declare the zeroes for all octets.  In my example, I&#8217;m using 2001:470:1234:5679:0:0:0:100 as my start point and 2001:470:1234:5679:0:0:0:200 as my end point, allocating 256 addresses to DHCP (remember, IPv6 addresses are hexidecimal.)</li>
<li>Enter the Anycasted IPv6 DNS server from the Hurricane Electric tunnel configuration into the DNS server field.</li>
</ul>
<div id="attachment_1081" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense6.png"><img class="size-medium wp-image-1081" title="DHCPv6 configuration" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense6-300x282.png" alt="DHCPv6 configuration" width="300" height="282" /></a><p class="wp-caption-text">DHCPv6 configuration</p></div>
<h3>Configure some Firewall rules</h3>
<p>At this point, we have the router configured however without some firewall rules in place, we will not be able to route out or get a DHCP address. We will need to add a rule so that our IPv6 traffic can get out.  Click on <strong>Firewall -&gt; Rules</strong> then click on the <strong>LAN</strong> tab.  We are going to duplicate the outbound rule created for the LAN outbound.   In the rule listing, click on the &#8220;<strong>+</strong>&#8221; icon to the right of the IPv4 outbound rule and change the protocol from IPv4 to IPv6.  Once done, hit <strong>Save</strong> then <strong>Apply</strong>.  When you&#8217;re done, your LAN rules should look like the below.</p>
<div id="attachment_1082" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense7.png"><img class="size-medium wp-image-1082" title="Duplicated Firewall rules" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/pfsense7-300x109.png" alt="Duplicated Firewall rules" width="300" height="109" /></a><p class="wp-caption-text">Duplicated Firewall rules</p></div>
<h2> 4: Configure your workstations</h2>
<p>After you get the router configured, it&#8217;s time to set up a workstation.  For this test, I used a Linux box and a Windows 7 workstation.  For Windows, all that is needed is to make sure that the NIC has IPv6 support bound to it.  To do this, go to the Network and Sharing Center and click on the &#8220;Adapter Settings&#8221; on the left hand sidebar.  Right click the adapter and go to Properties.  Make sure that IPv6 is listed and checked as shown below:</p>
<div id="attachment_1085" class="wp-caption aligncenter" style="width: 248px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/ipv6nic.png"><img class="size-medium wp-image-1085" title="Windows 7 Network protocols list" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/ipv6nic-238x300.png" alt="Windows 7 Network protocols list" width="238" height="300" /></a><p class="wp-caption-text">Windows 7 Network protocols list</p></div>
<p>To test that it&#8217;s working properly, open up a command prompt and check to see that ipconfig is showing the proper IP address.  Disregard any fe80:: addresses as these are link-local and not routable for our purposes. Your output should look something similar to my output below:</p>
<div id="attachment_1086" class="wp-caption aligncenter" style="width: 289px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/ipconfig.png"><img class="size-medium wp-image-1086" title="Windows 7 ipconfig" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/ipconfig-279x300.png" alt="Windows 7 ipconfig" width="279" height="300" /></a><p class="wp-caption-text">Windows 7 ipconfig</p></div>
<p>In Linux, the setup is even easier.   Most Linux operating systems already have IPv6 enabled, so it&#8217;s just a matter of pulling an IP address.  Run <strong>sudo dhclient -6 -v {interface}</strong> where {interface} is your network interface.  In my output below, I am using wlan0.  The <strong>-v</strong> parameter is optional, this is only to show what dhclient is doing and that it picked up the address from pfSense.</p>
<div id="attachment_1088" class="wp-caption aligncenter" style="width: 217px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/Screenshot-Terminal.png"><img class="size-medium wp-image-1088" title="Linux dhcpcd output" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/Screenshot-Terminal-207x300.png" alt="Linux dhcpcd output" width="207" height="300" /></a><p class="wp-caption-text">Linux dhcpcd output</p></div>
<p>This next screenshot shows <strong>ifconfig</strong> with three IP addresses: One IPv4 address, one link local IPv6 address and the routeable IPv6 address.</p>
<div id="attachment_1089" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/Screenshot-Terminal-1.png"><img class="size-medium wp-image-1089" title="Linux ifconfig output" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/Screenshot-Terminal-1-300x131.png" alt="Linux ifconfig output" width="300" height="131" /></a><p class="wp-caption-text">Linux ifconfig output</p></div>
<p>If you want to make the IPv6 settings permanent, you can set this information in Network Manager.  Edit your existing network connection, click on <strong>IPv6 Network</strong>, set the &#8220;Method&#8221; dropdown to <strong>Automatic</strong> and hit <strong>Save</strong>.  I didn&#8217;t provide screenshots on this because it depends on the network type and connection name and it ended up being way more complex than necessary.  IPv6 connectivity should work on both wired and wireless Ethernet adapters.</p>
<h2>5: Time to test!</h2>
<p>There are several sites that are available that allow IPv6 testing and IPv6/v4 dual-stack testing. My favorite is <a href="http://test-ipv6.net" target="_blank">http://test-ipv6.net</a>.  The site does IPv6 and IPv4 dual stack testing and ensures that you are able to connect to IPv6 and IPv4 sites.  There is also test surfing to <a href="http://ipv6.google.com" target="_blank">http://ipv6.google.com</a> which is an IPv6 only site.   If all goes well, you should receive output like the below:</p>
<div id="attachment_1090" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/testipv6com.png"><img class="size-medium wp-image-1090" title="Test-ipv6.com test results" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/12/testipv6com-300x159.png" alt="Test-ipv6.com test results" width="300" height="159" /></a><p class="wp-caption-text">Test-ipv6.com test results</p></div>
<h1>So, what now?</h1>
<p>With IPv6 properly working on your network, you are good to go however there&#8217;s probably not much to look at.  Most of the sites I tested were IPv4 only and the few IPv6 sites I could find were mostly broken.    From a consumer-side standpoint, you will notice no difference in the operation of websites.  From a server standpoint, each IP address is routeable meaning that each and every IP in your netblock can run web-accessible services.  The thing now is to pay close attention to your firewall.</p>
<p><strong>Remember that all IPs are routeable!</strong>  Prior to this setup, your router implicitly &#8220;protected&#8221; your LAN by using network address translation. By default, the router would allow LAN connections to exit the router but any unsolicited connection from the Internet could not access the LAN workstations due to how NAT works.  We used port forwarding to allow outside Internet computers inside to access local services.  IPv6 has no such requirement and all IPv6 addresses are public.  You need to make sure that your router&#8217;s firewall is set up properly and only allows incoming connections to IPs as needed by your network.  Our firewall configuration is set up with a default deny policy with an explicit LAN outbound rule.  This means that inside IPv6 addresses can surf the Internet uninhibited but any unsolicited connection from the Internet is automatically blocked.</p>
<p><strong>Test your network devices!</strong> Test all of your devices, from your computers to your smartphones, printers and anything else that plugs into the network.  You&#8217;ll get a quick idea of what works on IPv6 and what doesn&#8217;t. You&#8217;ll also have a good idea of which manufacturers and what devices to look for firmware updates in order to get ready for when IPv6 goes live.</p>
<p>For further things to do with your tunnel, take a look at Hurricane Electric&#8217;s IPv6 certification test.  The IPv6 certification test will test your knowledge of IPv6 and setting up various services on an IPv6 server including email and a Web server.  It&#8217;s a good idea to give it a shot so you can get experience working with the new IPv6 network.</p>
<p>Hopefully all went well in your IPv6 configuration and you&#8217;re up and running. If not, post a reply and I&#8217;ll try my best to help out.</p>
<p>Happy Hacking!<br />
FIRESTORM_v1</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/12/01/networking-bringing-ipv6-into-your-network-using-pfsense/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Networking: Installing and configuring pfSense Embedded</title>
		<link>http://www.yourwarrantyisvoid.com/2011/11/11/networking-installing-and-configuring-pfsense-embedded/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/11/11/networking-installing-and-configuring-pfsense-embedded/#comments</comments>
		<pubDate>Sat, 12 Nov 2011 02:54:03 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Embedded devices]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[pfSense]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=969</guid>
		<description><![CDATA[After publishing the last post on networking and the security series, I felt it was necessary to go ahead and publish a piece on building a custom router.  I have been a fan of pfSense for the past four years and swear by it. It has the ease of use of a commercial GUI-driven router [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-970" title="pfSense Logo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/pfsenselogo.png" alt="pfSense Logo" width="300" height="110" /></p>
<p>After publishing the last post on networking and the security series, I felt it was necessary to go ahead and publish a piece on building a custom router.  I have been a fan of pfSense for the past four years and swear by it. It has the ease of use of a commercial GUI-driven router and unrivaled flexibility limited only by the hardware it is installed on.  In this howto article, we will cover installing pfSense on an embedded platform and initial configuration for getting your router up and running.</p>
<p><span id="more-969"></span></p>
<h3>First, an introduction to pfSense</h3>
<p>PfSense is a lightweight FreeBSD based distribution geared towards router and firewall installations. It has been around since 2004 when it was forked from the m0n0wall project and has since turned into an excellent stand-alone distribution for routing and firewalling.  Although pfSense is generally intended towards full-PC installations, they offer an embedded image for use without skimping on the features.  pfSense is well known in the Linux/Unix/BSD community and is very highly regarded for both it&#8217;s feature set and it&#8217;s flexibility.</p>
<p>A question I get asked a lot is &#8220;Why pfSense? Why not just buy a Linksys?&#8221;  The answer is about hardware and software.  While I do own a couple of Linksys routers and do admire Linksys for bringing NAT devices to the common user, their hardware is restrictive and is only usable in the standard configuration (1 WAN and 4 LAN/WIFI) Even though it has been proven several times that the hardware they use for the LAN portion can support advanced features like VLAN support, bridging, multiple interfaces/IP&#8217;s, they will never release this functionality to those that want it and will instead force the advanced user to look elsewhere. In Linksys&#8217;s view, the router dictates the network.  With pfSense, I can build a custom configuration however I deem fit, with multiple NICs for WAN and LAN, with custom configurations and with VLAN support.  Not to mention that &#8220;stock&#8221; pfSense even supports DHCP, Captive Portal (like &#8220;free wifi&#8221;) , DNS, VPN support, Fail Over mode and many other options that Linksys wouldn&#8217;t ever make available.  Even if I never use VPN support or use the Failover mode, it&#8217;s nice to know those features are there should I ever need them.</p>
<h3>Hardware Requirements:</h3>
<p>In order to use pfSense Embedded, you will need a computer that adheres to the below spec.  Of course more is better, but these are the minimum specs as posted on the pfSense website.</p>
<ul>
<li>CPU: 100MHZ x86 Pentium or equivalent.</li>
<li>RAM: 128 MB RAM</li>
<li>Serial Port</li>
<li>512MB Flash storage or 1GB hard drive</li>
<li>Two Network Adapters (NICs)</li>
</ul>
<p>Please note that some of the advanced features like VPN support, Captive Portal and some high-bandwidth connections may require faster processors than what is outlined below.  If you want to make sure your embedded platform matches spec, take a look at <a href="http://www.pfsense.org/index.php?option=com_content&amp;task=view&amp;id=52&amp;Itemid=49">pfSense&#8217;s hardware sizing guid</a>e which covers some of the items more in depth.</p>
<h3>A note on storage:</h3>
<p>The pfSense distribution comes in two flavors.  You have the &#8220;desktop PC&#8221; version for full-size computers with a CD ROM and a hard drive, and you have an &#8220;embedded&#8221; version which is for devices without a CDROM or hard drive and use some method of flash storage.  While you may be able to install the desktop PC version on the embedded device, it is not recommended as the distribution will be tailored for running on a hard drive, not a solid state memory device.  If you intend to use a hard drive, install the PC version.</p>
<p>You can use any IDE device for storage as long as it is recognized by your computer&#8217;s BIOS and is supported by FreeBSD.  I have not had a problem with either of these two stipulations, so you should not have any problems with it. One thing to consider is the use of an IDE to CF adapter <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822998003">like this one on Newegg</a>.  This particular device fits right into the IDE header on the motherboard and allows you to use a Compact Flash cartridge as an IDE hard drive which is perfect for installing and running pfSense.  The router in my home is a slightly different model, but is running on a Sandisk 4GB CF cartridge and has been doing so for the last two years without fail.</p>
<h3>My hardware:</h3>
<p>In this howto, I will be using a Transcend 1GB IDE solid-state device that I got on Ebay. This device plugs into the 40 pin IDE header and mimics a standard hard drive.  It is fast and will definitely get the job done.  The hardware I will be using is a set top box device I scavenged from a computer show a long time ago.  It has a 233MHz Cyrix processor , 512MB RAM, an onboard serial port, an IDE port, an onboard NIC and a single PCI riser slot where I will be installing a dual 10/100 Intel NIC.</p>
<h3>Getting Started:</h3>
<p>If you are using the CF to IDE adapter mentioned earlier, you can use a USB-CF reader and an application to burn the image to the CF cartridge.</p>
<p>In order to proceed, you will need the following items</p>
<ul>
<li>A Linux based computer with one free IDE port</li>
<li>An IDE-CF adapter with an appropriately sized CF card minimum 512MB, recommended 1GB, referred hereafter as flash cartridge.</li>
<li>The &#8220;target system&#8221; that will ultimately run pfSense with at least two NICs.</li>
<li>A third NIC (optional, for guest network, discussed in the &#8220;Advanced&#8221; section below).</li>
<li>A serial cable (Female to Female) and a Null Modem Adapter.</li>
<li>A pocket switch with a small patch cord.</li>
</ul>
<h3>Identify your Flash device</h3>
<p>First, attach your flash cartridge to your Linux PC and boot it.  Make sure that it boots your Linux distribution first and does not attempt to boot from the flash cartridge.  Once booted, login as root and run <strong>dmesg</strong>. Look for the /dev entry for your flash module.  You may be able to look for the manufacturer name as is the case in my output below:</p>
<div id="attachment_971" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/IDEhd.gif"><img class="size-medium wp-image-971 " title="IDE HDA dmesg output" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/IDEhd-300x128.gif" alt="My Transcend module is listed as hda" width="300" height="128" /></a><p class="wp-caption-text">My dmesg output.</p></div>
<p>In the output above, my Transcend module was recognized as hda (primary master HD), so my /dev entry is /dev/hda.  We will need this later on to burn the image.</p>
<h3>Download, validate, burn:</h3>
<p>Now that we know what device we need to burn to, it&#8217;s time to get the image.  Head on over to <a href="http://www.pfsense.org/mirror.php?section=downloads">the pfSense Mirror selection page</a> and pick a server that&#8217;s closest to you.</p>
<p>You should then be presented with a list of images named <strong>pfSense-1.2.3-RELEASE-XXXX-nanobsd.img.gz</strong> where XXXX is a choice of 512mb, 1g, 2g and 4g images.  In my particular case, I will be using pfSense-1.2.3-RELEASE-1g-nanobsd.img.gz as it is pre-built to a 1gig flash cartridge.</p>
<p>Use <strong>wget</strong> to download the image along with the accompanying .md5 file as shown in the sample output below. Note: URLs in the below image may differ depending on the mirror you are using, but the filenames will be the same.</p>
<div id="attachment_973" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wget.gif"><img class="size-medium wp-image-973 " title="wget download of files" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wget-300x153.gif" alt="wget download of files" width="300" height="153" /></a><p class="wp-caption-text">wget download of files</p></div>
<p>Once both files have downloaded, use <strong>md5sum -c </strong>to check the file for consistency against the provided md5 checksum as shown in the sample output below.</p>
<div id="attachment_974" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/md5sum.gif"><img class="size-medium wp-image-974 " title="md5sum validation" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/md5sum-300x153.gif" alt="md5sum validation" width="300" height="153" /></a><p class="wp-caption-text">md5sum validation</p></div>
<p>If the MD5 check returns <strong>OK</strong> then you are clear to proceed. If not, go back and re-download the file again. Make sure you downloaded the same file and md5 checksum.  In order to burn it, we will use <strong>zcat</strong> to cat the zipped image out to the /dev entry mentioned earlier.  My syntax will be <strong>zcat pfSense-1.2.3-RELEASE-1g-nanobsd.img.gz | dd of=/dev/hda bs=16k</strong>however, if your flash cartridge shows up at another location other than /dev/hda, be sure that you change the command above to point to the proper device.  Once the command completes, it should look like this:</p>
<div id="attachment_975" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/burncomplete.gif"><img class="size-medium wp-image-975 " title="Image Burn Completed" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/burncomplete-300x153.gif" alt="Image Burn Completed" width="300" height="153" /></a><p class="wp-caption-text">Image Burn Completed</p></div>
<p>Now that the image burn is done, shutdown the Linux box and pull your flash cartridge out and install it in the device that is going to run pfSense.  Go ahead and connect it up but do not attach any network cables to the interfaces just yet.  You will also need to connect the serial cable with a null modem adapter to the device to continue initial setup.</p>
<h3>Initial Configuration and Setup</h3>
<p>Now that we&#8217;ve burned the image, we are ready to do the initial setup.  This entails doing some NIC probing to find the network adapters in the system and to assign them to their respective duties (WAN, LAN, Optional Interface 1, etc).  You should only ever need to do this once as once the NICs are set up and the router is running, you can do everything including re-assign the interfaces from the web-based GUI.</p>
<p>Open up PuTTY, Hypertrm or your favorite terminal application and set the serial port parameters to 9600 baud, no parity 8 data bits, 1 stop bit.  Turn on the embedded device and after a moment, you should see some BSD boot stuff flash past.  Wait until it prompts you to set up VLAN information as shown below:</p>
<div id="attachment_976" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/vlaninfo.gif"><img class="size-medium wp-image-976 " title="Vlan Setup prompt" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/vlaninfo-300x167.gif" alt="Vlan Setup Prompt" width="300" height="167" /></a><p class="wp-caption-text">Vlan Setup Prompt</p></div>
<p>If you are lucky, you should see two interfaces, one for each NIC.  If you have three network cards in your system, you will see three different interfaces.  In the above screenshot, I have em0, em1 and fxp0.  Since we will not use VLANs for our basic or our advanced configurations, we will answer &#8220;N&#8221; here.</p>
<p>Now, we will do some network probing to figure out exactly which NIC  goes to which interface using the pocket switch and the patch cord.  Don&#8217;t plug anything in yet.</p>
<div id="attachment_977" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/probelan.gif"><img class="size-medium wp-image-977 " title="Probe for LAN interface" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/probelan-300x167.gif" alt="Probe for LAN interface" width="300" height="167" /></a><p class="wp-caption-text">Probe for LAN interface</p></div>
<p>With nothing plugged into the network interfaces, hit a and hit enter.  This will start the autodetection process. When prompted, attach the pocket switch to the interface you will use as the LAN interface and make sure that the LINK light on the switch and the NIC come on.  Hit Enter and you should see a message where it detected the LAN interface link come up.  It will then prompt you for the WAN interface.  Hit a then enter again and move the patch cord to the WAN interface and hit enter.  Repeat this process for the Optional interface (OPT1) or if your router only has two NICs, just hit enter.  Refer to the below output.</p>
<div id="attachment_978" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/assignednics.gif"><img class="size-medium wp-image-978 " title="Assigned NICs" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/assignednics-300x167.gif" alt="Assigned NICs" width="300" height="167" /></a><p class="wp-caption-text">Assigned NICs</p></div>
<p>Be sure that you only change the patch cord when it tells you to.  If you disconnect the cable at the &#8220;hit A for autodetect&#8221; prompt, it may not detect link when it should.  If you run into this issue, disconnect the patch cord and restart your router.  Allow it to boot up and start over.  Once you get done assigning interfaces, simply hit Enter to exit assignment.  It will print the current assignments of the interfaces and ask you to validate.  Answer Y if the displayed assignments are correct and hit Enter, otherwise hit N and start over or restart the device.</p>
<p>Assuming all went well, you will see it do a bunch of additional configuration.  Once you get to the menu as shown below, you can then disconnect the serial cable and proceed with the configuration of the pfSense router.</p>
<div id="attachment_979" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/configdone.gif"><img class="size-medium wp-image-979" title="Configuration completed" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/configdone-300x167.gif" alt="Configuration Completed." width="300" height="167" /></a><p class="wp-caption-text">Configuration Completed</p></div>
<p>&nbsp;</p>
<h3>Continuing the Configuration</h3>
<p>Connect the pocket switch up to the LAN port of the router and connect your router&#8217;s WAN port to your Internet connection.  Connect a computer to an unused port on the pocket switch and start it up. Once booted, you should have an IP address in the 192.168.1.x subnet and depending on whether or not your Internet connection is DHCP, you may already be able to surf.</p>
<p>Open a browser and go to http://192.168.1.1 and when prompted login with the username of <strong>admin</strong> and the password of <strong>pfsense</strong>.  If all goes well, you should see a screen that looks like the one below.</p>
<p>&nbsp;</p>
<div id="attachment_982" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard.gif"><img class="size-medium wp-image-982" title="pfSense Wizard" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard-300x181.gif" alt="pfSense Wizard" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard</p></div>
<p>&nbsp;</p>
<p>Click &#8220;Next&#8221;</p>
<p>On this screen, you will set some basic network configuration parameters like the pfSense&#8217;s hostname, local domain and the two DNS servers.  Use the ISP provided DNS servers here and click Next.</p>
<p>&nbsp;</p>
<div id="attachment_983" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard2.gif"><img class="size-medium wp-image-983" title="pfSense Wizard, page 2" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard2-300x181.gif" alt="pfSense Wizard, page 2" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 2</p></div>
<p>&nbsp;</p>
<p>On this screen, we will set up the timeserver and the timezone of the firewall.  Set the timezone where appropriate and then either use the provided time server or set your own.  I left it default and have not noticed any issues with time reporting.</p>
<p>&nbsp;</p>
<div id="attachment_984" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard3.gif"><img class="size-medium wp-image-984" title="pfSense Wizard, page 3" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard3-300x181.gif" alt="pfSense Wizard, page 3" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 3</p></div>
<p>&nbsp;</p>
<p>The next screen is where we will set up the WAN parameters.  Start off with selecting which type of WAN link you have.  Choices are DHCP (default),  Static IP, PPPoE and PPTP.  For each selection, there is a relevant section that must be completed.  Since I use DHCP, I left it as default.</p>
<p>&nbsp;</p>
<div id="attachment_985" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard4.gif"><img class="size-medium wp-image-985" title="pfSense Wizard, page 4" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard4-300x181.gif" alt="pfSense Wizard, page 4" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 4</p></div>
<p>&nbsp;</p>
<p>Pay special attention to the bottom two options.  The first option &#8220;Block RFC1918 networks&#8221; prevents LAN IP addresses from the &#8220;private&#8221; networks from entering from the WAN interface. Private networks are 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16.  Unless you are using this router inside another NAT environment, this option is best left turned on.</p>
<p>The other option &#8220;Block Bogon Networks&#8221; should be left enabled. This prevents non-routed and not-assigned networks from being routed against from your WAN interface. Since these addresses are not routed and not assigned, they should never contact your router anyways.</p>
<p>&nbsp;</p>
<div id="attachment_986" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard5.gif"><img class="size-medium wp-image-986" title="pfSense Wizard, page 5" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard5-300x181.gif" alt="pfSense Wizard, page 5" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page4, Bogon networks and RFC1918 options</p></div>
<p>&nbsp;</p>
<p>Now we are at the LAN configuration.  This is where we can change the router&#8217;s internal IP address and subnet mask.  Please note that most of pfSense uses CIDR notation, so you may want to get familiar with it or have a <a href="http://www.subnet-calculator.com/cidr.php" target="_blank">CIDR calculator</a> at the ready.<strong><em></em></strong> Tip: a /24 is the same as 255.255.255.0</p>
<p>&nbsp;</p>
<div id="attachment_987" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard6.gif"><img class="size-medium wp-image-987" title="pfSense Wizard, page 5" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard6-300x181.gif" alt="pfSense Wizard, page 5" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 5</p></div>
<p>&nbsp;</p>
<p>This screen allows us to change the default password of <strong>pfsense</strong>.  I highly recommend changing it to something memorable.  If you forget it, you can always reset it via a serial connection without resetting the router back to factory settings.</p>
<p>&nbsp;</p>
<div id="attachment_988" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard7.gif"><img class="size-medium wp-image-988" title="pfSense Wizard, page 6" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wizard7-300x181.gif" alt="pfSense Wizard, page 6" width="300" height="181" /></a><p class="wp-caption-text">pfSense Wizard, page 6</p></div>
<p>&nbsp;</p>
<p>Finally we have reached the end of the wizard.  Click &#8220;Reload&#8221; and wait a few minutes.  During this time, the router will reboot itself to get adjusted into the new environment.  Let the web page reload the router&#8217;s admin page and it should take you to a configuration page like the one below.</p>
<p>&nbsp;</p>
<div id="attachment_989" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/status.gif"><img class="size-medium wp-image-989" title="pfSense main status page" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/status-300x181.gif" alt="pfSense main status page" width="300" height="181" /></a><p class="wp-caption-text">pfSense main status page</p></div>
<p>&nbsp;</p>
<p>Once you are at this screen, you should be able to browse the Internet.</p>
<h3>Some basic tips:</h3>
<ul>
<li>Portforwarding can be set up under Firewall -&gt; NAT and works pretty much like you would expect a Linksys box to work.  Be sure to leave the &#8220;Auto Add a firewall rule to permit traffic through this NAT rule&#8221; at the bottom checked.  This will create a matching rule on the WAN side to allow traffic along with the rule to bring the traffic from the WAN to your destination computer.</li>
<li>You can see each interface&#8217;s status by going to Status -&gt; Interfaces.  If you are on a PPPoE or PPTP connection, you can disconnect and reconnect from this page.  If you are using DHCP, you can also release and renew your IP here.</li>
<li>If you run into trouble performing port forwarding, you can access the system firewall logs via Status -&gt; System Logs.  Be sure to turn on Logging on your rules so you can see new connections as they are being performed.</li>
<li>If you&#8217;re having problems with a specific host, you can access a packet capture utility via Diagnostics -&gt; Packet Capture</li>
<li>If you want to diagnose upstream Internet connectivity issues, you can access Traceroute via Diagnostics -&gt; Traceroute. and a ping utility via Diagnostics -&gt; Ping</li>
<li>Like numbers and graphs? Check out the system traffic graph (Status-&gt; Traffic Graph) and the system RRD graph (Status -&gt; RRD Graphs).  You may need to install the Adobe SVG viewer to view these graphs.</li>
<li>Unlike a Linksys box, it is recommended to halt the router before powering down and use the reboot function if a restart is needed.  Both options appear under Diagnostics with the labels &#8220;Halt system&#8221; and &#8220;Reboot system&#8221; respectively.</li>
</ul>
<h3>What&#8217;s next?</h3>
<p>Even in its basic configuration you already have a very powerful router on your hands.  The sky&#8217;s the limit. The pfSense installation can support a great many different configurations and options so don&#8217;t think that you&#8217;re locked into a single configuration.  Out of the box, pfSense has the software support for DHCP, DNS server, and other basic functionality as well as more things like CARP Failover, Open NTPD (Time server), OpenVPN, Remote Syslog, Traffic aggregation, and many other features that warrant exploration.</p>
<p>In a follow up article, I will explore setting up an advanced configuration, establishing a VLAN to isolate a wireless network from the wired network while still providing Internet access.  This is a useful configuration for you that like to share your Internet access but don&#8217;t want to make your home network vulnerable.</p>
<p>Happy Hacking!</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/11/11/networking-installing-and-configuring-pfsense-embedded/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reviews: WD TV Live Plus</title>
		<link>http://www.yourwarrantyisvoid.com/2011/08/26/reviews-wd-tv-live-plus/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/08/26/reviews-wd-tv-live-plus/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 17:06:02 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Product Reviews]]></category>
		<category><![CDATA[media center]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Small Form Factor]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=992</guid>
		<description><![CDATA[In this post, I will review a recently acquired WD TV Live Plus purchased from Microcenter for around $100.  The quest was to find a media player solution that could read media from network shares and play them with minimal fuss.  Since this is going to be attached to the primary TV, it has to [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-993 aligncenter" title="WD logo" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/wdmonogramc-300x199.gif" alt="WD logo used with permission granted from wdc.com" width="300" height="199" /></p>
<p style="text-align: left;">In this post, I will review a recently acquired WD TV Live Plus purchased from Microcenter for around $100.  The quest was to find a media player solution that could read media from network shares and play them with minimal fuss.  Since this is going to be attached to the primary TV, it has to be &#8220;Girlfriend Approved&#8221; and easy to use.  I believe that the WD TV Live Plus fits this requirement adequately however the installation of the device could be easier.  Once done, the device is wonderful.  Read the full review after the break.</p>
<p style="text-align: left;"><span id="more-992"></span></p>
<h2 style="text-align: left;">Foreword</h2>
<p>One of the things that I&#8217;ve been keeping a close eye on is the development of the media center computer.  A non-PC PC that is used to play local network content and can provide other services through the TV and still maintain the ease of use of a standard DVD player.  I had previously experimented with XBMC and was pleased with it&#8217;s overall hardware support and the features it supported &#8220;out of the box&#8221; however the UI was a bit kludgy and having to predefine all media sources and items before it would show up.  It also didn&#8217;t help much that the only device that I had that would work properly was an old Averatec laptop which did work very well, even with the embedded Intel graphics.</p>
<p>I skipped the newer iterations of XBMC partially due to lack of time and due to the fact that I was still not looking forward to using the Averatec laptop as it required a mouse and I didn&#8217;t have the money to pony up for Windows Media remote (which would have been supported).  Time grew on and by then my needs for additional storage had exceeded a single drive.  I built a Windows based NAS server using a 3ware card donated by a friend and buit a 2Tb storage array.  Soon after that, I got to the point where looking at a media player began to become feasible again as now I had plenty of storage and lots of plans.  I ultimately wanted to rip and encode my DVDs so that I could play them without needing to swap disks endlessly.</p>
<p>I was already accustomed to using Netflix on the Xbox360, however I wanted the same convenience of couch-surfing with all my local media.  A bonus through work found me with extra cash to finally take a look at a media player.  My requirements were simple.</p>
<ul>
<li>It must support a variety of media in a variety of formats and codecs.</li>
<li>It must have a remote and be easily operated.</li>
<li>It must have a variety of outputs including HDMI and Component.</li>
<li>It must be able to read SMB shares easily and remember credentials.</li>
<li>It must be inexpensive.</li>
<li>The box, UI and remote have to not look fugly.</li>
</ul>
<h2>Research, research, research</h2>
<p>I started looking around at a lot of the common media players that are out there.  The Apple TV was too &#8220;hipster&#8221; and I really didn&#8217;t feel like dealing with iTunes after the fiasco that was my iPod.  The price was right and the Apple TV did have the right connectors, but dependence on the iTunes application really made it a deal killer.</p>
<p>Boxee was an attractive option and had high ratings however when I saw the <a href="http://www.boxee.tv/">final product and it&#8217;s cubelike design</a>, it was an instant turnoff. While the hardware was more than adequate, the box itself looked rather ugly. When I did some additional research, the price point (at almost $250 at initial research, now $199) it was still out of my price range. While Boxee did have the free software option like XBMC, I had no &#8220;decent&#8221; hardware on it to make it not suck. so unfortunately this option was nixed.</p>
<p>There were some other media devices that I had found however they were really proprietary and for various reasons, they don&#8217;t even merit mention.  That said, I reluctantly asked around work and several coworkers offered suggestions, most of which were either Apple TV, XBMC, Boxee.  A couple of guys mentioned the WDTV Live Plus so I started doing research.</p>
<p>The WD TV Live Plus appeared to support all of my requirements although several forum posts came up about difficulty with networking.  At $100 a unit, this appeared to be a viable option so I decided to gamble.</p>
<h2>Hardware</h2>
<p>Without further ado, let&#8217;s take a look at what we&#8217;re up against.</p>
<div id="attachment_994" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-994" title="WD TV Live Plus box" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2121-300x225.jpg" alt="WD TV Live Plus box" width="300" height="225" /><p class="wp-caption-text">WD TV Live Plus box</p></div>
<p>This is the outside of the box.  Inside the box, you get a remote, two AAA batteries, the WDTV Live Plus, a 1/4in to AV (Video, L and R Audio) cable, a 1/4in to Component (Y,Pb,Pr) cable and power supply adapter.</p>
<div id="attachment_995" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-995" title="WDTV size comparison" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2122-300x225.jpg" alt="WDTV size comparison" width="300" height="225" /><p class="wp-caption-text">WDTV size comparison</p></div>
<p>To put a size comparison on things, this thing is SMALL.  It&#8217;s about the size of a large pocket switch roughly 4inches deep, five inches wide and about an inch tall. The remote control is about three inches long  and an inch wide and roughly a half-inch deep. Although it is small, it does fit in either hand comfortably thanks in part to a finger wide notch cut into the bottom of the remote.</p>
<div id="attachment_996" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-996" title="Back ports" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2116-300x225.jpg" alt="Back Ports" width="300" height="225" /><p class="wp-caption-text">Back Ports</p></div>
<p>The rear of the WDTV contains several ports as shown above.  The ports from left to right are Power, USB, HDMI, Optical Audio TOSLINK, Ethernet, Component, Composite+Audio.</p>
<div id="attachment_997" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-997" title="Top view" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2117-300x225.jpg" alt="Top view" width="300" height="225" /><p class="wp-caption-text">Top view</p></div>
<p>The Top of the WDTV features an additional USB port and the always good-to-have reset pinhole.  In the event of a device failure, you can use the pinhole to factory reset the device and to perform software updates.</p>
<div id="attachment_998" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-998" title="My WDTV installed and running." src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2120-300x225.jpg" alt="My WDTV installed and running." width="300" height="225" /><p class="wp-caption-text">My WDTV installed and running.</p></div>
<p>Here is a picture of my WDTV installed and running.  To put it in persepective, that is a Netgear 8 port switch it is sitting on top of and the salt rock to the right is about the size of a 2 liter bottle of soda.</p>
<h3>Other things worth mentioning:</h3>
<ul>
<li>The two USB ports can support a variety of USB Mass Storage devices including cameras, USB Hard drives, Thumb drives and Media Card readers.  It can also support a limited range of <a href="http://wdc.custhelp.com/app/answers/detail/a_id/3805/~/list-of-compatible-devices-for-the-wd-tv-live-hd-media-player-and-wd-tv-live" target="_blank">wireless adapters, USB keyboards and other options</a>. Although Wireless options are available, my network does not run Wireless N and as stated in the link, Wireless G may be too slow for streaming.  I did not get the ability to test Wireless connectivity as my network is primarily wired 10/100 network.</li>
<li>There is no HDMI cable included with this kit so you will need to buy one if you intend to use HDMI.</li>
</ul>
<p>&nbsp;</p>
<h2>Software</h2>
<p>As mentioned earlier, I required that the device be easy to use and able to pick up SMB shares While the UI appeared to be quite usable, there were difficulties in getting the network shares to show up.  Several posts to the WD Customer Support forum complained about this very same issue however I was able to overcome the issue once I found out what the root issue was. If you want a further review of the software, skip this section.</p>
<h3>Not all SMB networks are the same</h3>
<p>As stated on the box, this device should be able to read content from SMB (MS Network) shares and play it however there was a significant issue with the implementation of the SMB protocol in the WD TV Live Plus.  My network is largely Windows clients seeing as how my NAS is a Windows XP computer with a storage array and that most of my computers are Windows XP based (except for my core networking equipment and my laptop which uses Ubuntu.)  This ended up causing more hell than I was expecting and I&#8217;ll explain.</p>
<h3>Oh master, where art thou?</h3>
<p>In a Windows network where there is no domain controller, Windows computers will get into an election process to attempt to establish a browse master.  This browse master is a Windows computer that maintains a list of active computers on the network.  This behavior is part of NetBIOS and SMB sharing and allows the computers to &#8220;discover&#8221; each other.  Once the browse master is established, additional computers will communicate with the master to &#8220;register&#8221; themselves, and once registered can discover each other&#8217;s network shares.  This share list is populated each time someone tries to browse the network.</p>
<h3>I&#8217;m talking, but no one&#8217;s listening!</h3>
<p>The WDTV on boot, will perform a broadcast to the network on UDP port 137 (NetBIOS Name service) which is according to the NetBIOS protocol.  It waits for a browse master to return the broadcast so it can then download the browse list. The issue is that Microsoft has altered the way NetBIOS works and in doing so, has altered the way NetBIOS operates.  One of the alterations is that Windows computers (whether browse master or not) is that the computers will no longer respond to broadcasts to port 137.  The result is that the WDTV will never receive the response it&#8217;s looking for and it&#8217;s server list will never get updated.</p>
<h3>You are my slave now!</h3>
<p>The workaround is to install NetBIOS (part of the SAMBA package) on a Linux box and set &#8220;local master = yes&#8221; in samba.conf.  This will also give you the added benefit of sped up network browsing on your computers and the installation of NetBIOS is very simple, requiring only one modification to a configuration file and a service restart.  In my testing of the WDTV,  I was unable to get the WDTV to show any network shares prior to the installation of the NetBIOS service.  Once I installed the NetBIOS service, it was a matter of seconds that the network shares listed out all of the active computers on the network.</p>
<h2>Carrying on&#8230;.</h2>
<p>Testing the UI under component, composite and HDMI cables showed little difference in the display resolution aside from the appreciable differences in the three connection technologues themselves. In each test, the UI was sharp and clear with menu options easily highlighted. The UI is a dark-blue theme and reminds me a lot of the Playstation 3 interface.</p>
<div id="attachment_999" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-999" title="UI main image" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2113-300x225.jpg" alt="UI main image" width="300" height="225" /><p class="wp-caption-text">UI main image</p></div>
<p>In the above image, I have highlighted the server &#8220;Zeus&#8221; from Videos -&gt; Network shares.   The icons scroll vertically to allow you to select options, while horizontal movement allows you to proceed or go back via the four way D-pad on the remote.  Hitting &#8220;OK&#8221; is only required on media titles, menu options (like Configuration Settings) and various sub-menus as needed.</p>
<div id="attachment_1000" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-1000" title="Media List" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/08/DSCF2115-300x225.jpg" alt="Media List" width="300" height="225" /><p class="wp-caption-text">Media List</p></div>
<p>The Media List view shows up once a server has been selected and allows you to drill down to find the content you want.  On the &#8220;Zeus&#8221; server, I have several shares dedicated to each type of media that the WDTV supports.  This is the list of the &#8220;Movies&#8221; fileshare.  Photos and Music are other fileshares available.  In this view, you can simply highlight a movie and without further action, it will start playing in the preview window on the right.  If you want to play it fullscreen, just select the preview window and hit OK.  The display will then go full size without missing a beat.</p>
<p>All in all, the UI is simple to use, easy to navigate and offers a lot of functionality without cluttering up the display.</p>
<h3>It also has apps</h3>
<p>I hesitate to mention this as I didn&#8217;t purchase the WDTV for applications, but it does bear mentioning.  This device supports games and apps including Youtube, Facebook and Netflix support. While I did briefly try out the Netflix and Youtube options and they appeared to work as expected, I did not try the Facebook app and felt that the inclusion of Facebook on a media client to be in excess.  I can&#8217;t contemplate using my media client to check my Facebook as I have phones, laptops and full-size computers for that.</p>
<h2>Final Verdict</h2>
<p>To summarize the total experience of the WD TV Live Plus, let&#8217;s break down the experience into the Good and the Bad. It may be cliche to do it, but it works well.</p>
<h3>The Good</h3>
<ul>
<li>Small Form Factor</li>
<li>Includes remote, component and composite cables and battery</li>
<li>Supports HDMI, DVI (via HDMI to DVI cable), Composite and Component connections.</li>
<li>Includes TOSLINK optical audio out for connectivity to a surround sound system.</li>
<li>Plays a wide variety of video formats: AVI(Xvid, AVC, MPEG 1,2 and 4, WMV9, VC-1, MPEG/MPG, VOB (DVD), MKV, TS/TP/M2T, MP4/MOV, M2TS and WMV9.  I have not tested DivX format as I don&#8217;t have any DivX formatted media.</li>
<li>Plays a wide variety of audio formats: MP3, WAV, PCM, LPCM, WMA, AAC, FLAC, MKA, AIF/AIFF, OGG, Dolby Digital.</li>
<li>Picture is clear regardless of connector type</li>
<li>Menu navigation is easy and intuitive without clutter.</li>
</ul>
<h3>The Bad</h3>
<ul>
<li>No HDMI cable included in kit.</li>
<li>Networking requires NetBIOS browse master and setup can be daunting for non-Linux networks or unexperienced users.</li>
<li>Will not play DRM protected content.</li>
<li>No Web-based interface or control application.</li>
</ul>
<h3>My Thoughts</h3>
<p>The WDTV Live Plus is a great addition to the network and will work very well for playing media. After getting the network issue resolved, this device has flawlessly performed without issue for the last week.  I have started a project to rip all my DVDs to the NAS so I can watch all my movies and TV shows without having to touch a single DVD disc.  This product gets a firm thumbs up from me.</p>
<h3>My Girlfriend&#8217;s Thoughts</h3>
<p>Of course, being a geek means I have a high tolerance for making stuff work, but since I live with my girlfriend, it doesn&#8217;t get a thumbs up if she can&#8217;t use it.  In this particular case, she liked the menu configuration and ease of navigation.  She was able to look at video content with very little prompting from me unlike the initial case of the failed XBMC attempt. The WDTV Live &#8220;just worked&#8221; and she was very pleased with it.  She says it&#8217;s definitely Girlfriend Approved and she can&#8217;t wait until I get the DVDs ripped.</p>
<p>In the next month or so, I will provide a follow up on how to establish a NetBIOS browse master, rip and encode DVDs and how to set up fileshares in Windows to allow you to use your WDTV effectively.  Minus the initial configuration issue, this device is cheap on cost without being cheap on features. It is a well designed product that will help integrate computer media into your existing entertainment system without significantly impacting your wallet or your sanity.</p>
<p>&nbsp;</p>
<h2><strong>Verdict:  Buy!</strong></h2>
<p>Cost: around $100, sometimes on sale for around $70-80</p>
<p>Availability: Most Online Retailers, and some brick-and-mortar stores like Best buy, Fry&#8217;s, etc..</p>
<p>&nbsp;</p>
<p>Have fun!</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/08/26/reviews-wd-tv-live-plus/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Networking: Duplicating Drops in structured wiring</title>
		<link>http://www.yourwarrantyisvoid.com/2011/07/29/networking-duplicating-drops-in-structured-wiring/</link>
		<comments>http://www.yourwarrantyisvoid.com/2011/07/29/networking-duplicating-drops-in-structured-wiring/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 18:13:04 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[patch cord]]></category>
		<category><![CDATA[router]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=952</guid>
		<description><![CDATA[Structured wiring in businesses and the enterprise are as expected as the sun shining and a regular paycheck, however in the home a structured wiring solution can be an unexpected gift from the Gods of Ethernet.  While structured wiring in an apartment complex is usually done central to a utility closet or shelf, sometimes the [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-953" title="Networking" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2103-300x225.jpg" alt="Networking" width="300" height="225" /></p>
<p>Structured wiring in businesses and the enterprise are as expected as the sun shining and a regular paycheck, however in the home a structured wiring solution can be an unexpected gift from the Gods of Ethernet.  While structured wiring in an apartment complex is usually done central to a utility closet or shelf, sometimes the central point isn&#8217;t always convenient for your router or you find yourself needing to run multiple networks.  In this tutorial, I will show you how to turn one structured wiring drop into two drops for carrying two different network segments, something that can be of benefit should you ever need it.<span id="more-952"></span></p>
<h3>What these splitters do and what they don&#8217;t do.</h3>
<p>Before we begin slicing up cables, it&#8217;s important to understand what is going on here so you can decide if this will work for you.  Generally speaking, these splitters can be used if you want to carry two <strong>different</strong> networks over the same drop. If you are simply looking for more connections to your home network, and you are not doing anything special, you will more than likely want to save some time and get a mini-switch instead.  Here&#8217;s a good rundown of some scenarios of why you should and should not consider these splitters:<strong></strong></p>
<p>These splitters would be a good idea for the following scenarios:</p>
<ul>
<li>Moving your router from the default ingress point.  In my case, the central &#8220;panel&#8221; is in the utility closet, but I want my router on my desk.  I use the &#8220;1&#8243; portion of the splitter to transport the WAN segment to the WAN port of my router, then use the &#8220;2&#8243; portion of the splitter to transport the LAN segment to a mini-hub in the closet to activate the rest of the jacks in the house.</li>
<li>Moving a &#8220;hostile&#8221; segment or Guest network to another location.  An example would be having a router installed at the ingress point and using a splitter to transport a &#8220;Guest Network&#8221; and a &#8220;LAN&#8221; connection via the same drop.  In this case, the Guest Network feeds an open access point, while the LAN feeds a desktop computer. In this application, the Guest Network is kept physically separate from the LAN via the splitters but allows you to position the access point somewhere more convenient while maintaining the availability of the LAN.</li>
<li>Transporting two Ethernet drops to a managed switch located in a central closet.  An example for this would be to allow per-port monitoring and administration of both drops individually as opposed to using a mini-switch which would force you to  perform the change across all devices attached to the mini-switch.</li>
</ul>
<p>These splitters would not be a good idea for the following scenarios:</p>
<ul>
<li>Creating more Ethernet ports for the same network and you are not using a managed switch.   If you are plugging two devices into your LAN at the same location, just use a mini-switch and save yourself the trouble. There&#8217;s no benefit to using splitters in a non-managed switch environment. Additionally, you may incur additional costs with having to buy an additional mini-switch to split the connections off at the central panel anyways.</li>
<li>You are using Gigabit Ethernet and do not want to drop the line speed in the location you are looking at.</li>
<li>You are using Power over Ethernet at this location and do not want to move the power supply.</li>
</ul>
<h3>A little bit on structured wiring and Ethernet standards</h3>
<p>In a structured wiring environment, a &#8220;drop&#8221; is the term for a 4 pair (8 wire) cable run through ceilings, walls, etc from a faceplate with proper termination to a central wiring panel with proper termination (usually a patch panel of sorts).  It&#8217;s called structured wiring as the wiring is usually planned out first with attention to detail and locations of equipment like access points, computers, etc.  Generally speaking, if you are in a structured wiring location and you see an RJ-45 jack marked &#8220;Cat-5&#8243; this generally means that it&#8217;s an Ethernet jack and that the cabling and connectors comply with the Cat-5 standard.</p>
<p>Speaking of wiring standards, you may want to <a title="Network Wiring Standards" href="http://www.zytrax.com/tech/layer_1/cables/tech_lan.htm" target="_blank">take a look at this link</a> which provides more detail into the wiring convention commonly used in structured wiring for Ethernet networks.</p>
<p>In standard 10/100 Ethernet cabling that uses an RJ-45 jack, you have two wires(a pair) for transmit and two wires(a pair) for receive.  In most locations, the extra two pairs (four wires) are simply left idle and untouched. In rare situations (at least in residential equipment) these extra pairs are used for Power over Ethernet which use these spare pairs to deliver power to a network device where it is not convenient to use a standard &#8220;wall-wart&#8221; power supply. This requires special adapters (not unlike our splitters) to send power and network connectivity over the same drop, then split it again at the device end.   As mentioned before, if you are using PoE to feed a device using a drop that you need two connections for, you will either need to move the PoE power supply to another location or use our splitter elsewhere.</p>
<p>Unfortunately, Gigabit Ethernet requires all four pairs be used for sending and receiving at Gig-E speeds. If you are not willing to move the Gig-E device and are not willing to drop the speed to 10/100 , you will need to use the splitter elsewhere.</p>
<h3>Do the Splits!</h3>
<p>In order to pull this off, you will need the following:</p>
<ul>
<li>Two Cat-5 patch cords</li>
<li>A RJ45 crimper</li>
<li>Four RJ45 Crimp Ends suitable for the wire in your patch cords. (more if you are new at this, just in case)</li>
<li>Heatshrink that is big enough to accommodate twice the diameter of your patch cords.</li>
<li>Lighter</li>
<li>Diagonal cutters</li>
<li>Sharpie (not pictured)</li>
<li>Cat-5 tester (Optional, not pictured)</li>
<li>Cat-5 Female to Female junction adapter (optional, not pictured)</li>
</ul>
<div id="attachment_954" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2094.jpg"><img class="size-medium wp-image-954" title="Tools" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2094-300x225.jpg" alt="Tools" width="300" height="225" /></a><p class="wp-caption-text">Tools</p></div>
<p>To start off, cut one CAT-5 end off of your patch cord and determine how far back you want to strip the jacket off.  In my example, I wanted this splitter to go next to a managed switch where the ports are close together so I used about 8 inches which leaves about 4 inches for each &#8220;branch&#8221;.   If you are using a pocket switch and a computer, you may want to use one foot (12 inches) which leaves you with two 6 inch branches.</p>
<p>Start snipping the jacket of the patch cord, paying close attention to not damage any of the wires underneath. If you do snip a wire, cut the rest of them at the same length and repeat the process.   Once you have managed to snip the jacket clean, begin pulling the jacket off of the cable in one piece.  When completed, you should have eight wires similar to the below picture.</p>
<div id="attachment_955" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2098.jpg"><img class="size-medium wp-image-955" title="Stripped Wiring" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2098-300x225.jpg" alt="Stripped Wiring" width="300" height="225" /></a><p class="wp-caption-text">Stripped Wiring</p></div>
<p>Split the wires into two groups.  Separate the White/Blue and the White/Brown pairs from the White/Green and White/Orange pairs.  Slip the heatshrink tube over all four pairs down past the cut jacket.</p>
<p>Fold the stripped away jacket in half and cut at the half line.  Slip one piece of the jacket over the White/Blue and White/Brown pairs, and thread the White/Green and White/Orange pairs through the remaining piece of the jacket.  Use the image below as a guide.</p>
<div id="attachment_956" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2099.jpg"><img class="size-medium wp-image-956" title="Wires threaded through Jacket" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2099-300x225.jpg" alt="Wires threaded through Jacket" width="300" height="225" /></a><p class="wp-caption-text">Wires threaded through Jacket</p></div>
<p>Slide the two jacket pieces down as far as they will go, then push the heatshrink tube at least one inch past the split.  This will toughen the split to ensure it doesn&#8217;t fall apart with use.  Use the lighter to shrink the tubing around the three pieces of jacket.</p>
<p>Now for the fun part.  At the ends of the two pieces of jacket, you now have one piece with a White/Blue pair and a White/Brown pair and another piece with White/Orange and White/Green. We need to put ends on these wires so we can start using them.  Start off by spreading the wires out and untwisting them like in the image below.</p>
<div id="attachment_957" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2100.jpg"><img class="size-medium wp-image-957" title="Separated Wires" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2100-300x225.jpg" alt="Separated Wires" width="300" height="225" /></a><p class="wp-caption-text">Separated Wires</p></div>
<p>Trim the wires so that there is approximately one inch sticking out of the jacket and make sure that the wires are laid out like so:</p>
<ul>
<li>Solid Green (or green with white dots)</li>
<li>White/Green &#8211; white wire with green stripe</li>
<li>Solid Orange (or orange with white dots)</li>
<li>White/Orange &#8211; white wire with orange stripe</li>
</ul>
<p>The important part is when you insert them into the crimp end, the solid green wire must go into position 3, and the rest will go into positions 6, 7 and 8 as shown below.  Please take note that the orientation of the RJ-45 crimp end is that the spring clip is pointing towards you, and the wiring enters from the left.</p>
<ul>
<li>Position 1 &#8211; Blank</li>
<li>Position 2 &#8211; Blank</li>
<li>Position 3 &#8211; Solid Green</li>
<li>Position 4 &#8211; Blank</li>
<li>Position 5 &#8211; Blank</li>
<li>Position 6 &#8211; White/Green</li>
<li>Position 7 &#8211; Solid Orange</li>
<li>Position 8 &#8211; White/Orange</li>
</ul>
<p>Before you crimp the RJ45 onto the wires, hold the whole thing up to a bright light and ensure that the wires are long enough to hit the end of the connector.  Sometimes, a bad crimp can result if the wires are too short.  Use the below image as a reference and take some time to make sure your wiring is correct.  If all looks good, go ahead and crimp!</p>
<div id="attachment_958" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2101.jpg"><img class="size-medium wp-image-958" title="Visual Inspection" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2101-300x225.jpg" alt="Visual Inspection" width="300" height="225" /></a><p class="wp-caption-text">Visual Inspection</p></div>
<p>Now for the White/Blue and White/Brown pairs, you must perform the same process, except this time we will use White/Brown in place of the White/Orange pair and the White/Blue will substitute the White/Green.  Our wiring diagram will change to below:</p>
<ul>
<li>Position 1 &#8211; Blank</li>
<li>Position 2 &#8211; Blank</li>
<li>Position 3 &#8211; Solid Blue (or Blue wire with White dots)</li>
<li>Position 4 &#8211; Blank</li>
<li>Position 5 &#8211; Blank</li>
<li>Position 6 &#8211; White/Blue</li>
<li>Position 7 &#8211; Solid Brown (or Brown wire with White dots)</li>
<li>Position 8 &#8211; White/Brown</li>
</ul>
<p>Do the same inspection as you did for the first crimp and check, recheck and crimp your second connector.    Mark the crimp with the White/Orange and White/Green wires as &#8220;1&#8243; and the other crimp with the White/Blue and White/Brown wires as &#8220;2&#8243;.  This will be important later on when you implement your splitters.</p>
<h3>Do it again, Sam!</h3>
<p>Now that you have one splitter, go ahead and do it again with the other Cat-5 patch cord.  When you are complete, your patch cord should look like the following image.</p>
<div id="attachment_959" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2097.jpg"><img class="size-medium wp-image-959" title="Finished Splitter" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2097-300x225.jpg" alt="Finished Splitter" width="300" height="225" /></a><p class="wp-caption-text">Finished Splitter</p></div>
<h3>Final Thoughts</h3>
<p>Now that you have a pair of these splitters, you should be able to enjoy a bit more freedom when setting up your network in a structured wiring environment where additional cable runs are simply not feasible.  In my particular installation, I am using my splitters to feed the router&#8217;s output that carries VLAN tagged traffic into a managed switch.  The other leg of the splitter, goes back to the wiring closet to feed a mini-switch with network connectivity.  VLAN tagged traffic will not traverse a non-managed switch so for me this was the only way to be able to use my VLAN tagged network and my &#8220;primary&#8221; network without having to give up either.  Below is an image of my splitter feeding my 24 port switch. Yes the switch is on however it appears that the flash washed the lights out.</p>
<div id="attachment_960" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2102.jpg"><img class="size-medium wp-image-960" title="Installed Splitter" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2011/07/DSCF2102-300x225.jpg" alt="Installed Splitter" width="300" height="225" /></a><p class="wp-caption-text">Installed Splitter</p></div>
<p>I hope you enjoyed this quick post as I did making the splitters.  Reply to this post and tell others how you intend to use your splitters.</p>
<p>&nbsp;</p>
<p>Happy Hacking!</p>
<p>&nbsp;</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2011/07/29/networking-duplicating-drops-in-structured-wiring/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Web: Stupid HTML trick to get past content filters</title>
		<link>http://www.yourwarrantyisvoid.com/2010/05/02/web-stupid-html-trick-to-get-past-content-filters/</link>
		<comments>http://www.yourwarrantyisvoid.com/2010/05/02/web-stupid-html-trick-to-get-past-content-filters/#comments</comments>
		<pubDate>Sun, 02 May 2010 16:58:50 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Miscellaneous]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Webservers]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=426</guid>
		<description><![CDATA[I know it&#8217;s been a while since I posted, and I do apologize.  Life has definitely not been kind to me in the regards of time however I have not forgotten anything. I have two major posts coming up hopefully within the next week, however here&#8217;s a quick article about a trick I discovered while [...]]]></description>
			<content:encoded><![CDATA[<p>I know it&#8217;s been a while since I posted, and I do apologize.  Life has definitely not been kind to me in the regards of time however I have not forgotten anything. I have two major posts coming up hopefully within the next week, however here&#8217;s a quick article about a trick I discovered while working on a project with a friend.  The project was to see if their content filter could be broken in their chat application andthrough a little bit of HTML know-how and some PHP code, I was able to crank out a generator to do just that.  Read more to find out the details.<span id="more-426"></span></p>
<h2>The Challenge:</h2>
<p>The trick was to figure out how to get certain &#8220;four letter words&#8221; past the chat app&#8217;s filter and into the main chat window without the word being munged by the system.  Most chat applications filter out obscene words through a string matching system and replaces it with something that is much less offensive, usually a series of asterisks.  The only thing I could use was straight ASCII characters, and I couldn&#8217;t use any &#8220;img src&#8221; HTML tags to do the dirty work (literally).</p>
<h2>The Analysis:</h2>
<p>All HTML code that is rendered is associated with something called a character set (or code page from the old MS-DOS days).  These character sets associate any character with a certain number (often called it&#8217;s ASCII value).  Although some characters are standard on all character sets, (like &#8220;a&#8221; = 97),  some control characters and characters above 256(decimal) change significantly.  In order to properly convey these control characters via the web, urlencoding was created and implemented as part of the HTML spec.  What this means is that every character in a character set can be represented in HTML through the use of the percent sign (%) modifier. The syntax for this was %(ASCII value in hexadecimal). The general idea was that if you typed in a russian name using symbols not found in the Latin alphabet, these symbols could be properly represented on the server side.</p>
<p>With that in mind, I examined the UTF-8 character set.  In this example, I&#8217;ll use the word &#8220;taco&#8221; to represent the offending word.</p>
<h2>How it&#8217;s done:</h2>
<p>The process for this is as follows:</p>
<ol>
<li>Find the ASCII value for each character in the word</li>
<li>Find the hexadecimal value for the ASCII value</li>
<li>Add &#8220;%&#8221; in front of that number</li>
<li>Insert a &#8220;null&#8221; character somewhere.</li>
</ol>
<p>For reference, you can use <a title="ASCII table" href="http://www.asciitable.com" target="_blank">this chart</a> which gives you the ASCII and the ASCII in hex values already</p>
<p>From the chart, we see the following information:</p>
<p>t = 116 (decimal) or 74(hex)</p>
<p>a=97(decimal) or 61(hex)</p>
<p>c= 99(decimal) or 63(hex)</p>
<p>o = 111(decimal) or 6f(hex)</p>
<p>Using this information, we can then create our string, inserting the % where needed.  %74 %61 %63 %6f</p>
<p>Only one item remains.  In order to spoof some of the more intelligent content filters, you need to put a null character in there somewhere. This throws off the content filter and makes it think that there are different characters represented.  For this, I used character 0B which does not have latin equivalent and is a control code that does not render in HTML.  I used 0B because 08 rendered as a tab in testing.</p>
<p>Knowing this, I inserted the null character between the urlencoded &#8220;a&#8221; and the urlencoded &#8220;c&#8221;: %74 %61 %0B %63 %6F</p>
<h2>Testing it out:</h2>
<p>All that is needed to test it is to copy and paste the above string into any chat application and hit send. You will need to remove the spaces from between the characters otherwise your application will treat them as renderable characters as well.  If it works, you&#8217;ll see the word &#8220;taco&#8221; in your window.  Now you know how to get past content filters.  If you are in the business of building content filters, now you have a new strategy for blocking people abusing them.</p>
<h2>Don&#8217;t be a prick!</h2>
<p>I posted this information with the hopes that people may find it useful, not so that script kiddies can run around and make asses of themselves.  Be smart about how you use this information and last but not least, DON&#8217;T BE A PRICK!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2010/05/02/web-stupid-html-trick-to-get-past-content-filters/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up Ubuntu to tftpboot with menu for installations</title>
		<link>http://www.yourwarrantyisvoid.com/2009/08/17/setting-up-ubuntu-to-tftpboot-with-menu-for-installations/</link>
		<comments>http://www.yourwarrantyisvoid.com/2009/08/17/setting-up-ubuntu-to-tftpboot-with-menu-for-installations/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 05:02:25 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[network boot]]></category>
		<category><![CDATA[PXE]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[TFTP]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=27</guid>
		<description><![CDATA[This howto will cover performing the necessary steps for configuring Ubuntu Server 9.04 to distribute pxelinux images over the network for you to use to install Ubuntu or your favorite Linux distribution over the network. No more fumbling for installation CDs or boot floppies! I have done countless Linux installations where a Boot CD or [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-28" title="servers" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2009/08/servers.JPG" alt="servers" width="513" height="137" /></p>
<p>This howto will cover performing the necessary steps for configuring Ubuntu Server 9.04 to distribute pxelinux images over the network for you to use to install Ubuntu or your favorite Linux distribution over the network.  No more fumbling for installation CDs or boot floppies!<br />
<span id="more-27"></span></p>
<p>I have done countless Linux installations where a Boot CD or a boot floppy was required to install with.  Typically I&#8217;d find that media was scratched or otherwise inoperable.  Fed up with it, I sought out a solution to make it work to where I didn&#8217;t need a CD or a floppy disk.  This HOWTO will take you from a Ubuntu server to an Ubuntu Server that now allows for TFTP booting!  It&#8217;s not as hard as it sounds and I completed my installation in little over an hour.  The longest part was to mount the CDROM images and perform the copy.</p>
<p>While not all network adapters support PXE booting, most onboard NICs do.  If unsure, there&#8217;s nothing wrong with keeping a network bootable NIC in your parts drawer for use later.</p>
<h2>Prerequisites:</h2>
<p>Required:</p>
<ul>
<li>Root access on a computer already set up with Ubuntu Server that has a valid IP address and is connected to the network.</li>
<li>A computer with a bootable network card (I recommend the Intel Pro 100 series) or an installation of VMware for testing the TFTP boot environment.</li>
<li>A Hub, Switch or router that can act like a hub or switch.</li>
<li>Linux installation CDs of the distribution you want to use. (For this installation, I will be using CentOS 5 as the install to make available on the network)</li>
<li>Access to edit the DHCP configuration of the server handing out IP addresses.</li>
<li>A copy of the Ultimate Boot CD, or the ISO image to the UBCD.  The UBCD can be downloaded from <a href="http://www.ultimatebootcd.com/">http://www.ultimatebootcd.com/</a></li>
<li>A copy of the pxelinux.0 file from <a href="http://syslinux.zytor.com/wiki/index.php/Download">http://syslinux.zytor.com/</a></li>
</ul>
<p>This document assumes that you have basic knowledge of Linux as far as navigating the filesystem and filesystem structure.  Since this is considered &#8220;administration level&#8221; work, this will require that you work as the &#8220;root&#8221; user and understand the ramifications of using this level of access.  If you have questions about a specific command, either continue reading without performing the step or perform some Google searches to find out what the command does.  This document will not require you to compile anything or know any significant amount of code and examples are provided so that you can cut and paste as much as possible.</p>
<h2>Overview</h2>
<p>This howto is  broken up into several sections to make reading a bit easier.  Feel free to leave comments on what works and what doesn&#8217;t and ask for help if you desire.</p>
<ul>
<li>Installation and configuration of tftpd-hpa for Ubuntu</li>
<li>File placement in the /tftpboot directory</li>
<li>Configuration of pxelinux.0 and the DHCP server</li>
<li>Installation of VSFTPd for Ubuntu</li>
<li>MD5sum, Mounting, Copying and Unmounting the disk images</li>
<li>Configuring boot menus using the menu.c32 from the UBCD</li>
<li>Troubleshooting</li>
<li>Tips and Tricks</li>
</ul>
<p style="padding-left: 30px;">Commands that you can use are highlighted in <strong>bold</strong> with examples being shown in a code box.</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;"><strong>WARNING:</strong></span> This signifies a critical message that needs to be read and understood prior to command execution otherwise system damage may result</p>
<p style="padding-left: 30px;"><strong>NOTE:</strong> This is an informational note that you might want to consider for better understanding od a command used.</p>
<p style="padding-left: 30px;"><em>Options in italics</em><strong> </strong>are parameters to a command that need to be supplied.  If an option is surrounded by curly brackets {<em>like this</em>} it is indicating an additional option that may vary on your system.  If an option <em><strong>shows up in bold and italics</strong> </em>, then it is meant to be used together as a command referenced.</p>
<p style="padding-left: 30px;">&#8220;Files in quotes&#8221; are either representative of screen output or a file that will be worked with. This will be context sensitive.</p>
<h2>Installation and Configuration of TFTPD-HPA for Ubuntu</h2>
<p>With all that prep talk out of the way, let&#8217;s get started.  Go ahead and log into the server that you will be performing the install on.</p>
<p>First off, let&#8217;s make sure that you&#8217;re root, by typing <strong>whoami</strong> in the login window:</p>
<pre><code>root@littleblackbox:~# whoami
root</code></pre>
<p>If <strong>whoami</strong> returns something other than &#8220;root&#8221;, then either <strong>su &#8211; </strong>and become root or ask for assistance.</p>
<p>Now that you&#8217;re root, we will tell the server to get the tftpd-hpa package from the Ubuntu repository. We&#8217;ll use the command <strong>apt-get <em>install tftpd-hpa</em></strong> This will tell apt-get to fetch the application and install it to your machine so you can use it.</p>
<pre>
<code>root@littleblackbox:~# apt-get install tftpd-hpa
 </code></pre>
<p>You will see a lot of fetch text scroll back but as long as it shows up that &#8220;tftpd-hpa installed successfully&#8221; then you are good to go on to the next step.  First off, we need to decide where the &#8220;tftpboot&#8221; directory will live that is used by tftpd-hpa to distribute.</p>
<p style="padding-left: 30px;"><strong>NOTE:</strong> Ubuntu by default will create a &#8220;/var/lib/tftpboot&#8221; directory as part of the tftpd-hpa installation. You can keep this path if you want, however in my installation I chose to go with &#8220;/tftpboot&#8221; instead.  If you wish to use &#8220;/var/lib/tftpboot&#8221; then be sure to substitute that path in place of &#8220;/tftpboot&#8221;.</p>
<p>I went ahead and created the &#8220;/tftpboot&#8221; directory by using the following command:</p>
<pre>
<code> root@littleblackbox:~# mkdir /tftpboot
</code></pre>
<p>Now that we have the directory, we need to edit the &#8220;/etc/defaut/tftpd-hpa&#8221; file so that the application has the correct information to start:</p>
<pre><code>
#Defaults for tftpd-hpa
RUN_DAEMON="no"
OPTIONS="-l -s /var/lib/tftpboot"
</code></pre>
<p>Change the &#8220;RUN_DAEMON&#8221; from no to yes, and change the &#8220;OPTIONS&#8221; to reflect where you want the tftpboot files to go.  My file looks like the one below:</p>
<pre><code>#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /tftpboot"
 </code></pre>
<p>This tells the tftpd-hpa application to always run and that we want to use the &#8220;/tftpboot&#8221; directory to serve our image. Now we need to start the service:</p>
<pre><code>
root@littleblackbox:~# /etc/init.d/tftpd-hpa start
Starting HPA's tftpd: in.tftpd.
</code></pre>
<p>If the display shows &#8220;in.tftpd.&#8221; then you&#8217;re successful, Pretty easy so far, but now we get into the harder stuff.</p>
<h2>File Placement in the /tftpboot directory</h2>
<p>Now that we have our tftp server running, let&#8217;s put some files in place.</p>
<ul>
<li>Copy the pxelinux.0 to /tftpboot</li>
<li>Copy the menu.c32, chain.c32 from the UBCD to /tftpboot</li>
<li>Copy the memtest image from the UBCD to /tftpboot/images</li>
<li>Copy the defaults.cfg from the UBCD to /tftpboot/menus/</li>
</ul>
<p>While you&#8217;re at it, let&#8217;s make two directories as well:</p>
<pre><code>
root@littleblackbox:/tftpboot#mkdir menus
root@littleblackbox:/tftpboot#mkdir images
root@littleblackbox:/tftpboot#mkdir pxelinux.cfg
</code></pre>
<p>The &#8220;menus&#8221; directory will be where we will place the menu files, the &#8220;images&#8221; directory is for the boot disk images that we&#8217;ll link to in the menus that we&#8217;ll create, and the &#8220;pxelinux.cfg&#8221; directory will be where we place the configuration file for the PXE loader.  The PXE loader is capable of so much more than just what we&#8217;re doing here, but that is way outside the scope of this howto.</p>
<p style="padding-left: 30px;"><strong>NOTE:</strong> Keeping this directory organized is important.  Duplicate filenames and mis-coded directory paths are the most common foul-ups when working with tftp or when working with files in general.  Cleanliness may be next to Godliness, but in a linux server, it&#8217;s vital to prevent &#8220;oops&#8221;es.</p>
<h2>Configuration of pxelinux.0 and the DHCP server</h2>
<p>Some of you that did some prior research may be screaming &#8220;What about the DHCP server?&#8221;   Well that&#8217;s coming up, but first we gotta finish building the TFTP configuration so we can test it first.</p>
<p>First off, let&#8217;s create a file in &#8220;/tftpboot/pxelinux.cfg&#8221; called &#8220;default&#8221;.  This is important because as soon as PXElinux bootstraps the machine, it&#8217;s going to want to find a configuration file.  If no file is specified, the machine will scout about looking for a configuration in the &#8220;pxelinux.cfg&#8221; directory until it either finds one at which point it will boot the image specified or it will give up and sit there with some error on the screen.</p>
<p>For the &#8220;default&#8221; configuration file, copy and paste this in.</p>
<pre><code>
default main
 prompt 1
 timeout 15
 label main
 kernel menu.c32
 append menus/main.mnu
 </code></pre>
<p>The first line <strong>default</strong> tells pxelinux to show the item with the same label as the default selected boot option. If the <strong>timeout</strong> value is reached (15 seconds), then that boot image is started if it is available.</p>
<p>The second line <strong>prompt 1</strong> forces pxelinux to show the &#8220;boot:&#8221; prompt after it has loaded.</p>
<p>The third line <strong>timeout <em>15</em></strong> sets the boot delay to give you the option of entering a boot image.  It&#8217;s not really used in this configuration as we will be &#8220;booting&#8221; the menu system, but it&#8217;s there to keep the configuration standards compliant, which is always a good thing.</p>
<p>The fourth, fifth and sixth lines make up the default boot image that we want to load and is a format you&#8217;ll want to remember for later.  It will come back to you again.</p>
<ol>
<li><strong>LABEL</strong> <em>main</em> &#8211;  This is how the item is presented at boot time (or menu generation time).</li>
<li><strong>KERNEL</strong> <em>menu.c32</em> &#8211; This is the kernel image to boot if the option is selected.</li>
<li><strong>APPEND</strong> <em>menus/main.mnu</em> &#8211; This line specifies any additional kernel level options that the kernel needs to operate. Typically there may be a call to an initrd (initial ramdisk) or some other commands.  This specific line tells the &#8220;menu.c32&#8243; menu kernel to load the &#8220;menus/main.mnu&#8221; menu as a boot parameter to get the menu to render.</li>
</ol>
<p>Save the file as &#8220;default&#8221; within the &#8220;/tftpboot/pxelinux.cfg&#8221; directory. Now that we have the default configuration created, it&#8217;s time to create the first menu.  Don&#8217;t worry too much about the parameters right now as we&#8217;ll go over them in the next section.  Copy and past this into a text editor and save it as &#8220;main.mnu&#8221;</p>
<pre><code>
MENU INCLUDE /menus/defaults.cfg
LABEL memtest
 MENU LABEL Memtest86 V3.3
 KERNEL /images/memtest
</code></pre>
<p>This will be the first menu in your menu system.  Since we&#8217;ve finished with the tftpboot directory, let&#8217;s compare.   I use the command <strong>tree</strong> to print out this list, you can <strong>apt-get install tree</strong> to compare it or just compare the list with your &#8220;/tftpboot&#8221; directory contents:</p>
<pre><code>
root@littleblackbox:/# tree /tftpboot
/tftpboot
|-- images
| `-- memtest
|-- menu.c32
|-- menus
| |-- defaults.cfg
| `-- main.mnu
|-- pxelinux.0
`-- pxelinux.cfg
     `-- default
</code></pre>
<p>Now, there is one critical bad thing that we&#8217;ve been missing. It&#8217;s also the only thing preventing us from testing the installation at this point.  We need to configure the DHCP server!</p>
<p style="padding-left: 30px;"><strong>NOTE:</strong> The following instructions are for Linux and are tailored for a situation where the DHCP server is on the same computer as the TFTP server.  This is important as the directives we add to your configuration tell the TFTP client where to go to get the image needed to boot the machine.  If you have another server that serves IP addresses via DHCP, then you will need to adjust the IP address to point to the IP of the tftp server.  If you cannot adjust your DHCP server&#8217;s parameters, consider starting a DHCP server on this machine instead of using the unadjustable DHCP server.</p>
<p>When the PXE (or Preboot eXecution Environment) starts a machine, it has just enough software to initialize the NIC and pull for an IP address.  When the DHCP server responds to the PXE&#8217;s request, along with the IP address, it will provide a TFTP server address and the image name for booting.  The PXE then takes this information and attempts to download and execute the image from the TFTP server.</p>
<p>What this means is that you don&#8217;t have to have the TFTP server on the same machine as the DHCP server but you DO have to be able to get the TFTP server&#8217;s IP and the image name into the DHCP server. Otherwise, the PXE will be attempting to talk to a server that doesn&#8217;t exist or doesn&#8217;t have a TFTP service running or worse yet doesn&#8217;t have the image you&#8217;re looking for.</p>
<p style="padding-left: 30px;"><span style="text-decoration: underline;"><strong>WARNING:</strong></span> Editing the DHCP configuration file is platform dependent.  On Ubuntu, the configuration file is named &#8220;dhcpd.conf&#8221; and is located in &#8220;/etc/dhcp3&#8243; while Redhat on the other hand still calls their file name &#8220;dhcpd.conf&#8221; but stores it directly in &#8220;/etc&#8221;.  Your configuration may differ, you will need to find your configuration file and edit manually.</p>
<p>Edit the DHCP configuration file and within your subnet declaration, add two lines:</p>
<pre><code>
next-server 192.168.0.2;
filename "/pxelinux.0";
</code></pre>
<p>Here is a sample subnet declaration from my dhcpd.conf.  Don&#8217;t copy and paste the below text into your configuration as the directives may not match yours.</p>
<pre><code>
subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.20 192.168.0.50;
 default-lease-time 86400;
 max-lease-time 86400;
 option routers 192.168.0.1;
 option broadcast-address 192.168.0.255;
 option subnet-mask 255.255.255.0;
 next-server 192.168.0.2;
 filename "/pxelinux.0";
</code></pre>
<p>The <strong>next-server</strong> directive specifies the IP address of the TFTP server and the <strong>filename</strong> directive specifies the path to the image to boot.</p>
<p style="padding-left: 30px;"><strong>NOTE: </strong>All paths are relative according to &#8220;/&#8221; (the root) of the TFTP server.  So even though the file is &#8220;/tftpboot/pxelinux.0&#8243; the filename specified here is just &#8220;/pxelinux.0&#8243; because the &#8220;/&#8221; of the TFTP server is the directory &#8220;/tftpboot&#8221;.  Confused?  Good. :p</p>
<p>Restart your DHCP Server with the command below:</p>
<pre><code>
root@littleblackbox:/# /etc/init.d/dhcp3-server restart
* Stopping DHCP server dhcpd3 [ OK ]
* Starting DHCP server dhcpd3 [ OK ]
root@littleblackbox:/#
</code></pre>
<p>If your server restarted, let&#8217;s test it out!  Get your test rig or VMware installation together and try it out.  If everything is properly in place, you should boot to a blue screen with &#8220;Memtest 86 V3.3&#8243; highlighted.  Hit the &#8220;enter&#8221; key and see if it starts Memtest.  If it does, then congratulations, you&#8217;re up and running.  If it doesn&#8217;t work, scroll down to &#8220;Troubleshooting&#8221; and take a look at possible causes.</p>
<p>Here is a screenshot of PXElinux booting:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-35" title="pxelinux boot" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2009/08/pxelinux-boot.bmp" alt="pxelinux boot" width="576" height="320" /></p>
<p>Here is an image of the PXEboot menu.  You will only have the first option.  I configured my server first then thought this would make a good HOWTO so the other menu entries come up later.</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-36" title="pxelinux menu" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2009/08/pxelinux-menu.bmp" alt="pxelinux menu" width="576" height="320" /></p>
<p style="text-align: left;">Hit enter and launch Memtest.  It should drop you to a screen that looks something like this:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-38" title="pxelinux memtest" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2009/08/pxelinux-memtest.bmp" alt="pxelinux memtest" width="576" height="320" /></p>
<p style="text-align: left;">If you&#8217;ve gotten this far and your test station launched Memtest with no errors, it&#8217;s time to go to the next section and set up VSFTPd so we can actually have stuff to install. As it is, you have a fully capable memory tester on your hands.  All you need now is a computer that boots from TFTP and you no longer need to look for those long lost Memtest floppies! Of course, this is merely scratching the surface of what you can do.  Let&#8217;s go on to the next section where we will start getting a major distribution in place for installation.</p>
<h2 style="text-align: left;">Installation of VSFTPd for Ubuntu</h2>
<p>Well, we have made it this far and we&#8217;re actually closer to completion than you would think.  So far we have accomplished the following tasks:</p>
<ol>
<li>We&#8217;ve set up tftpd-hpa on our Ubuntu server.</li>
<li>We&#8217;ve configured it to stay running in memory and given it a location and files to serve.</li>
<li>We&#8217;ve configured pxelinux so that the client can find all the files necessary to boot the menu system.</li>
<li>We&#8217;ve configured the menu system with a test image to distribute and,</li>
<li>We have successfully TFTPbooted pxelinux, the menu system and the memtest image and know it all works.</li>
</ol>
<p>Now we need to install VSFTPd which is an FTP server for Linux.  &#8220;Why FTP?&#8221;, you ask.  The reason is simple.  FTP is easier to configure than Apache (the Linux Webserver) and is the default network installation method for most linux distributions.  While technically you could install using HTTP, you&#8217;d have to configure Apache on your server and if you&#8217;re using Apache to host files to the public internet, then you&#8217;d have to create a virtual host and all that mess.  FTP is much easier to set up and easier in this case is a good thing.</p>
<p>So, let&#8217;s start off by installing VSFTPd</p>
<pre>root@littleblackbox:/# apt-get install vsftpd</pre>
<p>You&#8217;ll see a lot of text fly by and at the end you will see that the server was started.  Unlike most FTP servers, VSFTPd has it&#8217;s own home directory in &#8220;/home&#8221; and not &#8220;/var/lib/ftp&#8221; or &#8220;/var/ftp&#8221; (as is common on some RedHat systems.  Now that we have the VSFTPd server installed, it&#8217;s time for more directory creating.  Since I use my FTP server for more than just storing images and installation media, I recommend the below hierachy to keep everything making sense.   Remember the note from the file placement section about keeping things clean?  Well now it&#8217;s going to get implemented to the extreme.  Since this is YOUR ftp server, you can do whatever you want, but take these guidelines into advisement:</p>
<ul>
<li>Keep your installation files away from other files by placing them in a different directory</li>
<li>Keep your directory structure simple, but don&#8217;t afraid to use subdirectories.</li>
<li>On the other hand, don&#8217;t use too many subdirectories.  You don&#8217;t want to have to remember a long path like &#8220;/dist/var/ftp/server/os/i386/redhat/Centos/5.2/installer&#8221; but simply copying everything into the FTP server&#8217;s &#8220;/&#8221; is strongly discouraged.</li>
</ul>
<p>With my server, I have chosen this directory heirachy:</p>
<ul>
<li>/bootdisks &#8211; images for boot floppies, should I ever need one, here they are.</li>
<li>/dist &#8211; This tells me that there are complete linux distributions available in this folder.</li>
<li>/dist/iso &#8211; This tells me that the .iso CD images of the distributions available are here.</li>
<li>/dist/installer &#8211; This tells me that the installers I&#8217;m looking for are located here.</li>
<li>/dist/installer/centos5 &#8211; This tells me that the installer distribution for CentOS5 is in this directory.  This is the directory I give to the installer later.</li>
</ul>
<p style="padding-left: 30px;"><strong>Note:</strong> As stated previously, you don&#8217;t HAVE to use this heirachy, you could use /centos5 as your installation directory if you want.  If you are net-installing a bunch of distributions however, your FTP server root could get messy.</p>
<p>Ok, enough talk about orginazation, let&#8217;s get to making files:</p>
<pre><code>
root@littleblackbox:/# cd /home/ftp
root@littleblackbox:/home/ftp# mkdir bootdisks
root@littleblackbox:/home/ftp# mkdir dist
root@littleblackbox:/home/ftp# mkdir dist/iso
root@littleblackbox:/home/ftp# mkdir dist/installer
root@littleblackbox:/home/ftp# mkdir dist/installer/centos5
</code></pre>
<h2>MD5sum, Mounting, Copying and Unmounting the disk images</h2>
<p>If you haven&#8217;t already done so, go ahead and copy the CD images into your Ubuntu server.  You can use any folder, although a temporary empty folder is recommended.  I copied my files into ~/CentOS5. If available, make sure you copy the MD5sum file along with them to your temporary directory on the server.</p>
<p>CD into the directory and we can use MD5 to check these files using the syntax below:</p>
<pre><code>
root@littleblackbox:~/Centos5# md5sum -c md5sum.txt
</code></pre>
<p>This command ‘md5sum’ generates an MD5 hash which should be identical to what is in md5sum.txt. The MD5 hash is like a special checksum validation that you can use to validate that downloaded files match their sources on the server you downloaded them from. Using the above command, I get the below results indicating a valid match. If one of the files had been changed by even so much as a comma in a configuration file on the ISO, the test would have failed.</p>
<pre><code>
root@littleblackbox:~/Centos5# md5sum -c md5sum.txt
CentOS-5.3-i386-bin-1of6.iso: OK
CentOS-5.3-i386-bin-2of6.iso: OK
CentOS-5.3-i386-bin-3of6.iso: OK
CentOS-5.3-i386-bin-4of6.iso: OK
CentOS-5.3-i386-bin-5of6.iso: OK
CentOS-5.3-i386-bin-6of6.iso: OK
root@littleblackbox:~/Centos5#
</code></pre>
<p>If you don’t have the md5sum.txt, you can still use the md5sum application. Use the command below to generate the MD5 checksums of the ISO images:</p>
<pre><code>
root@littleblackbox:~/Centos5# md5sum *.iso
</code></pre>
<p>This command will output the MD5 checksum and the filename for each of the files. You then compare this to what is listed on the server where you got them and compare the numbers. If they do not match, you know you got a corrupted download. Here is the MD5sums of the ISO images I have:</p>
<pre><code>dd93a6da1b900548825159206099603c  CentOS-5.3-i386-bin-1of6.iso
 5441ae0a3c9efd47cd8bfab873fe20c1  CentOS-5.3-i386-bin-2of6.iso
 024ca72da4e14f79522a90bf8f4fdf9f  CentOS-5.3-i386-bin-3of6.iso
 95e5e446754e76b3fa07aaf4946c0aa9  CentOS-5.3-i386-bin-4of6.iso
 0cda242797ded4b6b2ea0469984aca82  CentOS-5.3-i386-bin-5of6.iso
 889ff6389108a85780a06cd38b7375e7  CentOS-5.3-i386-bin-6of6.iso
</code></pre>
<p>We have our FTP server and we have our validated ISO images. Now it’s time to get messy. The next part comes in mounting these CD iso images, then copying their contents to the FTP directory we made earlier. This can be tedious and can be done incorrectly, rendering a good amount of time wasted if you aren’t careful.</p>
<p style="padding-left: 30px;"><strong>NOTE: </strong>The instructions here are specific for CentOS 5.3 but are commonly applied to most CD based distribution  installers. When in doubt, check with your distribution&#8217;s web site about what you need to do to perform a network installation.  Some distribution vendors may require a different file path be created.</p>
<p>We’ll start off by creating a temporary directory within the temporary directory called “source” and another one called “destination” and then mount the first ISO image into the source directory by use of the loopback option. Once mounted, we’re going to copy everything from source and put it in destination, then unmount the ISO image and repeat for the other 5 images. You can see the commands I used below.</p>
<pre><code>
root@littleblackbox:~/Centos5# mkdir source
root@littleblackbox:~/Centos5# mkdir destination
root@littleblackbox:~/Centos5# mount -o loop CentOS-5.3-i386-bin-1of6.iso /source
root@littleblackbox:~/Centos5# cp -R ./source/* ./destination
root@littleblackbox:~/Centos5# umount ./source
root@littleblackbox:~/Centos5# mount -o loop CentOS-5.3-i386-bin-2of6.iso ./source
root@littleblackbox:~/Centos5# cp -R ./source/* ./destination
root@littleblackbox:~/Centos5# umount ./source
root@littleblackbox:~/Centos5# mount -o loop CentOS-5.3-i386-bin-3of6.iso ./source
root@littleblackbox:~/Centos5# cp -R ./source/* ./destination
root@littleblackbox:~/Centos5# umount ./source
root@littleblackbox:~/Centos5# mount -o loop CentOS-5.3-i386-bin-3of6.iso ./source
root@littleblackbox:~/Centos5# cp -R ./source/* ./destination
root@littleblackbox:~/Centos5# umount ./source
root@littleblackbox:~/Centos5# mount -o loop CentOS-5.3-i386-bin-4of6.iso ./source
root@littleblackbox:~/Centos5# cp -R ./source/* ./destination
root@littleblackbox:~/Centos5# umount ./source
root@littleblackbox:~/Centos5# mount -o loop CentOS-5.3-i386-bin-5of6.iso ./source
root@littleblackbox:~/Centos5# cp -R ./source/* ./destination
root@littleblackbox:~/Centos5# umount ./source
root@littleblackbox:~/Centos5# mount -o loop CentOS-5.3-i386-bin-6of6.iso ./source
root@littleblackbox:~/Centos5# cp -R ./source/* ./destination
root@littleblackbox:~/Centos5# umount ./source
</code></pre>
<p>What we’ve done now, is created a directory called “destination” and copied every CD to that directory, overlapping them. What this does is it puts all the CentOS install packages into one directory and adds the necessary additional files to the root of the directory where the installer can find them. Now that we’ve done this, we can move the ISO files to the FTP server’s ISO directory and the “destination” files to the centos5 directory. I also moved the md5sum.txt and renamed it to CentOS5-i386-MD5SUM.txt so that way I know that the md5sum.txt is related to those ISO images.</p>
<pre><code>root@littleblackbox:~/Centos5# mv *.iso /home/ftp/dist/iso
root@littleblackbox:~/Centos5# mv md5sum.txt /home/ftp/dist/iso
root@littleblackbox:~/Centos5# mv /home/ftp/dist/iso/md5sum.txt /home/ftp/dist/iso/CentOS-5.3-i386-MD5.txt
root@littleblackbox:~/Centos5# mv destination/* /home/ftp/dist/installer/centos5/
root@littleblackbox:~/Centos5# cd /home/ftp
root@littleblackbox:/home/ftp# chgrp -R nogroup *
</code></pre>
<p>The last step is key.  This makes sure that all the files in /home/ftp have the same group as the FTP user that VSFTPd runs with. Ok, so that’s the hard part. Now we have our installation files in place, our ISOs are in place (in case we need them again) and we’re ready to get those bootdisk images. Let’s take a look and see what we’re up against:</p>
<p>Every distribution has a directory of boot disks that they make available in case you&#8217;re doing an installation on a machine that doesn&#8217;t support CD booting.  All they do is start the system up with enough resources to start the machine and get it to the point where it can run the installation off of a CD.  Most installations also provide a network booting image that we can place in our TFTP server to netboot the entire installation.</p>
<p>Thankfully, Centos5 has that available.  There is a directory called &#8220;images&#8221; and within that there is a directory called &#8220;pxeboot&#8221;.  <strong>cd</strong> into the directory and let&#8217;s take a look.</p>
<pre><code>
root@littleblackbox:/home/ftp# cd dist/installer/centos5/images/pxeboot
root@littleblackbox:/home/ftp/dist/installer/centos5/images/pxeboot# ls
initrd.img  README  TRANS.TBL  vmlinuz
root@littleblackbox:/home/ftp/dist/installer/centos5/images/pxeboot#
</code></pre>
<p>Of course, it helps to read the README file.  This may contain important information on what we need to get this image to work properly.</p>
<pre><code>
root@littleblackbox:/home/ftp/dist/installer/centos5/images/pxeboot# cat README
The files in this directory are useful for booting a machine via PXE.

The following files are available:
vmlinuz - the kernel used for the installer
initrd.img - an initrd with support for all install methods and
 drivers supported for installation of CentOS
</code></pre>
<p>It doesn&#8217;t get any simpler than that.  The &#8220;vmlinuz&#8221; file is the kernel and &#8220;initrd.img&#8221; is the initial ramdisk for the install kernel.  Pretty simple.  The README did not make any mention of any boot options or parameters so for now we&#8217;ll just keep these two files in mind.  Other distributions may require some additional options be passed to the installer.</p>
<p>Copy the initrd.img and vmlinuz files to &#8220;/tftpboot/images&#8221; and we&#8217;ll <strong>cd</strong> into that directory for a little bit more work. Remember when I told you about keeping your &#8220;/tftpboot&#8221; directory clean?  Well, we&#8217;re vising that once again.  (Getting tired of it yet?) The name &#8220;vmlinuz&#8221; and &#8220;initrd.img&#8221; may make sense for one version of Linux to install, however those are very common names.  Let&#8217;s say you get  a copy of CentOS4 and you want to do network boot/install on that too?  There&#8217;s a pretty darn good chance that CentOS4 uses the same filenames! Since the initrd.img and vmlinuz are compiled for each other, you can&#8217;t go about using CentOS5&#8242;s initrd on CentOS4&#8242;s vmlinuz, they just won&#8217;t work.</p>
<p>So let&#8217;s start off by renaming the two files to something more descriptive.</p>
<pre><code>root@littleblackbox:/tftpboot/images# mv vmlinuz vmlinuz-Centos5-netboot
root@littleblackbox:/tftpboot/images# mv initrd.img initrd-Centos5-netboot
</code></pre>
<p>Now that we have new names for the files, it&#8217;s time for the section that I&#8217;m sure you&#8217;ve been dying to read.</p>
<h2>Configuring boot menus using the menu.c32 from the UBCD</h2>
<p>And to much fanfare, I&#8217;d expect. <img src='http://www.yourwarrantyisvoid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   So, let&#8217;s review again:</p>
<ol>
<li>We&#8217;ve set up tftpd-hpa on our Ubuntu server.</li>
<li>We&#8217;ve configured it to stay running in memory and given it a location and files to serve.</li>
<li>We&#8217;ve configured pxelinux so that the client can find all the files necessary to boot the menu system.</li>
<li>We&#8217;ve configured the menu system with a test image to distribute and,</li>
<li>We&#8217;ve successfully TFTPbooted pxelinux, the menu system and the memtest image and know it all works.</li>
<li>We&#8217;ve got our installation media in place on the FTP server with the proper file structure</li>
<li>We&#8217;ve got our boot images in place in &#8220;/tftpboot/images&#8221; and given them descriptive filenames</li>
</ol>
<p>Now we need to build a menu to select a menu and start the installer.  This is almost the last step, I promise.  Remember the main.mnu file from earlier? (Look down, I saved you the scrolling. )</p>
<pre><code>
MENU INCLUDE /menus/defaults.cfg
LABEL memtest
 MENU LABEL Memtest86 V3.3
 KERNEL /images/memtest
</code></pre>
<p>Well here is where we&#8217;re going to go over the options and add another image. Firstly, we are going to review what we have here:</p>
<ul>
<li><strong>MENU INCLUDE</strong><em><strong> /menus/defaults.cfg</strong></em> &#8211; This line should appear first at the top of every menu file. This tells the menu.c32 how to render your menu (colors, etc)</li>
<li><strong>LABEL <em>memtest</em></strong> &#8211; This tells the menu system that we are creating a new entry definition and that it&#8217;s name is &#8220;memtest&#8221;.  All <strong>label</strong> declarations must be unique.</li>
<li><strong>MENU LABEL <em>Memtest86 V3.3</em></strong> &#8211; This tells the menu system that the menu should display &#8220;Memtest86 V3.3&#8243; in it&#8217;s text as the selectable item</li>
<li><strong>KERNEL <em>/images/memtest</em></strong> &#8211; This tells the menu system that if this menu item is selected to boot the &#8220;/images/memtest&#8221; image and execute it.</li>
</ul>
<p>At this point, we could go ahead and declare a new entry definition and copy and paste however this will cause the machine to fail once the image is selected.  Remember, the image we want to make available is comprised of the kernel (vmlinuz) and the initial ramdisk (initrd.img).  The menu system will take an additional parameter called <strong>APPEND</strong> with additional options that are needed to get the kernel to work like installer parameters and <em>initrd statements.</em></p>
<p style="padding-left: 30px;"><strong>NOTE:</strong> Does this look familiar to you?  If you are thinking that it looks similar to the LILO boot menu then you are absoloutely correct.  There are some differences but mostly the same configuration for LILO can be used here.</p>
<p>All we need to do is to add <strong>APPEND</strong> to the menu for our new item and we can save it and test.  Add the following text into your main.mnu and let&#8217;s test it out</p>
<pre><code>
label Centos5
 menu label Install Centos 5
 kernel /images/vmlinuz-Centos5-netboot
 append initrd=/images/initrd-Centos5-netboot
</code></pre>
<p>That&#8217;s all there is to it.  We have our label, our menu label, our kernel statement and our append statement with the initrd in there. Try booting your test PC now.</p>
<p>If you select the &#8220;Install CentOS 5&#8243; option and after a few moments of watching text scroll around, you see the following screen, then congratulations! You have finished making your Ubuntu server network boot a Linux installer.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-43" title="pxelinux boot centos5install" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2009/08/pxelinux-boot-centos5install.bmp" alt="pxelinux boot centos5install" width="576" height="320" /></p>
<p>Go ahead and navigate the menus and when you come to the menu asking for FTP credentials, put the following information in:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-44" title="pxelinux centos ftp settings" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2009/08/pxelinux-centos-ftp-settings.bmp" alt="pxelinux centos ftp settings" width="576" height="320" /></p>
<p style="text-align: left;">When you hit OK to this screen, the installer will be attempting to fetch the information from the FTP server. Remember, until now we have been in the Preboot Execution Environment and are running in the initrd that was loaded when we selected to install CentOS5.  We have not even attempted FTP connectivity at this point.  A few nailbiting secconds later, and you should see this screen:</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-45" title="welcometocentos5" src="http://www.yourwarrantyisvoid.com/wp-content/uploads/2009/08/welcometocentos5.bmp" alt="welcometocentos5" width="576" height="320" /></p>
<p style="text-align: left;">Go ahead and finish the installation if you&#8217;d like, or turn off the testing machine.</p>
<p style="text-align: left;">You&#8217;re all done.  I do hope that you enjoyed this HOWTO.  If you have any comments or suggestions, please leave them in the comments section of this article.  If you experienced any issues, please keep reading.</p>
<h2 style="text-align: left;">Troubleshooting</h2>
<p>So you got through the HOWTO but something didn&#8217;t go quite right, Hopefully we can get you running again.</p>
<p><em><strong>My onboard NIC  won&#8217;t boot. My computer shows TFTP followed by a bunch of periods and eventually says &#8220;TFTP OPEN TIMEOUT&#8221; .</strong></em></p>
<p>If you look at the top of the screen, I&#8217;m guessing you&#8217;ll see something that says &#8220;INTEL LANDesk (R) Service Agent, version 0.99b&#8221;.  If so, you will have to use a different NIC.  There was a firmware bug in .99B that resulted in a lot of PXEboot clients not being able to properly connect to a TFTP server.  Unfortunately the only fix was to update the NIC&#8217;s firmware which is a dicey thing to do anyways, especially with an onboard NIC.  I would recommend just going out and getting a different card.</p>
<p><em><strong>When booting my CentOS image, it says &#8220;KERNEL PANIC: No Init Found&#8221;</strong></em></p>
<p>This means that the booted kernel vmlinuz-Centos5-netboot couldn&#8217;t find the initrd to go with it.  I would start by looking at your menu file (main.mnu) and see if the<strong> APPEND <em>initrd=/images/initrd-Centos5-netboot</em></strong> image name is specified correctly.  Try your boot again after editing the file and you should be good to go.</p>
<p><em><strong>My PXE client says &#8220;File Not Found&#8221;</strong></em></p>
<p>Check &#8220;/etc/default/tftpd-hpa&#8221; and make sure that the path specified on the <strong>OPTIONS</strong> line is pointed to &#8220;/tftpboot&#8221; and make sure that the directory has the pxelinux.0 file in it.</p>
<p><em><strong>My PXE client pulls an IP address but times out when trying to download pxelinux.0.</strong></em></p>
<p>This means that either the wrong address was specified on the <strong>next-server</strong> line or that the TFTP server is not responding.  Check it by performing this command: <strong>/etc/init.d/tftpd-hpa restart</strong> and verify it&#8217;s running with <strong>ps auwxf | grep tftpd</strong></p>
<p><em><strong>My menu for CentOS 5 shows &#8220;CentOS5&#8243; instead of &#8220;Install CentOS 5&#8243;.</strong></em></p>
<p>Check your menu file and make sure that you have a <strong>MENU ITEM</strong> specified for this image. If no <strong>MENU ITEM</strong> is present, the menu system will fall back on to<strong> </strong>the name assigned on the <strong>LABEL</strong> line instead.</p>
<p><strong><em>How can I tell if my NIC will network boot?</em></strong></p>
<p>Without sticking it in to a machine and finding out if it works, there&#8217;s no guarantee that the NIC you have will boot.  There are clues that may help you though.  Look at the card and see if there is a chip on there that has the word &#8220;ATMEL&#8221; on it.  If there&#8217;s no ATMEL chip, but there&#8217;s a large socket where a chip should go, then unfortunately that card will not network boot.   If you plug it in to your computer doesn&#8217;t show any text or banner about UNDI, PXE or Etherboot, then you also may be out of luck.  If you have an onboard NIC, take a look in your BIOS and see if there is an option to enable network booting and try again.</p>
<p><em><strong>Will this PXE booting work over USB?  What about Wireless?</strong></em></p>
<ul>
<li>USB &#8211; Unfortunately there is not a PXE boot installation available for USB devices.  They get initialized by the OS far after the PXE hooks in to execute</li>
<li>Wireless &#8211; The same applies for USB, except if you are doing an installation to  a WIRED machine and you use a wireless bridge, you might be able to.  The wireless bridge is transparent to the network and PXE so it should function as if you were directly connected to a switch.</li>
</ul>
<h2>Tips and Tricks</h2>
<p>Ok, so you got the basics down, let&#8217;s examine some of the more advanced aspects of the menu system.</p>
<p style="padding-left: 30px;"><strong>Menu timeout to load a default image</strong> &#8211; Good for the memtest image.  Add &#8220;<strong>timeout <em>30</em></strong>&#8221; and &#8220;<strong>default <em>memtest</em></strong>&#8221; to the main.mnu.  This will tell the menu system  to boot the memtest image if no key is pressed in 30 seconds.</p>
<p style="padding-left: 30px;"><strong>Add a sub-menu</strong> &#8211; Want to add a submenu to the menu system?  This one&#8217;s easy.  Create a new <strong>LABEL</strong> in your main.mnu and add the following</p>
<pre style="padding-left: 30px;"><code>LABEL submenu1
 MENU LABEL Sub Menu 1
 KERNEL menu.c32
 APPEND /menus/submenu1.mnu
</code></pre>
<p style="padding-left: 30px;">Change the <strong>LABEL</strong>, <strong>MENU LABEL</strong> to reflect the new entry and change the <strong>APPEND</strong> line to point to your new submenu.  Copy your main.mnu to your submenu1.mnu file.  Edit it and add the necessary entries to that file.  If you want to have a &#8220;Go Back&#8230;&#8221; option, make your first entry&#8217;s <strong>APPEND</strong> line load &#8220;/menus/main.mnu&#8221;</p>
<p style="padding-left: 30px;"><strong>Change your menu&#8217;s  title.</strong></p>
<p style="padding-left: 30px;">One thing overlooked here was that my defaults.cfg was already edited for my server.  If you copied the one from the UBCD directly, then yours still will say &#8220;Ultimate Boot CD&#8221; at the top which is kind of funny because the machine you&#8217;re installing might not even have a CDROM to boot from.  Edit the defaults.cfg in the &#8220;/tftpboot/menus&#8221; directory and change the <strong>MENU TITLE </strong>directive to whatever you want.  Remember that you can not exceed 76 columns (80 columns &#8211; 4 for the borders) otherwise your menu may not display properly.</p>
<h2>Afterword</h2>
<p>If you would like more information on how to customize your boot menu, check out <a href="http://syslinux.zytor.com/wiki/index.php/Comboot/menu.c32">http://syslinux.zytor.com/wiki/index.php/Comboot/menu.c32</a> They go through the entire exhaustive option set with code examples and explanations of each option.  I have only posted information here that I have used and know works.</p>
<p>I have enjoyed writing this HOWTO and hope that someone out there finds it useful.  If you would like to make any comments about this HOWTO or want to share your netboot experience, please by all means leave me a comment.</p>
<p>Thank you for reading, Happy netbooting!</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2009/08/17/setting-up-ubuntu-to-tftpboot-with-menu-for-installations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s on your workbench?</title>
		<link>http://www.yourwarrantyisvoid.com/2009/08/17/whats-on-your-workbench/</link>
		<comments>http://www.yourwarrantyisvoid.com/2009/08/17/whats-on-your-workbench/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 05:01:29 +0000</pubDate>
		<dc:creator>firestorm_v1</dc:creator>
				<category><![CDATA[How-To's]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Ask the Users]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[workbench]]></category>

		<guid isPermaLink="false">http://www.yourwarrantyisvoid.com/?p=7</guid>
		<description><![CDATA[A lot of people keep asking me, &#8220;What tools do you use to hack with?&#8221; and I&#8217;ve always told them about the same handful of items listed below.  These are the tried and true and have never let me down. Read more to get a full list of items that I use regularly that you [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of people keep asking me, &#8220;What tools do you use to hack with?&#8221; and I&#8217;ve always told them about the same handful of items listed below.  These are the tried and true and have never let me down. Read more to get a full list of items that I use regularly that you might find useful on your workbench for hardware hacking.</p>
<p><span id="more-7"></span></p>
<p>I&#8217;ve been hacking hardware for the last ten years of my life.  It&#8217;s started out with the old 486 computer that someone from school gave me and has escalated from there.  I&#8217;ve used a ton of tools ranging from the super expensive to the super cheap but I have managed to find that the following list of items invaluable when it comes to modifying hardware:</p>
<h3>Tools:</h3>
<ol>
<li><strong>A good multimeter</strong> &#8211; Although most people&#8217;s definition of &#8220;good&#8221; can vary, I mean &#8220;good&#8221; as in accurate with a lot of options available.  I recommend a multimeter that can read up to 500V AC or DC voltage, Amperage, Ohms, Polarity check (usually with a diode icon) and Continuity with a buzzer.  I highly recommend the buzzer for continuity because the act of turning to look at the display could cause your leads to shift.  It doesn&#8217;t have to be expensive or fancy, but one with a good set of test leads (alligator clips or pokey-sticks) will do fine.  My multimeter is one that was produced by Archer (part of RadioShack) for $20,  Catalog # 22-802.</li>
<li><strong>A soldering iron</strong> &#8211; Think of a soldering iron as the surgeon&#8217;s scalpel.  While some hardware hacking can be performed easily without the need for a soldering iron, most of the heavy, deep getting down to it requires the use of a good quality soldering iron.  Mine is about 23 watts which provides enough heat to be able to make the solder melt and distribute evenly.  Too much heat can damage components while too little heat can cause issues with solder.  My soldering iron is a Weller SP23. <strong>NOTE:</strong> Because a lot of these hacks involve sensitive electronic components, I strongly discourage the use of a soldering &#8220;gun&#8221; unless you can verify it produces heat via resistance and not via a transformer.  These soldering &#8220;guns&#8221; make it very hard to work on smaller components as the unregulated heat and the magnetic interference produced by these guns will oftentimes damage components.</li>
<li><strong>Soldering Stand</strong>- A soldering stand is pretty much a requirement as you need somewhere safe you can put your soldering iron while it&#8217;s not in use or it is heating up/cooling off.  I think Radio Shack sells these for $10 standalone or $20 for a kit that comes with a soldering iron as well.</li>
<li><strong>Solder Wick</strong>- This is a small spool of flux-treated copper braiding and it makes it almost painless to desolder things for removal or repair.  It&#8217;s a lot easier to use in tight spaces where a solder sucker won&#8217;t work very well.</li>
<li><strong>Multi-bin parts container</strong> &#8211; Don&#8217;t let your projects take over your house.  Get a parts container that has multiple compartments or drawers.  I bought mine at a hardware store on clearance for $15 and have never regretted it.  A container that has multiple compartments is highly recommended for those odds-and-ends that just won&#8217;t fit in a smaller parts container.</li>
<li><strong>A powerstrip</strong> &#8211; You&#8217;d think that this would be a no-brainer, but it surprises me to see some people with extension cords stretched all over creation.  This is both unsafe and an electrical hazard.  What if your soldering iron slips and manages to burn through it while you&#8217;re distracted?  Not the good kind of fireworks.  My bench has <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16842121010">something similar to this one</a> and it has yet to fail me.  Ample places to plug stuff in and lots of space.  This one is firmly attached to the back of my bench in arms reach if I need it.</li>
<li><strong>A desktop power supply</strong>- Before you freak out on me here, I am serious.  You don&#8217;t have to go spend a kajillion dollars on a fancy EE grade power supply.  If you have an AT power supply, this will be more than ample.  You&#8217;re looking for one that can output 5VDC, 12VDC or one that is adjustable.  I will be posting a howto shortly on how you can make your own AT power supply for your bench.</li>
<li><strong>Screwdrivers, screwdrivers and more screwdrivers!</strong> &#8211; How are you going to get the case off if you have nothing to get the case off with.  I recommend a good phillips (+) or common (-) screwdriver set or one that is reversible.  I have one I found in a grocery store that cost me $5 and it has done me quite well for the many months I&#8217;ve had it.    I also recommend a torx (star shaped) set, a <a href="http://www.frys.com/product/4292254?site=sr:SEARCH:MAIN_RSLT_PG">precision/micro screwdriver set</a> (don&#8217;t fall for the $4 set at the dollar store) and a <a href="http://www.harborfreight.com/cpi/ctaf/displayitem.taf?Itemnumber=93388">security bit set</a>.</li>
<li><strong>Needle Nose Pliers and Diagonal cutters</strong> &#8211; Needle nose pliers and diagonal cutters are important additions to your bench as they can get into places that your fingers or larger tools can&#8217;t.</li>
<li><strong>The Dremel, prized amongst hardware hackers! </strong>-The dremel tool is quite possibly one of the most important tools you&#8217;ll need in your adventure of hardware hacking.  This useful tool allows you to cut and grind where a hacksaw won&#8217;t go and a file won&#8217;t fit.  I highly recommend one, along with a healthy supply of cutting disks.</li>
<li><strong>A large supply of electrical tape</strong> &#8211; Whether it&#8217;s used to get that one wire out of the way or to tape up a splice, electrical tape is very important to keep on-hand</li>
</ol>
<p>It&#8217;s not just tools that make a good bench It also takes a good computer and some other things you normally wouldn&#8217;t expect to find on a hardware bench.  Nowadays hacking has gone a lot further than just soldering connections and that&#8217;s all she wrote.  With computers getting smaller and smaller, you are able to find them in the darndest of places.  These items are also recommended as they do come in handy quite often.</p>
<ul>
<li><a href="http://www.bb-elec.com/product.asp?sku=9PMTT">RS-232 Cable Tester</a></li>
<li>A combination of serial port cables and adapters: 9 pin male to 9pin male, 9 pin male to 9 pin female, 9 pin male to 25 pin male, 9 pin male to 25 pin female, 9 pin male-male gender changer, 9 pin female-female gender changer, 25 pin male-male gender changer and a 25 pin female-female gender changer</li>
<li>A computer with a true -12V/+12V serial port. *note: USB dongles don&#8217;t supply the standard voltages that some devices require for serial communication and will sometimes inhibit connectivity to the device.</li>
<li>A USB hub with a power brick</li>
<li><a href="http://www.amazon.com/Iomega-Zip-100-Portable-Drive/dp/B00000J3Q7">USB Zip100 in the clear &#8220;old-school&#8221; style</a>.  Most embedded devices can boot off of a USB Zip100 and as such might prove useful to have one ready.</li>
<li>USB Keydrive (any size, preferrably 512M or more)</li>
<li>USB network adapter based off the pegasus driver.  I use a 3com USB network adapter and it has served me quite well.</li>
<li>A 10/100 HUB &#8211; I said HUB because I meant it.  <strong>NOT A SWITCH</strong>.   The reason for this is due to the nature of switches and hubs, it&#8217;s easier to do packet sniffing for network analysis if your target and your analyzer are plugged into a hub.  A switch won&#8217;t necessarily broadcast all packets which makes analysis a bit harder.</li>
<li>A linux computer with the following utilities: <strong>Wireshark, NMAP, TELNET, SSH</strong> and with multiple network interfaces (for isolation.) I will also post a howto on how tobuild a good network analyser soon.</li>
<li>A good digital camera &#8211; for documenting your hacks and mods!</li>
</ul>
<p>There are certainly more advanced hacks that might require additional items and some unexpected things may come up, but this list (at least the first one) will put most of the hardware hacks into your scope of ability.  In all the hacks documented on this site, I will outline which tools are required so you can read and know which ones you&#8217;ll need before you get started.</p>
<p>Hapy Hacking!</p>
<p>FIRESTORM_v1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yourwarrantyisvoid.com/2009/08/17/whats-on-your-workbench/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

