PDP-10 / its

Incompatible Timesharing System
Other
844 stars 80 forks source link

FTPS no longer working #2158

Open larsbrinkhoff opened 1 year ago

larsbrinkhoff commented 1 year ago

Rumor has it FTPS doesn't respond any more. Some details in #2153

eswenson1 commented 1 year ago

I don't think this is an ITS issue. It works for me on KLH10 -- maybe it is specific to pdp10-k*?:

ftp 192.168.0.100
Connected to 192.168.0.100.
220- MIT-NX.US.ORACLE.COM ITS 1651,  FTP server 336 on 25 FEB 2023 0834 EST
220 Bugs/gripes to BUG-FTP @ MIT-MC
Name (192.168.0.100:eswenson): ejs
230 OK, your user name is EJS
ftp> get "waste 1" waste.1
local: waste.1 remote: waste 1
200 OK, port 41739
150 Look out!  Here comes DSK:EJS;WASTE 1
226 That's all, folks!
112 bytes received in 44.45 secs (0.0025 kB/s)
ftp> quit
221 BCNU
rcornwell commented 1 year ago

It works for me on previous version. And there were no changes to pdp10-ka since.

eswenson1 commented 1 year ago

Previous version of the DB/KA/KL build? Meaning an older version of the git repo? Do you have a commit hash for a version where FTP works under pdp10-ka?

rcornwell commented 1 year ago

Previous ITS build. I said that pdp10-ka is same version.

eswenson1 commented 1 year ago

Yes, but what build worked? Clearly the changes to fix Zork or to update networking.md have no relationship to FTP. So what commit hash worked?

rcornwell commented 1 year ago

See the other issue... I posted the id that worked.

eswenson1 commented 1 year ago

Thanks. See it there. https://github.com/PDP-10/its/issues/2153#issuecomment-1444930114

eswenson1 commented 1 year ago

I did a compare between those two commit hashes and don't see any difference that should impact FTP or networking at all. There is a single change to ITS -- but to the DISK support to help with balancing distribution of files across different mounted packs.

rcornwell commented 1 year ago

I have to agree here. Unless for some reason the Link can't find the program it is trying to link to because it is on another pack than it expects it to be on.

eswenson1 commented 1 year ago

The changes made in DISK are to which pack a NEW file is CREATED. It doesn't change how files are accessed or how files are accessed through links.

I just pulled the head of the master branch, built a DB ITS (for KLH10), and verified that FTP worked fine:

 ftp 192.168.1.100
Connected to 192.168.1.100.
220- DB-ITS.EXAMPLE.COM ITS 1651,  FTP server 336 on 25 FEB 2023 1100 EST
220 Bugs/gripes to BUG-FTP @ MIT-MC
Name (192.168.1.100:eswenson): ejs
230 OK, your user name is EJS
ftp> dir
502 This command is not implemented, sorry.
200 OK, port 44185
150 Look out!  Here comes DSK:EJS;.FILE. (DIR)
DB   EJS
FREE BLOCKS #0=8998
  0   NGAME  273    11   12/18/2016 17:24:19
  0   QSEND  150    3   12/18/2016 17:24:19
  0   QSEND  COMPRS 2   2/24/2023 18:16:09
  0   SCRMBL 73     3   12/18/2016 17:24:19
  0   TS     UPTINI 1   2/24/2023 18:48:01
  0   UPTINI 1      1   12/18/2016 17:24:19
226 That's all, folks!
ftp> quit
221 BCNU
rcornwell commented 1 year ago

That does not prove anything. We are talking about KA not KS. I'm building KL now will try it.

eswenson1 commented 1 year ago

I'm building a pdp10-ka build now. Of course, I've never had all that much luck with pdp10-ka networking in the past, and am not sure that I verified that FTP worked. I'll let you know once I build and configure.

rcornwell commented 1 year ago

I did a KL10 build and I can telnet in and FTP in. So I think ITS is having trouble resolving the link to the FTP server.

eswenson1 commented 1 year ago

If you did a pdp10-kl build, and you can TELNET and FTP in, clearly, ITS can resolve the link to the FTP server (there).

Are you saying that this isn't working in pdp10-ka, but is working on pdp10-kl -- with the HEAD of the master branch?

eswenson1 commented 1 year ago

I'm not having luck with my master branch HEAD build of pdp10-ka:

eswenson@eswenson-ThinkPad-W520:/mnt/its/ITS/ws/its/out/pdp10-ka$ ../../tools/sims/BIN/pdp10-ka  run

KA-10 simulator V4.0-0 Current        git commit id: $Format:
SDL Video subsystem can't initialize
Segmentation fault (core dumped)
eswenson@eswenson-ThinkPad-W520:/mnt/its/ITS/ws/its/out/pdp10-ka$
eswenson1 commented 1 year ago

I went back to a working pdp10-kl build (from a while back when you and I were working on this, @rcornwell), and I'm able to telnet in fine, but FTP is connects, but gets nothing back from ITS.

I tried my (previously) working pdp10-ka build (same timeframe as above), which I thought was working with respect to telnet, and cannot telnet in. I can't FTP in either.

Both of these are with my NAT-based configuration that you and I came up with.

rcornwell commented 1 year ago

If you can't telnet you can't FTP, what I am seeing on ITS is that it seems to hang at the SYN025 name. It does not appear to go to the FTP program. On pdp10-kl build it worked correctly. Note I can telnet/FTP into previous builds with either current pdp10-ka emulator or one in tools. I can also use one in tools to connect to telnet/FTP with previous builds. Under current build FTP appears to hang at the SYN025 state and does not start FTPS.

If you are seeing the SYN025 in the process table it means that ITS has responded to the SYN packet and tried to start the program to handle it. Also there have been no changes to pdp10-ka in about 1 month.

larsbrinkhoff commented 1 year ago

SDL Video subsystem can't initialize

This means you either have to run pdp10-ka in a window system, or you need to remove set dpy enabled in the configuration file.

Segmentation fault (core dumped)

This, however, is a plain bug. Probably mine.

eswenson1 commented 1 year ago

Thanks. This must be a “new” thing because it was happening with an old pdp10-ka config / system that used to work perfectly fine.

rcornwell commented 1 year ago

I was also getting "vid_thread(): Unexpected user event code: 1" when the display is runing

oilcan-productions commented 1 year ago

My Raspberry Pi finally finished building the KL build (latest) and I cannot Telnet or FTP into it with the configuration that works on KA. The IMP adapter gets the IP address but there is no response from Telnet or FTP on the KL machine.

rcornwell commented 1 year ago

If you did not edit the configuration then the HostIP on KL is 192.168.1.100.

oilcan-productions commented 1 year ago

That means that the same configuration as for KA will not work. Which configuration file controls this at build time?

eswenson1 commented 1 year ago

I believe that the IP and GW Makefile variables are passed to the expect script and then used when setting up the IP address for ITS.

oilcan-productions commented 1 year ago

I believe that the IP and GW Makefile variables are passed to the expect script and then used when setting up the IP address for ITS.

Would that not be the same for KA based builds as well then? But in that case the host is 10.0.3.6 despite the fact that the IP is set to 192.168.1.100 in its/conf/network

rcornwell commented 1 year ago

I believe only KLH10 has support for the configuration file variables. I do not believe Lars ever added in support for other systems. Also the same configuration file will not work for KA10/KL10/KS10, there are differences.

eswenson1 commented 1 year ago

Ah, ok. We should fix that! @larsbrinkhoff

rcornwell commented 1 year ago

We should also probably merge the config.202 file down to one and just select which host we are building for with arguments.

eswenson1 commented 1 year ago

Yes, I agree. I have no idea why we have multiple configs -- it makes things tough when you are trying to synchronize configs from pdp10-k* and KLH10 systems.

oilcan-productions commented 1 year ago

I am looking a the various config.202 files. If they all support the same type if IMP interface from SIMH, with the exception of KLH, would it at least make sense to re-use the same host IP and gateway everywhere else? right now there are different IP address definitions for every emulator type?

rcornwell commented 1 year ago

ITS supports three flavors of PDP10, KA, KL and KS. PDP10 and KLH10 are both KS type systems. PDP10-KS and KLH10 are pretty much identical, other then KLH10 does not support DZ serial lines or a printer. KS systems require SIMP support, where KA and KL require KAIMP.

oilcan-productions commented 1 year ago

Rebuilding KL with the new IP address set (hope I changed the right file :D) Is there a way to check which IP address is set inside of ITS?

eswenson1 commented 1 year ago

sys$j Impus4/

the value will need to be decoded into 4 octets.

eswenson1 commented 1 year ago

I am looking a the various config.202 files. If they all support the same type if IMP interface from SIMH, with the exception of KLH, would it at least make sense to re-use the same host IP and gateway everywhere else? right now there are different IP address definitions for every emulator type?

Some of us run multiple systems on the same host. It is nice that they have different IP addresses. I wish they all did!

oilcan-productions commented 1 year ago

I am looking a the various config.202 files. If they all support the same type if IMP interface from SIMH, with the exception of KLH, would it at least make sense to re-use the same host IP and gateway everywhere else? right now there are different IP address definitions for every emulator type?

Some of us run multiple systems on the same host. It is nice that they have different IP addresses. I wish they all did!

Makes sense. Should we move all SIMH based machines to the IMP scheme then? I would be going with: Host IPs

And keep all the other configuration the same subnet etc. We could also use a different TAP name for each of them and have the start script create the right TAP adapter if needed.

eswenson1 commented 1 year ago

I’d support that. Note: since I use NAT networking with pdp10-ka/kl/ks, it didn’t completely matter that all three machines used the same IP since this IP was hidden within a given emulator-to-ITS binding.

However, having distinct IPs is still the right thing due to having distinct host table addresses and to allow one ITS system to talk to another.

oilcan-productions commented 1 year ago

I agree I will create a proposal in the enhancement request to design a network that makes sense based on what I remember of the days old. Let's continue the discussion in #2159.

oilcan-productions commented 1 year ago

Nothing to decode it gives me a 0 (zero)

eswenson1 commented 1 year ago

Whoops, I left off a "4" at the end. The symbol is IMPUS4. Sorry 'bout that.

oilcan-productions commented 1 year ago

Whoops, I left off a "4" at the end. The symbol is IMPUS4. Sorry 'bout that.

sys$j impus4/?U?

eswenson1 commented 1 year ago

Hmmm works for me.

eswenson1 commented 1 year ago

TTY 12

  1. Lusers, Fair Share = 3% This is ES ITS. ejs$u Password:
    Incorrect. Password:
    Incorrect.
    ejs$u Password:
    Already logged in, so logged you in as EJS0 [OK] MONDAY, FEBRUARY 27, 2023 05:23:04 PM

ES>sys$j! ES>impus4/ HLLOM T,440126(P) =522715440126

oilcan-productions commented 1 year ago

TTY 12 2. Lusers, Fair Share = 3% This is ES ITS. ejs$u Password: Incorrect. Password: Incorrect. ejs$u Password: Already logged in, so logged you in as EJS0 [OK] MONDAY, FEBRUARY 27, 2023 05:23:04 PM

ES>sys$j! ES>impus4/ HLLOM T,440126(P) =522715440126

I guess something is different or not configured correctly.

TTY 0
You're all alone, Fair share = 8%
Welcome to ITS!

For brief information, type ?
For a list of colon commands, type :? and press Enter.
For the full info system, type :INFO and Enter.

Happy hacking!
mike$uKL: MIKE; MIKE MAIL - NON-EXISTENT DIRECTORY
 LOGIN  MIKE   0 17:48:23
sys$j!
*impus4/?U? 

I do get 0s for other values ie impus3/ HRL B,C

eswenson1 commented 1 year ago

Look at IMPUS3. Maybe I’m misremembering! Decode your IMPUS3 value.

eswenson1 commented 1 year ago

I was misremembering. This is what I have in my config for ES:

DEFOPT IMPUS3==<IPADDR 192,168,0,100>   ; IP address

And it's not the value AT IMPUS3, it is the value OF IMPUS3. So do:

ES>sys◊j!
ES>impus3=30052000144

This is what I get when I try to do something from memory.

oilcan-productions commented 1 year ago

Ok I get something back but when straight decoding into octets and then decimal the numbers don't make sense. Are the 4 octets octal, decimal or hex endocded?

eswenson1 commented 1 year ago
sys◊j!
ES>impus3=30052000144

30052000144 octal is:

000 011 000 000 101 010 000 000 000 001 100 100 binary.

When divided into right-justified octets, we get

0000 11000000 10101000 00000000 01100100

Discarding the top-most 4 bits, we have:

11000000 10101000 00000000 01100100

which, when turned back into decimal yields:

192 168 0 100

which is the IP address of ES.

oilcan-productions commented 1 year ago
sys◊j!
ES>impus3=30052000144

30052000144 octal is:

000 011 000 000 101 010 000 000 000 001 100 100 binary.

When divided into right-justified octets, we get

0000 11000000 10101000 00000000 01100100

Discarding the top-most 4 bits, we have:

11000000 10101000 00000000 01100100

which, when turned back into decimal yields:

192 168 0 100

which is the IP address of ES.

Thanks that is what I was looking for. So I now can see that the change in the config file did not work as intended. The IP address came out as 10.3.0.6 instead of 10.3.0.7 as I wanted it to be.

oilcan-productions commented 1 year ago

I have written script that helps with the conversion

#!/bin/bash

if [ $# -eq 0 ]; then
  echo "Please provide an IP address as an argument"
  exit 1
fi

octal=$1
ip=""
for i in {1..4}; do
  octet=$(echo $(( $octal >> 8*(4-$i) & 255 )))
  ip="$ip$octet."
done

echo ${ip%?}

When in ITS type sys$j then type impus3= and then feed the number you get with one leading 0 into the script i.e.

./ipconvert.sh 01200600006
10.3.0.6