Category: HECnet

After much fighting, and apparently being blocked by one of my ISP’s, I got back onto HECnet! Even better I was able to verify operation with HECnetNT!

Selective binding for DECnet

Like last time I was able to bind Pathworks 32’s DECnet onto a MS Loopback adapter, and then use the bridge to connect onto that loopback to a local Linux bridge (which is also hosting a virtual SIMH VAX instance).

The big problems I ran into is that I originally had setup SIMH to use a tap interface, and connect into a bridge, as mentioned on the raspberrypi.org forums, however the HECnet bridge program seems to have difficulty injecting packets onto the bridge interface. I suspect the ‘correct’ thing to do is to remove libpcap from the bridge, and re-write it to be a tuntap client. There is enough examples, I should be able to do this, but I just wanted the thing to work, so I didn’t want to tackle this just yet.

Instead I had SIMH attach to the Linux lo adapter (typically where 127.0.0.1 lives), and the HECnet bridge program, and success! Even better the interface has been up now over 12 hours since it was brought online.

SIMH VAX VMS 4.7

Well wasn’t that fun?

Want to learn more about HECnet? simply check it out! But as the short order goes it’s a hobbyist DECnet of machines spread out across the globe running the ancient DECnet protocol on various legacy style systems.

I found a simple c server and client program that was ported to decnet. And it was easy enough to follow I thought I’d try something fun. So I took Synchronet 3.00c and started to identify the winsock tcpip portions and then slowly alter them to either stubs or being more decnet friendly.

Surprisingly this wasn’t so hard.

The hard part is that decnet doesn’t have a telnet like protocol, and I don’t have enough patience to try to reverse how ctermd works, so with a lot of searching I found a semi simple telnet client and mostly got it running on decnet. Right now I have issues resolving address, so it is hardcoded.

I have to admit it was pretty cool to see the first connection, even though it aborted when it couldn’t figure out my ip address. I made some more changes, and it worked!!

The next step was to fire up gns3 and build a simple 2 area decnet network and see if a NT box from area one could connect to a bbs in area two. And with a few false starts I finally got a working multi area network (decnet isn’t like tcpip!!) This document on cisco’s site was invaluable.

Simple GNS DECnet network

As you can see this is pretty simple. I wanted two serial connections so I could run DECnet on one serial connection, and TCP/IP on the other. This way I could shut down the TCP/IP connection to ensure my conversation was 100% over DECnet.

As you can see the configuration is pretty simple. I went with RIP because it’s a small network, and I only need a few routes. EIRP, OSPF and friends are just pure overkill. And recall VMNet8 is the NAT interface provided by VMWare Player.

Checking output from the routers, shows that DECnet is routing, and that I can ping both of my test NT boxes:

Years ago, I was given an image of VMS 4.7. I only tested it for idle capabilities, and that is as far as I got with it. I never used it for anything else.

But today I needed to verify my Win32 Hecnet project works, so I needed to generate some legit DECNet traffic. Luckily I still have the VMS image, and in the prevailing years I managed to get a copy of PathWorks for Windows NT (And one for MS-DOS as well!).

So googling around, I found blinkenbone who mentions the command needed to setup some DECNet love. Now the one thing that is strange about DECNet is that the MAC address needs to be changed to the DECNet area & node id. Thankfully there is an online calculator, powerdog. Since I’m just testing, I’ll put my VAX in area 1, node 1, that means the VAX MAC needs to be set to:

AA-00-04-00-01-04

So in SIMH, I just use the line:

set xq mac=AA-00-04-00-01-04

Cool. Now I use ansicon, in the hopes it’ll make the console better, and fire up VMS.

This procedure will help you define the parameters needed to get DECnet
running on this machine. You will be shown the changes before they are
executed, in case you wish to perform them manually.

What do you want your DECnet node name to be? : rabbit
What do you want your DECnet address to be? : 1.1
Do you want to operate as a router? [NO (nonrouting)]:
Do you want a default DECnet account? [YES]: