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:
[table id=1 /]
So in my case on my Netware server I simply load my NE2000 like this:
LOAD NE2000 PORT=320 INT=A FRAME=ETHERNET_802.3 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 HKOffice#
And the interface looks busy on NetWare
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…..