<?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>Benjamin Grant &#187; technical</title>
	<atom:link href="http://bengrant.org/category/technical/feed/" rel="self" type="application/rss+xml" />
	<link>http://bengrant.org</link>
	<description></description>
	<lastBuildDate>Mon, 27 May 2013 07:16:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.7</generator>

	<image>
		<url>http://bengrant.org/files/2015/05/bg_clear_huge-5563eec5v1_site_icon-32x32.png</url>
		<title> &#187; technical</title>
		<link>http://bengrant.org</link>
		<width>32</width>
		<height>32</height>
	</image> 
	<item>
		<title>Monitoring the Cisco 678</title>
		<link>http://bengrant.org/2013/05/27/monitoring-the-cisco-678/</link>
		<comments>http://bengrant.org/2013/05/27/monitoring-the-cisco-678/#comments</comments>
		<pubDate>Mon, 27 May 2013 07:16:35 +0000</pubDate>
		<dc:creator><![CDATA[bgrantrobus]]></dc:creator>
				<category><![CDATA[technical]]></category>
		<category><![CDATA[Cisco 678]]></category>
		<category><![CDATA[Net-SNMP]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[rsyslog]]></category>
		<category><![CDATA[SNMP]]></category>
		<category><![CDATA[syslog]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bengrant.org/?p=166</guid>
		<description><![CDATA[My connection to the boundless cache of information called the &#8220;internet&#8221; is handled by my trusty Cisco 678. Unfortunately, the phone infrastructure in my building is less than top quality and my connection quality degrades over time. Part of my solution to this problem involves monitoring my 678 (running CBOS 2.4). Configuring Syslog The Cisco [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>My connection to the boundless cache of information called the &#8220;internet&#8221; is handled by my trusty Cisco 678. Unfortunately, the phone infrastructure in my building is less than top quality and my connection quality degrades over time. Part of my solution to this problem involves monitoring my 678 (running CBOS 2.4).</p>
<h2>Configuring Syslog</h2>
<p>The Cisco 67x has a built-in syslog facility, but it has limited memory and can be cumbersome to access. The Cisco has the capability to send syslog messages to a central syslog server, and I just happen to maintain such a server on my network. My syslog server currently runs Ubuntu Server 12.04.2 LTS (Precise Pangolin) and I use the provided rsyslogd (5.8.6). To configure it, edit /etc/rsyslog.conf and ensure UDP support is enabled (I had to uncomment the following lines).</p>
<pre>$ModLoad imudp
$UDPServerRun 514</pre>
<p>I also had to add a firewall rule to allow the traffic.</p>
<pre>iptables -A INPUT -i eth1 -s &lt;cisco ip&gt;/32 -p udp --dport 514 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth1 -d &lt;cisco ip&gt;/32 -p udp --sport 514 -m state --state RELATED,ESTABLISHED -j ACCEPT</pre>
<p>Next, configure the Cisco to send its syslog messages to the remote server. This consists of connecting to the Cisco, configuring syslog, writing the config, rebooting, and testing.</p>
<pre>User Access Verification
Password:********

cbos&gt;<strong>enable</strong>
Password:********

cbos#<strong>set syslog enabled</strong>
SYSLOG is enabled

cbos#<strong>set syslog remote &lt;syslog server ip&gt;</strong>
SYSLOG will now send messages to &lt;syslog server ip&gt;

cbos#<strong>set syslog port 514</strong>
SYSLOG will now use port 514

cbos#<strong>write</strong>
Warning: traffic may pause while NVRAM is being modified
NVRAM written.

cbos#<strong>reboot</strong></pre>
<p>Obviously, you need to replace &lt;syslog server ip&gt; with an actual IP. Adjust the port if necessary. Once the reboot is complete, you can test it.</p>
<pre>cbos#<strong>set syslog test testing syslog from cisco 678</strong>
Message: "testing syslog from cisco 678" sent via syslog</pre>
<p>You should see the message appear in your logs on the central syslog server.</p>
<pre>user@syslog$ <strong>tail /var/log/syslog.log</strong>
May 24 18:29:11 &lt;cisco ip&gt; "testing sysylog from cisco 678"</pre>
<p>If the message doesn&#8217;t appear in the syslog logs, check for errors on the Cisco.</p>
<pre>cbos#<strong>show errors</strong>
- Current Error Messages -
## Ticks Module Level Message
 0 000:00:00:00 SYSLOG Alarm Could not send message</pre>
<p>If the error &#8220;Could not send message&#8221; appears, verify that the Cisco was configured correctly. <strong>Note:</strong> <em>the Cisco will probably fail until the config is written and the device is rebooted.</em></p>
<p>Messages from the Cisco should now be appearing in your central syslog logs.</p>
<h2>Configuring SNMP</h2>
<p>The Cisco 678 has built-in support for SNMP, and it&#8217;s fairly straight-forward to enable. My goal is to use <a href="http://www.net-snmp.org">Net-SNMP</a> to monitor the performance and general health of the Cisco. To setup the 678 to support SNMP, add a &#8216;manager&#8217; (use &#8220;set snmp manager&#8221; for details). In my example, &lt;client ip&gt; is the IP of the machine generating SNMP requests, and &#8220;internal&#8221; is the name of my SNMP &#8216;community&#8217;.</p>
<pre>cbos#<strong>set snmp manager &lt;client ip&gt; internal read enable all</strong>
Added SNMP Manager

cbos#<strong>set snmp enable</strong>
SNMP enabled

cbos#<strong>write</strong>
Warning: traffic may pause while NVRAM is being modified
NVRAM written.

cbos#<strong>reboot</strong></pre>
<p>The Cisco should now respond to SNMP requests originating from &lt;client ip&gt;. Net-SNMP includes several tools, such as snmpwalk, that can be used to test the setup. This can be done on an Ubuntu client as follows.</p>
<pre>user$ <strong>sudo apt-get install -y snmp</strong>
user$ <strong>snmpwalk -r 0 -v1 -c internal &lt;cisco ip&gt;</strong></pre>
<p>The output of both commands has been omitted, but the system information for the Cisco should look similar to the following.</p>
<pre>user$ <strong>snmpwalk -r0 -v1 -c internal &lt;cisco ip&gt; system</strong>
SNMPv2-MIB::sysDescr.0 = STRING: Cisco CPE SNMPv3 Agent
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.10.1.1
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (8835020) 1 day, 0:32:30.20
SNMPv2-MIB::sysContact.0 = STRING: Cisco Systems, Inc
SNMPv2-MIB::sysName.0 = STRING: CBOS675
SNMPv2-MIB::sysLocation.0 = STRING: Irvine
SNMPv2-MIB::sysServices.0 = INTEGER: 72</pre>
<p><strong>Note:</strong> Net-SNMP 5.4.3 was having problems translating OID numbers into more human-friendly strings. Eventually, Google led me to several articles explaining a bug in 5.4 that caused Net-SNMP to fail when reading MIB files to translate the OID numbers. It was necessary for me to build and install 5.7.1 to resolve this problem. If you&#8217;re using 5.4.3, then you may need to change your command, and the result will be different (and more cryptic).</p>
<pre>user$ <strong>snmpwalk -r0 -v1 -c internal &lt;cisco ip&gt; .1.3.6.1.2.1.1</strong>
iso.3.6.1.2.1.1.1.0 = STRING: "Cisco CPE SNMPv3 Agent"
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.9.10.1.1
iso.3.6.1.2.1.1.3.0 = Timeticks: (8887560) 1 day, 0:41:15.60
iso.3.6.1.2.1.1.4.0 = STRING: "Cisco Systems, Inc"
iso.3.6.1.2.1.1.5.0 = STRING: "CBOS675"
iso.3.6.1.2.1.1.6.0 = STRING: "Irvine"
iso.3.6.1.2.1.1.7.0 = INTEGER: 72</pre>
<p>Most of the examples I found online use <a href="http://man.cx/mrtg(1)">mrtg</a> (along with <a href="http://httpd.apache.org">Apache</a>, <a href="http://man.cx/cron(1)">cron</a>, and <a href="http://man.cx/rrdtool(1)">rrdtool</a>) to generate web-accessible graphs of  data collected via SNMP. This isn&#8217;t the model I&#8217;m using, but <a href="http://www.google.com/search?q=snmp+mrtg">Google can lead you to the answer</a>; I&#8217;m using a custom tool to record specific parameters as part of my overall network monitoring.</p>
<h2>A Final Thought</h2>
<p>Between syslog and SNMP, it should be relatively easy to keep an eye on a Cisco 678 or 675. It&#8217;s worth noting that there are some security trade offs to consider when enabling SNMP. In my setup, I was able to disable my 678&#8217;s telnet server, but end up exposing its SNMP functionality. This may or may not be advisable in your environment.</p>
]]></content:encoded>
			<wfw:commentRss>http://bengrant.org/2013/05/27/monitoring-the-cisco-678/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using SSH with Transient Servers</title>
		<link>http://bengrant.org/2013/05/04/using-ssh-with-transient-servers/</link>
		<comments>http://bengrant.org/2013/05/04/using-ssh-with-transient-servers/#comments</comments>
		<pubDate>Sun, 05 May 2013 02:08:40 +0000</pubDate>
		<dc:creator><![CDATA[bgrantrobus]]></dc:creator>
				<category><![CDATA[technical]]></category>
		<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://bengrant.org/?p=160</guid>
		<description><![CDATA[In this modern era of cloud computing, servers are provisioned as needed and destroyed when their work is done. Most of these servers are short lived and have relatively low security requirements. This leads to some annoyances when using SSH. Specifically, the known_hosts file is constantly growing, most of the host records belong to hosts [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>In this modern era of cloud computing, servers are provisioned as needed and destroyed when their work is done. Most of these servers are short lived and have relatively low security requirements. This leads to some annoyances when using SSH. Specifically, the known_hosts file is constantly growing, most of the host records belong to hosts that don&#8217;t exist anymore, or the host keys for a particular system change frequently. Luckily, there&#8217;s an easy work around.</p>
<p>There are two SSH options that can help: StrictHostKeyChecking and UserKnownHostsFile (see the <a href="http://linux.die.net/man/5/ssh_config">ssh-config</a> man page for full details). Setting StrictHostKeyChecking to &#8220;no&#8221; tells SSH to automatically add hosts to the known_hosts file. UserKnownHostsFile can be used to define a different file to track host keys. In the bluntest scenario, /dev/null can be used as a known_hosts file. From the command line, the options are used as follows:</p>
<pre>ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null user@example.com</pre>
<p>In this scenario, SSH will attempt to connect to <em>example.com</em> as <em>user</em>, look for an existing host key record in /dev/null (which obviously doesn&#8217;t exist), automatically adds the host key to /dev/null (without prompting, but it may output a warning), and finally opens the connection.</p>
<p>This trick can also be applied to a SSH config file to simplify usage. For example, if connections are frequently made to a cloud environment, a host pattern could be used to automatically apply the above options.</p>
<pre>Host *.cloud.example.com
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null</pre>
<p>Then, connections would be as simple as:</p>
<pre>ssh instance.cloud.example.com</pre>
<p>The internet is filled with variations on this, and other, tips.</p>
]]></content:encoded>
			<wfw:commentRss>http://bengrant.org/2013/05/04/using-ssh-with-transient-servers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running VMware vSphere Client in the Cloud</title>
		<link>http://bengrant.org/2013/04/07/running-vmware-vsphere-client-in-the-cloud/</link>
		<comments>http://bengrant.org/2013/04/07/running-vmware-vsphere-client-in-the-cloud/#comments</comments>
		<pubDate>Mon, 08 Apr 2013 00:59:50 +0000</pubDate>
		<dc:creator><![CDATA[bgrantrobus]]></dc:creator>
				<category><![CDATA[technical]]></category>
		<category><![CDATA[ESXi 5.x]]></category>
		<category><![CDATA[Virtual Machines]]></category>
		<category><![CDATA[VMware]]></category>
		<category><![CDATA[vSphere Client]]></category>
		<category><![CDATA[vSphere Web Client]]></category>

		<guid isPermaLink="false">http://bengrant.org/?p=150</guid>
		<description><![CDATA[My home lab has been running on VMware ESXi 4.1 for a while. I don&#8217;t have a personal Windows machines, so I use the ESXi SSH service console to manage the host and guests. Most of the time this works fine, but it would be nice to use the vSphere Client for some things (most [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>My home lab has been running on <a href="http://www.vmware.com">VMware</a> <a href="https://my.vmware.com/web/vmware/info/slug/datacenter_cloud_infrastructure/vmware_vsphere/4_1">ESXi 4.1</a> for a while. I don&#8217;t have a personal Windows machines, so I use the ESXi SSH service console to manage the host and guests. Most of the time this works fine, but it would be nice to use the vSphere Client for some things (most notably, the initial setup of the system).</p>
<p>ESXi 4 has been serving me just fine, so I hadn&#8217;t taken the time to upgrade to 5. However, I recently saw some notes indicating that vSphere was moving away from the Windows-based Client to a web-based management console. I didn&#8217;t have anything exciting deployed and decided to spend an afternoon checking out the latest version of ESXi.</p>
<p>It usually takes me a few minutes to navigate the labyrinth VMware calls a <a href="http://www.vmware.com">website</a>, but I eventually located the <a href="https://my.vmware.com/web/vmware/info/slug/datacenter_cloud_infrastructure/vmware_vsphere/5_1">ESXi 5.1 download page</a>. Installation is straight-forward (see the <a href="http://pubs.vmware.com/vsphere-51/topic/com.vmware.vsphere.install.doc/GUID-6FFA928F-7F7D-4B1A-B05C-777279233A77.html">official documentation</a> for details). Once the system was up and running, I pointed my browser at it and found the familiar link to &#8220;Download vSphere Client&#8221;. There was also a link to &#8220;Browse datastores in this host&#8217;s inventory.&#8221; I was immediately disappointed. The inventory browser is virtually useless and I didn&#8217;t see anything suggesting a web-based management tool.</p>
<p>After a more thorough review of the <a href="http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&amp;docType=kc&amp;docTypeID=DT_KB_1_1&amp;externalId=2005083">documentation</a>, I realized that the vSphere Web Client 5 has to be installed on a separate server &#8211; a <em>Windows</em> server &#8211; and only supports a few browsers. For me, this completely defeated the point.</p>
<p>I only have Mac OS X and Linux systems at home. To work around this particular challenge, I run vSphere Client on an <a href="http://aws.amazon.com/ec2/">Amazon EC2 </a>instance. If you don&#8217;t have an AWS account, you can sign up for free and take advantage of the <a href="http://aws.amazon.com/free/">AWS Free Tier</a>. (You need a credit card to sign up, but nothing gets charged to it unless you provision something outside the free tier, which Amazon provides clear documentation for.) There are also cloud-based Virtual Desktop providers, but I&#8217;ve never actually used one.</p>
<p>To run vSphere Client on AWS, launch a Microsoft Windows Server 2008 Base (64-bit) image, which is free tier eligible if you provision it as a t1.micro instance. (A t1.micro is ridiculously small for a Windows server, but it&#8217;s sufficient to run vSphere Client.) Once the instance is running, you can use the EC2 Management Console to get its Administrator password and public DNS name &#8211; you&#8217;ll need these to open a Remote Desktop connection to the instance. For detailed instructions, see the <a href="http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Welcome.html">EC2 User Guide</a>.</p>
<p>Now you have a Windows machine that is either free or only pennies per running hour. Now, you need to connect your Windows instance to your ESXi server. There is an obvious security risk here &#8211; you could end up exposing your system to the public. <em>Proceed with caution.</em><em><br />
</em></p>
<p>The vSphere client uses TCP ports 443, 902, and 903 to communicate with the server. If you don&#8217;t have any control over your firewall/network, then you can try using SSH tunneling/port-forwarding to &#8220;map&#8221; your server ports to local ports on the Windows instance. In this scenario, you would access your server using localhost ports on your client, and you may need to install a SSH server on the Windows instance to make this work. I usually modify my firewall to map my server ports to a publicly accessible IP, but secure access to the IP of the Windows instance.</p>
<p>In short, vSphere Client and vSphere Web Client both require a Windows system to run, and you can use a cheap cloud-hosted Windows instance to bridge the gap.</p>
]]></content:encoded>
			<wfw:commentRss>http://bengrant.org/2013/04/07/running-vmware-vsphere-client-in-the-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell BIOS Upgrade Issues</title>
		<link>http://bengrant.org/2013/03/21/dell-bios-upgrade-issues/</link>
		<comments>http://bengrant.org/2013/03/21/dell-bios-upgrade-issues/#comments</comments>
		<pubDate>Thu, 21 Mar 2013 17:03:01 +0000</pubDate>
		<dc:creator><![CDATA[bgrantrobus]]></dc:creator>
				<category><![CDATA[technical]]></category>
		<category><![CDATA[32-bit vs 64-bit]]></category>
		<category><![CDATA[BIOS]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[gzip(1)]]></category>
		<category><![CDATA[tail(1)]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://bengrant.org/?p=138</guid>
		<description><![CDATA[I have a Dell PowerEdge SC440 that serves as a light-weight server for my home lab. I wanted to update the BIOS from 1.2.0 to 1.5.0. I expected this to be a trivial update, but discovered that the update script used to unpack and execute the flash program had some issues with my environment. On [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I have a Dell PowerEdge SC440 that serves as a light-weight server for my home lab. I wanted to update the BIOS from 1.2.0 to 1.5.0. I expected this to be a trivial update, but discovered that the update script used to unpack and execute the flash program had some issues with my environment.</p>
<p>On Ubuntu Server 10.04 LTS 64-bit, the wrapper script uses tail(1) and <a title="gzip(1)" href="http://man.cx/gzip(1)">gzip</a> to unpack the flash executable.</p>
<pre># chmod u+x SC440-010500.BIN
# ./SC440-010500.BIN
Dell BIOS Update Installer 1.1
Copyright 2006 Dell Inc. All Rights Reserved.

tail: cannot open `+78' for reading: No such file or directory

gzip: stdin: not in gzip format</pre>
<p>The script uses an old syntax for tail that is being progressively obsoleted in their GNU forms. This can be fixed by either modifying the update script (change &#8220;+N&#8221; to &#8220;&#8211;lines=+N&#8221;) or set the environment variable _POSIX2_VERSION to &#8220;199209&#8221; to make tail use the old syntax.</p>
<p>The other issue is with gzip. The updater is 32-bit, but the SC440 is 64-bit native and, in this case, running a 64-bit OS. This problem can be solved by installing a 32-bit zlib library. I found some</p>
<p>My final process looks like this:</p>
<pre># Verify MD5 checksum is correct
md5sum SC440-010500.BIN

# Install 32-bit libs (for Ubuntu or Debian)
# (Fedora: yum install glibc.1686 zlib.i386)
# (SUSE: zypper install glibc-32bi zlib-32bit)
sudo apt-get install ia32-libs libc6-1386

# Switch to run-level 1
sudo init 1

# On Ubuntu, select 'root Drop to root shell prompt'

# Make the script executable
chmod u+x SC440-010500.BIN

# Let tail(1) know it should use the obsolete syntax
export _POSIX2_VERSION=199209

# Verify the package will extract
./SC440-010500.BIN --version

# If all was OK, run it for effect
./SC440-010500.BIN

# Follow the on-screen prompts to finish the install</pre>
<p>If you struggled to follow along, then I would recommend taking more time to understand all the details before you risk turning your system into a brick by botching something while flashing the new BIOS.</p>
]]></content:encoded>
			<wfw:commentRss>http://bengrant.org/2013/03/21/dell-bios-upgrade-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go(Away)Daddy &#8211; Transferring a Domain to Network Solutions</title>
		<link>http://bengrant.org/2013/01/01/goawaydaddy-transfer-a-domain-to-network-solutions/</link>
		<comments>http://bengrant.org/2013/01/01/goawaydaddy-transfer-a-domain-to-network-solutions/#comments</comments>
		<pubDate>Tue, 01 Jan 2013 19:57:16 +0000</pubDate>
		<dc:creator><![CDATA[bgrantrobus]]></dc:creator>
				<category><![CDATA[technical]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Domain Transfer]]></category>
		<category><![CDATA[GoDaddy]]></category>
		<category><![CDATA[Network Solutions]]></category>

		<guid isPermaLink="false">http://bengrant.org/?p=108</guid>
		<description><![CDATA[I&#8217;ve been using Network Solutions as my domain registrar for longer than I&#8217;d like to admit. Before I moved everything I could to Amazon Route 53, I used Network Solutions as a DNS service, too. If Amazon ever offers a registrar service, I would drop Network Solutions and consolidate in a heart beat. And, despite the [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://www.networksolutions.com/">Network Solutions</a> as my domain registrar for longer than I&#8217;d like to admit. Before I moved everything I could to <a href="http://aws.amazon.com/route53/">Amazon Route 53</a>, I used Network Solutions as a DNS service, too. If Amazon ever offers a <a href="http://aws.amazon.com/route53/faqs/#Register_domains_with_Route_53">registrar service</a>, I would drop Network Solutions and consolidate in a heart beat. And, despite the increasing layers of aggressive sales and a marketing driven UI, Network Solutions is familiar and relatively easy to use. If I was starting all over, I would probably look for a registrar with a cleaner and simpler user experience, but there&#8217;s one registrar I&#8217;ve tried to avoid.</p>
<p>Initially, I avoided GoDaddy because I didn&#8217;t care for their corporate policies (they&#8217;re no stranger to <a href="http://en.wikipedia.org/wiki/Go_Daddy#Controversies">controversy</a>) any more than I cared for their hideous brand aesthetic. Unfortunately, a domain I wanted was trapped in GoDaddy&#8217;s auction limbo. To buy the domain I had to participate in their auction and keep the domain registered with them for a minimum period. This is where I developed a strong dislike for everything they do. I have the impression that GoDaddy is built by individual product teams that don&#8217;t coordinate or communicate and everything is glued together by a terrible user experience and marketing drivel so aggressive I can&#8217;t actually tell what they&#8217;re trying to sell. The whole system seems to be fighting itself.</p>
<p>In the end, I ended up with a single domain registered on GoDaddy. Now that it&#8217;s eligible for transfer, I&#8217;m moving it to Network Solutions with the rest of my domains.</p>
<h2>Preparing the Domain for Transfer</h2>
<p>I spent a few minutes trying to find my way through GoDaddy&#8217;s support site before resorting to Google. Eventually, I found this: <a href="http://support.godaddy.com/help/article/3560/transferring-domain-names-to-another-registrar">Transferring Domain Names to Another Registrar</a>. In short, unlock the domain, get an authorization code, and initiate the transfer from the destination registrar.</p>
<p>First, log in to the GoDaddy Domain Manager for the domain to transfer.</p>
<ol>
<li>Go to <a href="http://godaddy.com">GoDaddy.com</a></li>
<li>Click, &#8220;Log In to My Account&#8221; (top left)</li>
<li>Enter your credentials and click &#8220;Log In&#8221;</li>
<li>Click &#8220;My Account&#8221; (it replaced &#8220;Log In to My Account&#8221;)</li>
<li>Next to Domains, click Launch</li>
<li>Click the domain name you&#8217;re going to transfer</li>
</ol>
<p>At this point, I highly recommend you note your domain&#8217;s configuration. Be aware that moving the domain will impact any related services you may have with GoDaddy. You&#8217;ll need to document your configuration to ensure you can recreate it after the transfer.</p>
<p>Before the domain can be transferred, it needs to be unlocked. Look under &#8220;Domain Information&#8221; for &#8220;Locked:&#8221;. If it doesn&#8217;t say &#8220;Unlocked&#8221;, then it needs to be unlocked. (See <a href="http://support.godaddy.com/help/article/410/locking-and-unlocking-your-domain-names?locale=en">Locking and Unlocking Your Domain Name</a> for details.)</p>
<ol>
<li>Under &#8220;Domain Information&#8221;, next to &#8220;Locked:&#8221;, click Manage</li>
<li>Unselect &#8220;Lock domain(s)&#8221;</li>
<li>Click OK</li>
<li>Click OK</li>
</ol>
<p>Most registrars will ask for an authorization code when initiating a transfer; Network Solutions is one of them. (See <a href="http://support.godaddy.com/help/article/1685/getting-an-authorization-code-to-transfer-your-domain-name?locale=en">Getting an Authorization Code to Transfer Your Domain Name</a>.)</p>
<ol>
<li>Under &#8220;Domain Information&#8221;, next to &#8220;Authorization Code&#8221;, click &#8220;Send by Email&#8221;</li>
<li>GoDaddy will send an email to the administrative contact for the domain</li>
<li>Wait for the email and note the authorization code</li>
</ol>
<p>Once the domain is unlocked and you have an authorization code in hand, you&#8217;re ready to initiate the transfer from Network Solutions.</p>
<h2>Initiate the Transfer</h2>
<p>Go to Network Solutions and log in to the Account Manager. If you scroll to the bottom of the page, under &#8220;Manage My Products &amp; Services&#8221;, click &#8220;<a href="https://www.networksolutions.com/domain-name-registration/domain-transfer-search.jsp">Transfer Domains</a>&#8220;.</p>
<p>Enter your domain name in the box and click &#8220;Get Started&#8221;. When the search returns, you should see your domain selected under &#8220;Domains Eligible for Online Transfer&#8221;. Click Continue, enter your authorization code, and click Continue, again.</p>
<p><a href="http://bengrant.org/2013/01/01/goawaydaddy-transfer-a-domain-to-network-solutions/netsol_xfer_godaddy/" rel="attachment wp-att-113"><img class="alignnone  wp-image-113" alt="netsol_xfer_godaddy" src="http://bengrant.org/wp-content/uploads/2012/12/netsol_xfer_godaddy.png" width="447" height="269" /></a></p>
<p>The final step is paying for the transfer. The domain is added to a shopping cart. Configure the cart how you want (just the transfer, additional years of registration, etc) and complete the checkout process.</p>
<p>Network Solutions will notify GoDaddy and GoDaddy will send the domain administrator an email with instructions to complete the transfer. This step may take some time; don&#8217;t expect it to finish in just a few minutes. (It took about two hours to get my first email.)</p>
<h2>Authorize/Confirm the Transfer</h2>
<p>I received two emails from Network Solutions &#8211; they were essentially identical, but one was sent to my GoDaddy administrative contact address and the other was sent to my Network Solutions administrative contact address. The email contained a link for confirming the transfer and a notice that the transfer must be confirmed within 15 days or it will be automatically rejected.</p>
<p>The link takes you to a page that identifies the domain being transferred, instructions on how to proceed, and a form to complete the authorization. I scrolled to the form, verified that &#8220;Authorize&#8221; was selected, checked the box acknowledging the Service Agreement, and clicked Submit. Be sure to save a copy of your confirmation.</p>
<p>I received an email from GoDaddy almost immediately. Their email indicated that the transfer was pending and I had five days to decline the transfer. If you don&#8217;t decline it, then it will complete automatically. If you don&#8217;t want to wait five days, then click the link and accept the transfer using the GoDaddy Domain Manager.</p>
<ol>
<li>Log in to GoDaddy &#8220;My Account&#8221;</li>
<li>Next to Domains, click Launch</li>
<li>In the Domains drop-down, select &#8220;Pending Transfers&#8221;</li>
<li>On the line for the domain, click &#8220;Accept or Decline&#8221;</li>
<li>Click &#8220;Accept/decline transfer now&#8221;</li>
<li>Select Accept</li>
<li>Click OK</li>
<li>Click OK</li>
</ol>
<p>After a couple of minutes, I received two emails confirming the transfer and lamenting my departure from GoDaddy. I logged into the GoDaddy Domain Manager and verified that the domain no longer appeared there. Initially, my domain did not appear in the Network Solutions Domain Manager. It took about two hours before I received email confirmation from Network Solutions and the domain appeared in their Domain Manager. I also noticed that the name servers I had associated with the domain on GoDaddy were migrated to Network Solutions. (A happy surprise!)</p>
<h2>Conclusion</h2>
<p>In the end, transferring my domain was fairly straight forward. It would have been nice if it was faster, but I can&#8217;t really complain considering what must be involved behind the scenes. The process really comes down to: unlock the domain, get an authorization code, initiate the transfer at the destination, confirm the initiation, confirm the transfer for the source, wait for it to complete. Good-bye GoDaddy!</p>
<h2></h2>
]]></content:encoded>
			<wfw:commentRss>http://bengrant.org/2013/01/01/goawaydaddy-transfer-a-domain-to-network-solutions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Trusty Cisco 678 (Needs A Refresh)</title>
		<link>http://bengrant.org/2012/12/31/the-trusty-cisco-678-needs-a-refresh/</link>
		<comments>http://bengrant.org/2012/12/31/the-trusty-cisco-678-needs-a-refresh/#comments</comments>
		<pubDate>Mon, 31 Dec 2012 19:49:27 +0000</pubDate>
		<dc:creator><![CDATA[bgrantrobus]]></dc:creator>
				<category><![CDATA[technical]]></category>
		<category><![CDATA[Cisco 678]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[screen(1)]]></category>
		<category><![CDATA[telnet(1)]]></category>

		<guid isPermaLink="false">http://bengrant.org/?p=85</guid>
		<description><![CDATA[I&#8217;ve been using the same Cisco 678 DSL router/modem for around a decade, and I had a 675 for a year or two before that. My DSL provider tries to sell or lease me a new DSL modem every time I call to change my service or move, but I&#8217;m sticking with my 678 until it [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve been using the same <a href="http://www.cisco.com/en/US/products/hw/routers/ps295/index.html">Cisco 678</a> DSL router/modem for around a decade, and I had a 675 for a year or two before that. My DSL provider tries to sell or lease me a new DSL modem every time I call to change my service or move, but I&#8217;m sticking with my 678 until it dies, doesn&#8217;t support the service I need, or my provider completely drops support for it. (I can&#8217;t recall contacting them for any kind of support related to anything other than a service change or move; their residential DSL service has been stable and sufficient, and my 678 just keeps trucking.) I recently made a small service change and decided to reset and reconfigure my router/modem.</p>
<h2>Connecting</h2>
<p>The 678 <em>can</em> be reset and configured using the LAN port, but connecting to the management port using the provided management cable is safer. If you don&#8217;t have a management cable, Cisco is kind enough to <a href="http://www.cisco.com/en/US/tech/tk175/tk15/technologies_configuration_example09186a0080093e33.shtml">tell you how</a> (basically, a DB9 to RJ45 cable). If you&#8217;re stuck using the LAN, then do your homework, double check your work, and be prepared to accept defeat. I use <a href="http://man.cx/TELNET(1)">telnet</a> when connecting over the LAN and <a href="http://man.cx/SCREEN(1)">screen</a>, <a href="http://man.cx/TIP(1)">tip</a>, or <a href="http://man.cx/CU(1)">cu</a> when connecting with the management cable.</p>
<p>When the connection is initially opened, the router should prompted for the <em>exec</em> password. If the router/modem is already running when the connection is opened, then it may be necessary to hit <em>enter</em> to trigger the prompt.</p>
<p>If you don&#8217;t know the <em>exec</em> or <em>enable</em> passwords for your router/modem, then check out the <a href="http://www.cisco.com/en/US/products/hw/routers/ps295/products_password_recovery09186a0080094154.shtml">Password Recovery Procedure for the Cisco 6xx</a>.</p>
<h2>Resetting</h2>
<p>Start by resetting the router/modem to a known state. If the current state is a complete disaster, then it can be completely reset using RMON. See <a href="http://www.cisco.com/en/US/products/hw/routers/ps295/products_password_recovery09186a0080094154.shtml#erasing_cfg">Erase the Configuration</a> from the Password Recovery Procedure for details. Typically, the router/modem can be reset by connecting and erasing the configuration in normal mode (shown below).</p>
<p>This is where working with the LAN can be tricky. If the configuration is erased and written, but the connection is dropped before a new configuration is written, the router could be left in an unknown/undesirable state. If you&#8217;re connected using the LAN, skip the <em>reboot</em> step at the end. And, good luck!</p>
<pre>User Access Verification
Password: <strong>&lt;your password&gt;</strong>

cbos&gt;<strong>enable</strong>
Password: <strong>&lt;your password&gt;</strong>

cbos#<strong>set nvram erase</strong>
Erasing Running Configuration.
You must use "write" for changes to be permanent.

cbos#<strong>write</strong> 
Warning: traffic may pause while NVRAM is being modified
NVRAM written.

cbos#<strong>reboot</strong></pre>
<p>The router/modem will reboot into a &#8220;clean&#8221; state with no configuration (including blank passwords).</p>
<h2>Configuring</h2>
<p>My configuration is fairly straight forward. I have a single external IP and a handful of devices that use network address translation (NAT) to access the outside world. Most of my internal network is assigned static IPs, but I maintain a small pool of IPs for (mostly wireless) DHCP devices. In my setup, my Cisco 678 acts as the modem and router, but it&#8217;s possible to configure the 678 as a simple modem bridged to another device that handles PPP, NAT, DHCP, etc. For details, see the <a href="http://www.cisco.com/en/US/products/hw/modems/ps296/products_installation_guide_chapter09186a008007dd70.html#xtocid1095513">RFC 1483 Routing</a> section in the <a href="http://www.cisco.com/en/US/products/hw/modems/ps296/products_installation_guide_book09186a008007dd7e.html">Cisco 600 Series Installation and Operation Guide</a>.</p>
<p>I start by connecting and setting the passwords for <em>exec</em> and <i>enable</i>.</p>
<pre>User Access Verification
Password:<strong>&lt;your password; blank after reset&gt;</strong>

cbos&gt;<strong>enable</strong>
Password:<strong>&lt;your password; blank after reset&gt;</strong>

cbos#<strong>set password exec &lt;new password&gt;</strong>
Exec Password Change Successful!

cbos#<strong>set password enable &lt;new password&gt;</strong>
Enable Password Change Successful!</pre>
<p>Next, configure the PPP connection.</p>
<pre>cbos#<strong>set ppp wan0-0 ipcp 0.0.0.0</strong>
PPP wan0-0 IPCP Address set to 0.0.0.0

cbos#<strong>set ppp wan0-0 dns 0.0.0.0</strong>
PPP wan0-0 DNS Server Addresses set to 0.0.0.0

cbos#<strong>set ppp wan0-0 authentication enable</strong>
PAP and CHAP Authentication is now enabled on specified port

cbos#<strong>set ppp wan0-0 login &lt;your login&gt;</strong>
User name for wan0-0 has been set to &lt;your login&gt;

cbos#<strong>set ppp wan0-0 password &lt;your password&gt;</strong>
Password for wan0-0 has been set to &lt;your password&gt;.

cbos#<strong>set ppp restart enabled</strong>
CPE Remote Restart is now enabled...</pre>
<p>Next, enable network address translation (NAT).</p>
<pre>cbos#<strong>set nat enabled</strong>
NAT is now enabled
You must use "write" then reboot for changes to take effect.</pre>
<p>Next, configure the internal/local network. The LAN port is <em>eth0</em>, and the following example sets the router/modem&#8217;s IP to 10.0.0.1.<em><br />
</em></p>
<pre>cbos#<strong>set interface eth0 address 10.0.0.1</strong>
eth0 ip address changed from 10.0.0.1 to 10.0.0.1</pre>
<p>Next, setup a DHCP server for the internal/local network. The following example allocates a pool of 16 IPs starting at 10.0.0.200, sets a DNS server to pass to DHCP clients, and a gateway that points to the router.</p>
<pre>cbos#<strong>set dhcp server enabled</strong>
DHCP Server enabled

cbos#<strong>set dhcp server pool 0 ip 10.0.0.200 size 16 netmask 255.255.255.0</strong>
Pool 0 IP parameter is now 10.0.0.200

cbos#<strong>set dhcp server pool 0 dns &lt;dns server IP&gt;</strong>
Pool 0 DNS parameter is now &lt;dns server IP&gt;

cbos#<strong>set dhcp server pool 0 gateway 10.0.0.1</strong>
Pool 0 gateway parameter is now 10.0.0.1

cbos#<strong>set dhcp server pool 0 enabled</strong>
DHCP Server Pool 0 now enabled</pre>
<p>Next, configure the WAN port. Before executing the following steps, disconnect the phone line. Once the configuration is complete and written, the phone line can be reconnected.</p>
<pre>cbos#<strong>set interface wan0-0 close</strong>
Closing connection wan0-0

cbos#<strong>set interface wan0-0 vpi 0</strong>
Change completed.

cbos#<strong>set interface wan0-0 vci 32</strong>
Change completed.

cbos#<strong>set interface wan0-0 open</strong>
Opening connection wan0-0</pre>
<p>Finally, write the configuration and reboot.</p>
<pre>cbos#<strong>write</strong>
Warning: traffic may pause while NVRAM is being modified
NVRAM written.

cbos#<strong>reboot</strong></pre>
<h2>Validating</h2>
<p>At this point, I like to connect over the LAN and issue a few commands to validate that the running configuration was persisted correctly, the DSL line is trained and authenticated, and the connection&#8217;s upstream and downstream data rates are correct (verify you&#8217;re getting what you pay for).</p>
<pre>User Access Verification
Password: <strong>&lt;your password&gt;</strong>

cbos&gt;<strong>enable</strong>
Password: <strong>&lt;your password&gt;</strong>

cbos#<strong>show nvram</strong>
Warning: traffic may pause while NVRAM is being accessed
[[ CBOS = Section Start ]]
NSOS MD5 Enable Password = <em>&lt;omitted&gt;</em>
NSOS Remote Restart = enabled
NSOS MD5 Root Password = <em>&lt;omitted&gt;</em>
NSOS MD5 Commander Password = <em>&lt;omitted&gt;</em>
[[ PPP Device Driver = Section Start ]]
PPP Port Option = 00, IPCP,IP Address,3,Auto,Negotiation Not Required,Negotiable,IP,0.0.0.0
PPP Port Option = 00, IPCP,Primary DNS Server,129,Auto,Negotiation Not Required,Negotiable,IP,0.0.0.0
PPP Port Option = 00, IPCP,Secondary DNS Server,131,Auto,Negotiation Not Required,Negotiable,IP,0.0.0.0
PPP Port User Name = 00, <em>&lt;omitted&gt;</em>
PPP Port User Password = 00, ****
[[ IP Routing = Section Start ]]
IP NAT = enabled
[[ DHCP = Section Start ]]
DHCP Server = enabled
DHCP Server Pool IP = 00, 10.0.0.200
DHCP Server Pool DNS = 00, <em>&lt;omitted&gt;</em>
[[ ATM WAN Device Driver = Section Start ]]
ATM WAN Virtual Connection Parms = 00, 0, 32, 0

cbos#<strong>show interface wan0</strong>
wan0 ADSL Physical Port
 Line Trained
Actual Configuration:
 Overhead Framing: 3
 Trellis Coding: Enabled
 Standard Compliance: T1.413
 Downstream Data Rate: 6144 Kbps
 Upstream Data Rate: 896 Kbps
<em>&lt;omitted the rest... but there's lots more!&gt;</em>

cbos#<strong>show interface wan0-0</strong>
WAN0-0 ATM Logical Port
 PVC (VPI 0, VCI 32) is open.
 ScalaRate set to Auto
 AAL 5 UBR Traffic
 PPP LCP State: Opened
 PPP NCP State (IP Routing): Opened
 PPP MRU: 2048 HDLC Framing: disabled MPOA Mode: VC Mux
 PPP Login: &lt;your login&gt;
 Authentication Type: Autodetecting/PAP
 RADIUS: disabled
 PPP Tx: 113997 Rx: 387171 
 Dest IP: <em>&lt;omitted&gt;</em>
 Dest Mask: 255.255.255.255
 IP Port Enabled</pre>
<p>If there are any problems, check out the <a href="http://www.cisco.com/en/US/products/hw/modems/ps296/products_installation_guide_chapter09186a008007dd74.html">Cisco 600 Series Installation and Operation Guide &#8211; Troubleshooting</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bengrant.org/2012/12/31/the-trusty-cisco-678-needs-a-refresh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My iMac Needs A Serial Port</title>
		<link>http://bengrant.org/2012/12/21/my-imac-needs-a-serial-port/</link>
		<comments>http://bengrant.org/2012/12/21/my-imac-needs-a-serial-port/#comments</comments>
		<pubDate>Fri, 21 Dec 2012 23:00:19 +0000</pubDate>
		<dc:creator><![CDATA[bgrantrobus]]></dc:creator>
				<category><![CDATA[technical]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[screen(1)]]></category>
		<category><![CDATA[Serial Communications]]></category>

		<guid isPermaLink="false">http://bengrant.org/?p=58</guid>
		<description><![CDATA[Apple stopped putting serial ports on Macs in the late 1990&#8217;s. For the most part, I don&#8217;t miss them. In fact, I think every laptop I&#8217;ve been issued by an employer has been equipped with one of these dust gathering and finger scratching ports, and I would be happier without them. So, I can&#8217;t say [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Apple stopped putting serial ports on Macs in the late 1990&#8217;s. For the most part, I don&#8217;t miss them. In fact, I think every laptop I&#8217;ve been issued by an employer has been equipped with one of these dust gathering and finger scratching ports, and I would be happier without them. So, I can&#8217;t say I&#8217;m surprised to learn that the <a href="http://support.apple.com/kb/HT3913">smooth and tidy back of my iMac</a> does not have a serial port. Unfortunately, I have a few simple or old devices that still speak &#8220;serial&#8221;.</p>
<p>When I was working on my ECE degree, I purchased a USB-to-Serial adapter to connect my iBook to everything from oscilloscopes to micro-controllers. Earlier this week I had to dig out my adapter, a Keyspan USA-19, to update my DSL router (a story for another day).</p>
<p>As it turns out, Keyspan was bought by <a href="http://www.tripplite.com">Tripp Lite</a> in 2008, but appears to continue <a href="http://www.tripplite.com/en/products/keyspan-products.cfm">making and supporting</a> Keyspan&#8217;s USB-to-Serial adpaters. I couldn&#8217;t find drivers for the USA-19, but took the risk an used the <a href="http://www.tripplite.com/shared/software/Driver/Driver%20for%20USA-19HS_v2.6.4%20(Mac%20OS%20X%2010.6.x%20to%2010.8.x).zip">driver for the USA-19HS (Mac OS X 10.6.x to 10.8.x)</a>. There isn&#8217;t anything fancy about the installer; just follow the prompts.</p>
<p>Once the driver is installed, plug in the adapter and check for it with:</p>
<pre>% ls -1 /dev/tty.*</pre>
<p>I had to restart before I saw what I was looking for (I&#8217;ve omitted the results that aren&#8217;t relevant):</p>
<pre>% ls -1 /dev/tty.*
/dev/tty.KeySerial1
/dev/tty.USA192433P1.1
</pre>
<p>Once you identify the USB-to-Serial adapter, in this case, USA192433P1.1, you can connect using <a href="http://man.cx/tip(1)">tip(1)/cu(1)</a> or <a href="http://man.cx/screen(1)">screen(1)</a>. I used tip on my iBook, but don&#8217;t have it installed on my iMac.</p>
<pre>% screen /dev/tty.USA.192433P1.1</pre>
<p>Check the <a href="http://man.cx/screen">screen manpage</a> for details about setting baud rate and other options.</p>
]]></content:encoded>
			<wfw:commentRss>http://bengrant.org/2012/12/21/my-imac-needs-a-serial-port/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iWork &#8217;09 on Mountain Lion</title>
		<link>http://bengrant.org/2012/12/16/iwork-09-on-mountain-lion/</link>
		<comments>http://bengrant.org/2012/12/16/iwork-09-on-mountain-lion/#comments</comments>
		<pubDate>Sun, 16 Dec 2012 22:17:17 +0000</pubDate>
		<dc:creator><![CDATA[bgrantrobus]]></dc:creator>
				<category><![CDATA[technical]]></category>
		<category><![CDATA[iWork]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Mountain Lion]]></category>

		<guid isPermaLink="false">http://bengrant.org/?p=53</guid>
		<description><![CDATA[I use iWork &#8217;09 and Office for Mac at home. I prefer iWork for basic spreadsheets and word processing at home, but use Office for just about everything else. My iMac came with Snow Leapord (10.6) and iWork pre-installed, but my recently acquired MacBook Air came with Mountain Lion (10.8) and without iWork. I naively [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>I use iWork &#8217;09 and Office for Mac at home. I prefer iWork for basic spreadsheets and word processing at home, but use Office for just about everything else. My iMac came with Snow Leapord (10.6) and iWork pre-installed, but my recently acquired MacBook Air came with Mountain Lion (10.8) and without iWork.</p>
<p>I naively thought I could copy the iWork folder from my &#8220;/Applications/iWork &#8217;09/&#8221; folder from my iMac to my MacBook Air. But, when I try to run an iWork application, I receive an error indicating that it&#8217;s &#8220;corrupt&#8221;.</p>
<p>A quick search later, and I was trying to copy additional files from &#8220;/Library/Application Support/&#8221; and &#8220;/Library/Preferences/&#8221;. Finally, I dug out the original iWork &#8217;09 installation DVD that came with my iMac.</p>
<p>My MacBook Air doesn&#8217;t have a DVD drive, so I had to setup DVD sharing between my iMac and Air. On my iMac, I opened System Preferences, clicked Sharing under Internet &amp; Wireless, and enabled &#8220;DVD or CD Sharing&#8221;. I checked the box &#8220;Ask me before allowing others to use my DVD drive&#8221; as a precaution.</p>
<p>After inserting the DVD into my iMac, I opened a new Finder window and clicked &#8220;Remote Disc&#8221; under Devices in the window&#8217;s sidebar, double-clicked the icon for my iMac, and clicked the &#8220;Ask to use&#8230;&#8221; button. (See &#8220;Use another computer&#8217;s DVD or CD drive&#8221; in Help Center for details. The &#8220;Ask to use&#8230;&#8221; button is a consequence of checking &#8220;Ask me before allowing other to use my DVD drive&#8221; on the iMac.) A dialog appears on my iMac indicating that my user on my MacBook Air would like to use my DVD drive; I clicked Accept, and the disc opens on my MacBook Air.</p>
<p>Initially, the installer failed because there was a newer version of iWork on my MacBook Air (the version I tried to copy earlier). I had to remove the following:</p>
<pre>sudo rm -rf "/Applications/iWork '09/"
sudo rm -rf "/Library/Application Support/iWork '09/"
sudo rm -rf "/Library/Preferences/com.apple.iWork09.Installer.plist"
sudo rm -rf "/Library/Preferences/com.apple.iWork09.plist"</pre>
<p>After removing the above, I was able to successfully run the installer. After installation, I ran Software Update to upgrade iWork to the latest version.</p>
]]></content:encoded>
			<wfw:commentRss>http://bengrant.org/2012/12/16/iwork-09-on-mountain-lion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
