8000 its/doc/networking.md at master · PDP-10/its · GitHub
[go: up one dir, main page]

Skip to content

Latest commit

 

History

History
186 lines (157 loc) · 7.84 KB

networking.md

File metadata and controls

186 lines (157 loc) · 7.84 KB

TCP/IP

Currently, networking is only supported under the KLH10 and SIMH KA10 and KL10 emulators. The SIMH KS10 does not have the necessary support. As of this release, only the ITS monitor, host table tools, and binary host table are installed.

Currently, basic TCP network support is in the build, in addition to both a TELNET/SUPDUP server, and both TELNET and SUPDUP clients. Additionally, both an FTP server and client are included. SMTP mail inbound and outbound is included, as well as local mail delivery.

IP address

Unless you are running the current ITS on a current version of KLH10 (see below), you need to rebuild ITS to change the machine's IP address.

SIMH KA10 / KL10

To get the pdp10-ka online with reasonably low effort, use the included SIMH NAT interface via DHCP. PDP10-KL instructions are in the making and while they should be the same as for KA they are not tested completely yet.

Using the host's TAP interface

This enables networking with Network Address Translation (NAT) where the SIMH network adapter gets an IP address from a on network DHCP server. If you are running multiple SIMH instances with diffrerent networking requirements make sure to look at Configuring networking in KA/KL with static IP assignment. Depending on your host you will need to create a

  • TAP network interface
  • Network Bridge
  • Add your Ethernet adapter and the TAP interface to the network bridge

To do this first install the dependencies if you do not have them

apt-get update && apt-get upgrade -y
apt-get install make
apt-get install libpcap-dev
apt-get install bridge-utils
apt-get install uml-utilities
apt-get install net-tools
apt-get install gawk

On Raspian/Debian based host systems this script will setup everything automatically. Make sure you look at your primary ethernet adapter in this case eth0 Edit the first lines to reflect your host. Run this command to get the values for the script

$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1280
        inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::215:5dff:fe49:af43  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:49:9d:77  txqueuelen 1000  (Ethernet)
        
$ ip route
default via 192.168.1.1 dev eth0 proto kernel        

The above are examples from an Ubuntu 20.x system.

Note Edit the script below to match your system!
Especially the adapter name for the ethernet adapter in my case it is eth0

If you are running multiple ITS systems on the same host you can create more TAP adapters and attach them to the same bridge.

#!/bin/sh
HOSTIP='<Your ETH0 Host IP Address>' # i.e. 192.168.1.10
HOSTNETMASK='<Your ETH0 Host IP Subnnet mask>' # i.e. 255.255.255.0
HOSTBCASTADDR='<Your ETH0 Broadcast address>' # i.e. 192.168.1.255
HOSTDEFAULTGATEWAY='<Your ETH0 default gateway>' # i.e. 192.168.1.1
ENETADAPTERNAME='eth0'
BRIDGENAME='br0'
TAPNAME='tap0'
#
/usr/bin/tunctl -t $TAPNAME
/sbin/ifconfig $TAPNAME up
#
# Now convert eth0 to a bridge and bridge it with the TAP interface
/usr/sbin/brctl addbr $BRIDGENAME
/usr/sbin/brctl addif $BRIDGENAME $ENETADAPTERNAME
/usr/sbin/brctl setfd $BRIDGENAME 0
/sbin/ifconfig $ENETADAPTERNAME 0.0.0.0
/sbin/ifconfig $BRIDGENAME $HOSTIP netmask $HOSTNETMASK broadcast $HOSTBCASTADDR up
# set the default route to the br0 interface
/sbin/route add -net 0.0.0.0/0 gw $HOSTDEFAULTGATEWAY
# bridge in the tap device
/usr/sbin/brctl addif $BRIDGENAME $TAPNAME
/sbin/ifconfig $TAPNAME 0.0.0.0

Verify you have the TAP0 and BR0 interfaces and check you have internet access.

Next configure SIMH Under your root folder for the project i.e. /home/<user>/its edit the SIMH configuration file out/pdp10-ka/run or out/pdp10-kl/run and configure the IMP interface as follows:

; enable SIMH network emulation
set imp enabled
; if you are running multiple SIMH instances on the same host you might have to change the MAC address
set imp mac=e2:6c:84:1d:34:a3
; enable DHCP, this will allow SIMH to get an IP address from your home network
set imp DHCP
; configure the ITS host IP
set imp host=10.3.0.6
; Only on PDP10-KA! Set the network interface interrupt
set imp mpx=4
; map the host tap interface
at imp tap:tap0

Now start ITS as you normally would. To find the IP address the SIMH adapter interrupt the simulation by hitting CTRL+\ and at the simh> prompt type sho imp the output will give you the IP address of the simulated network card.

sim> sho imp
IMP     MAC=E2:6C:84:1D:34:A3, MPX=4, IP=192.168.1.85/24
        GW=192.168.1.1, HOST=10.3.0.6, DHCP Server IP=192.168.1.1, Lease Expires in 5906 seconds
        attached to tap:tap0, DHCP, MIT

to return to ITS type cont at the simh> prompt.

Configuring networking in KA/KL with static IP assignment

You do not need a TAP or Bridge interface for this type of configuration but it is a bit more involved on the configuration side.

Configure SIMH

Under your root folder for the project i.e. /home/<user>/its edit the SIMH configuration file out/pdp10-ka/run or build/pdp10-kl/run and configure the IMP interface as follows:

set imp enabled    ; enable the SIMH IMP interface
; set the IP address for the emulated system. This needs to be configured correctly in ITS as well.
set imp host=10.0.2.4
; set the IP address of the IMP interface, this is the address the interface will be reachable through on your network.
; adapt this to your own network configuration. 
; uses the CIDR notation IP/SUBNET MASK
set imp ip=172.16.0.4/24 
; set the default gateway for your network
set imp gw=172.16.0.2
; set the nat configuration
; gateway is the same as the one above
; network is the IP network used in CIDR notation
; tcp= are port forwards. <Hostnetwork Port>:<imp IP>:<destination system port>
; in the example below the forwards are for both Telnet and FTP
; you would Telnet to the system using `telnet 172.16.0.4 2023` to get a session open to the system
at imp nat:gateway=172.16.0.2,network=172.16.0.0/24,tcp=2023:172.16.0.4:23,tcp=2021:172.16.0.4:21
; only for KA based emulation set the interrupt for the interface in ITS, normally 4.
set imp mpx=4

SIMH KS10

Albeit untested the above IMP interface should also work with KS10 based emulation.

KLH10

The KLH10 dskdmp.ini file has an IP address (192.168.1.100) and gateway IP address (192.168.0.45) configured for the ITS system. The IP address matches the address configured in SYSTEM; CONFIG > (as IMPUS3), but this is not important since the address is now updated at runtime (see below).

Finally, the HOST table source (SYSHST; H3TEXT >) and binary (SYSBIN; HOSTS3 >) define a host called DB-ITS.EXAMPLE.COM at the IP address 192.168.1.100.

In order to change the IP address of the host, you only need to change the ipaddr parameter in the KLH10 .ini file, and ITS will get the address and netmask from (the IMP of) KLH10 at runtime. You will still want/need to update SYSHST;H3TEXT > and recompile it using SYSHST;H3MAKE BIN.

You can also set/change a Chaosnet address of the ch11 device in the .ini file. The address is read by ITS at runtime. Note that to use Chaosnet, you must have enabled it by DEFOPT CH11P==1 in SYSTEM; CONFIG >. This is done automatically if you specified a chaos address in the .../conf/network file. If you use Chaosnet, you may be interested in joining the Global Chaosnet: read more about it at https://chaosnet.net.

DNS

Check out this external guide

Mail

Check out this external guide

telnet, supdup, ftp

They work out of the box

Chaosnet

Chaosnet SUPDUP, TELNET and FTP (CHTN and CFTP), are available but this requires support and configuration in the emulator to actually use. For KLH10, see above.

Read more about Chaosnet at https://chaosnet.net.

Useful resources

0