<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkAHQnY5fyp7ImA9WhRRFE4.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561</id><updated>2011-11-27T19:05:33.827-05:00</updated><category term="rsh" /><category term="cme" /><category term="mksiofs" /><category term="router" /><category term="mdconfig" /><category term="radio" /><category term="peer" /><category term="arp" /><category term="rlogin" /><category term="dial" /><category term="iso" /><category term="voip" /><category term="storage" /><category term="ssh" /><category term="headless" /><category term="hamfest" /><category term="samsung" /><category term="sed" /><category term="nas" /><category term="freenas" /><category term="xorg" /><category term="vty" /><category term="growfs" /><category term="cisco" /><category term="awk" /><category term="ios" /><category term="shell" /><category term="netbook" /><category term="telnet" /><category term="script" /><category term="snmp" /><category term="cd9660" /><category term="idiots" /><category term="ip address" /><category term="freebsd" /><category term="mac address" /><category term="rant" /><category term="bourne" /><category term="patch" /><title>RF and IP</title><subtitle type="html">Having fun with amateur radio and data networks!  I have a particular interest in, and much experience with, IPv6 and will share what I learn here.  If you need help with IPv6, just ask and I may post an article focused on your needs.  Also check out &lt;a href="http://testmyipv6.com/"&gt;http://testmyipv6.com/&lt;/a&gt; to get started!</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://rfandip.blogspot.com/" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/RfAndIp" /><feedburner:info uri="rfandip" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;D0UNQ3o5fCp7ImA9WhdSEU4.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-5573442563464242484</id><published>2011-07-19T17:41:00.002-04:00</published><updated>2011-07-20T00:14:52.424-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-20T00:14:52.424-04:00</app:edited><title>FreeNAS 8 - getting out of my comfort zone</title><content type="html">Well, I have been using a different version of FreeNAS 0.7 on my backup NAS (NAS2) for a while and just recently connected a monitor to the box to see if I could capture anything on the console that would give me a clue as to why the box would fall over at random times. What I found was a spinlock causing a panic. Not good. Since this version of FreeNAS was from the pre-8 days, I decided to step out of my comfort zone and completely rebuild this box with FreeNAS 8 and ZFS.&lt;br /&gt;
&lt;br /&gt;
Just to give a little background on the hardware, this machine (actually two machines, NAS1 and NAS2) is built with:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Intel BOXD945GCLF2 Atom 330 Intel 945GC Mini ITX Motherboard/CPU Combo&lt;/li&gt;
&lt;li&gt;Thermaltake Black SECC Japanese steel LANBOX Lite VF6000BNS Micro ATX Media Center / HTPC Case&lt;/li&gt;
&lt;li&gt;Thermaltake TR2 W0070RUC 430W ATX12V V2.2 Intel Core i7 Compliant Dual 80mm Fans Full Cable Sleevings Power Supply&lt;/li&gt;
&lt;li&gt;Kingston ValueRAM 2GB 240-Pin DDR2 SDRAM DDR2 667 (PC2 5300) Desktop Memory Model KVR667D2N5/2G&lt;/li&gt;
&lt;li&gt;2x SanDisk SDCFH2-2048 2GB CF cards attached to CF-&gt;PATA adapters (OS disks)&lt;/li&gt;
&lt;li&gt;1x WD 1TB spinning disk&lt;/li&gt;
&lt;li&gt;1x Seagate spinning disk&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
Since the original construction, both Seagates have died and been replaced by a newer vintage WD drives, also 1TB in size. On each box, the drives are configured as a 1TB gmirror. The primary box, NAS1, is still running FreeNAS 0.7 (build 4292) and is dead reliable. The secondary box, NAS2, which I am documenting the rebuild here, was running FreeNAS 0.7 (build 4919) and this is the version that sporadically went into spinlock panic.&lt;br /&gt;
&lt;br /&gt;
Now that you know the history, let's get into the new project!&lt;br /&gt;
&lt;br /&gt;
First, these servers are running FreeNAS embedded on the ata0 (now ada0 in FreeNAS 8) CF card and the other 2GB CF card is idle. Previously I had taken the CF card out of the machine and used a PCMCIA CF adapter in my laptop to write the new embedded image. This time, I used a USB flash drive to test the new image before tearing the machine apart to get to the CF card.&lt;br /&gt;
&lt;br /&gt;
On my windows laptop, using cygwin, I ran...&lt;br /&gt;
&lt;br /&gt;
&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;cat /proc/partitions&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
...before and after inserting the USB flash drive so that I could be sure of the target. In my case, with one fixed disk (known as /dev/sda), the USB flash drive was known as /dev/sdb. With this information, it was a piece of cake to write the embedded image for FreeNAS 8 to the USB flash drive using...&lt;br /&gt;
&lt;br /&gt;
&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;xz --decompress --stdout FreeNAS-8.0-RELEASE-amd64.Full_Install.xz | dd of=/dev/sdb&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
After the write, I inserted the stick into the powered-off server and flipped-on the power. It booted the image just fine, albeit slow, and I was in business. After some tinkering around I decided that I indeed wanted to push ahead and load FreeNAS 8 to the primary CF drive, but still not wanting to tear the machine down to get to the card, I decided to use `dd` to copy the image from the USB flash to the CF card. I had never done this but figured I would try and see if it would break or work. I logged in to the server and issued the following command via the CLI...&lt;br /&gt;
&lt;br /&gt;
&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;dd if=/dev/da0 of=/dev/ada0 bs=1M count=1000&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
It only took a few seconds to complete so I shutdown the machine, removed the USB stick, and powered it on. Lo and behold, it worked and I now have the embedded FreeNAS 8 on the primary CF card. Whoo hoo!&lt;br /&gt;
&lt;br /&gt;
At this point, I am going to leave out all of the trials and tribulations that I had trying to get the machine to forget the old gmirror and reusing those 1TB disks for a new ZFS volume. If you need help sorting this out then you can ask via comments. Bottom line is that I didn't care about saving any data on those disks so was carefree in my destructive behavior.&lt;br /&gt;
&lt;br /&gt;
So, now I have FreeNAS 8 embedded running from the ada0 CF card and have created my 1TB ZFS mirror. The next roadblock was the lack of rsync on FreeNAS 8. Rather, let me say the lack of browser-driven rsync, which meant that I needed to get the NAS1 -&gt; NAS2 rsync working via the CLI. I am good with the CLI, but have never set up rsyncd like this before, so more fun!&lt;br /&gt;
&lt;br /&gt;
First, I went to NAS1 and had a look at the rsyncd.conf file generated by FreeNAS 0.7 and decided I needed to replicate that on NAS2. Since I had previously used rsync to sync the entire 1TB from NAS1 to NAS2, I didn't want to put this rsyncd.conf into my 1TB storage volume, so I decided that this would be a great time to get the other 2GB CF card mounted for unique local storage.&lt;br /&gt;
&lt;br /&gt;
From the browser interface of NAS2, I created a new volume based on the ada1 CF card but kept getting these "Error getting used space", "Error getting available space", and "Error getting total space" messages for the new volume. Since this wasn't very helpful information, I headed back to the CLI and kept an eye on /var/log/messages while recreating the volume. What I found in the messages log was...&lt;br /&gt;
&lt;br /&gt;
&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;Jul 19 13:08:25 nas2 freenas[1505]: Executing: gpart create -s gpt /dev/ada1 &amp;&amp; gpart add -t freebsd-swap -l swap-ada1 -s 4194304 ada1 &amp;&amp; gpart add -t freebsd-ufs ada1
Jul 19 20:08:25 nas2 freenas: ada1 created
Jul 19 20:08:25 nas2 freenas: gpart: autofill: No space left on device
Jul 19 13:08:25 nas2 freenas[1505]: Executing: newfs -U -L PERSIST /dev/ada1p2
Jul 19 20:08:25 nas2 freenas: newfs: /dev/ada1p2: could not find special device&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
In retrospect, the geometry of the CF card probably caused some glitch in the size calculation and therefore caused a failure in the creation of the partitions by gpart. Not knowing that at the time, I decided to see if I could try and make it work manually. I ran the following commands...&lt;br /&gt;
&lt;br /&gt;
&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;[root@nas2 ~]#
[root@nas2 ~]#
[root@nas2 ~]#
[root@nas2 ~]# cd /dev
[root@nas2 /dev]# ls ada1*
crw-r-----  1 root  operator    0,  85 Jul 19 20:08 ada1
[root@nas2 /dev]#
[root@nas2 /dev]#
[root@nas2 /dev]#
[root@nas2 /dev]# gpart add -t freebsd-ufs ada1
ada1p1 added
[root@nas2 /dev]#
[root@nas2 /dev]#
[root@nas2 /dev]#
[root@nas2 /dev]# newfs -U -L PERSIST /dev/ada1p2
newfs: /dev/ada1p2: could not find special device
[root@nas2 /dev]#
[root@nas2 /dev]#
[root@nas2 /dev]#
[root@nas2 /dev]# newfs -U -L PERSIST /dev/ada1p1
/dev/ada1p1: 1954.0MB (4001692 sectors) block size 16384, fragment size 2048
        using 11 cylinder groups of 183.72MB, 11758 blks, 23552 inodes.
        with soft updates
super-block backups (for fsck -b #) at:
 160, 376416, 752672, 1128928, 1505184, 1881440, 2257696, 2633952, 3010208, 3386464, 3762720
[root@nas2 /dev]#
[root@nas2 /dev]#
[root@nas2 /dev]#&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;
Again, lady luck was on my side and the results were as expected and the partition was created. Since I hadn't deleted the error-laden volume from the browser GUI, I went ahead and rebooted to see what would happen. Upon reboot, the CF card was mounted correctly and I now have my 2GB "PERSIST" space for local persistent data. Whoo hoo again!&lt;br /&gt;
&lt;br /&gt;
Keep checking back for the next installment where I document the creation of the rsyncd.conf file in the persistent local storage area, the initialization of rsyncd, and the resumption of the daily job to keep NAS1 backed-up to NAS2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-5573442563464242484?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fL1Jl4DzjJqMduNczTU4yYPfkOc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fL1Jl4DzjJqMduNczTU4yYPfkOc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fL1Jl4DzjJqMduNczTU4yYPfkOc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fL1Jl4DzjJqMduNczTU4yYPfkOc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/jUhYoTlQI0Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/5573442563464242484/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=5573442563464242484" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/5573442563464242484?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/5573442563464242484?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/jUhYoTlQI0Q/freenas-8-getting-out-of-my-comfort.html" title="FreeNAS 8 - getting out of my comfort zone" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2011/07/freenas-8-getting-out-of-my-comfort.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMESXs5eSp7ImA9WhZVFE8.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-6617603339036501069</id><published>2011-05-26T12:46:00.000-04:00</published><updated>2011-05-26T12:46:48.521-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-26T12:46:48.521-04:00</app:edited><title>Might start expanding content here soon...</title><content type="html">Ok guys, I know that this blog has been focused on technical pursuits thus far, and with a title like "RF and IP" I guess you could have figured that out.  I am thinking about expanding that content to a general log of activities in my life outside of the technical pursuits you have come to expect here.  What I am not sure about is whether that's a good idea or whether I should start another blog for general interest stuff and keep this one technical (geeky) in nature.  I would appreciate your comments on this since you are the ones to be affected by the decision.&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Mike&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-6617603339036501069?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/LodyQGbORRBRDKo7t98WK5g7x_E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LodyQGbORRBRDKo7t98WK5g7x_E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/LodyQGbORRBRDKo7t98WK5g7x_E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/LodyQGbORRBRDKo7t98WK5g7x_E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/XogO5_FDu88" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/6617603339036501069/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=6617603339036501069" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/6617603339036501069?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/6617603339036501069?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/XogO5_FDu88/might-start-expanding-content-here-soon.html" title="Might start expanding content here soon..." /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2011/05/might-start-expanding-content-here-soon.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUIAQng9fSp7ImA9WhZTE0o.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-9022262867916285086</id><published>2011-03-17T11:51:00.002-04:00</published><updated>2011-03-17T11:59:03.665-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-17T11:59:03.665-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="peer" /><category scheme="http://www.blogger.com/atom/ns#" term="cisco" /><category scheme="http://www.blogger.com/atom/ns#" term="dial" /><category scheme="http://www.blogger.com/atom/ns#" term="voip" /><category scheme="http://www.blogger.com/atom/ns#" term="ios" /><category scheme="http://www.blogger.com/atom/ns#" term="cme" /><category scheme="http://www.blogger.com/atom/ns#" term="shell" /><category scheme="http://www.blogger.com/atom/ns#" term="script" /><category scheme="http://www.blogger.com/atom/ns#" term="bourne" /><title>Full mesh dial peers script</title><content type="html">I wrote the following script to support the automated construction of a full-mesh configuration of dial-peers in Cisco IOS.&lt;br /&gt;
&lt;br /&gt;
The original driver for this was a scalability issue with Cisco's Call Manager Express (CME) feature in that each time a new site, or range of DIDs for an existing site, was added to the network then every other router in the network would have to be touched to update the configuration with a new dial-peer for the new DID range.  This isn't an issue really when you have a Unity Call Manager managing everything and acting as a centralized directory server.  However, when you have no central source of directory information (like when you are trying to save money and implementing VoIP on a very tight budget) you need some efficient way to keep all of the routers in the network educated about all of the DID ranges in the network.  The below script helped me do that and works great for my needs.&lt;br /&gt;
&lt;br /&gt;
&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;#!/bin/sh

VCC="voice class codec 1000
codec preference 1 g711ulaw
codec preference 2 g729r8 bytes 30
codec preference 3 g729br8 bytes 30"

cat dp_list.txt | while read a target_router b c;
do
 outfile="${target_router}_dp_config.txt"
 echo "!" &gt;${outfile}
 echo "${VCC}" &gt;&gt;${outfile}
 echo "!" &gt;&gt;${outfile}
 cat dp_list.txt | grep -v ${target_router} | while read sequence hostname pattern ipv4_target;
 do
  echo "dial-peer voice ${sequence} voip" &gt;&gt; ${outfile}
  echo "descrip SEQ ${sequence} FOR ${pattern} TO ${hostname} AT ${ipv4_target}" &gt;&gt; ${outfile}
  echo "destination-pattern ${pattern}" &gt;&gt; ${outfile}
  echo "progress_ind setup enable 3" &gt;&gt; ${outfile}
  echo "voice-class codec 1000" &gt;&gt; ${outfile}
  echo "voice-class h323 1" &gt;&gt; ${outfile}
  echo "session target ipv4:${ipv4_target}" &gt;&gt; ${outfile}
  echo "dtmf-relay h245-alphanumeric" &gt;&gt; ${outfile}
  echo "ip qos dscp ef media" &gt;&gt; ${outfile}
  echo "ip qos dscp af41 signaling" &gt;&gt; ${outfile}
  echo "!" &gt;&gt; ${outfile}
 done
 echo "end" &gt;&gt; ${outfile}
 echo "" &gt;&gt; ${outfile}
done&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;
Ok, so for this script you need to supply an input file with the following tab-delimited pieces of information:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Sequential dial-peer numeric identifier.  I start mine at 1000000 and increment by 10.&lt;/li&gt;
&lt;li&gt;Destination router hostname&lt;/li&gt;
&lt;li&gt;DID/Number range (regex encouraged!)&lt;/li&gt;
&lt;li&gt;IPv4 address of destination router&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
Here is a sample of that input:&lt;br /&gt;
&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;1000270 router027 91859960.. 192.168.1.27
1000280 router028 9185826953 192.168.1.28
1000290 router029 9185831071 192.168.1.29
1000300 router030 86381680.. 192.168.1.30
1000310 router027 86381681.. 192.168.1.27
1000320 router029 863686[0-3][1-4].. 192.168.1.29&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;&lt;br /&gt;
In this example, you can see that additional ranges were added to sites 27 and 29, but this is no problem for the script, it does the right thing.  The most important part is keeping the sequence number unique.  You could even make it more intuitive by embedding the site number into the sequence number, like 1XXXXYY, where XXXX is your site number (assuming you have &lt;10k sites) and YY are the DID/number ranges for the site (assuming &lt;=100 ranges per site).  This would make the above sequence 1000290-&gt;1002900 and 1000320-&gt;1002901.  You get the idea.&lt;br /&gt;
&lt;br /&gt;
Of course, this can be extended in any way that meets your needs.  The important part of the script is that it builds a config for each hostname that includes all rows from the input file that are from !hostname.  Once the configurations are built, you can use SNMP &amp; TFTP to get them loaded to each router in the network.  Further still, using cron to run the script &amp; TFTP load on a regular basis will always keep everything in sync.  Let the machines do the work for you!&lt;br /&gt;
&lt;br /&gt;
Leave me comments if you like, don't like, have ideas for improvement, etc.  If you want, also give a visit to an advertiser.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-9022262867916285086?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oaM9se3xHs4bLMB2bXvDITcwPEc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oaM9se3xHs4bLMB2bXvDITcwPEc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oaM9se3xHs4bLMB2bXvDITcwPEc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oaM9se3xHs4bLMB2bXvDITcwPEc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/eg54xatGTRA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/9022262867916285086/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=9022262867916285086" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/9022262867916285086?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/9022262867916285086?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/eg54xatGTRA/full-mesh-dial-peers-script.html" title="Full mesh dial peers script" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2011/03/full-mesh-dial-peers-script.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4AR305fCp7ImA9WhZTE0o.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-3489484189718102138</id><published>2010-12-07T08:32:00.002-05:00</published><updated>2011-03-17T11:15:46.324-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-17T11:15:46.324-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rlogin" /><category scheme="http://www.blogger.com/atom/ns#" term="cisco" /><category scheme="http://www.blogger.com/atom/ns#" term="telnet" /><category scheme="http://www.blogger.com/atom/ns#" term="rsh" /><category scheme="http://www.blogger.com/atom/ns#" term="ios" /><category scheme="http://www.blogger.com/atom/ns#" term="ssh" /><category scheme="http://www.blogger.com/atom/ns#" term="vty" /><title>No free VTYs</title><content type="html">So, was working on a Nagios event handler to issue a NAT clear command to a Cisco router (half-baked IPSec VPN box issues, fail) and even though I had configured all of the rcmd stuff properly in IOS and locked it down to just the Nagios server for access it still didn't work.  On the server side, when I issued the command I would get a single line of output:&lt;br /&gt;
&lt;br /&gt;
No free VTYs.&lt;br /&gt;
&lt;br /&gt;
So, I went back to the router and turned on 'debug ip tcp rcmd' and noticed that the rsh authentication (if you can call it that) was working but after accepting the command from the rsh client (router sends 'OK' to client), the router followed by immediately sending '&lt;BAD,No free VTYs.&gt;' to the client.  Ok, so let's look at the VTY line config.&lt;br /&gt;
&lt;br /&gt;
All of my default VTYs are setup with 'transport input ssh' because I don't use telnet where I have the choice to use SSH.  I changed that to 'transport input rlogin ssh' and no luck.  Finally, I changed it to 'transport input ssh telnet' and bingo, the rcmd was working like a champ.  I removed the telnet option for my main access lines and defined a new line, telnet only, with a much more restrictive access-class limited to the server running Nagios.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-3489484189718102138?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/y9AhMFdEo85botx8Lu4Fq3xpDsE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y9AhMFdEo85botx8Lu4Fq3xpDsE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/y9AhMFdEo85botx8Lu4Fq3xpDsE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/y9AhMFdEo85botx8Lu4Fq3xpDsE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/t8Iv066dzzQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/3489484189718102138/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=3489484189718102138" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/3489484189718102138?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/3489484189718102138?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/t8Iv066dzzQ/so-was-working-on-nagios-event-handler.html" title="No free VTYs" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2010/12/so-was-working-on-nagios-event-handler.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcFSH84fyp7ImA9WxFQFkQ.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-2409669182041612411</id><published>2010-05-12T16:43:00.000-04:00</published><updated>2010-05-12T16:43:39.137-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-12T16:43:39.137-04:00</app:edited><title>Migrating IPPlan from 4.92a to 6.00BETA2</title><content type="html">I performed this for two IP network repositories that I manage and it worked out ok.  The paths and such are relative to the FreeBSD platform from which this runs, therefore you may have to tweak if you've made the mistake of using something other than FreeBSD.  Some steps, such as step 1, may not be necessary for you, so check your extensions.ini beforehand as you may already have support for gmp.&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;rebuild php extensions with GNU MP support and enable it in /usr/local/etc/php/extensions.ini&lt;/li&gt;
&lt;li&gt;unpack source&lt;/li&gt;
&lt;li&gt;cp config.php config.php.orig&lt;/li&gt;
&lt;li&gt;patch config.php from patch file in /usr/ports/net-mgmt/ipplan/files/&lt;/li&gt;
&lt;li&gt;fix user name, password, db type, and db name in config.php&lt;/li&gt;
&lt;li&gt;fix user name, password, db type, and db name in contrib/db-migrate.php&lt;/li&gt;
&lt;li&gt;create new ipplanv6 db via phpMyAdmin with same permissions as ipplan db&lt;/li&gt;
&lt;li&gt;visit http://site/ipplanv6/admin/install.php, choosing "new installation" and "run the sql now"&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;#zlib support compiled into php
#output to webrowser will be compressed for quicker loading of pages if web browser supports compression
The database schema was created - you can now create users and groups after loggin in with the admin user specified in the config.php file
Click here to access the administration page&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;visit http://site/ipplanv6/contrib/db-migrate.php which will import all data from the ipplan db into the new ipplanv6 db&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;Migrating table grp Migrating table users [snip] Migrating table fwdzonerec&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;via phpMyAdmin, check the ipplanv6.version table and you should see version (or schema) '23'&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;
That's about it.  Other than the fiasco with building the GNU MP extension for PHP, which I won't go into here, it was pretty painless and doing it twice helped me clean up these notes which will hopefully help you.&lt;br /&gt;
&lt;br /&gt;
This is a big step forward for IPPlan and I am stoked to see IPv6 support.  It's been on my wish list for a *very* long time and while I have contributed patches to the project in the past, I simply didn't have the spare time to do the IPv6 integration.  I had been planning to resurrect the old Perl code for FreeIPdb that I worked on with a couple guys from Global Crossing, but now that IPPlan supports IPv6, I think that FreeIPdb will really die (at least for me).&lt;br /&gt;
&lt;br /&gt;
Finally, if you are using IPPlan and it's useful to you and/or your business then *PLEASE* contribute to the project.  Thank you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-2409669182041612411?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4yvRok8JLUUKcPWf7dnHh1O30Ko/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4yvRok8JLUUKcPWf7dnHh1O30Ko/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4yvRok8JLUUKcPWf7dnHh1O30Ko/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4yvRok8JLUUKcPWf7dnHh1O30Ko/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/Rnn_Ni30STg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/2409669182041612411/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=2409669182041612411" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/2409669182041612411?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/2409669182041612411?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/Rnn_Ni30STg/migrating-ipplan-from-492a-to-600beta2.html" title="Migrating IPPlan from 4.92a to 6.00BETA2" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2010/05/migrating-ipplan-from-492a-to-600beta2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQMRX4zeip7ImA9WxNRFUQ.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-3923045430456111902</id><published>2009-09-10T11:31:00.006-04:00</published><updated>2009-09-10T11:43:04.082-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-10T11:43:04.082-04:00</app:edited><title>tcpdump can't find /dev/bpf</title><content type="html">Setting up new router/firewall and during testing had this issue:&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;# tcpdump -n -e -tttt -vv -i pflog0&lt;br /&gt;tcpdump: (cannot open device) /dev/bpf: No such file or directory&lt;br /&gt;&lt;br /&gt;# ls /dev/bp*&lt;br /&gt;crw-------  1 root  wheel  -   0,  84 Sep  9 20:54 /dev/bpf0&lt;br /&gt;crw-------  1 root  wheel  -   0,  86 Sep  9 20:54 /dev/bpf1&lt;br /&gt;crw-------  1 root  wheel  -   0,  87 Sep  9 20:54 /dev/bpf2&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Turns out that the tcpdump package for FreeBSD 7.2 that I had installed, version 3.9.7, was the cause of the problem.  Weird part is that the base tcpdump is 3.9.8 -- newer than the packaged port!  Weird indeed.&lt;br /&gt;&lt;br /&gt;Anyway, deinstalled the package and now the base tcpdump has no problem connecting to the pflog0 interface for real-time pflog examination.&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;# which tcpdump&lt;br /&gt;/usr/local/sbin/tcpdump&lt;br /&gt;&lt;br /&gt;# pkg_deinstall tcpdump&lt;br /&gt;---&gt;  Deinstalling 'tcpdump-3.9.7'&lt;br /&gt;[Updating the pkgdb ... (...) done]&lt;br /&gt;&lt;br /&gt;# which tcpdump        &lt;br /&gt;/usr/sbin/tcpdump&lt;br /&gt;&lt;br /&gt;# tcpdump -V&lt;br /&gt;tcpdump version 3.9.8&lt;br /&gt;libpcap version 0.9.8&lt;br /&gt;Usage: tcpdump ...&lt;br /&gt;&lt;br /&gt;# /usr/sbin/tcpdump -n -e -tttt -vv -i pflog0&lt;br /&gt;tcpdump: WARNING: pflog0: no IPv4 address assigned&lt;br /&gt;tcpdump: listening on pflog0, link-type PFLOG (OpenBSD pflog file), capture size 96 bytes&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Live and learn...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-3923045430456111902?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/FGeYjy2O6LKYLGN--fl3Ld40Mrc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FGeYjy2O6LKYLGN--fl3Ld40Mrc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/FGeYjy2O6LKYLGN--fl3Ld40Mrc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/FGeYjy2O6LKYLGN--fl3Ld40Mrc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/6OP6ASdG2eQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/3923045430456111902/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=3923045430456111902" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/3923045430456111902?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/3923045430456111902?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/6OP6ASdG2eQ/tcpdump-cant-find-devbpf.html" title="tcpdump can't find /dev/bpf" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2009/09/tcpdump-cant-find-devbpf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4GSXo4fip7ImA9WxNRFk0.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-6356849564990537633</id><published>2009-08-25T16:16:00.016-04:00</published><updated>2009-09-10T14:38:48.436-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-10T14:38:48.436-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="headless" /><category scheme="http://www.blogger.com/atom/ns#" term="freebsd" /><category scheme="http://www.blogger.com/atom/ns#" term="mksiofs" /><category scheme="http://www.blogger.com/atom/ns#" term="cd9660" /><category scheme="http://www.blogger.com/atom/ns#" term="mdconfig" /><category scheme="http://www.blogger.com/atom/ns#" term="iso" /><title>Modifying a FreeBSD release ISO for headless booting</title><content type="html">Ok, here are the commands.  I will come back later to add context, too many irons in the fire right this minute...&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;# mkdir /bigdisk/iso&lt;br /&gt;# mkdir /bigdisk/iso_headless&lt;br /&gt;# cd /bigdisk&lt;br /&gt;# fetch ftp://ftp7.us.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/7.2/7.2-RELEASE-i386-disc1.iso&lt;br /&gt;# mdconfig -a -t vnode -f /bigdisk/7.2-RELEASE-i386-disc1.iso -u 0&lt;br /&gt;# mount -t cd9660 /dev/md0 /bigdisk/iso&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;No trailing slash on the rsync destination is significant.  The following two commands are equivalent:&lt;br /&gt;&lt;pre&gt;   rsync -av /bigdisk/iso/ /bigdisk/iso_headless&lt;br /&gt;   rsync -av /bigdisk/iso/* /bigdisk/iso_headless/&lt;/pre&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;# rsync -av /bigdisk/iso/ /bigdisk/iso_headless&lt;br /&gt;# umount /bigdisk/iso&lt;br /&gt;# mdconfig -d -u 0&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Note that I did attempt the following, which failed:&lt;br /&gt;&lt;pre&gt;   echo "/boot/loader -h" &amp;gt; /bigdisk/iso_headless/boot.config&lt;/pre&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;# echo 'console="comconsole"' &amp;gt;&amp;gt; /bigdisk/iso_headless/boot/loader.conf&lt;br /&gt;# mkisofs -no-emul-boot -U -R -b boot/cdboot -o /bigdisk/7.2-RELEASE-i386-disc1_HEADLESS.iso /bigdisk/iso_headless&lt;br /&gt;# cdrecord -scanbus&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Set whatever speed you want here.  I had some cheap, old CDRs and they needed burn slowly.  I have plenty to keep me busy while it's burning...&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;# cdrecord speed=2 dev=1,0,0 /bigdisk/7.2-RELEASE-i386-disc1_HEADLESS.iso&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;That's all for now, please enjoy responsibly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-6356849564990537633?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/v_yukmPkwjJ2bxVYQrNK6gT69sg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v_yukmPkwjJ2bxVYQrNK6gT69sg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/v_yukmPkwjJ2bxVYQrNK6gT69sg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v_yukmPkwjJ2bxVYQrNK6gT69sg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/ElUy6WUEHiw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/6356849564990537633/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=6356849564990537633" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/6356849564990537633?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/6356849564990537633?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/ElUy6WUEHiw/modifying-freebsd-release-iso-for.html" title="Modifying a FreeBSD release ISO for headless booting" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2009/08/modifying-freebsd-release-iso-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMHQX8-cSp7ImA9WxNRFUQ.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-1169386716354318086</id><published>2009-08-19T00:26:00.005-04:00</published><updated>2009-09-10T11:43:50.159-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-10T11:43:50.159-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mac address" /><category scheme="http://www.blogger.com/atom/ns#" term="cisco" /><category scheme="http://www.blogger.com/atom/ns#" term="awk" /><category scheme="http://www.blogger.com/atom/ns#" term="snmp" /><category scheme="http://www.blogger.com/atom/ns#" term="router" /><category scheme="http://www.blogger.com/atom/ns#" term="ip address" /><category scheme="http://www.blogger.com/atom/ns#" term="arp" /><category scheme="http://www.blogger.com/atom/ns#" term="sed" /><title>Retrieve ARP table from Cisco router, parse, spew</title><content type="html">I had a colleague in need of an automated way to retrieve the ARP table from a lot of Cisco routers and format the output in a spreadsheet.  Another colleague suggested using an Expect script, which is definitely cool because I love using Expect (seriously, it's a Swiss Army knife), but I wanted to take it a different direction.  I looked up the SNMP MIB to retrieve the ARP table and then parsed the input to provide a two-column output consisting of the IP address and MAC address, one pair per line.&lt;br /&gt;&lt;br /&gt;Here is the script:&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;snmpwalk -t 60 -v 1 -c MYCOMMSTRING routerhostname .1.3.6.1.2.1.4.22.1.2 | \&lt;br /&gt;while read line; do \&lt;br /&gt;IP_ADDR=`echo ${line} | \&lt;br /&gt;awk '{print $1;}' | \&lt;br /&gt;sed -e 's/^IP-MIB::ipNetToMediaPhysAddress.[0-9]*\.//'`; \&lt;br /&gt;MAC_ADDR=`echo ${line} | \&lt;br /&gt;awk '{print $4;}' | \&lt;br /&gt;sed -e 's/^\([0-9a-f]\)/0\1/' \&lt;br /&gt;-e 's/:\([0-9a-f]\):/:0\1:/g' \&lt;br /&gt;-e 's/:\([0-9a-f]\):/:0\1:/g' \&lt;br /&gt;-e 's/:\([0-9a-f]\)$/:0\1/' | \&lt;br /&gt;tr '[:lower:]' '[:upper:]'`; \&lt;br /&gt;echo "${IP_ADDR} ${MAC_ADDR}"; \&lt;br /&gt;done&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Notice that there are two mid-string sed matches, each with a 'g' matching command.  The reason that this command needs to be listed twice is that a single iteration of 'g' doesn't mean global, it means to match up to two addresses within the stream.  Since some of the MAC addresses I was dealing with were beyond that, such as "0:d:ed:c:7:5e", just using a single mid-string pattern with 'g' left me with "00:0d:ed:0c:7:5e" (note the :7: instead of the desired :07:).  Adding the second iteration of mid-string matching fixed this issue by enabling matching of a third and fourth mid-string single-digit.  I learned something new about sed, and learning something new is a good thing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-1169386716354318086?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3avoOyF3iPY1IHuex-I7IGtlUWs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3avoOyF3iPY1IHuex-I7IGtlUWs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3avoOyF3iPY1IHuex-I7IGtlUWs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3avoOyF3iPY1IHuex-I7IGtlUWs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/0jKX1-QIPaQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/1169386716354318086/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=1169386716354318086" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/1169386716354318086?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/1169386716354318086?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/0jKX1-QIPaQ/retrieve-arp-table-from-cisco-router.html" title="Retrieve ARP table from Cisco router, parse, spew" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2009/08/retrieve-arp-table-from-cisco-router.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcGQXs9eSp7ImA9WxNRFk0.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-6353655158239366652</id><published>2009-08-08T18:58:00.004-04:00</published><updated>2009-09-10T14:40:20.561-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-10T14:40:20.561-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="netbook" /><category scheme="http://www.blogger.com/atom/ns#" term="freebsd" /><category scheme="http://www.blogger.com/atom/ns#" term="samsung" /><category scheme="http://www.blogger.com/atom/ns#" term="patch" /><category scheme="http://www.blogger.com/atom/ns#" term="xorg" /><title>FreeBSD 7.2 on my Samsung NC10-14GB</title><content type="html">Everything working well so far.  To get X working I read a lot of forums and ML archives.  To get the 915resolution tool, from ports, working with the 945GME chipset in this netbook, I had to patch a couple of files...&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;# diff -ruN 915resolution.c.orig 915resolution.c&lt;br /&gt;--- 915resolution.c.orig        2009-08-08 22:51:00.000000000 +0000&lt;br /&gt;+++ 915resolution.c     2009-08-08 22:53:44.000000000 +0000&lt;br /&gt;@@ -57,12 +57,12 @@&lt;br /&gt; typedef unsigned int cardinal;&lt;br /&gt; &lt;br /&gt; typedef enum {&lt;br /&gt;-    CT_UNKWN, CT_830, CT_845G, CT_855GM, CT_865G, CT_915G, CT_915GM, CT_945G, CT_945GM,&lt;br /&gt;+    CT_UNKWN, CT_830, CT_845G, CT_855GM, CT_865G, CT_915G, CT_915GM, CT_945G, CT_945GM, CT_945GME,&lt;br /&gt;     CT_946GZ, CT_G965, CT_Q965&lt;br /&gt; } chipset_type;&lt;br /&gt; &lt;br /&gt; char * chipset_type_names[] = {&lt;br /&gt;-    "UNKNOWN", "830",  "845G", "855GM", "865G", "915G", "915GM", "945G", "945GM",&lt;br /&gt;+    "UNKNOWN", "830",  "845G", "855GM", "865G", "915G", "915GM", "945G", "945GM", "945GME",&lt;br /&gt;     "946GZ",   "G965", "Q965"&lt;br /&gt; };&lt;br /&gt; &lt;br /&gt;@@ -216,6 +216,10 @@&lt;br /&gt;         type = CT_945GM;&lt;br /&gt;         break;&lt;br /&gt; &lt;br /&gt;+    case 0x27ac8086:&lt;br /&gt;+        type = CT_945GME;&lt;br /&gt;+        break;&lt;br /&gt;+&lt;br /&gt;     case 0x29708086:&lt;br /&gt;         type = CT_946GZ;&lt;br /&gt;         break;&lt;br /&gt;@@ -511,6 +515,7 @@&lt;br /&gt;     case CT_915GM:&lt;br /&gt;     case CT_945G:&lt;br /&gt;     case CT_945GM:&lt;br /&gt;+    case CT_945GME:&lt;br /&gt;     case CT_946GZ:&lt;br /&gt;     case CT_G965:&lt;br /&gt;     case CT_Q965:&lt;br /&gt;@@ -551,6 +556,7 @@&lt;br /&gt;     case CT_915GM:&lt;br /&gt;     case CT_945G:&lt;br /&gt;     case CT_945GM:&lt;br /&gt;+    case CT_945GME:&lt;br /&gt;     case CT_946GZ:&lt;br /&gt;     case CT_G965:&lt;br /&gt;     case CT_Q965:&lt;br /&gt;@@ -806,6 +812,9 @@&lt;br /&gt;         else if (!strcmp(argv[index], "945GM")) {&lt;br /&gt;             *forced_chipset = CT_945GM;&lt;br /&gt;         }&lt;br /&gt;+        else if (!strcmp(argv[index], "945GME")) {&lt;br /&gt;+            *forced_chipset = CT_945GME;&lt;br /&gt;+        }&lt;br /&gt;         else if (!strcmp(argv[index], "946GZ")) {&lt;br /&gt;             *forced_chipset = CT_946GZ;&lt;br /&gt;         }&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;...and this one...&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;# diff -ruN chipset_info.txt.orig chipset_info.txt&lt;br /&gt;--- chipset_info.txt.orig       2007-04-15 07:31:29.000000000 +0000&lt;br /&gt;+++ chipset_info.txt    2009-08-08 22:53:59.000000000 +0000&lt;br /&gt;@@ -7,3 +7,4 @@&lt;br /&gt; 915PM, 915GM, 915GMS, 910GML   $2590_8086     $91 - $92&lt;br /&gt; 945G                           $2770_8086     $91 - $92&lt;br /&gt; 945GM                          $27A0_8086     $91 - $92&lt;br /&gt;+945GME                         $27AC_8086     $91 - $92&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;More to come later, but I will leave you with this:&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;# kldstat&lt;br /&gt;Id Refs Address    Size     Name&lt;br /&gt; 1   22 0xc0400000 9fab28   kernel&lt;br /&gt; 2    2 0xc0dfb000 4a64c    sound.ko&lt;br /&gt; 3    1 0xc0e46000 1ae38    snd_hda.ko&lt;br /&gt; 4    1 0xc0e61000 802c     ng_ubt.ko&lt;br /&gt; 5    6 0xc0e6a000 da08     netgraph.ko&lt;br /&gt; 6    1 0xc0e78000 6a45c    acpi.ko&lt;br /&gt; 7    4 0xc5a80000 2000     ng_bluetooth.ko&lt;br /&gt; 8    1 0xc5a82000 d000     ng_hci.ko&lt;br /&gt; 9    1 0xc5aba000 f000     ng_l2cap.ko&lt;br /&gt;10    1 0xc5acb000 1a000    ng_btsocket.ko&lt;br /&gt;11    1 0xc5aed000 4000     ng_socket.ko&lt;br /&gt;12    1 0xc5b39000 22000    linux.ko&lt;br /&gt;13    1 0xc5e27000 9000     i915.ko&lt;br /&gt;14    1 0xc5e30000 13000    drm.ko&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-6353655158239366652?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yBCFQXyOEv7FGerO3VE5e4SP4po/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yBCFQXyOEv7FGerO3VE5e4SP4po/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yBCFQXyOEv7FGerO3VE5e4SP4po/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yBCFQXyOEv7FGerO3VE5e4SP4po/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/Rv0Rf1TyUVk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/6353655158239366652/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=6353655158239366652" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/6353655158239366652?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/6353655158239366652?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/Rv0Rf1TyUVk/freebsd-72-on-my-samsung-nc10-14gb.html" title="FreeBSD 7.2 on my Samsung NC10-14GB" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2009/08/freebsd-72-on-my-samsung-nc10-14gb.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcHRH89fCp7ImA9WxNSEkQ.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-3042051619734116764</id><published>2009-06-19T09:25:00.003-04:00</published><updated>2009-08-26T08:33:55.164-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-26T08:33:55.164-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rant" /><title>Rant: Government clamp-down on ILCs?</title><content type="html">Great!  The lead story on WSJ today is about Mr. Obama's push for more Fed oversight of ILCs, and according to the article that may push a lot of them out of the business.  I mean hey, the fix for everything is more government involvement and oversight, right?  Uhm... NO!  The catalyst for our current situation was the government's meddling in the sub-prime mortgage business, specifically Mr. Barney Frank, and others.  I don't recall any ILC being a contributing factor IN ANY WAY to our current financial crisis, and in fact, you could posit that they perform more responsibly than many segments with heavy government "supervision" (read that as government influence and meddling).  I would even assert that, by and large, companies level of responsibility is inversely proportionate to the amount of government regulation they are subjected to.  Call me a cynic.&lt;br /&gt;&lt;br /&gt;Here's an idea Mr. Obama, Mr. Frank, Mr. Geithner, Mr. Bernanke, etc. -- if it ain't broke, PLEASE don't fix it.  Ok?  Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-3042051619734116764?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ybfCUrK_drar0DF8j_ROFbsS4T0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ybfCUrK_drar0DF8j_ROFbsS4T0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ybfCUrK_drar0DF8j_ROFbsS4T0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ybfCUrK_drar0DF8j_ROFbsS4T0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/0ZL72yIIF2w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/3042051619734116764/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=3042051619734116764" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/3042051619734116764?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/3042051619734116764?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/0ZL72yIIF2w/government-clamp-down-on-ilcs.html" title="Rant: Government clamp-down on ILCs?" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2009/06/government-clamp-down-on-ilcs.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcCSX04cCp7ImA9WxNSEkQ.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-1594740720501983885</id><published>2009-06-19T08:42:00.003-04:00</published><updated>2009-08-26T08:34:28.338-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-08-26T08:34:28.338-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="rant" /><category scheme="http://www.blogger.com/atom/ns#" term="idiots" /><title>Rant: There, fixed that for ya...</title><content type="html">I am so sick and tired of people who think they are so clever to reply to someone else on a mailing list, EDITING SOMEONE ELSE'S WORDS, and then covering with the oh-so-bright "There, fixed that for you." comment.  Hello jackass, why don't you form an intelligent reply and submit that to the list and refrain from editing quoted text from someone else.  If I happen to jump straight into a message in some archive via a Google search or such and I see a quoted message then I don't REALLY know what the quoted message was if some super-smart guy decides to "fix" someone else's quote, do I?&lt;br /&gt;&lt;br /&gt;Please, if you have taken up this bad habit, give some thought to quitting.  It isn't nearly as witty as you believe it is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-1594740720501983885?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2Xx3mJP9tc0hG4qYnLKW9L83Ilc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2Xx3mJP9tc0hG4qYnLKW9L83Ilc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2Xx3mJP9tc0hG4qYnLKW9L83Ilc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2Xx3mJP9tc0hG4qYnLKW9L83Ilc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/FFXzuUIM-ZY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/1594740720501983885/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=1594740720501983885" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/1594740720501983885?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/1594740720501983885?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/FFXzuUIM-ZY/there-fixed-that-for-ya.html" title="Rant: There, fixed that for ya..." /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2009/06/there-fixed-that-for-ya.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkYDQ3g4cSp7ImA9WxNRFk0.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-1347717746600920356</id><published>2008-12-16T17:16:00.011-05:00</published><updated>2009-09-10T14:42:52.639-04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-10T14:42:52.639-04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="growfs" /><category scheme="http://www.blogger.com/atom/ns#" term="freebsd" /><category scheme="http://www.blogger.com/atom/ns#" term="nas" /><category scheme="http://www.blogger.com/atom/ns#" term="freenas" /><category scheme="http://www.blogger.com/atom/ns#" term="storage" /><title>FreeNAS 0.7.3953, RAID 1, growfs... oh my!</title><content type="html">Fooling around in VMWare, preparing to build my two NAS boxen, I started playing with disk upgrade scenarios in a two-drive RAID 1 configuration.  I have the embedded FreeNAS on /dev/ad0, and the two mirror disks are /dev/ad2 and /dev/ad3.  First, I had them both at 512MB each, then bumped one to 1GB, fixed the mirror, then bumped the other to 1GB and fixed the mirror again.  At this point, I had two 1GB disks with a 512MB (give or take) mirror since it was sized from the initial installation with two 512MB disks.  Time to figure out growfs...&lt;br /&gt;&lt;br /&gt;I tinkered around with growfs, finally got it to work, and ended up with a mirror to match the size (more or less) of the actual disks.  Now, let's do it again to make sure it wasn't a fluke!  I bumped one disk to 2GB, rebuilt the mirror, then bumped the other disk to 2GB, rebuilt mirror, thus leaving me with a pair of 2GB disks and a 1GB mirror.  Then I followed the growfs process again and took some notes this time, here for your reading pleasure.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;NOTE -- This worked for me and I make no guarantees, express or implied, that it will work for you.  If you follow my instructions, you may come through this just fine, or you may not.  Always back up your data before starting on something like this, and understand the commands you are using and what the impact is.  If you can, play in a VM sandbox for a while until you are comfortable.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Notes&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;At this point, I shutdown the FreeNAS VM and replaced /dev/ad3, which was 1GB, with a 2GB disk to match /dev/ad2.&lt;br /&gt;&lt;br /&gt;1. At the web gui, edit the /dev/ad3 disk and just click on 'Save' and the new size will be picked up automatically.&lt;br /&gt;&lt;br /&gt;2. The raid is still degraded, as expected, so do the 'replace disk' dance...&lt;ul&gt;&lt;li&gt;edit the raid1 array&lt;/li&gt;&lt;li&gt;click on 'tools', then choose RAID1 (volume name) and command 'forget' and click on 'Send Command!'&lt;/li&gt;&lt;li&gt;click on 'tools', then choose RAID1 (volume name), disk ad3, command 'insert', and click on 'Send Command!'&lt;/li&gt;&lt;li&gt;go back to the raid1 management tab and the status should be COMPLETE once the mirror is rebuilt&lt;/li&gt;&lt;/ul&gt;3. The mount point should be in 'Error - Retry' state right now, so click on Retry to ensure that it mounts ok.&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]# df&lt;br /&gt;Filesystem          1K-blocks  Used  Avail Capacity  Mounted on&lt;br /&gt;/dev/md0                80430 74634   5796    93%    /&lt;br /&gt;devfs                       1     1      0   100%    /dev&lt;br /&gt;/dev/md1                31470    12  28942     0%    /var&lt;br /&gt;/dev/ad0a               39406 34216   5190    87%    /cf&lt;br /&gt;/dev/mirror/RAID1p1    888526 69300 748144     8%    /mnt/NAS1&lt;br /&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]#&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;4. At this point, the mount is back online with the old 1GB mirror size, so let's get into the meat of it.&lt;br /&gt;&lt;br /&gt;5. Go back to the mount point configuration and delete the mount point&lt;br /&gt;&lt;br /&gt;6. Go to the raid management and delete the raid1 array&lt;br /&gt;&lt;br /&gt;7. Add a new raid 1 array, which I will call RAID1, and choose 'create and initialize RAID' option, then click on 'Add'&lt;br /&gt;&lt;br /&gt;8. Next, head to the beloved (for me, anyway) CLI via SSH and do the hardcore stuff...&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]# mount&lt;br /&gt;/dev/md0 on / (ufs, local)&lt;br /&gt;devfs on /dev (devfs, local)&lt;br /&gt;/dev/md1 on /var (ufs, local, union)&lt;br /&gt;/dev/ad0a on /cf (ufs, local, read-only)&lt;br /&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]# df&lt;br /&gt;Filesystem 1K-blocks  Used Avail Capacity  Mounted on&lt;br /&gt;/dev/md0       80430 74612  5818    93%    /&lt;br /&gt;devfs              1     1     0   100%    /dev&lt;br /&gt;/dev/md1       31470    12 28942     0%    /var&lt;br /&gt;/dev/ad0a      39406 34216  5190    87%    /cf&lt;br /&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]# &lt;br /&gt;[root@freenas ~]# cd /dev/mirror&lt;br /&gt;[root@freenas /dev/mirror]# alias ls='ls -al'&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# ls&lt;br /&gt;total 1&lt;br /&gt;dr-xr-xr-x  2 root  wheel          512 Dec 16 16:40 .&lt;br /&gt;dr-xr-xr-x  5 root  wheel          512 Dec 16 16:40 ..&lt;br /&gt;crw-r-----  1 root  operator    0,  81 Dec 16 16:40 RAID1&lt;br /&gt;crw-r-----  1 root  operator    0,  85 Dec 16 16:40 RAID1p1&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# gpt remove -i 1 /dev/mirror/RAID1&lt;br /&gt;gpt remove: /dev/mirror/RAID1: error: no secondary GPT header; run recover&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# gpt recover /dev/mirror/RAID1&lt;br /&gt;gpt recover: /dev/mirror/RAID1: recovered secondary GPT table from primary&lt;br /&gt;gpt recover: /dev/mirror/RAID1: recovered secondary GPT header from primary&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# gpt show /dev/mirror/RAID1&lt;br /&gt;    start     size  index  contents&lt;br /&gt;        0        1         PMBR&lt;br /&gt;        1        1         Pri GPT header&lt;br /&gt;        2       32         Pri GPT table&lt;br /&gt;       34  2097084      1  GPT part - FreeBSD UFS/UFS2&lt;br /&gt;  2097118  2097152         &lt;br /&gt;  4194270       32         Sec GPT table&lt;br /&gt;  4194302        1         Sec GPT header&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# gpt remove -i 1 /dev/mirror/RAID1&lt;br /&gt;/dev/mirror/RAID1p1 removed&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# gpt show /dev/mirror/RAID1&lt;br /&gt;    start     size  index  contents&lt;br /&gt;        0        1         PMBR&lt;br /&gt;        1        1         Pri GPT header&lt;br /&gt;        2       32         Pri GPT table&lt;br /&gt;       34  4194236         &lt;br /&gt;  4194270       32         Sec GPT table&lt;br /&gt;  4194302        1         Sec GPT header&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# gpt add -i 1 -t ufs /dev/mirror/RAID1&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# gpt show /dev/mirror/RAID1&lt;br /&gt;    start     size  index  contents&lt;br /&gt;        0        1         PMBR&lt;br /&gt;        1        1         Pri GPT header&lt;br /&gt;        2       32         Pri GPT table&lt;br /&gt;       34  4194236      1  GPT part - FreeBSD UFS/UFS2&lt;br /&gt;  4194270       32         Sec GPT table&lt;br /&gt;  4194302        1         Sec GPT header&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# gpt show -l /dev/mirror/RAID1&lt;br /&gt;    start     size  index  contents&lt;br /&gt;        0        1         PMBR&lt;br /&gt;        1        1         Pri GPT header&lt;br /&gt;        2       32         Pri GPT table&lt;br /&gt;       34  4194236      1  GPT part - "RAID1"&lt;br /&gt;  4194270       32         Sec GPT table&lt;br /&gt;  4194302        1         Sec GPT header&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# gpt label -i 1 -l RAID1 /dev/mirror/RAID1&lt;br /&gt;/dev/mirror/RAID1p1 labeled&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# gpt show /dev/mirror/RAID1&lt;br /&gt;    start     size  index  contents&lt;br /&gt;        0        1         PMBR&lt;br /&gt;        1        1         Pri GPT header&lt;br /&gt;        2       32         Pri GPT table&lt;br /&gt;       34  4194236      1  GPT part - FreeBSD UFS/UFS2&lt;br /&gt;  4194270       32         Sec GPT table&lt;br /&gt;  4194302        1         Sec GPT header&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# gpt show -l /dev/mirror/RAID1&lt;br /&gt;    start     size  index  contents&lt;br /&gt;        0        1         PMBR&lt;br /&gt;        1        1         Pri GPT header&lt;br /&gt;        2       32         Pri GPT table&lt;br /&gt;       34  4194236      1  GPT part - "RAID1"&lt;br /&gt;  4194270       32         Sec GPT table&lt;br /&gt;  4194302        1         Sec GPT header&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# growfs /dev/mirror/RAID1p1 &lt;br /&gt;We strongly recommend you to make a backup before growing the Filesystem&lt;br /&gt;&lt;br /&gt; Did you backup your data (Yes/No) ? Yes&lt;br /&gt;new file systemsize is: 1048559 frags&lt;br /&gt;Warning: 262076 sector(s) cannot be allocated.&lt;br /&gt;growfs: 1920.0MB (3932160 sectors) block size 16384, fragment size 2048&lt;br /&gt;        using 15 cylinder groups of 128.00MB, 8192 blks, 16384 inodes.&lt;br /&gt;        with soft updates&lt;br /&gt;super-block backups (for fsck -b #) at:&lt;br /&gt; 1835168, 2097312, 2359456, 2621600, 2883744, 3145888, 3408032, 3670176&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# mount&lt;br /&gt;/dev/md0 on / (ufs, local)&lt;br /&gt;devfs on /dev (devfs, local)&lt;br /&gt;/dev/md1 on /var (ufs, local, union)&lt;br /&gt;/dev/ad0a on /cf (ufs, local, read-only)&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# df&lt;br /&gt;Filesystem 1K-blocks  Used Avail Capacity  Mounted on&lt;br /&gt;/dev/md0       80430 74612  5818    93%    /&lt;br /&gt;devfs              1     1     0   100%    /dev&lt;br /&gt;/dev/md1       31470    12 28942     0%    /var&lt;br /&gt;/dev/ad0a      39406 34216  5190    87%    /cf&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]#&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;9. Ok, go back to the webui and create the mount point again, then check the size either via the webui or via 'df' from your ssh session and you should be at full capacity.&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tr&gt;&lt;td bgcolor="black" nowrap&gt;&lt;pre&gt;&lt;font color="white"&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# df&lt;br /&gt;Filesystem          1K-blocks  Used   Avail Capacity  Mounted on&lt;br /&gt;/dev/md0                80430 74614    5816    93%    /&lt;br /&gt;devfs                       1     1       0   100%    /dev&lt;br /&gt;/dev/md1                31470    12   28942     0%    /var&lt;br /&gt;/dev/ad0a               39406 34216    5190    87%    /cf&lt;br /&gt;/dev/mirror/RAID1p1   1904078 69300 1682452     4%    /mnt/NAS1&lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]# &lt;br /&gt;[root@freenas /dev/mirror]#&lt;/font&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-1347717746600920356?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_IAfbB6NNvwdUt77o_OUrhLPz8o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_IAfbB6NNvwdUt77o_OUrhLPz8o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_IAfbB6NNvwdUt77o_OUrhLPz8o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_IAfbB6NNvwdUt77o_OUrhLPz8o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/ZfP7FnfRq5k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/1347717746600920356/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=1347717746600920356" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/1347717746600920356?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/1347717746600920356?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/ZfP7FnfRq5k/freenas-073953-raid-1-growfs-oh-my.html" title="FreeNAS 0.7.3953, RAID 1, growfs... oh my!" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2008/12/freenas-073953-raid-1-growfs-oh-my.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIFQ3o5fyp7ImA9WxRaFEs.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-7911662446102796327</id><published>2008-02-14T08:50:00.007-05:00</published><updated>2008-12-16T18:01:52.427-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-16T18:01:52.427-05:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="hamfest" /><category scheme="http://www.blogger.com/atom/ns#" term="radio" /><title>Hamcation!</title><content type="html">Yeah, we went camping at &lt;a href="http://www.hamcation.com/"&gt;Hamcation&lt;/a&gt; again this year, and it was a good time except that I forgot to bring my sleeping bag and pillow.  This year, we started a day early and drove over on Thursday about noon and checked-in after a quick side trip to &lt;a href="http://www.skycraftsurplus.com/"&gt;Skycraft&lt;/a&gt;.  Arriving at Hamcation early this year was pretty nice, but we had a little pressure getting the campsite set up due to impending storms which, fortunately, never materialized.  Compared to last year, the temperature was warmer and it was a great time for all of us (&lt;a href="http://www.qrz.com/callsign?callsign=KI4OFU"&gt;KI4UFO&lt;/a&gt; (me), &lt;a href="http://www.qrz.com/callsign?callsign=KG4YNI"&gt;KG4YNI&lt;/a&gt;, &lt;a href="http://www.qrz.com/callsign?callsign=KI4EFN"&gt;KI4EFN&lt;/a&gt;, &lt;a href="http://www.qrz.com/callsign?callsign=AF1RE"&gt;AF1RE&lt;/a&gt;, &lt;a href="http://www.qrz.com/callsign?callsign=KI4OFV"&gt;KI4OFV&lt;/a&gt; (my wife)).&lt;br /&gt;&lt;br /&gt;I didn't find any cheap &lt;a href="http://www.soekris.com/"&gt;Soekris SBCs&lt;/a&gt; this year, dang it all, but I did pick up a few goodies.  The biggest was a new ICOM IC-2820H with the D-Star/GPS board.  This is a beautiful radio, and now I get to learn all about how D-Star works.  I also picked up a TRSB for my Buddipole, as well as the Rotating Arm Kit.  Other miscellaneous goodies from here and there filled out the annual shopping spree, and it was a lot of fun.&lt;br /&gt;&lt;br /&gt;Let me take a minute to tell you how much I like &lt;a href="http://www.icomamerica.com/"&gt;ICOM&lt;/a&gt;.  Not necessarily the radios, though I do adore my IC-7000 and I think the same will be true for this IC-2820H pretty soon, but the company itself.  I have a young son, 2.5 years old, and the comic books that ICOM publishes are a great way for me to read to my son about amateur radio and get him interested in it.  I know it's smart business for them to appeal to a younger generation for the future of the hobby and consequently future hardware sales for them, but they stand out because they are doing that and I don't see a hint of that kind of youth-oriented material from either Yaesu or Kenwood.  Go ICOM!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.lakelandarc.org/"&gt;Our club&lt;/a&gt; had a swap table set up again this year with tons of junk on it, both donated to the club and also consigned by club members.  I would say that about 1/2 of it was sold and the other 1/2 given to other vendors on Sunday afternoon because we didn't want to haul any of it back to Lakeland.  Either way, it was good revenue for the club.&lt;br /&gt;&lt;br /&gt;I think that when Hamcation 2009 comes around, we will probably still camp but might do it in the travel trailer rather than in the tent.  Also, staying on Saturday night, which we didn't do in 2007, was not optimal this year since by mid-morning on Sunday most of the vendors were packing up and getting ready for the trip home.  Yeah, I think that next year we may pack up camp when we get up on Saturday morning and then make one final good day of it before heading home.  We'll see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-7911662446102796327?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KNEIP_dh-KoEZxQ9CBq-ckWhsxA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KNEIP_dh-KoEZxQ9CBq-ckWhsxA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KNEIP_dh-KoEZxQ9CBq-ckWhsxA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KNEIP_dh-KoEZxQ9CBq-ckWhsxA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/gdEcU-PeOOI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/7911662446102796327/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=7911662446102796327" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/7911662446102796327?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/7911662446102796327?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/gdEcU-PeOOI/hamcation.html" title="Hamcation!" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2008/02/hamcation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4EQn4zeip7ImA9WxZRE04.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-1329738720937087350</id><published>2008-02-06T16:57:00.000-05:00</published><updated>2008-02-06T17:45:03.082-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-06T17:45:03.082-05:00</app:edited><title>NanoBSD - part 1</title><content type="html">Wow, where do I start.  Last year, I picked up a few &lt;a href="http://www.soekris.com/net4521.htm"&gt;Soekris net4521&lt;/a&gt; boards from the Orlando Hamcation.  The guy didn't know what he had and sold them to me for $10 each.  Nice.  I tinkered around with them a little bit last year and got some help with &lt;a href="http://people.freebsd.org/%7Ebmah/nanobsd-soekris/"&gt;kernel, world, and package building&lt;/a&gt; for the NanoBSD image from &lt;a href="http://people.freebsd.org/%7Ebmah/"&gt;Bruce Mah&lt;/a&gt;.  I had built up a nice image on a 512MB CF card and played for a bit, but then life came charging back in and I had to shelve the project for a while.&lt;br /&gt;&lt;br /&gt;Now I am back, and here is some stuff to chew on.  First, here is a short shell script that I wrote and dropped into /usr/src/tools/tools/nanobsd to evaluate the packages in /usr/src/tools/tools/nanobsd/Pkg and determine if there were any missing dependencies before starting the image building process.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;#!/bin/sh&lt;br /&gt;#&lt;br /&gt;# make packages for /usr/src/tools/tools/nanobsd/Pkg:&lt;br /&gt;#  if the port is already installed:&lt;br /&gt;#   cd /usr/src/tools/tools/nanobsd/Pkg &amp;amp;&amp;amp; pkg_create -vyb netcat-1.10_2&lt;br /&gt;#  if the port is not installed:&lt;br /&gt;#   cd /usr/ports/net/netcat &amp;amp;&amp;amp; make package &amp;amp;&amp;amp; mv \&lt;br /&gt;#   /usr/ports/packages/All/dnsmasq-2.38.tbz /usr/src/tools/tools/nanobsd/Pkg/&lt;br /&gt;#&lt;br /&gt;#&lt;br /&gt;# next, run this script to ensure that you aren't missing any deps for the packages&lt;br /&gt;# you want in your image.&lt;br /&gt;#&lt;br /&gt;# after that, you can run `sh nanobsd.sh -c nanobsd-soekris.conf` to build a new image&lt;br /&gt;#&lt;br /&gt;# or, if you are just adding/removing packages to the existing image, you can&lt;br /&gt;# run `sh nanobsd.sh -b -c nanobsd-soekris.conf` to save the time of building world&lt;br /&gt;# and kernel.&lt;br /&gt;#&lt;br /&gt;&lt;br /&gt;cd /usr/src/tools/tools/nanobsd&lt;br /&gt;&lt;br /&gt;rm -f pkg_deps.list&lt;br /&gt;&lt;br /&gt;cd /usr/src/tools/tools/nanobsd/Pkg&lt;br /&gt;&lt;br /&gt;for each in *.tbz;&lt;br /&gt;do&lt;br /&gt; pkg_info -r ${each} | grep Dependency | cut -d' ' -f2 | while read dep&lt;br /&gt; do&lt;br /&gt;  /bin/ls -1 | grep ${dep} &gt;/dev/null || echo "${each} needs ${dep}" &gt;&gt;/usr/src/tools/tools/nanobsd/temp.$$&lt;br /&gt; done&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;cd /usr/src/tools/tools/nanobsd&lt;br /&gt;&lt;br /&gt;[ -f temp.$$ ] &amp;amp;&amp;amp; (cat temp.$$ | sort | uniq &gt;pkg_deps.list &amp;amp;&amp;amp; rm -f temp.$$)&lt;/pre&gt;&lt;br /&gt;That works pretty well.  After ensuring that my package list was good to go, I started the build process and it went well.  Much thanks need to go to &lt;a href="http://people.freebsd.org/%7Ephk/"&gt;Poul-Henning Kamp&lt;/a&gt; for his work on the NanoBSD infrastructure, it's just simply wonderful.&lt;br /&gt;&lt;br /&gt;Right now, I am using a Soekris net4521 as my firewall, running off of a little 12v DC wall-wart, instead of the old power-sucking 400w AC-powered tower that I was using.  Saving power and money, which are good things, and now I have moved from using IPFW/IP6FW on that old tower to using PF on this Soekris.  More about using PF later!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-1329738720937087350?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IlSwrR8EiLEkhza3TiHDJmgPNxo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IlSwrR8EiLEkhza3TiHDJmgPNxo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IlSwrR8EiLEkhza3TiHDJmgPNxo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IlSwrR8EiLEkhza3TiHDJmgPNxo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/eMlfIr_dE9M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/1329738720937087350/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=1329738720937087350" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/1329738720937087350?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/1329738720937087350?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/eMlfIr_dE9M/nanobsd-part-1.html" title="NanoBSD - part 1" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2008/02/nanobsd-part-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEDSHc9cSp7ImA9WxZSGE4.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-5569565338507993390</id><published>2008-01-31T20:42:00.000-05:00</published><updated>2008-01-31T20:51:19.969-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-31T20:51:19.969-05:00</app:edited><title>cacti, cactid -&gt; spine; nanobsd</title><content type="html">Hmm, been a while since I upgraded my cacti &amp;amp; cactid ports on my FreeBSD machines, and found that the cactid has been renamed to spine.  Yay.  Took me a while to notice that the smoke-ping-like Advanced Ping wasn't working with ICMP and even longer to remember why and how to fix it.  Had to chmod the spine exec to 4555 (setuid, and yes it's evil) so that it would have the necessary permission to open the socket(s) to send ICMP.  Maybe I will remember to check here when the port is renamed again and save myself some time!&lt;br /&gt;&lt;br /&gt;I've also been working on a fresh nanobsd build for my Soekris SBCs, and I can't thank Bruce Mah enough for his help earlier last year when I was having some build issues.  I had it working after consulting with him last year, but have had many other irons in the fire since then and am just now getting back into this particular project.  Ultimately, I want to replace my power-sucking FreeBSD-based firewall with this 12v DC, CF-based storage Soekris board.  I will get around to a more detailed post in a few days, I hope.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-5569565338507993390?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JhjyP0vxZm8_v__l5igro0fzF74/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JhjyP0vxZm8_v__l5igro0fzF74/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JhjyP0vxZm8_v__l5igro0fzF74/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JhjyP0vxZm8_v__l5igro0fzF74/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/2FxHSmiL1c0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/5569565338507993390/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=5569565338507993390" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/5569565338507993390?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/5569565338507993390?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/2FxHSmiL1c0/cacti-cactid-spine-nanobsd.html" title="cacti, cactid -&gt; spine; nanobsd" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2008/01/cacti-cactid-spine-nanobsd.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D08HRX86fyp7ImA9WxZSF0k.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-3495357953362322072</id><published>2008-01-30T21:05:00.000-05:00</published><updated>2008-01-30T21:17:14.117-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-30T21:17:14.117-05:00</app:edited><title>Radio Net Etiquette</title><content type="html">Just a little vent for today.  I had recently slipped out of the habit of checking into the NI4CE NTS net each evening at 20:30 local time, but now that I am getting back into the habit, I am finding the same irritation that caused me to lose interest before.  Other operators who key up their mic and start transmitting non-stop to Net Control without first dropping to see if they are the only station to key up.  There are a couple folks in particular who do this incessantly and I figure it's because they don't know any better, and who am I to call them out?  It's not like there is some law or regulation that states that they must unkey and verify that they aren't unnecessarily doubling with another station, but you'd think that after hearing so many other stations exercise the same good practice that these folks would attempt to do the same.  Alas, they are oblivious and continue forward.&lt;br /&gt;&lt;br /&gt;I really peaked last night when a piece of traffic was destined for my city and I was ready to take the traffic.  As soon as Net Control called for my county and cleared the repeater, I keyed up and said "Net Control", then unkeyed as usual (for me, anyway) to ensure that I wasn't violating someone else's prior transmission, and as usual one of these one-shot bandits completed their entire check-in and was able to take the traffic.  Totally ticked me off, especially because we get so little traffic anymore and it's difficult to keep skills sharp when traffic is so light.  Bah.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-3495357953362322072?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/r6eJo2FAT8Wr-DnmDyiJRRfXfRQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r6eJo2FAT8Wr-DnmDyiJRRfXfRQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/r6eJo2FAT8Wr-DnmDyiJRRfXfRQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r6eJo2FAT8Wr-DnmDyiJRRfXfRQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/CR8rHHZvJEU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/3495357953362322072/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=3495357953362322072" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/3495357953362322072?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/3495357953362322072?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/CR8rHHZvJEU/radio-net-etiquette.html" title="Radio Net Etiquette" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2008/01/radio-net-etiquette.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0UDSHw_fSp7ImA9WxZSF00.&quot;"><id>tag:blogger.com,1999:blog-8708749137804946561.post-3043157632730278545</id><published>2008-01-25T07:59:00.000-05:00</published><updated>2008-01-30T10:01:19.245-05:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-30T10:01:19.245-05:00</app:edited><title>DD-WRT and IPv6</title><content type="html">Yesterday, I took what I thought was a step forward for a long-ignored Linksys WRT54G v3.0 (SN: CDF80E553386) and upgraded from &lt;span style="font-weight: bold;"&gt;v23 SP2&lt;/span&gt; to &lt;span style="font-weight: bold;"&gt;v24 RC 6.2&lt;/span&gt;, but what a mistake (for me, anyway).  I lost IPv6 functionality and that was a killer for me.  So, I spent the next couple of hours working backwards through various releases, trying to restore IPv6 functionality.  Here's a breakdown:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;No IPv6 Support:&lt;/b&gt;&lt;br /&gt;DD-WRT v24 RC-6 (01/02/08) std&lt;br /&gt;(SVN revision 8743)&lt;br /&gt;&lt;br /&gt;DD-WRT v24 RC-6 (01/02/08) std&lt;br /&gt;(SVN revision 8743)&lt;br /&gt;(this is really the "generic_nokaid" version)&lt;br /&gt;&lt;br /&gt;DD-WRT v23 SP3 (12/21/06) std&lt;br /&gt;(SVN revision 5366)&lt;br /&gt;(what's up with the snowflakes?)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;IPv6 support restored with the above version, sans kaid, noted below:&lt;/b&gt;&lt;br /&gt;DD-WRT v23 SP3 (12/21/06) std&lt;br /&gt;(SVN revision 5366)&lt;br /&gt;(this is really the "nokaid" version)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, I don't really understand why the versions report themselves to be the same from the browser console, even though they are using a different feature set (if that's the right term).  Speaking in terms of feature set, a system like Cisco uses in their IOS would be useful to distinguish between the versions.  It's great that the firmware file name is different, but from the web interface, you don't really know which feature set you are using (std, std_nokaid, generic, etc.).  Oh well.&lt;br /&gt;&lt;br /&gt;For those interested, here are the commands I used to enable IPv6 in the WRT54G using the above firmware (v23 SP3 std nokaid from 2006-12-21).  You can set this up for boot-time configuration by navigating to "Administration" -&gt; "Commands", entering the two below commands into the text box, and then click on "Save Startup" button.&lt;br /&gt;&lt;br /&gt;(watch for word-wrap on these two commands)&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ip -6 addr add 2001:4830:2502:8001::a00:3/64 dev br0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;ip -6 route add default via 2001:4830:2502:8001::1 dev br0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Not to bash Linux at this point, but I sure do &lt;span style="font-weight: bold;"&gt;*LOVE*&lt;/span&gt; the way all of the IPv6 configuration in FreeBSD has been integrated into the usual tools (ifconfig, netstat, etc.).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8708749137804946561-3043157632730278545?l=rfandip.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AaV6Ei8JY0TZdXMyHJYtzLjvp_Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AaV6Ei8JY0TZdXMyHJYtzLjvp_Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AaV6Ei8JY0TZdXMyHJYtzLjvp_Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AaV6Ei8JY0TZdXMyHJYtzLjvp_Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/RfAndIp/~4/t6GkCqpyYc0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://rfandip.blogspot.com/feeds/3043157632730278545/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=8708749137804946561&amp;postID=3043157632730278545" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/3043157632730278545?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8708749137804946561/posts/default/3043157632730278545?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/RfAndIp/~3/t6GkCqpyYc0/dd-wrt-and-ipv6.html" title="DD-WRT and IPv6" /><author><name>Mike Oliver, KT2T</name><uri>http://www.blogger.com/profile/04412583514560072749</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://3.bp.blogspot.com/_jh4iyi_Hrdc/S6oq0J0OGFI/AAAAAAAAANg/CCf5afG-TBw/S220/me.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://rfandip.blogspot.com/2008/01/dd-wrt-and-ipv6.html</feedburner:origLink></entry></feed>

