() (****************************************************************) () (Copyright (c) 1992, Carnegie Mellon University) () (All Rights Reserved) () (Permission is hereby granted to use, copy, modify, and) (distribute this software provided that the above copyright) (notice appears in all copies and that any distribution be for) (noncommercial purposes.) () (Carnegie Mellon University disclaims all warranties with regard) (to this software. In no event shall Carnegie Mellon University) (be liable for any special, indirect, or consequential damages) (or any damages whatsoever resulting from loss of use, data, or) (profits arising out of or in connection with the use or) (performance of this software.) () (****************************************************************) () (This file processed with symbol generator: 27-MAY-1991 17:20:02.55.) (IPNCP Utility\IPNCP_Chapter)

("A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for the insects."\ITALIC) (-- Lazarus Long\BOLD) (IPNCP commands) (COMMAND\DOUBLERUNNINGHEADS) (PARAMDEFLIST\COMMAND PARAMETERS) (IPNCP\\CMUIP_IPNCP_1) (IPNCPdescription of) (IP Net Control ProgramSee IPNCP) The IP Network Control Program (IPNCP) is an interactive CMU-OpenVMS/IP utility that accepts terminal commands to control, test, and monitor the internet and the CMU-OpenVMS/IP mechanisms which communicate with the internet. (IPNCP) ([command-line]) (NONE) IPNCP is a collection of network control and monitoring functions which have been gathered into one large utility. If invoked without arguments, the IPNCP will enter an interactive mode in which the user may enter individual commands at the IPNCP> prompt. (command-line) Any IPNCP command. If a command-line is given, the IPNCP will execute the command and then return control to DCL. (The Commands\CMUIP_IPNCP_2)

This section describes the commands available within IPNCP. (EXIT\\CMUIP_IPNCP_3) (IPNCPcommandsEXIT) Exits the IPNCP utility and returns control to DCL. You can also exit the IPNCP by typing (QUIT) or by using (CTRL-Z). (IPNCP> EXIT) () (NONE) (NONE) (FORCEX\\CMUIP_IPNCP_4) (IPNCPcommandsFORCEX) Forces the exit of a given process. (IPNCP> FORCEX) ([pid]) (/RCODE=code\/RCODE=SS$_NORMAL) You may need GROUP or WORLD privileges to execute this command. (Command Qualifiers) (/RCODE=code) The image will exit with the return code provided by this qualifier. (PID) Specifies the hexadecimal PID of the process which you would like to force to exit. This command will cause the specified process to terminate. The exit handler for that process will be invoked. Often this is preferable to merely stopping the process with the DCL STOP/ID command. Say, for instance, the IPACP has gotten itself wedged. The NETEXIT command won't work and doing a STOP/ID on it will bypass the exit handler, which means it's possible that processes without outstanding $QIO requests to the IPDriver will never see their I/O posted and they will wind-up in the RWAST state (which is a pain in the butt). (Help\\CMUIP_IPNCP_5) (IPNCPcommandsHELP) Obtain help by looking up info in the IPNCP help library. (IPNCP> HELP) ([Help_Line]) (NONE) (Help_Line) Topic upon which help is required. May be any valid IPNCP command. Typing HELP at the IPNCP> prompt invokes the IPNCP Help facility presented in the standard VMS help format. Typing HELP followed by a topic will give you specific help on that topic. Here are some examples of the HELP command. (IPNCP>) ( HELP) Typing HELP with no parameters will invoke the standard VMS help facility and display information about the IPNCP. (IPNCP>) ( HELP NETSTAT /MEM) Typing HELP followed by an IPNCP command will give you information about that particular command. (HOSTNM\\CMUIP_IPNCP_6) (IPNCPcommandsHOSTNM) Lookup a domain name by sending a request to the name resolver. (IPNCP> HOSTNM) (Host_Name) (NONE) (Host_Name) May be either a domain name (ie. NO1.ANDREW.CMU.EDU), a partial domain name (ie. NO1), or an internet literal (128.2.232.69) The HOSTNM command, given the name or address of an internet host, will find both the full domain name and the IP address of that host. If only a partial domain name is given, the name resolver software will try to the resolve the name by appending various suffixes to it. (IPNCP>)( hostnm no1) (Host 'NO1' Full Name = 'NO1.ANDREW.CMU.EDU') ( Address [1] = 128.2.232.69) (IPNCP>) In this example we translate a partial Domain Name into an IP address. (IPNCP>)( hostnm 128.2.232.69) (Host '128.2.232.69' Full Name = 'NO1.ANDREW.CMU.EDU') ( Address [1] = 128.2.232.69) (IPNCP>) Here we perform the inverse translation. (NAMRES\\CMUIP_IPNCP_7) (IPNCPcommandsNAMRES) Send a control message to the NamRes process mailbox. (IPNCP> NAMRES) ((stacked\braces) LOG [event-mask] EXIT [exit-value] INIT START STOP DUMP ) (NONE) You must have system privileges to execute this command. This command will build and send a message to the CMU-OpenVMS/IP Name Resolver demon (NamRes). There are currently five types of messages defined which are shown in (IPNCP_MBXMSGS). (NamRes MBX message types\IPNCP_MBXMSGS) (2\18) (Type\Meaning) (LOG [event-mask]\Set logging mask to ) (EXIT [exit-value]\NamRes should exit with code ) (INIT\NamRes should re-initialize itself) (START\The IPACP has started up) (STOP\The IPACP has shut down) (DUMP\Tell NamRes to dump contents of cache to logfile.)

The NamRes process currently ignores the INIT message. (NETEXIT\\CMUIP_IPNCP_9) (IPNCPcommandsNETEXIT) Kill the IPACP process. (IPNCP> NETEXIT) () (NONE) You must have PHY_IO privilege to execute this command. (NONE) Ask the IPACP to shutdown in a friendly manner. This is perhaps the most frequently used command. (NETLOG\\CMUIP_IPNCP_10) (IPNCPcommandsNETLOG) Selectively enable various logging facilities. (IPNCP> NETLOG) ([State-List]) (/DEBUG=mask\None.) You must have PHY_IO privilege to execute this command. (State-List) A comma-separated list of event-types which should be recorded in the IPACP's log file. See text for a table of event-types. Selectively enable various logging facilities in the IPACP. The IPACP writes out a log of its activities into a file described by the system logical, "INET$LOG". The information that is written to this file is determined by the flags which are set in the logging mask. This command allows system manager to set the logging mask. (IPNCP_EVENTS) shows the different types of events.

(IPNCP event types\IPNCP_EVENTS) (2\15) (Type\Meaning) (PHYSICAL\Physical Network Packets) (ARP\Address Resolution Packets) (IP\Internet Protocol) (TCP\Transmission Control Protocol) (TCB_DUMP\Dump contents of TCBs) (USER\User I/O requests) (TCB_STATE\TCB State Changes) (TCB_CHECK\TCB Checking) (ERROR\TCP Error Logging) (ICMP\Internet Control Message Protocol Packets) (UDP\User Datagram Protocol Packets) (IPNCP>)( NETLOG TCP,TCB_DUMP,USER,TCB_STATE) (%IPNCP-S-LOG_ENA, IP Log file tracing enabled,event_mask = 0000078) (IPNCP>)( NETLOG /DEBUG=%X01778) (%IPNCP-S-LOG_ENA, IP Log file tracing enabled,event_mask = 0001778) (IPNCP>)( NETLOG) (%IPNCP-S-LOG_DIS, IP Log file tracing Disabled) (NETSTAT\\CMUIP_IPNCP_12) (IPNCPcommandsNETSTAT) Print information about the state of the IPACP. (IPNCP> NETSTAT) ([Connection-ID]) (/STATISTICS\None.) (/MEMORY\None.) (/ARP\None.) (/UDP=conn-id\None.) (/ICMP=conn-id\None.) You must have PHY_IO privilege to execute this command. The NETSTAT command, when invoked without any parameters or qualifiers, will display a complete list of all IP connections to the local host. The information is presented in three parts: TCP, then UDP, and finally ICMP connections. By using the parameters and qualifiers listed below, the user may display more information about any particular connection. They may also print out various statistics about memory usage and data through-put. (Connection-ID) Specifies a specific TCP network connection to print information about. (Command Qualifiers) (/STATISTICS) Display the various statistics of the IPACP, such as total packet counts, total data bytes, uptime, number of packets with bad checksums, and other information. (/MEMORY) Display information about the memory usage of the ACP and the buffers allocated to various functions. (/ARP) Display the mappings of IP addresses to physical network addresses. (/UDP=conn-id) Print out more information about a particular UDP connection. (/ICMP=conn-id) Print out more information about a particular ICMP connection. (IPNCP>)( NETSTAT) (3 TCP connections found) (IDX Address Local Host Port Foreign Host Port State) ( 1 00049CA8 128.2.232.69 0.21 128.2.232.4 4.255 ESTABLISHED) ( 2 0006E028 128.2.232.69 0.20 128.2.232.4 5.0 TIME-WAIT) ( 3 00070250 128.2.232.69 0.20 128.2.232.4 5.1 TIME-WAIT) (1 UDP connection found) (IDX Address Local Host Port Foreign Host Port State) ( 1 00049B78 0.0.0.0 27.32 0.0.0.0 0.0 00000001) (0 ICMP connections found) This is an example of the basic NETSTAT display listing all known connections. (IPNCP>)( NETSTAT 2) (IDX Address Local Host Port Foreign Host Port State) ( 2 0006E028 128.2.232.69 0.20 128.2.232.4 5.0 TIME-WAIT) ( Owner: 00000195 Last State: FIN-WAIT-2) ( IRS: 20E5EF01 RCV.NXT: 20E5EF03 RCV.WND: 4096) ( ISS: 68A00000 SND.NXT: 68A00A81 SND.WND: 4096 SND.UNA: 0) ( NRQ: 0 NFQ: 0 RXQ: 0 URQ: 0 USQ: 0) ( RTT: 364 RTO: 9:09:22.88 CTO: 0:00:00.00) TCP connections may be examined in detail by placing their index (IDX) number on the command line. (IPNCP>)( netstat/stat) (IPACP PID: 0001001C Uptime: 2 14:34:33.32 User IORQs: 21403) (Opens: Active: 154 Passive: 33 Servers forked: 75) (IP forwards: 0) (RCV Total segs: 24425 Total data bytes: 1673611) ( Bad cksum: 0 Out of window: 17 Dups: 154 BadSeq: 0) ( Future segs: 20 Used: 16 Dropped: 3 Dups: 1) (SND Total segs: 21974 Total data bytes: 4654217) ( Retransmits: 60 Repacketizer: 0) This isn't quite everything you need to know, but it's a good portion of it. (IPNCP>)( netst /mem) (Item Alloc Free Overrun Max overrun) (QBlks 30 29 0 0) (Uarg blks 20 18 0 0) (Control segs 0 0 0 0) (Max size segs 20 20 0 0) (Net recv bufs 30 26 0 0) This display is useful for monitoring memory usage. If you have a problem with persistent memory over-runs, adjust the memory pre-allocation configuration in the internet.config file. (IPNCP>)( netst /udp=1) (IDX Address Local Host Port Foreign Host Port State) ( 1 000A23B0 0.0.0.0 41.127 0.0.0.0 0.0 00000001) ( Owner: 00000065 NRQ: 0 URQ: 1 Flags: WLD) UDP connection #1 is usually the Name Resolver. (NOOP\\CMUIP_IPNCP_13) (IPNCPcommandsNOOP) Don't do anything. (IPNCP> NOOP) () (NONE) (NONE) (IPNCP>)( noop) (IPNCP>) (PING\\CMUIP_IPNCP_14) (IPNCPcommandsPING) Test connectivity to an internet host by sending ICMP echo requests. (IPNCP> PING) (hostname,[data-length],[number]) (Command Qualifiers) (/VERBOSE\None.) This command generates a stream of ICMP Echo Request packets, sends them out to the machine specified in (hostname), and then waits a period of time for replies to come back. (hostname) Address of host to be "pinged"; either a domain name, or an IP address. (data-length) Size of packet to be sent. (number) Number of "pings" to shoot at remote host. (Command Qualifiers) (/VERBOSE) Display as much information as possible about the transaction. (RDATE\\CMUIP_IPNCP_15) (IPNCPcommandsRDATE) Set the system time using info from another Internet host. (IPNCP> RDate) (hostname) (NONE) You must have OPER privilege to execute this command. (hostname) Address of host to ask date of; either a domain name, or an IP address. (RRFETCH\\CMUIP_IPNCP_16) (IPNCPcommandsRRFETCH) Translate a Domain Name into a resource-record (RR). (IPNCP> RRFETCH) (domain-name) (Command Qualifiers) (/RAW\) (/rr-type\) (domain-name) A fully-specified domain name about which information is desired. This command simply asks the CMU-OpenVMS/IP Domain Name Resolver (NamRes) to look-up the specified resource-records for a given domain. The definitive source of information on resource-records and the Domain Name system is the Internet RFC #1035. (Command Qualifiers) (/RAW) Display RR's as a byte stream, unformatted. (/ADDR) (/NS) Fetch and display the NS resource-record to the given domain. This record contains the Name Server for the domain. (/MD) Fetch and display the MD resource-record to the given domain. This record contains the Mail Deliverer for the domain. (Obsolete) (/MF) Fetch and display the MF resource-record to the given domain. This record contains the Mail Forwarder for the domain. (Obsolete) (/CNAME) Fetch and display the CNAME resource-record to the given domain. This record contains the Canonical Name of the domain. (/SOA) Fetch and display the SOA resource-record to the given domain. This record contains the Start-Of-Authority for the domain. (/MB) Fetch and display the MB resource-record to the given domain. This record contains the Mailbox for the domain. (Experimental) (/MG) Fetch and display the MG resource-record to the given domain. This record contains the Mail Group for the domain. (Experimental) (/MR) Fetch and display the MR resource-record to the given domain. This record contains the, uh... the, uh... I'm not sure what it contains. (/NULL) Fetch and display the NULL resource-record to the given domain. This record can contain just about anything. (Experimental) (/WKS) Fetch and display the WKS resource-record to the given domain. This record contains the Well Known Services for the domain. (/PTR) Fetch and display the PTR resource-record to the given domain. This record contains another name for the domain. (/HINFO) Fetch and display the HINFO resource-record to the given domain. This record contains the operating system and hardware type of the domain. (/MINFO) Fetch and display the MINFO resource-record to the given domain. This record contains Mail Information for the domain. (/MX) Fetch and display the MX resource-record to the given domain. This record contains the Mail Exchange for the domain. All mail for the given domain should be directed towards the domain in this RR. (Spawn\\CMUIP_IPNCP_17) (IPNCPcommandsSPAWN) Spawn a CLI process. (IPNCP> SPAWN) (command-line) (NONE) (command-line) A command string to be executed in the spawned CLI. (STARTUP\\CMUIP_IPNCP_18) (IPNCPcommandsSTARTUP) Create a running NamRes and/or IPACP process. (IPNCP> STARTUP) () (NONE) You must have system privileges to execute this command. (Command Qualifiers) (/IPACP) Startup the IPACP. (/NAMRES) Startup the Name Resolver. This command provides an easy way to startup the IPACP and NamRes processes on the fly. It uses the $CREPRC system service to create the processes with the appropriate privileges and quotas. (SHUTDOWN\\CMUIP_IPNCP_19) (IPNCPcommandsSHUTDOWN) Stop a running IPACP or NamRes process. (IPNCP> SHUTDOWN) () (NONE) You must have system privileges to execute this command. (Command Qualifiers) (/IPACP) Stop the IPACP. (/NAMRES) Stop the Name Resolver. Not yet implemented.

This command provides a convenient way to stop the IPACP and NamRes processes on the fly. (TRACEROUTE\\CMUIP_IPNCP_20) (IPNCPcommandsTRACEROUTE) Explore connectivity to an internet host. (IPNCP> TRACEROUTE) (host-name) (Command Qualifiers) (/MaxTTL=n\60) This command probes the network checking the path between your system and the remote system specified as the parameter (host-name). (IPNCP> )(TRACEROUTE EFD.LTH.SE) ( TraceRoute to host EFD.LTH.SE (MaxTTL=30)). ( ) (TraceRoute to EFD.LTH.SE (130.235.48.4)). ( 1 PSCMU-FW.PSC.EDU (128.2.1.1) 20 ms 20 ms 20 ms) ( 2 epsp.nss5.psc.edu (192.5.146.254) 70 ms 40 ms 20 ms) ( 3 Pittsburgh.PA.NSS.NSF.NET (129.140.5.75) 50 ms 20 ms 30 ms) ( 4 Ithaca.NY.NSS.NSF.NET (129.140.74.5) 50 ms 60 ms 60 ms) ( 5 Ithaca.NY.NSS.NSF.NET (129.140.10.74) 50 ms Ithaca.NY.NSS.NSF.NET) ((129.140.10.10) 60 ms 50 ms) ( 6 ICM-ITHACA.CIT.CORNELL.EDU (192.35.82.98) 70 ms 50 ms 60 ms) ( 7 (148.52.1.2) 340 ms 390 ms 530 ms) ( 8 se-gw.nordu.net (192.36.148.21) 450 ms 250 ms 450 ms) ( 9 sthlm-gw.sunet.se (192.36.125.10) 350 ms 280 ms 180 ms) (10 (192.36.124.1) 270 ms 750 ms 600 ms) (11 efd.lth.se (130.235.48.4) 670 ms ! 630 ms ! 470 ms !) (Bye bye)

This shows the routing between our system (CMUTEK.CC.CMU.EDU) and a remote system (EFD.LTH.SE) which is pretty far away. (UNIXSTAT\\CMUIP_IPNCP_21) (IPNCPcommandsUNIXSTAT) Works (maybe) just like the Unix NETSTAT program. Provides basic connection information about active TCP connections. (IPNCP> UNIXSTAT) () (NONE) Gives the requesting user information about connections established (or ready to be established) to or from your system. (IPNCP> )(UNIXSTAT) (Active connections) (Proto Owner Local host Foreign host State) (tcp 20400063 JUPITR.smtp JUPITR.CC.CMU.EDU.0 Listen) (tcp 20400121 JUPITR.telnet CMUTEK.CC.CMU.EDU.19355 Established) (tcp 2040005a JUPITR.6000 JUPITR.CC.CMU.EDU.0 Listen)

Three connections are shown, one currently connected (for an incoming TELNET session) and two waiting, one for SMTP and another for X-windows). (VERSION\\CMUIP_IPNCP_22) (IPNCPcommandsVERSION) Display information about this IPNCP version. (IPNCP> VERSION) () (NONE) (NONE) (IPNCP>)( version) () (Current IPNCP version is 01.0a.) () (IPNCP>)