Adventures in Token Ring
Spend too much time and money on antiquated network technology!
Important notes: 1) I really don't know what I'm doing here. While I have a background in networking, my career started at the very end of Token Ring's life. I'm still learning and some of this information might be incorrect, abridged, or incomplete. 2) This is a work in progress. It's intended to serve as notes for myself to some degree, but perhaps it'll help others.
A brief overview
Token Ring is actually pretty cool. It's typically cabled in a hub and spoke fashion, but logically (and electrically?) the network forms a ring, with the transmit side of one node directly connected to the receive side of the next node, and so on, completing a full loop or ring.
An advantage of Token Ring over Ethernet, at least in the early days, was that there was no possibility for collision. In Ethernet, multiple devices could try to speak at once, canceling each other out. This would be detected and each device would wait a random interval before trying again. With Token Ring, a token is passed around to each node on the ring. If a node has something to say, it speaks. If it doesn't, it hands the token to the next machine in the ring.
Hardware
You need a MAU - which is the Token Ring equivalent of a hub / switch / concentrator, despite operating nothing like them. A MAU is a fairly passive and simple device. In fact, early MAUs didn't even need power! The MAU's job is to keep the ring complete by bypassing any ports that are either not connected to a device, or the device connected isn't joined to the ring. When a connected device indicates it's ready and able to join the ring, a relay within the MAU opens the port.
A few thoughts on finding your first MAU:
- Stay away from the early unpowered MAUs, like the IBM 8228. Without a special tool called a Setup Tool, which never seems to be included, you won't be able to initialize it into a usable state. You can make your own DIY Setup Tool, but I'd generally avoid starting your adventures here.
- Start with a model that supports UTP (Unshielded Twisted Pair) cabling. Early Token Ring used thick, shielded cables with a proprietary Type 1 connector on the MAU side, and a DE9 connector on the device side. Later in life, UTP and RJ-45 connectors were adopted. Standard Ethernet straight-through patch cables are usable (avoid crossover cables), saving the need to acquire proprietary cabling.
My MAUs are from a long-defunct vendor called Proteon. I was able to find them fairly cheap on eBay as they didn't include the proprietary power supplies. The pictures clearly showed +12v and +5v labels, so I took a chance that I could power them with a typical PC power supply. I was correct!
You need Token Ring NICs. Early cards were 4mb only. I'd avoid these unless you have an architecture that requires it. There was 100mbps Token Ring - I don't know much about it, and cards are expensive, so I'd avoid these as well. A majority of the cards out there support 4mbps and 16mbps - this is what I'd go with.
I'd recommend cards that support both STP (DE9) and UTP (RJ-45) cabling. This will allow you to start with standard cabling that you probably already have lying around, but switch to the weirder proprietary stuff later if you want. Token Ring cards existed well into the PCI era, but not beyond. I've found PCI, ISA, and Microchannel (MCA) cards readily available and inexpensive on eBay - get a mix of cards that support your hardware.
There were many vendors. Thus far I've only used IBM cards and have had good success with finding information, drivers, and out-of-the-box support on some operating systems. 3Com and Madge are other common brands you might encounter.
You need cabling. If you've listened to my advice, your cards and MAU all support UTP, and you just need to make or use some Ethernet patch cables. If you've decided to skip right to the fun stuff, the cable you're looking for is usually called a Type 1 cable. One end will be a weird-looking plug, the other a DE-9 connector with (generally) 4 pins. You can find them on eBay and they're often unreasonably priced.
Operating Systems
I've tried a mix of hardware / OS combinations. Here is a summary of what I've found.
- Windows XP - this is likely the "newest" operating system that supports token ring. I've used a variety of IBM and Madge PCI token ring cards - all have been auto-discovered with no additional drivers needed. Given the broad device support and ease of configuration, I recommend XP as your starting point.
- Windows 95 / 98 - reasonable support, although you may need to locate drivers for some hardware. I've had an IBM ISA card auto-detected in 95 and a Madge PCMCIA card auto-detected in 98.
- Windows for Workgroups 3.11 - I've had an IBM MCA card natively detected. For other cards I've tried (namely IBM ISA), I've had to use IBM provided drivers that I have on floppy. I'll image them soon.
- Linux - a great way to build a router to carry traffic between your Token Ring network and Ethernet networks. Ubuntu 10.04 and Debian 6 seem to be the "latest" in their lineages to support token ring natively in the kernels they ship with. IBM PCI cards seem well supported out of the box. Modern gigabit Ethernet card I've used (mostly Realtek) work as well. I've not had luck with Madge cards. Linux appeared to support Token Ring through roughly the 3.5 era, so you may be able to find or build support in more recent distros. Despite much effort, I have been unable to get a DHCP server running on Linux on Token Ring networks. I've given up and just assign addresses statically. Please get in touch if you have better luck.
- MacOS 9.x - Thanks to a French blogger who e-mailed me a driver in response to my comment (thanks Pierre!), I can confirm that Madge MkII / MkIII PCI do work. I'll provide a copy to my archive soon. Tested on MacOS 9.2.2 in a B&W G3. The driver disk image included PCMCIA drivers as well, but I havne't tried those yet. I haven't located drivers for IBM or other vendors.
There are obvious security concerns to running old, unsupported operating systems on a network. Please take caution to isolate these systems appropriately if you decide to route/bridge them to modern networks.
Tips to get started
In no particular order...
- Manually set your ring speed wherever possible. Token Ring cards are supposed to auto-detect ring speed, but I've had mixed to poor luck. I manually set speed to 16mbps, but if you have any 4mbps only cards, set everything to match. You cannot mix speeds on the ring!
- Start with one device and slowly add devices to the ring. Hopefully your MAU has an indicator light to show when a port is opened - another advantage of powered MAUs. One wonky device can cause the whole ring to behave inconsistently.
- You may need to play with any switches present on your MAU. Mine has in/out loop ports for chaining in additional MAUs, and at least one of them has to be set to loop for the ring to form.
- Unlike Ethernet, you cannot connect two devices together directly. I'm not sure why, you'd think it would be easy and practical, but it's apparently not.
- Wireshark version 1.10 runs on Windows XP and support Token Ring. This has been handy to troubleshoot and just watch Token Ring do its thing.
Helpful links
- Lots of great info at ardent-tool.com. Also useful for all things IBM, PS/2, MCA, etc. If you decide to use a microchannel (MCA) adapter, you'll find the ADF files you need here.
- Surprisingly, the Linux Token Ring Project is still online, even though it hasn't been updated since 2003.
-