Fun with SLIP

Back before the advent of PPP there was SLIP. And the main difference between the two is that SLIP was configured statically. For people with static devices (routers) etc this worked fine. After all SLIP was point to point by nature. And of course it sat behind leased lines, and dialups that were maintained in a 1:1 fashion so you knew you were dialing, and where they were….

Then the internet went all consumer based, and that was out.. the world needed a ‘dynamic’ protocol, and they took SLIP and taught it to auto configure… the results were PPP.

Anyways if you ever find yourself with some kind of legacy device…. SLIP is as good as it gets.

And that is where the fun begins…..

A friend of mine scored the tcp/ip kit for a certain venerable UNIX, and of course it being from the late 1980’s it only supports SLIP. Well thankfully it runs in Virtual PC 2007. So we can have some fun with it.

Windows 7, Vista, 2003 and XP have *NO* SLIP support… That means you’ll need a Windows NT 4.0 machine to make the magic work…

So first up install a copy of NT 4.0 . It wont matter if it’s workstation,server,enterprise or terminal server. While you are installing it, setup a single NIC, and then setup RAS on COM2 with any bogus modem you want… The next thing to do is make sure you have service pack 6… You may as well update it.

Once that is done, you’ll need to make a few registry changes. The first will enable unimodem support..

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RAS\PROTOCOLS]
Make a DWORD key named “EnableUnimodem”, and set it to 1.

The next key to modify is
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasArp\Parameters]
Make a DWORD key named “DisableOtherSrcPackets” and set it to 0.

Now with all that in place, reboot the NT 4.0 VM.

Next you’ll need the ‘new’ and improved driver for a nullmodem available here. thanks to Kevin Wells.

Now you can add the “RAS Serial Cable between 2PCs” on COM1, and set it up for dial out operations. While you are configuring it, be sure to uncheck all the flow control options, and all the header compression… Odds are your SLIP machine will be too old to support such stuff. While you are going thru your options, be sure to pick an ip address for your target & the NT machine…

Ok now with all that out of the way, then configure Virtual PC (or server) to use COM1 for some named pipes… \\.\pipe\slip1 works great.

Now what I do is I launch hyper terminal on the NT side, have it on COM1 running at 9600 baud (most old OS’s cannot safely do more then that because of issues with the originally 16550 UARTS). Then from the UNIX side, configure it’s COM1 on the same pipe, then try this from the UNIX side:

echo ‘a’ > /dev/tty1a

If you are lucky you’ll see an ‘a’ pop up on the serial program. If so GREAT!.. If not.. try turning off all the VM’s, and try it again…. Sometimes the pipe code for VPC/Vserver gets out of sync.

Assuming it worked, you can then initiate the ‘dialing’ part from the NT side, give it a phone number of 1 to satisfy the script and it’ll sit there waiting for *ANYTHING* on the serial port…

On the UNIX side I run this in a script…

echo ‘a’ > /dev/tty1a
slattach /dev/tty1A 10.0.1.1 10.0.1.2 255.255.255.0 9600
route add default 10.0.1.2 1

Then run the script, and NT 4.0 should beep and you should be in business!

Go ahead and ping and whatnot…

If that is working, then you can take the next step on your LAN and add some routing statements pointing the 10.0.1.1 towards the LAN ip of your NT machine, and it should route!

I’ve managed to get the box on the internet so it does work!!!!!

11 thoughts on “Fun with SLIP

  1. It was more so that emulators that can run Xenix or AIX (for the i386) don't emulate the NICs either of these UNIX support… as neither support even the ne2000!!!

  2. Am I stupid or something? I’ve got NT 4.0 set up in VMWare, with the enhanced Unimodem INF set up bidirectionally, and it’s going to go towards an actual serial port for my 701CS, but how do I initiate the dialing? From there I can probably figure out SLIP clients on W95.

  3. slattach /dev/tty1A 192.168.178.233 192.168.178.22 9600
    slattach /dev/tty1A 19slink(slip): Couldn’t register with CP: No such device or address

    This on Xenix,i want a local ip 192.168.178.233 remote 192.168.178.22
    but give me this errore.
    I goolge it..and nothing
    Someone can help?

  4. I have made some progress.
    I’m on virtualbox,i set a line (pipe) with vbox
    installed xenix
    installed slip and tcp ok
    mkdev serial OK
    mkdev slip OK
    mkdev tcp OK #recognize slip immediately
    and configured
    tty1a
    192.168.0.67 #localip
    192.168.0.7 #extip
    route add default 192.168.0.7 OK
    but i can only ping internal ip 192.168.0.67 :/

Leave a Reply