Home ........ Blog ........ Travels ........ Software ........ Web 3D ........ LinkedIn

Friday, December 23, 2011

Perl Packet Playback Part 2

To follow on from yesterday's post, I did some more searching today and found a whole suite of Perl modules to assist in creating custom packets.

Net::Frame

Patrice Auffret is a genius. This expandable module framework assists in crafting just about any type of packet you want simply by building the layers from the modules used. If a protocol doesn't exist, not to worry, you can create a new module that fits easily into the framework and continue testing.

Some of the more advance routines allow for device identification and automate the sending and receiving, but they also rely on Net::Libdnet which won't compile in Strawberry Perl for Windows for me. Not to worry, I simply use the Net::Pcap module to handle the sending and receiving of the frames I create with the Net::Frame library of modules.

The only thing that's missing is the nice wrapper script like Scapy (or Scaperl) that makes it an interactive tool. But with an interface as easy as:


#!/usr/bin/perl

use strict;
use warnings;

# load modules we'll need for ICMPv6 ping
use Net::Frame::Simple;
use Net::Frame::Layer::ETH qw(:consts);
use Net::Frame::Layer::IPv6 qw(:consts);
use Net::Frame::Layer::ICMPv6 qw(:consts);
use Net::Frame::Layer::ICMPv6::Echo;

# create ethernet header
my $ether  = Net::Frame::Layer::ETH->new(
                 src  => '00:00:00:00:00:11',
                 dst  => 'ab:cd:ef:00:11:22', # Router MAC
                 type => NF_ETH_TYPE_IPv6
             );
# create IPv6 header
my $ipv6   = Net::Frame::Layer::IPv6->new(
                 src => '2001::1',
                 dst => '2001:4860:800e::68',
                 nextHeader => NF_IPv6_PROTOCOL_ICMPv6
             );
# create ICMPv6 header
my $icmpv6 = Net::Frame::Layer::ICMPv6->new(
                 type => NF_ICMPv6_TYPE_ECHO_REQUEST,
                 code => NF_ICMPv6_CODE_ZERO
             );
# create ICMPv6 echo request
my $echo   = Net::Frame::Layer::ICMPv6::Echo->new(
                 payload => 'echo'
             );

# put it all together, this automatically
# calculates and populates length and 
# checksum fields in all headers - SWEET!
my $packet = Net::Frame::Simple->new(
    layers => [ $ether, $ipv6, $icmpv6, $echo]
);

####################
# send with Net::Pcap
use Net::Pcap qw(:functions);

my %devinfo;
my $err;

my $interface = pcap_open($ARGV[0], 100, 0, 1000, \%devinfo, \$err);

if (!defined($interface)) {
    printf "Unable to open adapter '%s'\n", $ARGV[0];
    exit 1;
}

if (pcap_sendpacket($interface, $packet->raw) != 0) {
    printf "Error sending packet: %s\n", pcap_geterr($interface);
    exit 1;
}

I think I'm good to go!

Even tcpdump thinks so:

tcpdump: listening on \Device\NPF_{12345678-ABCD}
19:36:29.686987
00:00:00:00:00:11 > ab:cd:ef:00:11:22, ethertype IPv6 (0x86dd), 
length 66: (hlim 255, next-header: ICMPv6 (58), length: 12) 
2001::1 > 2001:4860:800E::68: 
[icmp6 sum ok] ICMP6, echo request, length 12, seq 10299
    0x0000:  abcd ef00 1122 0000 0000 0011 86dd 6000  ....."........`.
    0x0010:  0000 000c 3aff 2001 0000 0000 0000 0000  ....:...........
    0x0020:  0000 0000 0001 2001 4860 800e 0000 0000  ........H`......
    0x0030:  0000 0000 0068 8000 0084 804d 283b 6563  .....h.....M(;ec
    0x0040:  686f                                     ho

Thursday, December 22, 2011

IPv6 Packet Crafting in Perl

I refuse to learn a new programming language just so I can use a tool developed in it. Scapy - a packet crafting tool written in Python - seems like a pretty cool utility when doing testing, as I have been with IPv6 recently. On a Windows machine, options are severely limited when it comes to crafting packets unless you use the WinPcap libraries, and Scapy does this.

However, I don't know Python and have no desire to learn or install it just to get the use of Scapy for the limited testing I'm doing. I do however know Perl and when I found Scaperl I was delighted. It's a port of Scapy from Python to Perl but with very limited feature set and a release date of 2006. At least enough for what I wanted - until I read:

  • there is no support for IPv6.

in the "Known limitations" section of the site. A little more searching lead me to a revived Scaperl site so I grabbed that copy and started testing.

The first step was the install of a few required modules that I didn't yet have - no problems. You will need Net::Pcap installed and there were some issues with the latest version for Windows (cleared up with available patches) back when I installed this long ago. I got Scaperl running and sent a test packet.

The code is a little 'buggy' that is to say not so much incorrect, but it doesn't quite perform the way one would expect. Checksum calculation is one such example. If I don't set the checksum (say in an IP header) I expect Scaperl to calculate for me - which it does. However, if I make some modifications to the packet and then resend, the checksum is incorrect. Scaperl uses the previously calculated checksum. This could be fixed by checking for a "calcualte_checksum" flag versus testing if the checksum value is 0 (which it is originally, but not so much after a first calculation). Minor annoyances which have their workarounds.

More importantly, this Scaperl version has some IPv6 support. I was quickly able to complete the code needed and was sending IPv6 test packets soon after. There isn't yet support for IPv6 Extension Headers, but I was able to cobble together some code that lets me send the routing extension header (IPv6 loose source routing). More work on this when time allows.

Thursday, December 15, 2011

Cat with 10 Lives

Netcat - that trusty command line utility that's the "Swiss Army Knife of networking" - works very well on IPv4. Since IPv6 is getting hot now, I looked for an IPv6 capable version of netcat and there are plenty out there. The problem is that they are all for Linux based OSs. I have Windows 7. I did find ncat from Nmap.org, but it was a bit lacking in the "GAPING_SECURITY_HOLE" feature on Windows.

Some searching lead me to a Windows version of IPv6 netcat from Sphinx Software.  It was the 1.10 NT (Windows) port of netcat upgraded from IPv4 to IPv6.  Also, it was 1 revision back as the 'latest' Windows version is 1.11.  Ultimately, I wanted an address family agnostic version of netcat, one that would do both IPv4 and IPv6 and have a switch to force either version.

Since my wife was busy writing her Master's thesis and baby is in bed by 8p, I took to editing the source of both netcat and netcat6 to combine them into the ultimate IPv4/v6 capable netcat for Windows - nc64.  It was not as easy as I expected.

I'm not a C expert, but I know it enough to edit existing source code to do what I want.  I also understand socket (winsock) progamming to a degree and with the source code for an IPv4 and an IPv6 version of a small utility like netcat (just over 2000 lines with ample comments) I expected to be done in a few days.  A week and half later I finished.

What was so hard?  Upgrading an IPv4 application to support IPv4/v6 is not that easy.  All name resolution calls need to be rewritten.  In the case of netcat, it needs to be able to resolve a hostname given in the command string to an IPv4/v6 address to connect to.  The orginal netcat source code used gethostby*() functions which don't support IPv6.  I changed those to the newer get*info() calls, but of course the return structures are not the same so I needed to update those.  Worst, netcat uses a custom structure to hold the resolution information and the structure will only hold IPv4 information (netcat) or IPv6 information (netcat6).  I needed to support both.  Enter sockaddr_structure.

The sockaddr_structure can hold both IPv4 and IPv6 socket information - but the documentation and examples were very lacking. Again, not being a C expert, this was a problem for me. Once I finally got it working, I needed to comb through the entire code and replace the original accessors with the new accessors that understoood the sockaddr_storage structure.

Ultimately, the approach I took was an upgraded name resolution routine capable of IPv4 and IPv6 and one that will determine which to use if the user doesn't force a version.  Beyond that, separate connect and listen routines were ported from each of the original netcat and netcat6 sources to support IPv4 and IPv6 connectivity.

My answer isn't the most streamlined or efficient code, but it works perfectly. This experience showed how challenging upgrading existing IPv4 code for IPv6 support is. Writing a new applications to support both address families is becoming more trivial, but adding in support for IPv6 on existing applications without breaking backward compatibility is certainly a challenge.

So now, my Windows NetCat supports both IPv4 and IPv6 -> 4+6=10.

I also took the time to add a few bug fixes, incorporate some extra options usually found in Unix versions and enable multicast listener and sender features for both IPv4 and IPv6.  The compiled versions (64-bit and 32-bit) along with the source code and MinGW Makefile can be found in the software section.

The Adventures of Rich and Vince




Characters courtesy of SP Studio

Monday, November 14, 2011

Third Annual RI 6 Hour Ultramarathon

How not to train for an ultra:
  1. Have a nagging injury
  2. Since RTB-NH in September, my left ankle has been troublesome. The Vermont 50 the following week exasperated the problem and finally the training towards the RI 6 Hour really hurt. I took a week off of running and was able to return with shorter runs - up to 10 miles with just some arch discomfort
  3. Don't do long training runs
  4. This is basically a result of 1). The pain in my foot limited my longest training run to 15 miles on the second weekend of October. Number 3) finished me off.
  5. Get sick
  6. Getting sick is a great way to ruin your training. Having not peaked due to the pain and the onset of this head cold, the taper was epic - logging about 10 total miles in the last two weeks.

That said, I'm not making excuses - I actually had a pretty good showing despite the setbacks. I thought about not running the race full stop, but I really like this ultra and this year my wife was competing with a relay team so I really wanted to be part of the day. I matched last year's mileage and it only took me about 8 minutes longer - my average pace was 12 seconds slower.

The official results place me 12/59 with an official total mileage of 37.814 miles in 5:50:13.3.

The table below documents my miles and times (by my watch).

RI 6 Hour Ultramarathon: November 13, 2011
LapMileageCumm.
Mile.
Lap SplitCumm.
Time
Lap PaceAvg. Pace
12.72.722:43.850:22:43.808:25.108:25.1
22.75.422:52.980:45:36.808:28.508:26.8
32.78.123:26.041:09:02.908:40.808:31.5
42.710.823:12.771:32:15.608:35.808:32.6
52.713.523:31.181:55:46.808:42.708:34.6
62.716.223:45.472:19:32.308:48.008:36.8
72.718.923:50.412:43:22.708:49.808:38.7
82.721.624:35.713:07:58.409:06.608:42.1
92.724.325:26.103:33:24.509:25.208:46.9
Marathon26.2--3:52:25.0--08:52.3
102.72727:03.104:00:27.610:01.108:54.4
112.729.728:07.624:28:35.210:25.009:02.6
50K31.25--4:42:22.0--09:02.1
122.732.427:00.384:55:35.610:00.109:07.4
132.735.127:30.515:23:06.110:11.309:12.3
142.737.827:12.115:50:18.210:04.509:16.0
Totals:37.85:50:1809:16.0

Tuesday, September 27, 2011

Vermont 50: 424 Miles This Weekend ...

... and I only had to run 50. I drove to and ran the Vermont 50 50-mile race this past Sunday. Along with 550 other runners (some there for the shorter 50k version) and a ton of mountain bikers, I took off at 6:35 AM on Sunday to see the best of autumn scenery Vermont had to offer.

The run was quite manageable when compared to my Wapack experience from earlier this year. No need for a 7 installment blog series.

There were ample aid stations and only one run of 7+ miles between stations - in fairness, it was only going to be 6 miles, but course re-routing due to Hurricane Irene damage from a few weeks prior added some mileage. That said, the entire run was a bit over 50 miles, but what's a few miles between friends once you've already run 50? Right?

The day started "looking" nice - overcast, but you could feel the humidity and when the sun broke around 11 AM and temperatures reached close to the 80's, I knew it was going to be a bit uncomfortable. I kept up with the hydration and food at every chance possible - never going more than 45 minutes without eating (even if it was only a Gu packet between aid stations). I did run out of water on the 7 mile stretch between 40 and 47 miles with about a mile to go. I expected I would what with soaring temperatures just after midday and little shade on the open pastures we were running across at that point. I made it into the aid station after passing 3 runners in that last water-less mile, my thirst more of a motivator than a higher finishing spot.

Official results put me in 1 second faster than my watch at 9:15:49 at a pace of 11:06 minutes per mile. I finished 62/254 and 21/71 in my class (Male: 30 - 39).

My splits times according to my watch:

Vermont 50: September 25, 2011
Aid Station Mileage Split Time Spent at Aid Cumm. Time
Coon Club 4.2 37:22 0:41 38:03
Dart's 8.5 43:42 0:00 1:21:46
Skunk Hollow 12.3 39:04 0:54 2:01:44
Garvin Hill 19.3 1:06:25 1:50 3:10:01
Cady Brook 23.2 39:03 0:51 3:49:54
Margaritaville 27.6 52:27 2:19 4:44:42
Dugdale's 31.9 42:51 2:45 5:30:19
Fallon's 37.3 54:02 2:39 6:27:00
Goodman's 41.1 45:12 2:37 7:14:51
Johnson's 47.2 1:18:19 2:01 8:35:15
Finish 50 40:35 -- 9:15:50

Monday, September 19, 2011

Reach the Beach Relay - 2011

Massakruliks - Men's Open

84/434 - 30/119

Back row from left: Bill (leg 4), Bayen (leg 8), Ward (leg 12), Gavin (leg 1), Tucker (leg 5)

Middle row from left: Emily (leg 9), Kara (leg 6), Ashley (leg 3), Jodi (leg 11), Suzi (leg 10), Randy (leg 7)

Front row: Vince [aka: Me] (leg 2), Krulik [aka: Mascot] (on my right shoulder)

Vert
Distance Difficulty Gain Loss Net Time Pace
Leg 2 * 3.33 Easy 21:25 6:26
Leg 14 7.57 Moderate 246 230 16 52:15 6:54
Leg 26 6.4 Moderate 236 260 -24 44:30 6:57
17.3 1:58:10 6:50

* Shortened from 8.96 miles (hard) - along with legs 3, 5 and 6 due to bridge washout at Crawford Notch from Hurricane Irene.

Tuesday, September 06, 2011

Labor Day Run Around

The Saturday of Labor Day weekend, I ran my yearly tune-up for Reach the Beach, the Charleston Distance Run. The 15-mile course is pretty flat and fast, save for the 1000+ foot climb in a little over a mile and the subsequent 1000+ foot descent in the next mile and half. With high 70 degrees and high humidity at race start time this year, it proved to be a pretty difficult 15 miles.

Nonetheless, I ran my pace and finished quite well, in 1 hour, 53 and half minutes - good enough for 61 place overall out of 550+ runners.

I ran a consistent 7:30 minute / mile for the first 3 miles, 7:40 for the fourth mile as that started the brutal climb up Capital Punishment Hill. From there, my pace fell off a bit on the uphill as expected. I crossed 7 miles on the downhill at 54 minutes and hit 8 miles crossing the bridge into the last flat 7 miles at 1 hour, 1 minute (7:38 pace).

I ran the next few miles pretty inconsistently - a 7 minute mile followed by an 8 minute mile followed by a few 7 and change miles. The heat - now well into the 90's, made it difficult to find a comfortable pace. With 2 miles left, I dropped down to 7:05 - 7:10 pace and finished strong.

Other than the oppressive heat, it didn't cause me any issues - I stayed hydrated taking water at every aid station and ate consistently. Recovery was pretty easy too - 6 miles the next morning with no issues.

I'm certainly ready for RTB, and a week later, the Vermont 50.

Monday, May 23, 2011

Reach the Beach Relay - MA - 2011

I started running Reach the Beach Relay in New Hampshire in 2005 and when they decided to host one in Massachusetts that happened to run through my town, I had to do it. My team was more than willing to oblige, so we ran the first Massachusetts Reach the Beach Relay. As many times as I've run the original September New Hampshire edition of RTB, I still manage to learn new things. Here are some things I learned this past weekend:

  • Lobster rolls and mussels are a great addition to the usual finish line meal. However, they don't replace BEER. The BEER tent was missed - Westport: take notice!
  • Arm use for speed control and the turning principles of skydiving can also be applied to running downhill. However, they only work at better than 6 minute/mile pace; otherwise, you just look silly.
  • Never underestimate a man in pink tiger striped spandex. That guy was dynamite on Leg 9.
  • Every second counts - finishing strong through transitions, being there at transitions, not dropping the wristband at transitions - remembering the wristband at the starting line. There are 12 REALLY angry scientists who learned this the hard way finishing after us by a total of only 7 seconds over 200 miles and some 24+ hours.
  • Always run with a tank top instead of short sleeves. The ladies like to see the arms.
  • Finishing early is fun. Finishing late sucks. ALWAYS sandbag your pace times on runner applications!

Massakruliks - Men's Open

11/150 - 3/26

Back row from left: Dave (leg 4), Emily (leg 3), Bayen (leg 2), Ward (leg 6), Gavin (leg 12), Gabriel (leg 8)

Middle row from left: Jodi (leg 11), Bill (leg 1), Ashley (leg 7), Suzi (leg 10), Kara (leg 5)

Front row: Vince [aka: Me] (leg 9)

Vert
Distance Difficulty Gain Loss Net Time Pace
Leg 9 6.01 Hard 65 285 -220 40:15 6:42
Leg 21 6.93 Hard 17 22 -5 48:00 6:56
Leg 33 6.88 Moderate 29 39 -10 49:10 7:09
19.82 2:17:25 6:56

Monday, May 16, 2011

Wa-Wa-Wapack Weekend - Part 7

Leaving the start/finish line for the second time that day certainly gave the feeling of deja-vu. If you're thinking, "why am I still reading about a one-day race in this seventh blog post," you're getting the feeling that I had at this point in the race - it would never end.

The run back up Mt. Watatic was the same as it was earlier that day, except brighter. I saw a few runners pass against me on the way up and over the mountain that were on their way to completing the first 43 miles. I also saw a few strong runners who were on their way to completing the full 50.

I made good time down the backside of Mt. Watatic until I had to pee. I stopped by a tree and did my business. When I started to run again I fell flat on my face - a shooting pain on the outside of my left knee. I got up and tried to stand on it and it utterly collapsed again. I had never had issues with my IT band but apparently was experiencing it now - couldn't have picked a better time.

I started limping towards the aid station hoping I'd make it and see what could be done there since sitting down in the middle of the woods and crying didn't seem a viable option. As I limped along, it seemed to loosen up and I was able to pick up the pace to a slow jog and then a comfortable (albeit painful) run. I made it to my new best friends - the Binney Hill Road aid station crew - in 55 minutes.

As soon as I stopped to get food and refill my water bottle, the shooting left knee pain returned. I kept pulling my leg up to keep the knee in motion and hoped it wouldn't seize as it had done earlier. The aid station woman asked about the pain and said she had the cure. China-Gel. She slathered it on my wounded knee and the pain quite literally dissipated. With a gel-ed up knee, a full bottle of Gatorade and a mouthful of potatoes and salt, I expressed my love for those two kind souls and headed back towards the finish line. Again.

I passed against the last runner heading out to Binney Hill Road on his way to completing the 50 miles. I kept pushing up the easier inclines and walked as it got steeper not daring to stop lest my knee pain flare up again. A huge clap of thunder and the rain started coming down. We dodged it all day, but might as well get some bad weather to complete the misery.

I crossed the Mt. Watatic peak for the fourth time heading back to the finish line for the second time. I was all too happy to see Jen way up the trail in the rain ready to accompany me down the last mile or so. Footing was sketchy at best with my long dead legs and the now rain slicked rocks. We made it to the access road and ran to the finish line together, crossing at 12:57:30 by my watch. My return trip took only 49:15.

A few runners were lingering in the rain - among them Bill who I had paced with for nearly the entire first 43 miles. He congratulated me and I sincerely thanked him. Finding a pacing partner for a race as long as this was invaluable.

Turns out Jen was right - again. I could do it - I DID do it and had no regrets. I pulled on a water proof and ate some hot chili prepared by the finish line volunteers. We waited as John - the last person to go out for the 7 mile loop - finished his 50 miles.

So if you're keeping score:

Jen: 3/3 in advice for me today.
Me: 50 miles run in just under 13 hours.

Official results have me 8/9 50 mile finishers. That's 8/25 - including the 43 mile finishers (who didn't go on or didn't make the cutoff to complete the 50). And 8/37 registered runners (2 did not start, the rest I assume dropped out or didn't make the 14 hour cutoff).

My splits times according to my watch:

Wapack 50: May 7, 2011
Aid Station Mileage Split Time Spent at Aid Cumm. Time
Binney Hill Rd. 3.5 43:30 (0) 43:30
Windblown 9 1:16:00 (1:30) 1:59:30
Miller State Park 16 1:33:04 (1:15) 3:34:12
Mountain Road 21.5 1:30:45 (2:00) 5:06:09
Miller State Park 27 1:30:46 (3:00) 6:38:11
Windblown 34 1:47:05 (4:00) 8:33:40
Binney Hill Rd. 39.5 1:38:12 (4:00) 10:11:53
Start/Finish 43 48:29 (4:00) 11:00:22
Binney Hill Rd. 46.5 55:13 (5:00) 12:03:16
Start/Finish 50 49:14 -- 12:57:30

Sunday, May 15, 2011

Wa-Wa-Wapack Weekend - Part 6

The climb up Barrett Mountain was awful. I felt awful. Everything was awful. But as we approached the top and the ground started to level and we got a little shade, my queasy feeling started to lift and I felt a rush of energy. The next two peaks - New Ipswich and Pratt went by quickly as I pushed ahead and started downhill.

Bill rejoined me and we caught the same two runners who left the Windblown aid station before us. We talked a little with John and Dave (finally getting their names). They were taking the downhill section pretty slowly - no doubt due to the pain in the quadriceps from the relentless, steep downhill pounding. I could take it no more and pushed ahead to end the misery. I knew it would flatten out soon and I was looking forward to our next aid station - even if it was the "4 gallons of water on the side of the road Binney Hill Road" aid station. I wanted to get there first to my share of what was left of the 4 gallons.

I thought I took a wrong turn. I started to hear heavy metal music blaring loudly up ahead. A far cry from the "Deliverance" banjos, but still as disconcerting when running alone in the woods. The 4 gallons of water had magically transformed into an unassuming guy and girl, a table and a pickup truck bed full of food and drink. If we were running through a desert, I'd have thought this a mirage, and given the hot day and dehydration of the previous 7 mile section, I still wasn't sure it wasn't.

Having already gotten my second wind, this would have to be my third wind. A real manned aid station at 39.5 miles - the farthest I had ever run continuously - was awesome. I ate and filled my bottle. John and Dave joined us as Bill and I headed out. The slow uphill out of the aid station was manageable and the sun started ducking behind heavy clouds that were forming providing more relief. We started up the back side of Mt. Watatic and John caught us. We crested Mt. Watatic and started the downhill to the start/finish line.

Again, we met John taking it slow on the downhill so we continued past. Bill had a calf cramp and told me to go on as he slowed to walk it out. I met Jen again slightly up the Mt. Watatic trail and she ran with me down to the access road and towards the start/finish line.

I made it. Eleven hours and 22 seconds after I left this spot at 5 AM, I was back. I checked in and ate. Bill quickly followed not a minute later. Soon John and Dave crossed the line also.

The volunteers were now asking us if we were going to continue on. I had almost forgotten. Hitting the finish line usually means you're finished. But to complete the Wapack 50, you need to leave the finish line, run back over Mt. Watatic to the rock-and-roll rest stop (Binney Hill aid station) and then back over Mt. Watatic to the finish line again. Bill, John and Dave all said they were done. I looked at Jen. "If you're done, you're done. But you know you can do it. You'll probably regret it if you don't." It wasn't a dare, but I headed back out just after 4 PM.

Saturday, May 14, 2011

Wa-Wa-Wapack Weekend - Part 5

The run back over the Pack Monadnocks was every bit as "memorable" as the first time I did it - 1.5 hours earlier; except in reverse. If the first trip over was "FUN", you could say this time was e-"NUF". I caught up to Bill somewhere around North Pack and was able to press ahead over Pack and down the insanely steep headwall to Miller State Park. I caught up with three other runners on my way down and one conspicuously dressed woman in jeans - not really what I'd consider running gear. Oh wait - that was my wife Jen. "I didn't think this was the trail and when I realized it was, I had to climb up to get some pictures," she said accompanying me and my three new friends down into the aid station.

We were now at 27 miles - a good time to check with my average marathon pace - 3 hours, 45 minutes. It was just after 11:30 AM, I had run the marathon distance in 6 hours, 38 minutes and change. I wasn't impressed. The bright side was that it took only 1 hour and 30 minutes back over the Pack Mountains - the same time on the way out meaning as I got more tired, I didn't lose any time. I followed my three new friends out of the aid station and towards the 7 mile return over Temple Mountain.

During the climb we spaced out a bit. The noon sun was beating hard now and the exposed climb offered little shade. I passed one of the three once we hit a more shady section and I was able to get some relief. I caught the other two on the descent - about 5 miles into this 7 mile stretch.

One of the two and I hit the short downhill road section and were able to pull away until the trail started back uphill and he pulled away from me. We had about 1 mile of gentle uphill left and I ran out of water. I was sipping so regularly from the midday heat during the climb and the longer distance to the aid station (7 versus 5 miles) left me wanting with less than a mile to go. Normally this wouldn't be a problem but with 33 miles already run, my body wanted some water ... and food!

I slowly pushed to the Windblown aid station where Jen met me again, Bill caught back up and the two other runners I had paced with all replenished our bodies and supplies. I drank several cups of Gatorade and water and downed some "ultra" potato chips. That would be boiled potato dices hand dipped into a large bowl of salt. Who knew a mouthful of salt would taste so good.

The other two runners left before Bill and I so we took off into the Windblown ski area again keeping pace. I felt awful now. Copious amounts of water once you're thirsty aren't going to rehydrate you - you need to keep a steady flow from the start. My extra full belly bounced with every step. I knew I'd be OK, if I could get through this 20 minutes of uncomfortable feeling while my stomach decided what to do with the calories I just consumed. My vote was to keep it down, my stomach thought otherwise. In the end, I won. I found myself wishing for an uphill so we could walk.

Be careful what you wish for. We started up Barrett Mountain.

Friday, May 13, 2011

Wa-Wa-Wapack Weekend - Part 4

The Miller State Park aid station was staffed by some kind ultra running volunteers. They knew exactly what we needed in terms of food and drink. They filled our bottles and packs for us. It was here that we caught the only person who passed us so far. He was unloading his pack. Seems that he stocked his CamelBak with water-proof gear in case the 40% chance of rain materialized. I on the other hand traveled light. I carried a hand strap 16oz water bottle and an elastic racing belt that clipped my bib number and held down 6 Gu packs on either side of a small pouch that carried a small 10-pack of tissues. (I was so deathly afraid of gastro issues causing me to stop for a number 2 in the woods. I'll save you the suspense, the 10-pack of tissues wasn't used - not even to blow my nose.)

Bill and I headed out of the aid station in about a minute and a half and followed the trail to what I at first thought was a dead end.

If I were to describe the topology of the Pack Mountain climb, it would look a little like the small letter "n". That is a near vertical climb, followed by a little downhill followed by more uphill over the peak and then a rather steep descent. And there are a lot of rocks.

I got the feeling that a long time ago, someone stared at this vertical rock pile and started to climb it with a yellow spray paint can marking triangles as he went. When he could climb no higher, he walked a little to the left and found some more near vertical rocks and started zig-zagging up them too. When they ran out, he walked a little to the right and found some uneven, steep, root-laden dirt path and continued up and over it and on to the summit. People just started following his path and that became the trail. So here we are, years later "running" (read: climbing) up this trail thinking in about 2 hours we'll be "running" (read: belaying) back down it. Unbelievable.

It was with a great sense of accomplishment that we crested Pack Mountain, ran by the towers we saw from Temple Mountain over an hour ago and started into the valley between the Packs. About this time, we saw the first runner come towards us. He had a two-digit bib number, ours' were three-digits. He was the leader of the 21.5 mile race.

[A quick aside: there is a 50 mile and a 21.5 mile race. I ran the 50, but some people choose to run the 21.5, which starts at the north end of the Wapack Trail and runs south. It's the second half of the 50 mile run without the extra 7 mile loop at the end. The 21.5 mile race starts at 8 AM so right around 9 AM - with an hour to the turn around for us and and hour into their race - we met.]

Another two runners passed against us - again from the 21.5 mile race. Then the deluge started. All 60 or so registered 21.5 mile participants passed against us over the next miles of steep single-track. We also saw the few leaders of our 50 mile race pass against us. They had already made the turn around and were heading home. We were still finishing the climb over North Pack.

If I were to describe the topology of the North Pack Mountain climb, it would look a little like an upside down capital letter "V". That is a really big uphill followed by a really big downhill. And there are a lot of rocks. There were some technical sections, not requiring pitons and a harness, but certainly not runnable - requiring hands to scramble up or down depending on your direction of travel.

Bill slowed down to tend to a cramp and I continued to the Mountain Road aid station - the terminus of the Wapack Trail and our turn around point. I had finished the out in just over 5 hours and 5 minutes. Bill was quick to follow. I took my time in the aid station using my drop bag to replenish my Gu stock on my running belt and mix an electrolyte drink for my bottle - which one of the aid station volunteers kindly did for me as I downed some salty snacks and a banana.

Bill was off and I was soon to follow. Half way done - but not really; there was that looming 7 mile loop at the end after hitting the "finish" line.

Thursday, May 12, 2011

Wa-Wa-Wapack Weekend - Part 3

Leaving the Windblown aid station at mile 9 presented us with some gentle rolling hills that were easy to keep a good running pace over. Bill and I ran together out of the aid station and up the climb. We saw no one in front or in back of us. The field had thinned pretty well by now. The leaders were about 20 to 30 minutes in front of us according to the aid station volunteers. We had no illusions of catching them, it was just good to know where we stood in the field.

This seven mile section of the Wapack Trail heads over Temple Mountain and follows the long ridge line descending into Miller State Park. It's relatively downhill for the first 2 miles followed by a bloody big climb and an equally impressive descent over the next 5 miles. Most of this section was runnable. Again, we walked the hard uphills maintaining 'relentless forward progress'.

I started thinking about pace, timing and the possibility of completing all 50 miles. As I mentioned, the Wapack Trail is a 21.5 mile trail that we run south to north and then back south. That provides the first 43 miles of running. The last 7 miles are a "quick" out and back over Mt. Watatic between the start/finish line and the first aid station. If runners hope to complete the full 50 miles, they need to finish 43 in the 12 hour cut off time. If you arrive back at the start/finish line after 5 PM, you aren't allowed to continue back out. It's at this point that some runners who beat the cut off time also choose to end their punishment voluntarily.

Based on the reading I did from other peoples' past race accounts, I hoped for a 5 and half hour out and a 6 and a half hour return. That would put me at the start/finish line very close to the cut off time and maybe with a quick push at the end, allow me to head back out for the last 7 miles.

We had just finished 9 miles in 2 hours - a paltry 13:20 pace. Given that, we expected another hour and a half of running to the Miller State Park aid station at 16 miles. I was feeling good now. Time was closing in on 8 AM. My legs were warmed up. My body temperature was fine - the sun wasn't too hot yet. I had some good food in me to supplement the Gu packets I was taking between aid stations.

Bill warned me about the last 5 miles past Miller State Park - the Pack Monadnock Mountains. He said those 5 miles would take us at least another one and a half hours. Assuming that was correct, we'd complete our out in 5 hours. Assuming my 6 and a half hour return, I'd be well under 12 hours and be eligible to go back out and complete the final 7 miles. Now it was just a matter of keeping that good feeling - staying fueled and hydrated - and keeping the legs moving.

Our progress was impeded a few times with small detours. The trail is pretty well marked with yellow triangle blazes on trees and rocks but some have faded. There are also some intersecting trails and on the bare rock peaks only cairns mark the way. It was easy to get off track - and we did a few times - thankfully not too far. After cresting Temple Mountain and starting the downhill we got a glimpse of the towers on Pack Monadnock in front of us. It looked a ridiculous distance away and a rather daunting climb. Also knowing there was another higher peak (North Pack) hidden behind that we would summit didn't help.

Like clockwork, we entered the Miller State Park aid station at 16 miles after another 1.5 hours of running. It was just after 8:30 AM. We had kept our pace and were both still feeling fine.

Wednesday, May 11, 2011

Wa-Wa-Wapack Weekend - Part 2

It's 5:05 AM, Saturday, May 7, 2011. I just started running the Wapack 50 with about 35 other maniacs. The group of us has fallen into single file and started up the single-track trail over Mt. Watatic. It's dark. My wife convinced me to not use my headlamp - "the sun is coming up soon". It's cold. My wife convinced me to wear short sleeves - "it's going to be over 60 degrees today". It's quiet - save for the 70+ feet plodding on dirt, root and rock.

The Wapack 50 is a 50 mile endurance run over the historic Wapack Trail. Heading from Mt. Watatic in Ashburnham, MA at the south end, 21.5 miles to North Pack Mountain in Greenfield, NH at the north end, the Wapack Trail is one of the oldest interstate trails in the northeast. It follows ridge lines up and over the summits of Watatic, Pratt, New Ipswich, Barrett, Temple, Pack and North Pack Monadnock. Of course the Wapack 50 is a 50 mile race and the Wapack trail is only 21.5 miles. So you run it south to north and then back north to south. If you're a math wiz, you realize that still falls a bit short (7 miles to be precise). So to complete 50 miles, you need to leave the start/finish line, run back over Mt. Watatic to the first aid station (3.5 miles) and then back over Mt. Watatic to the start finish/line (3.5 miles the other way). During the ordeal, you gain and lose over 14,000 feet in elevation and cross 7 peaks, twice, and 1 four times for a total of 16.

About 20 minutes into the race, we crest Mt. Watatic and start the runnable downhill section towards Binney Hill Road - the first aid station about 3.5 miles into the race. It's light enough to see now without the need for flashlights or headlamps. I'm following a guy (Bill) who's running a steady pace that I can keep up with and we make small talk as we pass some people on the downhill section.

I don't realize we've turned onto Binney Hill Road as it isn't so much a "Road" as a fire road / Jeep trail. We pass four gallons of water on the ground at 43 minutes. We think nothing of it. Bill starts cursing as we begin crossing the makeshift bridges over the wetlands of Binney Pond. He forgot to drop his flashlight at the aid station. "What aid station," I ask. The four gallons of water on the ground were our first aid station. So that's what kind of day this is going to be. At least I'm not carrying a headlamp or flashlight for the next 5 plus miles to the Windblown aid station. Score one for my wife Jen.

Next come the uphills of Pratt and New Ipswich Mountains. We run the short flats and gentle uphills and walk the more steep sections. It's slow work. Bill and I keep a good pace and talk some more. He's quite the accomplished ultra runner and ran Wapack last year. This gives me some confidence. If I can match his pace and he's familiar with the course, I might just be OK.

There's a small downhill off New Ipswich before we start up Barrett Mountain about 7 miles in. We pass a guy who's obviously struggling now. He's in full leg spandex/lycra and long sleeve spandex/lycra. He has a hat and what can only be considered hiking boots. He's sweating profusely and the sun isn't really beating down yet - it's only 6:30 AM. Even Bill comments on his own long sleeve running T and how hot it's getting. Thanks Jen - plus one again.

We cross into the Windblown ski area and start our descent to the second aid station. It's seconds under 2 hours when we make it to the Windblown aid station. Some food and fuel - top off our water bottles and we're back at it.

If you're keeping score - it's Jen: 2, Me: 9 (miles that is).

Tuesday, May 10, 2011

Wa-Wa-Wapack Weekend - Part 1

In case you haven't already surmised from previous posts - I'm a runner. I'm not getting much faster with all the training I do, but I did notice I could run longer and longer distances without problems due to the training. So 5k's became 5 milers, which lead to 10k and 10 milers to half-marathons to long-distance relays to a marathon. It was this continuous distance increase that lead me to a north central Massachusetts trail head at 5 AM on May 7, 2011. With a yelp in place of a starter's pistol, I - along with 36 other ultra runners - began running the Wapack 50.

How did I get myself into this? After flirting with marathon distance in training and running Reach the Beach as an ultra team in 2007, I thought I'd try the longer distance - 50k or 50 miles. I stumbled upon the RI 6 hour and ran that as my first official ultra in 2009. Still looking for a local 50 mile race I Googled "50 mile massachusetts" and the Wapack and Back 50 Mile Trail Race came up. I signed up and started training in January 2011 after my usual December break to enjoy the holiday food and beer.

It wasn't until I missed my last planned marathon-distance training run on Boston Marathon weekend due to a sinus infection that I started to worry about my preparation. I was going to taper after that run, so a week early shouldn't hurt, but I was worried nonetheless. I started to do some research on Wapack. Big mistake.

I read some comments: "This is a very tough trail race. Don’t attempt it unless you are in excellent shape." I read some recommendations: "Don't recommend this for your first 50." I saw a picture from a participant last year of a 100-foot vertical rock wall with the caption, "Where's the trail ... I know it's hear somewhere". The "useful trail guide" is a scanned copy of someone's scribbles on a napkin. I figured my 50 mile time would be close to 9 hours based on 38 miles in 6 hours giving 3 more hours for the last 12. The Wapack 50 course record was close to 10 hours. I was now officially scared and feeling woefully underprepared.

After a fitful sleep in a Fitchburg hotel and a 3:15 AM wake-up call, my loving wife kissed me good-luck as I started down the gentle dirt road to the single track take-off which started the climb up Mt. Watatic - the first of four times I'd run over that wretched mountain that day.

Saturday, April 09, 2011

To Do

Wake up with baby.
Take dog out to pee.
Make baby's breakfast.
Make dogs's breakfast.
Make my breakfast.
Play with dog.
Play with baby.
Put baby down for nap.
Run 20 miles:

View Larger Map
Eat, shower, dress.
Go to dump.
Play with baby and dog at park.
Play with baby and dog in yard.
Play with baby and dog in house.
Dinner (thank goodness for parents).
Put baby to bath and bed.
Blog.
Bed.

Repeat.

Saturday, April 02, 2011

Recalculating ...

Don't you hate it when your GPS sends you the long way? Well Google Maps said it happened to be exactly 26.2 miles to my nephew's birthday party. Can you guess how I got there?


View Larger Map

Note: Start and End points are approximate. Actual route varied at the start and end; however, rest assured, it was exactly 26.2 miles.

Monday, March 14, 2011

Long Run for Short Race

Sunday, I ran the Raynham Knights of Columbus 5-Miler. I had run this race in 2007 and kept getting the reminder emails each year since. Currently, I'm training for a long run in May, so I'm following the traditional marathon training regimen - short to middle distance a few times a week with long runs on weekends.

Given this 5-miler was going to be my weekend long run, I had to increase the mileage somehow. I decided to run to the race, run the race and then run home. A straight shot to the starting line was just over 7 miles from my house - easy. I left just over an hour before start time and made it with 10 minutes to register and complete my "warm-up" to an even 8 miles. I toed the starting line with about 2 minutes to race start and took off with the 200+ runners on a cool overcast Sunday morning - perfect running weather.

It's a pretty fast course, not too hilly - with a course record of just under 25 minutes (about the time it takes me to jog a 5k - yikes!). My split times according to the race timers at each mile:


Mile Time Split
1 7:20 7:20
2 15:02 7:42
3 22:23 7:21
4 29:54 7:31
5 36:56 7:02


I finished quickly - just under 37 minutes, about 7:24 minutes/mile - to place 34/183 and complete my first half-marathon of the day (8+5).

I wasted little time after crossing the finish line. I pulled on my race T-shirt over my long sleeve running top, topped off my water bottle, ate a Clif Bar and was off running home in about 5 minutes.

I had planned a route home that would meander about Raynham and Taunton to give me another 13 miles before hitting home.

My wife and niece met me on a back road with about 4 miles to go on their way home from swimming. I was able to drop the race T-shirt (soaked from the misty rain at the start of my run home) and get a chicken McNugget - a nice change from the Gu I'd been powering down every 45 minutes.

I finished my marathon in a slow 3:50 but feeling fine. So this past weekend, I ran a marathon ... but only got credit for a 5-miler!

Thursday, January 06, 2011

Running Makes Me Bipolar

I'm starting to train again for the upcoming year. I have S-RTB in May and I'm thinking about a 50-miler around the same time. There's of course RTB in September and the RI 6 Hour in November. Better to get in running shape now after taking December mostly off from running and strict diet what with all the Christmas cookies and beer.

I felt pretty good on my first few short runs but inevitably I had a late night run (as time would allow with the little one) and it was bitter cold (New England in January - go figure). I started thinking - "why am I doing this again?"

From past experience, this will fade and I'll start feeling really amped up about running again as I get deep into the training. I'll be a running machine that is until I have yet another 4-hour plus run on a cold Saturday morning through the woods. It will no doubt be raining (as it will be in the April timeframe) and I'll want nothing more than to just run the race I'm training for and finish this and stop running for good.

Then I'll start tapering - running less as the final weeks before the race approach. I'll have all this extra energy and I'll want to run more (weird since I just swore it off a week earlier). This is kind of like the old college pledge - "I'll never drink again!"

During the race, I'll usually feel good but as the end approaches I'll motivate myself by thinking about how good it will feel when it's over and how much time off I'm going to take.

I'll be running the next day.
 

Copyright © VinsWorld. All Rights Reserved.