KA9Q questions [*summary of the my recent events*] *LONG*

Lenny Tropiano lenny at icus.ICUS.COM
Tue Mar 6 14:40:39 AEST 1990


In article <21907 at ditka.UUCP> kls at ditka.UUCP (Karl Swartz) writes:
|>In article <1115 at icus.ICUS.COM> lenny at icus.ICUS.COM (Lenny Tropiano) writes:
[... my stuff left out ...]
[... let me see, not that I'm all a sudden an expert on subject of KA9Q and
 TCP/IP, but I'll give Karl's questions a swing ...]

|>Well, I can't offer any answers, but I've got a bunch of questions
[...]
|>  1.	Where do I get it from?  I've seen various versions on
|>	various archives, and haven't a clue as to which is the
|>	latest version or best for a UNIX PC.
|>
Well I was informed that Bob Hoffman at the University of Pittsburg had
a copy of KA9Q that easily compiled (in fact the binaries are there) for
the 3B1.  It's FTPable (for those anonymous FTP fans) at vax.cs.pitt.edu
[130.49.2.1] in ~/pub/ka9q.  The files net-7300.Z is the compiled binary,
and the file net-unix.cpio.Z is the source cpio archive.

As far as anonymous UUCP, I'm not sure where it resides locally.  
Gary Sanders (resident ham-radio/packet-ip man) <gws at n8emr.uucp>
has told me a lot about KA9Q and has also mentioned that he has
the latest and greatest version (which might not be what's at vax.cs.pitt.edu) 
of the tcp/ip code for the 3B1 on his HAM BBS.  The file is called 
netexp.7300.Z.  I'm unsure if this is a binary, or the source (hopefully the 
source).  Also the other thing is I'm unsure if his BBS has a anon-uucp login, 
and if it could be snarfed that way.  Gary you listening? :-)  Anyhow for
further information, Gary's HAM BBS is available at 617-457-HBBS (617-457-4227)
[cute number :-)]  The good thing it's available at 1200, 2400, and
19.2K PEP, 8 bits, no parity.

According the the KA9Q documentation, there are anonymous uucp logins
for a machine in Holland -- if anybody cares for the number write :-) :-)

|>  2.	What do I need to do to install it on a UNIX PC?  It is
|>	my understanding that it was written for MushDOG, which
|>	doesn't make it sound like an easy port.
|>
The port was done.  In fact the UNIX port in general was done, it's not
3B1 specific.   The code looks nice, I'm sure it was intended to be portable
and modular.

|>  3.	Can I fire it up from /etc/rc or whatever and run it as
|>	a daemon like a normal UNIX TCP/IP implementation?  (I
|>	assume it doesn't run as part of the kernel.)  A more
[...]
Unfortunately that's the biggest limitation I find.  What has to be done,
and Alex Crain <alex at umbc3.umbc.edu> has already given thought on the subject,
is the write a good slip driver for the 3B1 on top of his existing socket
library.  That way the trivial (ok, look who's calling things trivial now)
applications like ftp, telnet, smtp, etc.. could easily be implemented
using on top of that driver.

What KA9Q is, is one gigantic conglomeration of an executable ...  

 332 -rwxr-xr-x  1 lenny   icus     169572 Feb 27 22:44 net-7300
   
It has the SLIP stuff built-in, all the applications (ftp, telnet, smtp,
finger, etc.), other protocols like ax25 (similar to slip, except that
AX.25 headers and a KISS TNC control header are added to the front 
of the datagram before slip encoding -- talk about heavy networking
jargon) :-)  See the KA9Q documentation (all 104 pages worth) for more
explanation on SLIP, IP protocols, AX.25, HAM Radio networking, etc..

Anyhow what I was getting to, in a long winded manner, was that KA9Q is 
great for those DOS machines, but for us UNIX people, in the land
of multi-processing, we can do something much better.  KA9Q does have
startup files, and conceivable you could startup a KA9Q process on the
"SLAVE" machine as a daemon and use an interactive session on the 
"MASTER" side.  This does tone down the usefulness of the package.

|>	useful question perhaps is whether it will support
|>	several connections at once, e.g. a root and a normal
|>	telnet session plus an ftp.  The stuff that I've heard
|>	suggests it is a standalone kind of thing but maybe
|>	that's just the MushDOG version.
[...]
You've heard correct about the standalone thing, but it DOES support
multiple sessions.  Yes, I've had ftp and telnet sessions going (see 
sample session at the end of this posting), coexisting on a 9600 baud 
serial connection at one time.   telnet for login purposes,
is done through the PTY driver (using the "telunix" code, that Rob Stampfli
<n8emr!kd8wk!res> implemented this from what I'm told).  There are definite
problems with telnet sessions, you are required to make UNIX think it's
a half-duplex connection.  Forget running any editing over the connection.
One must refine this section for anything serious other than a few
multiple logins over a serial line... which in the beginning is a neat
concept of optimal hardware utilitization! :-)

|>  4.	What utilities come with it?  You mentioned telnet, and
|>	I would assume ftp.  Anything else?
|>
Packaged together in one binary is telnet, ftp, Mail System, smtp, and
finger.

|>  5.	Would other TCP software work with KA9Q?  Things that
|>	come to mind include SMTP (either the sendmail port or
|>	smail3.x), HDB uucp-over-TCP, and NNTP.  I'm sure some
|>	changes would be necessary for porting sources but are
|>	they simply config issues or major weekend projects?
|>
You are right, definitely not a configuration issue.  I'd imagine a few
weekends ;-)   Hopefully as soon as Alex receives his hard disk back
from repair, his socket/slip work will get moving again.  Some things that
comes to my mind are "SLIP NFS", remote printing, remote execution (dream
on), network oriented window-system (X-windows -- dream on)...

|>  6.	How well does SLIP work?  Will it work with dialup or
|>	just a hardwire connection?  Can it support several
|>	SLIP connections on several ports to different machines
|>	simultaneously?  Several to the *same* machine, to get
|>	higher transfer rates?
|>
>From what I've seen the SLIP seems to work just fine.  Considering
the error free <:-)> nature of the 3B1 serial ports, things seem to work
nicely.  I haven't tested it over a modem, but I'd imagine the same
operation would be there.  As far as I can see, the "attach" command which
starts the slip activity should work for multiple lines at one time.  There
should be no reason why you couldn't start up a slip connection to your
local machine via a serial cable, and one to a remote machine via a
modem of some sort.  In fact the brings up some interesting issues,
and you could conceivably set up the route tables such that one machine
acts as a router to another.  "slip" through one (pardon the pun) to the
other... 

|>  7.	Are there other, perhaps better, alternatives?  I've
|>	looked at Alex Crain's uipc package but that's only
[...]
You were one step ahead of me :->

Anyhow, as far as setup and summarizing how things went in my KA9Q 
extravaganza, here's the gory details ...

I had a devil of a time dealing with configuring KA9Q -- which stopped me
over a year ago when I wanted to play with it.  Maybe some of it
had to do with no initial documentation, and when I finally got it and 
printed it on the laser-printer, I didn't read it :-)   Anyhow, with the
help of several people (for which I would like to stop and thank here,
[kinda sounds like the Academy Awards]   

	Bob Hoffman for helping me solve the cable problems, configuration
	difficulties and getting me the KA9Q code in the first place.

	Gary Sanders for pointing me in the right direction, helping me 
	with major configuration difficulties, and explaining the details 
	of how to get my feet wet with Packet Radio (HAMs).

	Rob Stampfli helping me with the PTY problems and the TELUNIX
	code of his.

	And several other people who mailed me details of the 
	"HAM RADIO WORLD" -- thanks.

That scheduled interruption brought to you by ... "Networks R US"

Ok, anyhow after several days of typing "ftp icusdvlp" and getting
nothing ... or some weird errors ("Not a typewriter") I found that
my cable was at fault.  Yes, CD must be asserted, because of the
fact that the KA9Q opens the port blind (hoping someone is at the
other end) with O_NDELAY and will write to the port.  If CD (8) isn't
jumped to DTR (20) then things just don't work well.

Alright, cable problems out of the way.  Now setting up the startup.net
(aka autoexec.net in the MSDOS world) file was the next headache.  
One must setup the commands to run, to save the poor fingers from typing.

Here's the sample startup file for icus & icusdvlp with the comments (#)
removed.

# startup.net for ICUS
hostname icus
ip address [44.128.1.1]
attach asy 0 /dev/tty000 slip sl0 2048 256 9600
route add default sl0
ip ttl 16
tcp mss 216
tcp window 432
tcp irtt 15000
log net.log

# startup.net for ICUSDVLP
hostname icusdvlp
ip address [44.128.1.2]
attach asy 0 /dev/tty000 slip sl0 2048 256 9600
route add default sl0
ip ttl 16
tcp mss 216
tcp window 432
tcp irtt 15000
log net.log
start ftp
start echo
start discard
start telunix 22
start telnet

Alright, the IP address is arbitrary -- but one should be aware that
44.128.*.* is reserved for the AMPR.ORG (amateur packet radio network)
and if one does connect to that they should get a real IP address.  The
same goes for the Real-Internet.  

For debugging purposes net.log goes in the directory I'm at, but should
normally go in the SPOOL directory.  

Also note at this point I'm using the ICUSDVLP machine for testing
purposes, since I didn't have all the other services started on ICUS.
This way I can only go from ICUS->ICUSDVLP and not the other way.  There
shouldn't be any problems doing the reverse, but for this example it's left
out.

# hosts.net from ICUS
44.128.1.2	icusdvlp

# hosts.net from ICUSDVLP
44.128.1.1	icus

# ftpusers from ICUSDVLP
anonymous * /usr/spool/uucppublic 1
lenny ftptest /u/lenny 7

# /etc/inittab entries on ICUSDVLP for PTY

 pt0:2:respawn:/etc/getty ttyp0 pty9600 # SLIP Login
 pt1:2:respawn:/etc/getty ttyp1 pty9600 # SLIP Login
 pt2:2:respawn:/etc/getty ttyp2 pty9600 # SLIP Login

# /etc/gettydef entry for pty9600 on ICUSDVLP

pty9600# B9600 CLOCAL IGNPAR ISTRIP OPOST ONLCR # HUPCL ISTRIP OPOST ONLCR B9600 CS8 CREAD ISIG ICANON IGNCR #login: #pty9600

=====

The fields are the username, the password ("*" means any password accepted),
root directory for ftp, and permission.

# "net" shell script to set up environment
NETHOME=/u/lenny/Filecabinet/Networking
NETSPOOL=/u/lenny/Filecabinet/Networking
export NETHOME NETSPOOL
net-7300

For those who are interested here's an sample session ...

$ net
KA9Q Internet Protocol Package, v890421.1a (n3cvl unix test)
Copyright 1988 by Phil Karn, KA9Q
NET/ROM Support Copyright 1989 by Dan Frank, W9NK
asy_init: tty name = /dev/tty000
Send message que identifier is:1
Receive message que identifier is:2
Control send message que identifier is:3
Control receive message que identifier is:4
net> ?
Main commands:
                !               arp             ax25
attach          connect         cd              close
disconnect      dir             echo            eol
escape          exit            finger          forward
ftp             help            hostname        kick
log             ip              memstat         mbox
mode            mulport         netrom          nrstat
param           ping            pwd             record
remote          reset           route           session
shell           smtp            start           stop
tcp             telnet          trace           udp
upload          ?               
net> ftp icusdvlp
SYN sent
Established
220 icusdvlp FTP version 890421.1a (n3cvl unix test) ready at Mon Mar  5 23:08:10 1990
Enter user name: anonymous
331 Enter PASS command
Password: 
230 Logged in
ls
200 Port command okay
150 Opening data connection for NLST /usr/spool/uucppublic
testdir
testfile
Get complete, 19 bytes received
226 File sent OK
get testfile
200 Port command okay
150 Opening data connection for RETR testfile
Get complete, 192 bytes received
226 File sent OK

net> dir
total 385
-rw-------  1 lenny   icus       8609 Mar  5 21:49 autoexec.net
-rw-r--r--  1 lenny   icus         20 Mar  1 18:51 hosts.net
-rwxr-xr-x  1 lenny   icus        114 Mar  3 12:58 net
-rwxr-xr-x  1 lenny   icus     169572 Feb 27 22:44 net-7300
-rw-r--r--  1 lenny   icus        105 Feb 27 22:36 net.log
-rw-r--r--  1 lenny   icus       7678 Mar  1 18:48 startup.net
-rw-r--r--  1 lenny   icus        184 Mar  5 23:08 testfile
net> 
cd testdir
257 "/usr/spool/uucppublic/testdir" is current directory
ls
200 Port command okay
150 Opening data connection for NLST /usr/spool/uucppublic/testdir
file2
Get complete, 7 bytes received
226 File sent OK
get file2
200 Port command okay
150 Opening data connection for RETR file2
Get complete, 275 bytes received
226 File sent OK
cd ..
257 "/usr/spool/uucppublic" is current directory
put x
200 Port command okay
550 Permission denied
Put aborted
cd ..
550 Permission denied

net> telnet icusdvlp 22
SYN sent
Established

ICUS Software Systems Development Center II
AT&T 3B1  UNIX pc   System V  Release 3.51m
Node: icusdvlp

pty login: lenny
Last login: Mon Mar  5 22:20:09 on w1

It's Monday, March 5, 1990 at 11:09pm ... 
Node: icusdvlp, up for 1 day, 3 hours, 58 minutes, and 1 second.
/          HD1: Root Partition      :  5.6MB,  11402 blocks,  5938 i-nodes, 16%
0.89MB of main memory currently available. (41%)

No mail.

Please type the terminal name and press RETURN:  s4

icusdvlp:[1 Filecabinet] 
net> ses
 #       &CB Type   Rcv-Q  State        Remote socket
 0     b916c FTP        0  Established  icusdvlp:ftp
*1     b98a4 Telnet     0  Established  icusdvlp:22
net> telnet icusdvlp 22
SYN sent
Established

ICUS Software Systems Development Center II
AT&T 3B1  UNIX pc   System V  Release 3.51m
Node: icusdvlp

pty login: root
Last login: Sun Mar  4 19:24:03 on ttyp2

It's Monday, March 5, 1990 at 11:10pm ... 
Node: icusdvlp, up for 1 day, 3 hours, 58 minutes, and 32 seconds.
/          HD1: Root Partition      :  5.6MB,  11402 blocks,  5938 i-nodes, 16%
0.85MB of main memory currently available. (39%)

No mail.

Please type the terminal name and press RETURN:  s4

# who
lenny      w1           Mar  5 22:20
lenny      ttyp0        Mar  5 23:09
root       ttyp1        Mar  5 23:10
# 
net> ses
 #       &CB Type   Rcv-Q  State        Remote socket
 0     b916c FTP        0  Established  icusdvlp:ftp
 1     b925c Telnet     0  Established  icusdvlp:22
*2     b98a4 Telnet     0  Established  icusdvlp:22
net> ses 0
ls
200 Port command okay
150 Opening data connection for NLST /usr/spool/uucppublic
testdir
testfile
Get complete, 19 bytes received
226 File sent OK

net> clos
FIN wait 1
net> FIN wait 2
Time wait
ses
 #       &CB Type   Rcv-Q  State        Remote socket
*0     b916c FTP        0  Time wait    icusdvlp:ftp
 1     b925c Telnet     0  Established  icusdvlp:22
 2     b98a4 Telnet     0  Established  icusdvlp:22
net> ses 1

# exit
Close wait
Last ACK
Closed (Normal)
net> ses 2
[1 Filecabinet] exit
Close wait
Last ACK
Closed (Normal)
net> ses
 #       &CB Type   Rcv-Q  State        Remote socket
 0     b916c FTP        0  Time wait    icusdvlp:ftp
net> exit

===
Hope this was of some help, and will be a topic for future discussion.

Take care,
Lenny
-- 
| Lenny Tropiano           ICUS Software Systems        lenny at icus.ICUS.COM |
| {ames,pacbell,decuac,sbcs,hombre,rayssd}!icus!lenny   attmail!icus!lenny  |
+------ ICUS Software Systems --  PO Box 1;  Islip Terrace, NY  11752 ------+



More information about the Comp.sys.att mailing list