lenny@icus.ICUS.COM (Lenny Tropiano) (03/06/90)
In article <21907@ditka.UUCP> kls@ditka.UUCP (Karl Swartz) writes: |>In article <1115@icus.ICUS.COM> lenny@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@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@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@icus.ICUS.COM | | {ames,pacbell,decuac,sbcs,hombre,rayssd}!icus!lenny attmail!icus!lenny | +------ ICUS Software Systems -- PO Box 1; Islip Terrace, NY 11752 ------+