Running Netware 3.12 on Qemu / KVM 2.8.0

So yeah, let’s build a NetWare 3.12 server! I’ve covered this over and over and over, but heh let’s do it again!

First things first, the default position of the NE2000 card at 0x300/IRQ 9 does NOT WORK.  This is the biggest stumbling block, and time waster right there.  I loaded a PCnet driver, and it didn’t lock, but it didn’t work.  I loaded 2 ne2000’s thinking the second would come up in the correct position but that didn’t work either.  The solution of course is to dive into the parameters for QEMU to drive devices.

So for the fun of it, here is how I’m going to run this in a nested VM.  It’s also why I didn’t bother enabling the ‘-enable-kvm’ flag.  Although on a real machine I would.

qemu-system-i386 -m 16 \
-cpu 486 \
-net none \
-vnc :1 \
-device ne2k_isa,mac=00:2e:3c:92:11:01,netdev=lan,irq=11,iobase=0x320  \
-netdev vde,id=lan,sock=/tmp/local \
-hda netware312.qcow2 \
-hdb netware312_data.qcow2 \
-parallel none \
-monitor tcp::4400,server,nowait

So the key portion here is the iobase & irq.  This let’s me sidestep the IRQ 9, port 0x300 issue.  Talking to the monitor and running ‘info qtree’ I’m able to look at the parameters that I can pass the network card:
bus: isa.0
type ISA
dev: ne2k_isa, id ""
  iobase = 800 (0x320)
  irq = 11 (0xb)
  mac = "00:2e:3c:92:11:01"
  vlan = 
  netdev = "lan"
  isa irq 11

As you can see there is actually a few further things I could have set, but the key ones here being the iobase, the irq, the mac address, and then assigning it to a netdev, in this case I then bind it to a VDE.

Now the fun part goes back to the old days of Netware when your network could run several possible frame times.  If you have 2 machines with different frames, they will not see each-other.  it was a cheap way to hide networks well until the wide spread availability of sniffers.  Naturally cisco and Novell have different terms for the same things.  Below are the ones that are relevant to Ethernet:


So in my case on my Netware server I simply load my NE2000 like this:

BIND IPX TO NE2000 NET=800852

Next on my cisco router I simply need:
ipx routing ca00.06a3.0000

interface FastEthernet0/0
ipx network 800852

And now I can see my server from the router:
HKOffice#sho ipx servers
Codes: S - Static, P - Periodic, E - EIGRP, N - NLSP, H - Holddown, + = detail
U - Per-user static
1 Total IPX Servers

Table ordering is based on routing and server info

Type Name Net Address Port Route Hops Itf
P 4 HONGKONG 852.0000.0000.0001:0451 2/01 1 Fa0/0

And the interface looks busy on NetWare

NetWare 3.12

NetWare servers advertise their internal networks, much like how people should be using loopback adapters in OSPF, or EIGRP … So if you check the IPX routing table, you’ll see the wire route to the internal network:

HKOffice#sho ipx route
Codes: C - Connected primary network, c - Connected secondary network
S - Static, F - Floating static, L - Local (internal), W - IPXWAN
R - RIP, E - EIGRP, N - NLSP, X - External, A - Aggregate
s - seconds, u - uses, U - Per-user static/Unknown, H - Hold-down

2 Total IPX routes. Up to 1 parallel paths and 16 hops allowed.

No default route known.

C 800852 (NOVELL-ETHER), Fa0/0
R 852 [02/01] via 800852.002e.3c92.1101, 150s, Fa0/0

Just like that!

One thing to note, on VDE, I had an issue where the NetWare server takes about a minute before it’ll see traffic.  It could be my IOS for all I know…..

7 thoughts on “Running Netware 3.12 on Qemu / KVM 2.8.0”

  1. I have had some problems with NW 3.12 and network traffic when using qemu 2.4.0 under Linux. The emulated network card was also NW2000, but due to extensive experience from DOS days I avoided IRQ9 like the plague – IRQ3 was just fine, though 🙂
    The problem however, was that *sometimes* after starting it VM it would not see/be seen by the rest of the network (that included physical DOS/NW machines). Shutting down and restarting the VM would usually solve the problem. I never tried waiting a longer time to see if it will eventually “see” the network. As an aside, the same happens with a DOS VM and IPX (IIRC TCP/IP seemed to work fine; but it’s been a while)
    On another note – have you ever tried a tunnel using the built-in TCP/IP protocol?
    I kept wanting to try but never got around to actually doing it.

    1. As a matter of fact….. ip eigrp neigh
      IP-EIGRP neighbors for process 1
      H   Address                 Interface   Hold Uptime   SRTT   RTO  Q  Seq Type
                                              (sec)         (ms)       Cnt Num
      1                Et1/1         11 00:13:19  517  3102  0  2
      0                 Et1/0         14 23:14:52  113   678  0  683

      I currently have my office, a colocation site in Germany, and another in the United States up and running.

      I’ve setup some basic TCP/IP, and I’ve also done some NetBEUI using DLSW+ via Dynamips and IOS 12.2 …

  2. Thank you for your insightful post.
    I have tried the same but in my kvm unfortunately it seems there is no ISA support.

    I will not expect to get any responses on the mailing list since it is an obsolete OS but maybe you have some idea.

    From this list:

    Model Bus Speed Description
    e1000 PCI 1Gb/s Intel Gigabit Ethernet
    i82551 ? ? ?
    i82557b ? ? ?
    i82559er ? 100Mb/s ?
    ne2k_pci PCI 10Mb/s NE2000
    ne2k_isa ISA 10Mb/s NE2000
    pcnet PCI 10Mb/s AMD Ethernet Card
    rtl8139 PCI 10/100Mb/s Realtek Fast Ethernet
    virtio PCI 1Gb/s Virtual High Performance Ethernet card (see Virtio)

    I have also tried ne2k_pci e1000 and pcnet with no luck. As of Netware I tried version 4.11, 5 and 6.5 no luck with KVM 🙁

    However in Vmware 6.5 works like a charm (matter of fact it is still supported by Workstation/ESX). You just create a VM with Novell and the server will recognize ALL hardware including the network with pcnet and you are set. I did not even notice network issues others mentioned here in the comments. Unfortunately I only have vmware in my laptop and this is pulling the cpu on 100% even in idle so I would prefer moving it to KVM.

    Any tips are welcome.

    1. In your list you have ne2k_isa right there… Are you trying to start this via the command line, or via some wrapper? I’n the link it’s through what, libvirt? I tend not to like that kind of things as the more things you stand on top of, the more features you actually lose.

      KVM still uses Qemu for all it’s hardware emulation, and I’m pretty sure ISA is still in there….

      Post what CLI options you are running, versions of OS, Qemu/KVM (check it’ll just be a symbolic link) what version of NetWare etc. etc…..

      I can’t promise much but I’ll take a peek

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.