ipxbox

command module
v0.0.0-...-56ea410 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 8, 2020 License: ISC Imports: 9 Imported by: 0

README

ipxbox is a standalone DOSBox IPX server written in Go. DOSBox clients can connect to the server and play together.

A unique feature is that it is optionally able to bridge to real physical networks, in a manner similar to a VPN. DOSBox clients can communicate with each other on the server, but with this feature enabled they can also communicate with physical IPX nodes on the connected network. So emulated DOS clients should be able to play games against real DOS machines connected to the same network.

Setting up an IPX network bridge

The following explains how to set up an IPX bridge server on Linux. This could be as simple as a Raspberry Pi that you connect to a network along with a retro DOS machine (Raspberry Pis are cheap and ubiquitous nowadays).

First, a word of warning: the DOSBox IPX protocol is completely insecure. There's no encryption or authentication supported. If all you're doing is playing some old DOS games maybe that's fine, but be aware that it's possible to piggyback Windows 9x filesharing on top of IPX, so there's a possibility that you might be making things available to the world that you don't intend. If you're looking to use this for anything more serious than just games, look into setting up proper VPN software.

Compile ipxbox and run with the --enable_tap flag (probably requires root privileges, hence sudo):

go build ipxbox.go
sudo ./ipxbox --port=10000 --enable_tap

If successful the server should start with no problems and there will be a tap0 device listed in the output of ifconfig.

$ ifconfig
[...]
tap0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 169.254.194.27  netmask 255.255.0.0  broadcast 169.254.255.255
        inet6 fe80::e055:4e79:b7a3:6b7a  prefixlen 64  scopeid 0x20<link>
        ether 16:b6:35:40:d9:65  txqueuelen 1000  (Ethernet)
        RX packets 172  bytes 9440 (9.2 KiB)
        RX errors 0  dropped 27  overruns 0  frame 0
        TX packets 145  bytes 38878 (37.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

The tap0 device is an isolated virtual network connected to any physical network. To connect to a physical network, you need to create a bridge device that bridges tap0 with a physical network. The following will create a bridge named br0 that bridges tap0 with a physical network on adapter eth0:

# ip link add name br0 type bridge
# ip link set br0 up
# ip link set eth0 master br0
# ip link set tap0 master br0

To test, use tcpdump to view IPX packets on the bridge device, eg.

# tcpdump -b ipx -nli br0

Connect to the server with DOSBox, eg. if the server is at address 10000,

C:\>config -set ipx true
C:\>ipxnet connect 192.168.1.104 10000
IPX Tunneling utility for DosBox

IPX Tunneling Client connected to server at 192.168.1.104.

You should see periodic IPX ping packets on the bridge device, and the addresses will begin with 02:..., for example:

22:12:00.290972 (NOV-ETHII) IPX 00000000.02:56:84:7a:fe:97.0002 > 00000000.02:ff:ff:ff:00:00.0002: ipx-#2 0
22:12:05.307859 (NOV-ETHII) IPX 00000000.02:56:84:7a:fe:97.0002 > 00000000.02:ff:ff:ff:00:00.0002: ipx-#2 0

Documentation

Overview

Package main implements a standalone DOSbox-IPX server.

Directories

Path Synopsis
Package bridge implements an IPX bridge.
Package bridge implements an IPX bridge.
Package ipx implements common types for IPX header encoding and decoding.
Package ipx implements common types for IPX header encoding and decoding.
Package network defines types to represent an IPX network.
Package network defines types to represent an IPX network.
Package phys implements a physical packet interface that uses libpcap to send and receive packets on a physical network interface.
Package phys implements a physical packet interface that uses libpcap to send and receive packets on a physical network interface.
Package server implements the server side of the DOSBox IPX protocol.
Package server implements the server side of the DOSBox IPX protocol.
Package virtual contains an implementation of an IPX network that forwards packets between nodes, similar to a network switch.
Package virtual contains an implementation of an IPX network that forwards packets between nodes, similar to a network switch.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL