_______________________________________________________________________________ INTRODUCTION TO THE PRIMOS OPERATING SYSTEM Part IV (Prime Network Communications) Written by Violence Copyright (C) 1989 The VOID Hackers _______________________________________________________________________________ Welcome to Part IV of my continuing series on the PRIMOS operating system. In this installment I plan on covering Prime's network communications capability and the associated utilites that you will find useful. Just like other popular mainframes, Primes too have networking capabilities and support many communications applications. Prime's main communications products are PRIMENET, RJE and DPTX. I will only be going over PRIMENET in this series, as discourses on RJE and DPTX are beyond the scope of this series. For a good discussion on RJE and DPTX I refer you to Magic Hassan's excellent article on the subject (appearing in Phrack, Inc., Issue 18). _______________________________________________________________________________ PRIMENET Available for all models of Prime computers, PRIMENET is Prime's networking software. In a nutshell, PRIMENET is like a Token Ring LAN network. PRIMENET is superior to most Token Ring LAN applications, however. To really be able to visualize how a PRIMENET ring network operates, you need to be familiar with the Token Ring type of LAN (Local Area Network). Token Rings are basically 'circles' of computers (referred to as 'nodes') that are electronically connec- ted to eachother. The individual Prime computers on the PRIMENET ring are res- ponsible for allowing remote users to be able to access them, however. PRIME- NET simply allows simplified communications between all the netted systems. In the following diagram you will see a sample PRIMENET ring with six Prime compu- ters located on it. Each of the individual nodes may or may not be connected to the telephone network, another PRIMENET ring, or one of the many public data networks (PDN's) like TELENET. Here is an example of the manner in which a PRIMENET ring is set up: PRIME PRIME \_/ PRIME-(_)-PRIME / \ PRIME PRIME Each node receives information from it's neighboring system and transmits it to the node immediately downstream on the ring. In this fashion any node can send information to any other node by sending it through some or all of the others. As I stated previously, PRIMENET ring networks are superior to most Token Ring LAN applications. But in what ways? Some of the features of a PRIMENET system are listed below: o Any terminal on the PRIMENET ring can login to any system on the PRIMENET ring. o Processes running at the same time on different systems can communicate interactively. o Transparent access to any system in the PRIMENET network without use of any additional commands or protocols. o Complete access and protocol support for packet-switched communications between PRIMENET systems and mainframes located on almost all Public Data Networks (PDN's). All these features allow you to do things like access disk partitions on system A from system B, rlogin from system A to system B (requiring ONLY an account on system B), and so forth. In this installment I will explain the many things that you can (and should) do with a PRIMENET-equipped system. _______________________________________________________________________________ CHECKING OUT A PRIMENET SYSTEM Should you get into a PRIMENET-equipped system, there are a few things that you should do to learn more about the intra-system links and such. In this section I will describe all the procedures that you will need to initiate in order for you to determine said information. The first thing you should do is to use three of the DSM (Distributed System Management) utilities (remember, I described the DSM in full in Part II). The three DSM utilities (external commands, really) you should invoke are: LIST_PRIMENET_LINKS - Lists PRIMENET status LIST_PRIMENET_NODES - Lists configured PRIMENET nodes LIST_PRIMENET_PORTS - Lists assigned PRIMENET ports The information returned to you by these external commands will describe the current PRIMENET setup in detail. You will obtain remote nodenames, PRIMENET addresses, link devices, gateway nodes, configured access, and whether or not the individual nodes require remote passwords for login. Here is a good examp- le of the results obtained from a LIST_PRIMENET_NODES: OK, list_primenet_nodes ** VOID ** Remote Primenet Link Gateway Configured Validation node address device node access required? +-----------------------------------------------------------------------------+ | 2600HZ | 99994738593624 | LHC00 | | remote login, RFA | no | | THRASH | 3110XXX00254 | PNC00 | | remote login, RFA | yes | | VIOLEN | 3110XXX00245 | SYNC00 | | remote login, RFA | yes | | PSYCHO | 99994734748381 | SYNC00 | | remote login, RFA | no | | SCYTH | 3110XXX00324 | SYNC00 | | remote login, RFA | no | +-----------------------------------------------------------------------------+ This assumes that you issued the LIST_PRIMENET_NODES command from the system VOID. It states that it is on a PRIMENET ring with 5 other systems (their names can be found in the "Remote node" column). Note the "Primenet address" column. It lists each systems NUA (Network User Address). Notice that three of the listed NUA's are on TELENET and two are on some bizarre network with a DNIC (Data Network Identification Code) of 9999. Well, the host system (VOID) is located on the TELENET PDN (DNIC 3110) and thus, the DSM knows that all 3110 systems are TELENET and displays their TELENET addresses. The other systems (those with the DNIC of 9999) are located on foreign PDN's and the DSM does not understand the addressing scheme (by default it only understands that of the host system) and thusly, displays their PRIMENET addresses. The "Link device" column tells about the hardware at the individual sites. The host system's device is not displayed, only those other nodes on the ring net- work. LHC00 is a LAN300 node controller. PNC00 is a PRIMENET node controller (PNC). SYNC00 denotes a synchronous communications line. It's not all that important (unless you are a hardware fanatic, that is). The "Configured access" and "Validation required?" columns display important information about the linked systems. If you don't see a "remote login" some- where then you cannot login to the system remotely (you can access it if one of the PRIMENET systems is linked with it's disk partitions, however). If you see a "yes" in the "Validation required?" column then some sort of remote password system has been installed and you are going to have a hard time getting in. As you can see, these DSM commands can be useful when attempting to gain access to other systems on a PRIMENET or LAN300 ring. The rest of this installment will be devoted to utilizing the information gained here to do such. _______________________________________________________________________________ THE PRIMENET RLOGIN FACILITY PRIMENET supports remote logins in the same manner that UNIX machines do. If, for example, a PRIMENET ring had 6 systems on it, 4 on TELENET and 2 in the UK then you could connect to those systems in the UK for free by connecting to one of the 2 U.S. systems and rloging into one of the UK Primes. Using our already defined PRIMENET ring, we'll connect to system PSYCHO from system THRASH. 214 XXX CONNECTED PRIMENET 22.0.0 THRASH login system system -on psycho This will log you in as SYSTEM/SYSTEM on the PSYCHO node (a Prime separate from the THRASH node). This can be VERY useful when you have lost all of your acc- ounts from one node on the PRIMENET ring and do not know the NUA for one of the other ring systems that you still have accounts on. _______________________________________________________________________________ NETLINK NETLINK is Prime's network utility. All users on a PRIMENET system will have access to this communications utility. NETLINK allows you to connect to: o Other Prime's on the same PRIMENET ring as the system you are on o Any system (UNIX, VAXen, etc) located on any of the world's networks NETLINK is a powerful utility and abuse will lead to your accounts removal, so be careful in how you use it. The best thing you can possibly do is, use it to connect to and hack on other systems in the PRIMENET ring. If you MUST use the NETLINK utility to call other systems on the world's PDN's try to call only the systems that accept collect calls. Now, let me tell you how to get into NETLINK and start doing stuff. At the 'OK,' prompt (or whatever it has been set to by the LOGIN.CPL file), type: OK, netlink If NETLINK is available, then you will see something like this herald: [NETLINK Rev. 22.0.0 Copyright (c) 1988, Prime Computer, Inc.] [Serial #serial_number (company_name)] After that floats across your screen you will be deposited at the NETLINK pro- mpt, which happens to be a "@" (Gee, how original). Now, you are all ready to begin NETLINKing. Time to learn how to connect to a system. Now, there are three types of comm- ands that all do basically the same thing, and that is connect you to a remote system. I'll go over the first two types right now and save the third type for a bit later. Depending on the status of the system you are trying to call, you will use either C (connect) or NC (connect, no reverse charging). C and NC both do the same thing, but C will make the connection for free (ie, the people who own this Prime won't get a bill) and NC will make the connection and your net use will be charged. Ok, a good comparison is calling NUA's on a PDN. If the NUA is "collectable" (a term I use to describe a system that accepts collect (ie, no ID required to make the connection) calls) then you will use the C command. Otherwise use the NC command. Almost all international calls will require an NC to connect. If you simply want to call a system that was listed in the LIST_PRIMENET_NODES list, then do this: c An example would be: c thrash If you wanted to call up a system located on the same PDN as the PRIMENET you are on is and the system accepts collect calls, then do this: c An example would be: c 21398 If you want to call up a system that is located on a PDN other than the PDN your PRIMENET is on, then do this: c : An example would be: C 2624:5890040004 Regardless of what you actually end up typing, you will get one of two things: a connect message or an error message. The connect message for the above exa- mple would look like this: 5890040004 Connected The connect message for when you connect to a Prime on the PRIMENET ring would look like this: THRASH Connected Ok, now you simply login (or hack) as you normally would. When you are done, logoff the system as usual. When you logoff, you'll get a message like this: 5890040004 Disconnected Occasionally you will either type the NUA incorrectly or the system you are calling is down. When that happens you will get an error message that looks like this: 5890040004 Rejecting Clearing code = 0000 Diagnostic code = 0010 (Packet type invalid) The error message states the network address you tried to call (less the DNIC), the Clearing code, the Diagnostic code and what the Diagnostic code means in English. At the end of this file is a complete list of all Clearing codes and all Diagnostic codes (for reference). Sub: Other Nets [BitNet etc..] Read: (1-30), Message # 26, (c/r)=Next Msg ?:OP 30/30: Prime file 9 of 10 Name: Predat0r #1 @5211 Date: Sun May 05 02:41:48 1991 From: Youth International Party Line (Kentucky) _________________________________ Sub: Other Nets [BitNet etc..] Read: (1-30), Message # 30, (c/r)=Next Msg ?:- 29/30: Prime file 8 of 10 Name: Predat0r #1 @5211 Date: Sun May 05 02:41:27 1991 From: Youth International Party Line (Kentucky) Now, if you want to abort a session prematurely (not recommended unless NETLINK screws up, and it does on occasions), then there are three things you can do: o Type CONTROL-P o Issue a BREAK sequence o Return to TELENET and do a force Disconnect (via the D command) Those are listed in the order you should try them in. CONTROL-P works most of the time. Doing a BREAK will usually (but not always) close your connection and return you to PRIMOS level. When you do a BREAK, you'll probably see: UUU@UUu QUIT. OK, Now press RETURN so you can clear out the unwanted CONTROL characters that are in the Prime's command line input buffer. Now, restart NETLINK as usual. If you are forced to drop to TELENET, then disconenct yourself and re-login. If your process is still online (about 50% of the time) then don't worry, it will be logged off due to inactivity between 10 and 15 minutes. If your proc- ess got slain then you're in good shape. Now, return to NETLINK as usual. Ok, now you know how to connect and disconnect from systems. Now it's time for the fun stuff, multipadding and other advanced commands. The escape character for NETLINK is the "@" character (same as with TELENET). Basically, you type: @ to return to NETLINK while online. Doing this will take you back to NETLINK command mode. It will leave the circuit open. To reconnect to the system, type: continue 1 You will then be reconnected to the system you were on. Now for a slight draw- back. If you are using TELENET or any other PDN that uses TELENET's software, then using the NETLINK escape sequence ( @ ) will take you back to TELENET network command level instead of back to NETLINK command level. There are two ways to correct this problem. The first is to type the following while in NETLINK: prompt $ This changes the NETLINK '@' prompt to a '$' prompt. Now just type $ to return to NETLINK. The other way is to utilize TELENET's ITI parameters to turn off the escape sequence. When you connect to the PRIMENET and login, then return to TELENET command level and type these two sequences of parameters ex- actly as they are shown: SET? 1:0,2:0,3:0,4:2,5:0,7:8,9:0,10:0,12:0,15:0 SET? 0:0,57:1,63:0,64:4,66:0,71:3 When you return to the "@" prompt, type CONT to return to the Prime. Then just enter NETLINK as usual. Now when you type @ you won't return to TELE- NET as you used to. Ok now, let's get into multipadding. What exactly is "multipadding" anyways? Well, you probably already know this, but it never hurts to repeat it. Multi- padding is what you are doing when you are connected to two or more systems simultaneously. Basically, NETLINK will allow you this capability. Although the NETLINK documentation states that you can only connect to four systems at one time, you can actually connect to more. At any rate, this is how you do it. When you first enter NETLINK (Note: you must set your prompt or the ITI parameters if you plan to do any NETLINKing from a PRIMENET located on TELENET or any other PDN that uses TELENET's software), connect to the first system by typing this: CALL <-- if it is located on the same PRIMENET ring CALL <-- if the system is located on the same PDN CALL : <-- if the system is located on a different PDN The CALL command will connect you to the system and you will remain in NETLINK command mode. Now, keep CALLing systems until you are done. Be forewarned that it can be confusing being connected to more than four systems. Ok now, the above CALL examples all assumed that the system that you are CALLing will accept collect calls. If this is not the case, then CALL it like this: call -fcty The "-FCTY" command stands for facility. Ok, when you use the "-FCTY" argument you are basically doing the same thing as you where when you were using the NC connect command. Each CALL that you make opens a circuit. The first circuit you connect to is known as circuit 1, and so forth. So when you are ready to connect to the first system, type: continue 1 To connect to the second open circuit, type: continue 2 and so forth. Should you try to connect to a closed circuit you will get the following error message: Circuit does not exist To switch between systems return to NETLINK command mode via @ and then CONTINUE to the appropriate circuit. To close a particular circuit, type: d # where # is the actual circuit number. An example would be D 1 or D 3. There must be a space between the D and the circuit number. To disconnect from all open circuits you can type: d all That's pretty much all there is to multipadding. It's nothing special, and not really that useful, but it can be interesting to connect to two or three chat systems and switch between them, or hang on a chat and leave to hack a system while remaining on the chat, etc. Lots of interesting things you can do. When you are done using NETLINK, type Q or QUIT to return to PRIMOS. If you would like to see the other commands (yeah, there are more) that I am not covering in this article, then type HELP. You got the basics down now, so go fiddle around with NETLINK and see what other strange things you can do. Texts for Clearing Cause Codes detected by NETLINK 0 0 DTE Originated 1 0 Busy 3 0 Invalid Facility Request 5 0 Network Congestion 9 0 Out Of Order 11 0 Access Barred 13 0 ot Obtainable 17 0 Remote Procedure Error 19 0 Local Procedure Error 21 0 Out Of Order 25 0 Refusing Collect Call 33 0 Incompatible Destination 41 0 Fast Select Acceptance Not Subscribed 57 0 Ship Absent 128 0 DTE Originated (Non-standard Diagnostic) 129 0 Busy (Private) 131 0 Invalid Facility Request (Private) 133 0 Network Congestion (Private/Routethrough) 137 0 Out Of Order (Private/Routethrough) 139 0 Access Barred (Private) 141 0 Not Obtainable (Private) 145 0 Remote Procedure Error (Private) 147 0 Local Procedure Error (Private/Routethrough) 149 0 RPOA Out Of Order (Private) 153 0 Refusing Collect Call (Private/Primenet) 161 0 Incompatible Destination (Private) 169 0 Fast Select Acceptance Not Subscribed (Private) 185 0 Ship Absent (Private) 193 0 Gateway-detected Procedure Error 195 0 Gateway Congestion Texts for Diagnostic Codes detected by NETLINK 0 0 No additional information 1 0 Invalid P(S) 2 0 Invalid P(R) 16 0 Packet type invalid 17 0 Packet type invalid - for state r1 20 0 Packet type invalid - for state p1 21 0 Packet type invalid - for state p2 22 0 Packet type invalid - for state p3 23 0 Packet type invalid - for state p4 24 0 Packet type invalid - for state p5 26 0 Packet type invalid - for state p7 27 0 Packet type invalid - for state d1 29 0 Packet type invalid - for state d3 32 0 Packet not allowed 33 0 Unidentifiable packet 36 0 Packet on unassigned logical channel 38 0 Packet too short 39 0 Packet too long 40 0 Invalid GFI 41 0 Restart with nonzero in bits 1-4, 9-16 42 0 Packet type not compatible with facility 43 0 Unauthorized interrupt confirmation 44 0 Unauthorized interrupt 48 0 Timer expired 49 0 Timer expired - for incoming call 50 0 Timer expired - for clear indication 51 0 Timer expired - for reset indication 52 0 Timer expired - for restart indication 64 0 Call setup or clearing problem 65 0 Facility code not allowed 66 0 Facility parameter not allowed 67 0 Invalid called address 68 0 Invalid calling address 69 0 Invalid facility length 70 0 Incoming call barred 71 0 No logical channel available 72 0 Call collision 73 0 Duplicate facility requested 74 0 Nonzero address length 75 0 Nonzero facility length 76 0 Facility not provided when expected 77 0 Invalid CCITT-Specified DTE facility 112 0 International problem 144 0 Timer expired 145 0 Timer expired - For interrupt confirmation 160 0 DTE-Specific Signal 163 0 DTE Resource constraint 239 0 User segment deleted 240 0 Time out on clear request 241 0 Time out on reset request 242 0 Time out on call request 243 0 Routethrough down 244 0 Routethrough - not enough memory 245 0 Routethrough - circuit timeout 246 0 Routethrough - call request looping 247 0 Routethrough protocol error 248 0 Network server logged out 249 0 Local procedure error Primenet internal 250 0 Host down 251 0 Illegal address 252 0 No remote users 253 0 System busy 254 0 System not up 255 0 Port not assigned _______________________________________________________________________________ OTHER USEFUL PRIMENET UTILITIES There are two other useful PRIMENET utilities, and these are MONITOR_NET and CONFIG_PRIMENET. In this section I will briefly detail these two utilities. CONFIG_NET is useful for obtaining such information as intra-system links (disk partitions that are shared by systems on a PRIMENET ring), remote login pass- words, and system NUA's. Just type: OK, config_primenet configfilename The 'configfilename' is the name of the PRIMENET configuration file (located in the *>PRIMENET* directory from MFD 0. You can REALLY screw up a PRIMENET ring with this utility, so be careful. You don't want to EVER save a modified con- figuration. Always answer such a question with NO. The only command you will really ever need to use is the LIST command. When you type LIST it will ask you what you want to list. Just type ALL and it will list all available info- rmation regarding the PRIMENET configuration. CONFIG_PRIMENET has a HELP fac- ility available, so use it. MONITOR_NET is a useful utility for network freaks. It allows the complete monitoring of the local PRIMENET ring network, all virtual circuits, synchro- nous lines and LAN300 status. You cannot monitor type-ahead buffers or any- thing, but you can learn quite a bit about the systems on the ring. It will allow you to discover which nodes on the PRIMENET ring/LAN300 do a high amount of data transfer, User ID's on individual systems (albeit no passwords), etc. Unfortunantly, MONITOR_NET is an emulation-dependant utility. Most Prime util- ities support the PT series of emulation (Prime Terminal), but most of you will not have access to a terminal program that supports it. Prime was smart in one important regard, and that is that not all of their customers will be using the PT emulation, so they made MONITOR_NET be able to understand other popular emu- lations, such as VT100. Defaultly, MONITOR_NET assumes you are using PT100 or a similar mode of PT emulation. To tell it that you are using VT100, you must use the -TTP argument (terminal type) on the PRIMOS command line. To invoke MONITOR_NET with VT100 emulation, you would type this: OK, monitor_net -ttp vt100 Upon invoking MONITOR_NET, the screen will clear and you will be presented with a menu of options. MONITOR_NET is really easy to use (just make sure you enter all the commands in UPPER case), so just play around with it. Well, that's the end of this installment. In the next (and final) part of this series I will detail the myriad of PRIMOS language compilers, interpreters, and translators. I will also detail some more interesting PRIMOS commands and give out some useful PRIMOS utilities (CPL programs). May the forces of darkness become confused on the way to your house. _______________________________________________________________________________ End of Part IV of the "Introduction to the PRIMOS Operating System" _______________________________________________________________________________