Chapter 4: Administering SCO IPX/SPX

Table of contents

Chapter 4

Administering SCO IPX/SPX

IPX/SPX is the suite of protocols underlying the Novell network operating system, NetWare. SCO provides this protocol as part of SCO OpenServer Desktop and Enterprise Systems. SCO IPX/SPX allows you to connect SCO systems and NetWare networks; it supports remote logins from NetWare clients and distributed applications over NetWare networks and acts as the underlying transport protocol for SCO Gateway for NetWare.

The Novell NetWare network operating system allows the sharing of information among desktop computers and network servers over a local area network (LAN). NetWare can be divided into three components: NetWare server, NetWare clients, and transport protocol.

NetWare server

This component controls operation of the network and provides the core functionality for the network file system, memory management and scheduling of processing tasks such as file and print-sharing and handles functionality common to many users, such as file- and record-locking and database queries. 

NetWare clients

This component deals with end-user-intensive activities. 

Transport protocol

This component facilitates communication between the server and the clients. 


This chapter helps you:

For a description of additional helpful documentation about IPX/SPX, see ``For more about IPX/SPX''. For information on installing and configuring IPX/SPX, see Chapter 1, ``Configuring network connections'' in Configuring Network Connections.

How IPX/SPX works

SCO IPX/SPX provides interoperability between DOS Workstation NetWare clients and SCO OpenServer systems over the NetWare network. It also provides the transport protocols used by SCO Gateway for NetWare to communicate with NetWare file and print servers. It eliminates the need for multiple protocol stacks in a Novell network, providing greater efficiency and lower administrative overhead. SCO IPX/SPX consists of the three components: kernel, user, and DOS. 

Kernel component

This component is comprised of the following drivers:


User component

This component includes the following protocols by which the SCO OpenServer system can advertise itself to NetWare clients: 

DOS component

This component consists of an executable that allows a DOS client to establish a connection to the UNIX server. The NVT.EXE executable is a terminate-and-stay-resident program (TSR) and acts as a network redirector, allowing a DOS end user to establish a connection with an NVT server. For more information about installing the DOS component and using NVT.EXE, see ``Installing and using the DOS component''. 

In addition to NVT.EXE, the DOS client must be running a NetWare protocol support module to provide the IPX protocol support and the device driver for the LAN card used in the DOS client machine. Currently, there are two prevalent IPX protocol modules and a terminal emulator provided by Novell:

The remainder of this overview discusses:

Protocols

NetWare client-server communications are governed by a series of protocols. These protocols can be divided by functionality: 

The protocols that make up the SCO IPX/SPX stack may be installed as a co-resident with other SCO networking protocols: Please refer to ``Protocol stacks'' in Configuring Network Connections for more information on LAN card and protocol stack coexistence. 


The following table describes which protocols are used and supported by SCO IPX/SPX:

Table 4-1 Protocols supported by SCO IPX/SPX

 --------------------------------------------------------------
 Protocol                             Supported    API provided
 --------------------------------------------------------------
 Internetwork Packet Exchange (IPX)   yes          yes
 Sequenced Packet Exchange (SPX)      yes          yes
 Service Advertising Protocol (SAP)   yes          yes
 Routing Information Protocol (RIP)   yes          no
 NetWare Core Protocol (NCP)          yes          no
 Novell Virtual Terminal (NVT)        yes          yes
NCP is supported by SCO IPX/SPX but is only used by SCO Gateway for NetWare.
The information presented in the following sections is technical in nature and is most valuable to those individuals designing, implementing, or administering NetWare networks. It is also useful to individuals and organizations developing applications specifically for NetWare. The sections provide: These sections explain the packet structures defined by each protocol, and the algorithms followed by workstations, routers, and file servers when transmitting or receiving packets.

For detailed information on Novell networks, see the Novell documentation.


NOTE: Some of the information in the following sections does not apply directly to SCO IPX/SPX. It does, however, describe the environment in which IPX/SPX operates. You should be familiar with this environment to make effective use of IPX/SPX.

How protocols work

Most computer networks require that information transferred between two nodes be divided into blocks, called packets. These packets make the information more manageable for sending and receiving nodes, as well as any intermediate nodes (bridges or routers). In addition to the information, or data, that is being transferred, each packet contains control information used for error-checking, addressing, and other purposes.

The protocols used on the network define the content of this control information. In most cases, multiple protocols exist within a packet; each protocol defines a different portion of the control information for the packet, and the control information for each protocol serves a different purpose. 

When multiple protocols are used, the control information for the highest level protocol is placed around the data first, then the control information for each subsequent protocol in the protocol stack is added to the beginning and/or end of the packet. This process is called ``enveloping'' and is illustrated in Table 4-2. 

Table 4-2 Example of multiple protocols in a packet

 ---------------------------------------------
| Header Control Information for Protocol #3 |
|--------------------------------------------|
| Header Control Information for Protocol #2 |
|--------------------------------------------|
| Header Control Information for Protocol #l |
|--------------------------------------------|
|                    Data                    |
|--------------------------------------------|
| Trailer Control Information for Protocol #l|
|--------------------------------------------|
| Trailer Control Information for Protocol #2|
|--------------------------------------------|
| Trailer Control Information for Protocol #3|
|--------------------------------------------|

The enveloping pattern illustrated in the previous table is common in the computer communications industry. However, the tasks assigned to each protocol in the packet differ for different vendors' implementations. In an effort to standardize the definition of protocols -- and therefore make the networking implementations of different vendors interoperable -- several standards organizations have been formed by governments and corporations. One of these, the International Standards Organization (ISO), has developed a model, called the Open Systems Interconnection (OSI) model, that specifies how protocols should be defined in the future.

The OSI model separates the functions required for effective computer communications (such as error-checking and addressing) into the following seven categories, or layers, presented below from the highest to the lowest:

Application layer
The content of the application layer is up to the individual user. 

Presentation layer
Performs functions that are requested sufficiently often to warrant finding a general solution for them. 

Session layer
The user's interface into the network.


Transport layer
Accepts data from the session layer, splits it into smaller units if necessary, passes these to the network layer, and ensures that the pieces all arrive correctly at the other end.

Network layer
Controls the operation of the subnet. 

Data link layer
Takes a raw transmission facility and transforms it into a line that appears free of transmission errors to the network layer. 

Physical layer
Concerned with transmitting raw bits over a communication channel. 

Having been defined prior to the finalization of the OSI model, the protocols used by NetWare do not all correspond exactly to the OSI model's definitions. NetWare uses a variety of protocols. Some of these protocols were developed specifically for NetWare; some are used throughout the networking industry. The protocols required for communications between NetWare workstations and file servers are:

Medium-access protocols
Defines the addressing that distinguishes each node an a NetWare network. 

Internetwork Packet Exchange (IPX)
Defines the addressing schemes used on a NetWare network. 

Sequenced Packet Exchange (SPX)
Provides security and reliability to the IPX protocol. 

Routing Information Protocol (RIP)
Facilitates the exchange of routing information on a NetWare network. 

Service Advertising Protocol (SAP)
Allows service-providing nodes to advertise their services and addresses. 

NetWare Core Protocol (NCP)
Defines the connection control and service request encoding that make possible the interaction between clients and servers.

These protocols are described in greater detail in the following sections.

Figure 4-1 provides a relative mapping of the NetWare protocols -- also called the NetWare protocol stack -- to the OSI model; in actuality, a direct correlation to the layer boundaries of the two architectures does not exist. The NetWare protocols follow the enveloping pattern previously shown in Table 4-2. More specifically, the upper level protocols (NCP, SAP, and RIP) are enveloped by IPX, and IPX is subsequently enveloped by a medium-access protocol header and trailer. 

Figure 4-1 Mapping of NetWare protocols to OSI model

Medium-access protocols

Medium-access protocol implementations define the addressing that distinguishes each node on a NetWare network. This addressing is implemented within the hardware of each network interface controller (NIC).

A number of medium-access protocols are defined, many of which are used with NetWare. The focus within this document is on the implementations of medium-access protocols, the most common of which are:

The 802.x protocols are defined by the Institute of Electrical and Electronic Engineers (IEEE). Ethernet version 2.0 was co-developed by XEROX and Digital Equipment Corporation. These medium-access protocol implementations are primarily concerned with the transport of packets from one node to another on a single network segment. 

To move a packet to the proper node on a network, a medium-access control (MAC) header is placed at the beginning of every packet. This header contains address fields for both the source and destination nodes to indicate where the packet originated and where it is going. Each NIC checks the destination address in the MAC header of each packet sent on the network segment to which it is attached. If the destination address matches the NIC's own address, or if the packet is a broadcast packet intended for all nodes, the NIC will copy the packet. 

Error-checking

Two types of error-checking can be performed:

Medium-access protocols provide bit-level error-checking in the form of a cyclic redundancy check (CRC). This CRC, which is appended to every packet that is transmitted, assures that virtually all of the packets successfully received will be free of corruption. In view of this level of integrity, NetWare does not provide any additional bit-level error-checking within any of its upper-level protocols. Bit-level error-checking and node-addressing are provided by the majority of medium-access protocol implementations.

Internetwork Packet Exchange (IPX)

The Internetwork Packet Exchange (IPX) protocol was adopted by Novell from the Xerox Network System (XNS) Internet Datagram Protocol. IPX defines:

It relies on the network hardware for the definition of node addressing.

IPX is a datagram-based, connectionless protocol. Datagram-based, connectionless protocols do not require an acknowledgment for each packet sent. Packet acknowledgment, or connection control, must be provided by protocols above IPX. 

Internetwork addressing

The basis of IPX addressing is the network number assigned during the installation and configuration process. Each network segment on a NetWare internetwork must be assigned a unique network number (sometimes called the external network number). Each server (SCO or NetWare) must also be assigned a unique internal network number. These network numbers are used by routers to forward packets to their final destination segment.

Figure 4-2 illustrates how internal and external network numbers are used. 

Figure 4-2 Network numbering



Intranode addressing

The basis of IPX intranode addressing is socket numbers. Since several processes normally operate within a node, socket numbers provide a means by which each process can distinguish itself to IPX. When a process needs to communicate on the network, it requests that a socket number be assigned to it. Any packets IPX receives that are addressed to that socket are passed on to the corresponding process. Hence, socket numbers provide a quick method of routing packets within a node.

Novell has reserved several socket numbers for specific purposes. These are shown in Table 4-3. Because socket numbers are internal to each node, several workstations can use the same socket number at one time without any fear of confusion. 

Table 4-3 Socket numbers used in the NetWare environment

 ----------------------------------------------------
 Socket number   Description
 ----------------------------------------------------
 451h            NetWare Core Protocol
 452h            Service Advertising Protocol
 453h            Routing Information Protocol
 455h            NetBIOS
 456h            Diagnostics
 4000h-6000h     Ephemeral sockets; used for
                 interaction with file servers and
                 other network communications



IPX packet structure

The network, node, and socket addresses for both the destination and the source are held within the packet's IPX header. The IPX header is placed after the MAC header and before the packet data. (Packet data usually contains the header of a higher-level protocol.) Figure 4-3 illustrates the structure of an IPX packet on an 802.3 network. 

Figure 4-3 IPX packet structure

Sequenced Packet Exchange (SPX)

The Sequenced Packet Exchange (SPX) protocol works with the Internetwork Packet Exchange protocol (IPX) to provide reliable delivery. SPX guarantees that packets are received intact, in the order they were sent, and eliminates duplicate packets.

IPX receives packets from the network and passes on those for SPX to handle.

SPX requests verification from the destination module for each packet sent. By checking a verification value against a value calculated before transmission, SPX ensures that the packet arrives intact. In the case of a missing packet, the transmitting SPX module retransmits, and continues to do so up to a program-specified number of retries.

SPX does not provide group broadcast support; packets can only be sent to a single session partner. SPX can detect if its partner has disappeared.

SPX uses IPX and a medium-access protocol for its transport.

SPX packet structure

The SPX packet structure is shown in Figure 4-4. This structure is enveloped within the data area of IPX. 

Figure 4-4 SPX packet structure

An SPX packet contains the following fields:

Connection control
Indicates whether the packet is a system or application packet.

Data stream type
Specifies the type of data found in the packet.

Source connection ID
Identification number assigned to the local transport endpoint.

Destination connection ID
Identification number assigned to the remote transport endpoint.

Sequence number
Number of packets exchanged in one direction on the connection.

Acknowledgement number
Sequence number of the next packet SPX expects to receive.

Allocation number
Used to implement flow control between communicating applications. SPX only sends packets until the local sequence number equals the allocation number on the remote machine.

Routing Information Protocol (RIP)

The Routing Information Protocol (RIP) facilitates the exchange of routing information on a NetWare internetwork. Like IPX, the RIP protocol was derived from XNS. However, an extra field, ``Number of ticks'', was added to the packet structure to improve the decision criteria for selecting the fastest route to a destination. This change prohibits the straight integration of NetWare's RIP with strictly conforming XNS implementations. 

RIP broadcasts

The broadcast of RIP packets allows:

For more information on routers and the functions they perform, see the Novell NetWare documentation.


RIP packet structure

The RIP packet structure is shown in Figure 4-5. This structure is enveloped within the data area of IPX. 

Figure 4-5 RIP packet structure

The packet contains the following fields:

Operation
indicates whether the packet is a request or a response. A 1 in this field indicates a request; a 2 indicates a response. 

Network Number
Identifies the network segment the packet will be sent to.


Number of Hops
Indicates the number of routers the packet must pass through to reach a network number. 

Number of Ticks
Indicates how much time is required for the packet to reach the specified network segment. The number in this field is always at least one. (A ``tick'' is approximately 1/18 of a second; there are 18.21 ticks in a second.)

The ``Operation'' field can be followed by one or more sets of information, each consisting of a network number and the number of hops and ticks to that network number. A RIP packet can contain a maximum of 50 sets of network number information. 

The original XNS definition of the RIP did not include the ``Number of Ticks'' field. The ``Number of ticks'' field was added by the developers of NetWare so that the NetWare shell could estimate how long it should wait for a response from a file server. Also, if multiple routes exist to a network number, a router uses the route with the smallest number of ticks when forwarding packets to that network number. 

If a RIP packet is a request for information, only the ``Network Number'' field applies; the ``Number of hops'' and ``Number of ticks'' fields are essentially nulled out. A response packet can be either a reply to a request from a router or workstation or a periodic broadcast by a router.

Service Advertising Protocol (SAP)

The Service Advertising Protocol (SAP) allows service-providing nodes -- such as file servers, print servers, gateway servers, and application servers -- to advertise their services and addresses. SAP makes the process of adding and removing services on an internetwork dynamic. As servers are booted up, they advertise their services using SAP; when they are brought down, they use SAP to indicate that their services will no longer be available. 

SAP broadcasts

Through SAP, clients on the network can determine what services are available on the network and obtain the internetwork address of the nodes (servers) where they can access those services. This is an important function, because a workstation cannot initiate a session with a service provider without first having that server's address. 


A gateway server, for instance, will broadcast a SAP packet every 60 seconds (the period defined for all servers advertising with SAP) onto the network segment to which it is connected. The SAP agent in each router on that segment copies the information contained in the SAP packet into an internal table called the server information table. Because the SAP agent in each router keeps up-to-date information on available servers, a client wanting to locate the gateway server can access a nearby router for the correct IPX address.


SAP packet structure

Like RIP, SAP uses IPX and a medium-access protocol for its transport. Figure 4-6 illustrates the structure of a SAP packet. 

Figure 4-6 SAP Packet Structure

A SAP packet contains the following fields:

Operation
Specifies the operation that the packet is performing. 

Service type
Specifies the type of service offered by the server. 

Server name
Specifies the name of the broadcasting server. 

Network address
Specifies the network number of the broadcasting server. 

Node address
Specifies the node number of the broadcasting server. 

Socket address
Specifies the socket number of the service provider. 

Hops to server
Specifies the number of hops to the broadcasting server.

The ``Operation'' field can specify the following operations:

There can be one or more sets of fields following the ``Operation'' field. If the packet contains information about more than one server, it will contain more than one set of fields (n sets of fields). Each SAP packet can contain information about up to seven servers.

Packet delivery

The successful delivery of a packet over a NetWare network depends on the proper addressing of the packet. To send a packet, the sender must know the full IPX address (network, node, and socket) of the recipient. The address is specified in the packet's medium-access protocol and IPX protocol address fields. Once the sender has the recipient's address, it can address the packet. The way the MAC header of that packet is addressed, however, depends on the network's topography. Specifically, it depends on whether the sending node and the destination node are separated by a router. The effect of network topography on IPX addressing is discussed in the following sections.

Network interconnection devices

Segments on a network can be interconnected using a:

repeater
which regenerates the signal of one segment onto one or more other segments. 

bridge
which retransmits packets received on one segment onto another segment. 

router
which receives its instructions for forwarding a packet from one segment to another from a network layer protocol.

Figure 4-7 illustrates the relationship between repeaters, bridges, and routers. Each is described in greater detail in subsequent sections. 

Figure 4-7 OSI Representations of Network Devices




Repeaters

A repeater is a physical layer (OSI model) device that amplifies the signal of one segment onto one or more other segments. Repeaters are used to extend the maximum possible distance between end nodes on a segment. They are completely transparent to the sending and receiving nodes. 

Bridges

A bridge is a data link layer device used to interconnect cable segments locally or over wide area network links. Instead of simply amplifying a signal as repeaters do, bridges retransmit packets received on one segment onto another segment. Bridges are considered data link layer devices because they examine the data link (or MAC header) portion of packets before retransmitting them onto other segments. There are two predominant types of bridge: 

source routing bridges
Source routing allows Token-Ring segments to be interconnected by bridges, allowing administrators to segment network traffic. This requires that each workstation maintain a table of routes to the nodes with which it communicates. Furthermore, routing information must be included in the MAC header of each packet it sends. This information instructs bridges how to properly forward each packet to its destination. Source routing can be used instead of, or in conjunction with, NetWare routing. Because source routing is handled at the data link layer of the OSI model, it is beyond the scope of IPX/SPX.

transparent bridges
Transparent bridges interconnect two or more segments. They examine the MAC header source and destination fields of every packet transmitted on their connected segments. From the source address fields of packets, these bridges develop a table of the nodes that reside on (or are accessible through) each of their connected segments. With this table of information, a bridge can determine whether packets should be passed on to other segments.

The following diagram shows a transparent bridge connected to two separate segments. 

Figure 4-8 Sample Transparent Bridge

After examining the packets transmitted on both segments, the bridge creates a table that tracks which nodes exist on each segment. With this table, the bridge can filter unnecessary traffic. For instance, if node 1 sends a packet to node 5, the bridge will not retransmit that packet on its port B. It will, however, retransmit packets sent from node 1 to node 7. Like repeaters, transparent bridges -- as their name implies -- are transparent to the sending and receiving nodes. 

Routers

Routers interconnect different network segments. However, unlike bridges, routers, by definition, are network layer devices (see Figure 4-7). In other words, routers receive their instructions for forwarding a packet from one segment to another from a network layer protocol. 

NetWare-compatible routers are available with NetWare or from third-party manufacturers. The routers that come packaged with NetWare have actually been misnamed ``bridges'' in the past. The NetWare routers include what has been called the internal bridge within NetWare file servers and the external bridge installed at workstations. Novell has officially renamed these two devices ``internal router'' and ``external router''. 

NetWare-compatible routers can be configured to interconnect two or more segments. Each of these segments, however, must be assigned a unique network number to distinguish it from other segments on the network. A segment's network number must be configured into each of the routers connected to that segment. The network number serves as a common address for each node connected to a segment. For more information on assigning a segment's network number, see Appendix A, ``Configuration parameters'' in Configuring Network Connections.

Intrasegment packet routing

If the sending node and the destination node are on the same network segment -- that is, they both have the same IPX network number -- the sending node addresses the packet in the following way: 

Figure 4-9 shows an example of two nodes that are connected to network number AA. 

Figure 4-9 Transmission to Same Network Segment (No Routing Required)

The sending node (node 01) sends a packet to node 02. The sending node places node number 02 in the destination field and node number 01 in the source field of the MAC. In the destination address fields of the IPX header, the sending node places AA, 02, and 451 (the full IPX address of the receiving node). The sending node places its own IPX address of AA, 01, and 4003 in the source address fields of the IPX header.

Intersegment packet routing

The addressing method depicted in Figure 4-9 is used when the two nodes reside on the same physical segment (or ring) or if they reside on separate segments interconnected by repeaters or bridges. 

If the two nodes have different network numbers (reside on different network segments), the sending node must find a router on its own segment that can forward packets to the destination node's network segment. To find this router, the workstation broadcasts a RIP packet requesting the fastest route to the destination node's network number. This RIP request is responded to by the router residing on the sending node's segment with the shortest path to the desired segment; in the response, the router includes its node number. 

Sending the packet

Once the sending node receives the router's node number, it is prepared to send packets to the destination node. The sending node addresses these packets by placing: 


Figure 4-10 illustrates this process. 

Figure 4-10 Packet addressing through a router



Routing the packet

When a router receives a packet to be routed, it can take one of two possible actions. If the packet is destined for a network number to which the router is directly connected, the router will: 

  1. Place the destination node number from the IPX header in the destination address field of the MAC header.

  2. Place its own node number in the source address field of the MAC header.

  3. Transmit the packet.
Figure 4-10 illustrates this process. If the router is not directly connected to the segment that the final destination node resides on, however, it will send the packet to the next router in the path to the destination node. To forward the packet to another router, the router will:

  1. Place the node number of that other router in the destination address field of the MAC header.

  2. Place its own node number in the source address field of the MAC header.

  3. Leave the IPX header as initially set by the sending node and sends the packet.

Routing information administration

To forward packets by the best possible route, NetWare routers maintain a routing information table that holds information about all the segments on the network. Table 4-4 gives an example of a routing information table (only the fields pertinent to this discussion have been included). 

Table 4-4 Portion of routing information table

 ----------------------------------------------------------------------------------
 Network    Hops to       Ticks to            Immediate address      Net      Aging
 number     LAN segment   LAN segment   NIC   of forwarding router   status   timer
 ----------------------------------------------------------------------------------
 00000001        1             2         A                                      0
 00000002        1             2         B                                      0
 FEED0038        1            20         C                             R        0
 FEED0035        2             3         B    00001B029927                      1
 000000FF        2             3         A    00001B0349B2                      2
 FEED0036        3             4         A    00001B0349B2                      2
Each entry in the routing information table gives the router forwarding information for a network segment:

Network number
Contains the network numbers of the segments of which the router is aware. The router simply matches the destination network number in the packet's IPX header with an entry in this field to get its forwarding instructions for the packet. 

Hops to LAN segment
Indicates the number of routers that must be traversed to reach the network segment. 

Ticks to LAN segment
Contains an estimate of the time necessary to reach the destination segment. It is used by the router in its periodic broadcasts to indicate the time necessary to deliver a packet to a node on that segment. 

NIC
Indicates through which network interface card in the router the network segment can be reached 

Immediate address
Contains the node number of the router that can forward packets to each segment. If the segment is directly connected to the router, this field will remain empty. 

Net status
Indicates whether the segment is directly connected to the router and whether the segment is considered reliable 

Aging timer
Is used to make sure that information about the segment is current

The method that drivers use for estimating the time delay on a segment depends on the segment type. For local segments with more than 1 megabyte per second (Token-Ring, Ethernet, Arcnet, and so on), the driver makes the assumption that delivery time is one tick. For remote segments (Tl, 64 KBps, X.25, and asynchronous), the driver will periodically poll to determine the current time delay. For example, the delay for a T1 link normally ranges from six to seven ticks. If this delay changes, the driver will inform its router. As information about the segment is passed throughout the network (by way of periodic broadcasts), routers will add any additional delay that they impose to the initial time estimate for the segment. 

For NetWare versions prior to 2.16c, the routing information table keeps a list of all alternate routes for each network number in case the primary shortest route to a network number goes down. In other words, if the router can reach the segment through more than one of its NICs, it will make a record of all routes. The fastest route, the one that requires the least number of ticks, will always be used as the primary route. NetWare versions 2.16c and later maintain alternate routes only if these alternate routes require the same number of ticks to reach the segment as the primary route. This procedure reduces the size of the routing information table.

Routing information broadcasts

On a network, routers are constantly exchanging information with each other to make sure that their routing information tables reflect up-to-the-minute changes in the layout of the network. To accomplish this, routers transmit a series of broadcasts from the time they come up until they are brought down. Routing information broadcasts can be classified by the time at which they occur:

Although the broadcasts occur at different times and, for the most part, contain different information, they must follow two important rules: 
Best information algorithm

A router sends routing information broadcasts to every network segment to which it is directly connected, as illustrated in Figure 4-11. 

Figure 4-11 The best information algorithm


The purpose of routing information broadcasts is to:

The first rule of the best information algorithm dictates that a router about to broadcast to a particular network segment should not include any information about other segments that it has received from the particular network segment to which the information is being sent.

For example, if the router within server FS2 in Figure 4-11 is going to broadcast routing information to network segment BB, it will not include information that it received from FS1 about network segment AA. If it did, someone on segment BB might erroneously conclude that there are two paths to segment AA, one through FSl and another through FS2.

The best information algorithm also states that routers should not include information about the network segment to which they are sending routing information broadcasts. For example, FS2 would not include information about BB in its broadcast to BB.

Taking these rules into account, the information that FS2 would broadcast to segment BB would be information about segments CC and DD. 

Initial and periodic broadcasts

When a router is first brought up, it:

  1. Places the network numbers of its directly connected segments into its routing information table.

  2. Sends a routing information broadcast, following the best information algorithm, to inform the routers on its directly connected segments of the segments that the router will be making available.

  3. Broadcasts a request to each of its directly connected segments for information about all other network segments that exist on the network. This request is responded to by all the routers (each using the best information algorithm) on these directly connected segments.

  4. Places the information from these responses in its routing information table.

Figure 4-12 illustrates this initial sequence of broadcasts. 

Figure 4-12 Sequence used to build and maintain the routing information table

Once the router has performed these initial broadcasts and updated its routing information table, it is ready to accept routing requests and route packets. In addition to routing packets, the routers will broadcast all the information in their routing information table (except that excluded by the best information algorithm) to each of their connected network segments every 60 seconds. Routers perform these periodic broadcasts to make sure that all routers on the network remain synchronized.

Because of the lower bandwidth of X.25 and asynchronous links, routers do not perform 60-second broadcasts on these links; only initial broadcasts, changed information broadcasts, and final broadcasts are sent over these links. 

Changed information broadcasts

When a router receives information that causes it to change its routing information table, the router immediately passes that information on to its other directly connected network segments, except the segment from which the router received the information. If a new network segment comes up or an existing segment goes down, all the routers on the network will learn about the change in a short period of time. 

The primary causes of a change in the network's configuration are file servers or external routers coming up or going down. If a router needs to be brought down, the router will inform its directly connected segments of the fact before discontinuing service. The router issues broadcasts, using the best information algorithm, that indicate that the network segments that the router had made available will no longer be accessible through this router. 

The aging process

If a router goes down due to a hardware failure, power glitch, or power outage, other routers will not be notified that a change has occurred. To safeguard against this eventuality, an ``aging'' mechanism has been built into NetWare routers.

Routers maintain a timer for each entry in their routing information table. Every time that information is received concerning the entry, the timer is reset to zero. If the timer reaches three minutes, the router assumes that the route to the network number is down and broadcasts that fact to its other segments. Because this information is new or changed, the routers that receive the information will pass it on immediately and the change will quickly permeate the network.

Service advertising

Servers on a NetWare network advertise their services and IPX addresses with the Service Advertising Protocol (SAP). The information that these servers broadcast is not used directly by clients but, instead, is collected by a SAP agent within each NetWare router on the server's segment. The SAP agents store this information in a Server information table and, if they reside within a server, in their server's bindery. The clients can then contact the nearest SAP agent or file server for server information.

The SAP broadcasts that servers perform are local broadcasts and, therefore, only received by SAP agents on their connected segments. Consequently, SAP agents periodically broadcast their server information so that all SAP agents on the network have information about all servers that are active on the network -- this is the same broadcast method used by routers to distribute and exchange network number (RIP) information.

Server information table

The table that SAP agents use to store information received in SAP broadcasts is called the server information table. If all SAP agents on the network are exchanging SAP information properly, each agent's server information table should have information about all the servers on the network, thus providing clients with nearby access to the IPX addresses of all the servers on the network.

The server information table contains the following fields:

Server Name
The name of the server. 

Server Address
The service's full IPX address, including the network, node, and socket numbers. 

Server Type
A number designating what type of service the server provides. One server might provide printing services as opposed to file services, for instance. The server type designation used to assign numbers to the different services that servers provide is part of a more generic scheme used in the bindery to classify objects. ``Novell object types'' lists some of the more common object types. 

Hops to Server
Specifies the number of routers to reach the server. 

Time Since Changed
The timer used for aging servers that have unexpectedly gone down. 

NIC Number
The number of the NIC on which the information about the server was received.
The way that information within the server information table is stored makes sequential access ("send me information about all servers with server type 4, for instance") possible but makes database access ("send me information about server FRED") very difficult. Therefore, the ``Server Name'', ``Server Address'', ``Server Type'', and ``Hops to Server'' fields of the server information table are periodically copied to file servers' binderies and SAPDs. With this information stored in file server binderies, any client that has a connection with a NetWare file server can query the bindery for the IPX address of a specific server.

Novell object types

Services on a network are identified using Novell object types. Table 4-5 lists some of the Novell common object types. 

Table 4-5 Novell object types

 ---------------------------------------------------------
 Description                   Object type (hexadecimal)
 ---------------------------------------------------------
 User                          1
 User group                    2
 Print queue                   3
 File server                   4
 Job server                    5
 Gateway                       6
 Print server                  7
 Archive queue                 8
 Archive server                9
 Job queue                     A
 Administration                B
 NAS SNA gateway               21
 NACS                          23
 Remote bridge server          24
 Bridge server                 26
 TCP/IP gateway                27
 Gateway                       29
 Time synchronization server   2D
 Archive server SAP            2E
 Advertising print server      47
 BTrieve VAP 5.0               48
 SQL VAP                       4C
 Xtree network version         4D
 BTrieve VAP 4.11              50
 Print queue user              53
 WANcopy utility               72
 TES - NetWare for VMS         7A
 NetWare access server         98
 NVT server                    9E
 NetWare 386                   107
 Communications executive      130
 NNS domain                    133
 NetWare 386 print queue       137
 Wildcard                      FFFF

Server information administration

When a file server or, in the case of SCO IPX/SPX, SAPD is first brought up, its internal SAP agent:

  1. Places the name of the server in the agent's server information table.

  2. Sends a SAP broadcast to each of its directly connected segments to inform the SAP agents on those segments that a new server has become available.

  3. Broadcasts a request to each of its directly connected segments for information about other servers that exist on the network. These requests are responded to by all the SAP agents on these directly connected segments.

  4. Places the information received in these responses in its server information table.

  5. Performs broadcasts about the servers that it is aware of every 60 seconds (except on asynchronous and X.25 links).

Figure 4-13 illustrates these initial and periodic broadcasts. 

Figure 4-13 Sequence used to build and maintain the server information table

As with routing information broadcasts, all server information broadcasts are local broadcasts and are subject to the best information algorithm. Any changes in server information are passed on immediately to ensure current information across the network. The router applies the aging process to its server information table entries in case any servers become unavailable. Finally, if the router is brought down, it will indicate to its directly connected segments that the servers the router has been advertising will no longer be available.

File server addressing

Value-added servers, such as database and print servers, normally contain only one network adapter and use the address of that adapter as the address they advertise in their periodic SAP broadcasts. In contrast, NetWare file servers may contain multiple adapters. This requires that they use some sort of convention for advertising the address of their file services; the convention used for this addressing differs for 286- and 386-based servers.

Within the 286-based environment, the services of a file server are addressed with respect to its first NIC, A. This convention guarantees consistency because every server will have at least one network adapter installed. Figure 4-14 illustrates this convention. 

Figure 4-14 Addressing of file services on a 286-based NetWare file server


In the NetWare 386-based servers, an internal network has been added for the addressing of internal services, as shown in Figure 4-15. This different method of addressing requires that an internal network number be assigned when a NetWare 386-based file server is brought up. SCO IPX/SPX requires an internal network number. 

Figure 4-15 Addressing of file services on a 386-based NetWare file server

NetWare 386-based servers can be distinguished by a node number of one. This node number is assigned to the file services on the internal network number.

Client-server interaction

The NetWare shell facilitates client-server communication for DOS-based workstations. In a typical client-server interaction, one station (the client) requests services from another station (the server). Through the shell, DOS-based applications can request file services (such as writing to and reading from files) from NetWare file servers. At the workstation, the shell, the user application, and the user together act as the client requesting file services; the NetWare file server acts as the server providing file services.

The shell is the link between the client (the user application) and the server. It performs the tasks necessary to request file services from a NetWare file server; for example, establishing a connection with the file server, maintaining the connection, and terminating the connection.

Two programs must be run on the client for it to communicate with the server - NETx.COM and one of two IPX protocol drivers:

NETx.COM
The NetWare shell (where x indicates the version of DOS being run). It is a terminate-and-stay-resident (TSR) program that is loaded into the memory of a NetWare workstation when the system is booted. 

IPX.COM
A driver for the IPX protocol. It must be loaded before the NetWare shell. IPX.COM is generally used with NetWare 2.x and 3.x systems and is obsolescent. Wherever possible, IPXODI.COM should be used in its place. 

IPXODI.COM
A driver for the IPX protocol. It must be loaded before the NetWare shell. IPXODI.COM is the preferred solution for NetWare 3.x and 4.x systems and is compatible with SCO IPX/SPX.
For information on loading these three TSRs, see the Novell documentation.

Configuration files

A number of files exist that set configuration parameters. They are:

/etc/conf/pack.d/ipx/ipx_tune.h
contains parameters that configure the Internet Packet Exchange (IPX) protocol. See ipx_tune.h(SFF) for more information.

/etc/conf/pack.d/spx/spx_tune.h
contains parameters that configure the Sequence Packet Exchange (SPX) protocol. See spx_tune.h(SFF) for more information. 

/etc/conf/pack.d/nvt/nvt_tune.h
contains parameters that configure the Novell Virtual Terminal (NVT) protocol. See nvt_tune.h(SFF) for more information. 

/etc/ipx.d/NPSConfig
contains parameters that specify SAP, NVT, and LAN configuration information. See NPSConfig(SFF) for more information.
To tune the performance of a protocol:

  1. Edit the values in the corresponding *_tune.h file.

  2. Rebuild the kernel.

  3. Reboot the system.

NPSConfig is located in /etc/ipx.d/NPSConfig and is read by NPSD, NVTD, and SAPD, for their initial values. It contains parameters that specify: 

Managing IPX/SPX

A number of utilities are available to monitor and manage the operation of SCO IPX/SPX. These utilities are available as either GUI (Graphical User Interface)-based programs or as command-line utilities that produce formatted ASCII output.


NOTE: To use the administrative commands from the command line, your command search path must include /usr/bin. For information on using the administrative commands from the desktop, see ``Accessing the SCO IPX/SPX graphical utilities''.

The utilities enable you to:

Accessing the SCO IPX/SPX graphical utilities

If you are running the X environment, the utilities will appear as a separate window on your workstation or console. If you are not running X (such as on a console multiscreen) the utilities will appear in a semi-graphical window on the screen. This is referred to as CHARM, or character mode operation.

The SCO IPX/SPX graphical utilities can be accessed in the following ways:

Monitoring current NVT connections (dnvt)

SCO IPX/SPX hosts act as NVT servers on the network; any client on the network that is capable of running the NVT protocol can connect to these servers. The NetWare NVT Monitor and its command-line equivalent, dnvt(PADM), are useful in determining which machines on the network are connected to a given NVT server. dnvt also displays information about each connection, can be used to determine the amount of activity performed by the user of the connection or to highlight any potential network connectivity problems.

A useful feature of the NetWare NVT Monitor is automatic screen refresh which updates the NVT connection display at a regular, user specified, interval. The refresh interval can be controlled using a slider for the amount of time in minutes and seconds between refreshes. Automatic screen refresh can be set using the Set Auto Refresh cascade menu, which is available under the View menu.

The NetWare NVT Monitor's output looks like this:

The NetWare NVT Monitor displays the following:

Client Name / Address
If the client is a DOS client, a NetWare address will be displayed. If the connection is from a client that also advertises services on the network (such as another SCO host running IPX/SPX), the host name is displayed.

Sequence#
The current packet sequence number in use for the connection.

Retries
The current packet retry count. In normal situations, the retry count should always be zero. However, if there is traffic congestion or the server or client are slow, it is possible to see a non-zero retry count.

KeepAlives
The current number of keep alive packets sent to the client. Keep alive packets are sent when the server thinks the client is no longer on the network or when the connection is inactive.

Displaying the routing information table (drouter)

All hosts that are capable of acting as NetWare routers maintain a routing information table. This allows the routers to forward packets by the best possible route. SCO IPX/SPX can be configured to act as a router , and thus all SCO IPX/SPX servers maintain a routing information table. For more information about the routing information table, see ``Packet delivery''. For more information about configuring an SCO system as a router, see NPSConfig(SFF) for more information.

In a NetWare network, routers periodically emit broadcasts containing their routing information tables, as specified by the NetWare RIP (Routing Information Protocol) standard.

The NetWare RIP Monitor and its command-line alternatives, drouter(PADM) and rrouter(PADM), display the current routing information tables and allow the superuser to reset and update the routing tables. Both of these features can be used to highlight potential problems in a network's configuration.

A useful feature of the NetWare RIP Monitor is automatic screen refresh which updates the routing information display at a regular, user-specified interval. The refresh interval can be controlled using a slider for the amount of time in minutes and seconds between refreshes. Automatic screen refresh can be set using the Set Auto Refresh cascade menu, which is available under the View menu.

If information about known nodes is missing from the routing information table, then there may be problems with the routing information broadcasts. See ``Router operation'' for procedures to remedy this situation.

The NetWare RIP Monitor's output looks like this:

The NetWare RIP Monitor displays the following:

Network
The IPX network number of the network segment or host.

Hops
The number of hops required to reach the routing destination.

Time
The time in ticks required to reach the network segment or host, as defined by RIP.

Node
IPX node number (MAC address) of the host, or the node number through which packets to the given network number (or host) are routed (6 octets).

This information reflects the knowledge that a given SCO server has gathered from its own configuration file as well as other nodes on the network. It presents a snapshot of the current operation of the internetwork.

Using this information, it is possible to detect the following situations:

One of the most common errors when adding a host to a network is choosing an internal network number or network number that is not unique. If you have a situation where a host is visible to only a portion of your network, it is likely that the network number(s) have been misconfigured. In this case, compare the output from the NetWare RIP Monitor on a number of different hosts on your network. You should be able to trace the same path to the new host from all the different hosts on your network. This is possible because the network and node number information in the routing information table will either be that of a router, the local host, a host on the network, or the network the host is connected to.

From the command line, a combination of rrouter and drouter can monitor the operation of routing information broadcasts: rrouter clears and updates the routing information table. A command-line user can periodically run drouter to monitor the status of the routing information table as it is updated by routing information broadcasts, updating the tables with rrouter if required.

Displaying IPX/SPX and network media interface information (getlan)

The IPX Configuration Monitor and its command-line equivalent, getlan(PADM), can be used to display the media interface information for SCO IPX/SPX. This information can be used to verify the IPX/SPX configuration.
The IPX Configuration Monitor's output looks like this:

The IPX Configuration Monitor displays the following:

Lan
The LAN number of the network segment (always 0 for the internal network).

Network Address
The network number or internal network number for the internal network.

Node Address
MAC address of the networking media adapter, or 1 for the internal network.

IPX State
State of the IPX driver:

UNBOUND
No networking driver is linked to IPX.

LINKED
A networking driver is linked, but not bound to IPX.

BOUND
A networking driver is bound to IPX.

All LANs should be in state BOUND except the internal network, which should be UNBOUND.

LLI State
State of the networking driver:

OK
No error.

ERROR
An error condition has been detected by the networking driver.

Maximum Packet Length
maximum size of MAC data packets in bytes 

Minimum Packet Length
minimum size of MAC data packets in bytes 

MAC Address Length
MAC address size in bytes 

Subnetwork Type
medium used for transmission on the network segment 

Current Link Level State
detailed description of the state of the network adapter driver

Starting and stopping IPX/SPX (ipx)

The script /etc/ipx both starts and stops IPX/SPX and NVT. Although IPX/SPX and NVT are started and stopped automatically, /etc/ipx provides additional control to the system administrator.

To start IPX/SPX and NVT, use the following command line:

/etc/ipx start

The following output is displayed:

   Starting IPX/SPX: npsd sapd nvtd
To restart IPX/SPX and NVT (that is, to stop and then start automatically, and to display detailed information on the status of the startup procedure), use the following command line:

/etc/ipx restart

You should see output similar to the following:

   IPX/SPX Shutdown ...
   IPX/SPX Shutdown Complete.
   NPSD: Novell Protocol Suite Streams Architecture daemon.
   NPSD: Configuring Internal Network: 100
   NPSD: Configured Internal Network:  100
   NPSD: Configuring: LAN 1 00000099 /dev/net0
   NPSD: Configured: LAN 1 00000099 /dev/net0 DLPI 802_2_LLI(E0) NONE NOSR
   

NPSD: Lan Network Node Mux ID State Stream NPSD: --- -------- ------------ -------- ------- ------ NPSD: 0 00000100 000000000001 00000000 UNBOUND OK NPSD: 1 00000099 0000C0E1D26B 0000006E IDLE OK NPSD: Spawning the SAP daemon "/etc/sapd" NPSD: Spawning the NVT daemon "/etc/nvtd" NPSD: Including SPX Version 3.0.1 NOVELL Inc. NPSD: Binding XECHO Stream to socket 0002

To save all of this output to a logfile named logfile, modify the command as shown here:

/etc/ipx restart 2>&1 | tee logfile

To stop IPX/SPX and NVT, use the following command line:

/etc/ipx stop

The following output is displayed:

   IPX/SPX Shutdown ...
   IPX/SPX Shutdown Complete.

Logging into NVT servers (nlogin)

It is possible for users to log into SCO IPX/SPX NVT(TM) servers from any SCO system using the NetWare NVT Login Manager or the nlogin(PADM) command. Since these logins use the same protocol (NVT) as DOS clients use to log in to the SCO host, it is sometimes useful to ensure that the UNIX to UNIX login is possible before attempting to configure the DOS clients.

The NetWare NVT Login Manager allows users to log into one or more NVT servers simultaneously by selecting the desired servers and pressing the Login button. When the NetWare NVT Login Manager is used in a graphical X-windows environment, one window is opened for each server to which the user logs in. Each window will contain a login prompt for the associated server. When the NetWare NVT Login Manager is run in non-graphical mode (that is, character mode, or "CHARM"), only one server at a time can be logged into. In this case, the window in which the NetWare NVT Login Manager is running will be "taken over" by the remote login session. When the session is complete, control will automatically be passed back to the NetWare NVT Login Manager .

A useful feature of the NetWare NVT Login Manager is automatic screen refresh which updates the display of available NVT servers at a regular, user specified interval. The refresh interval can be controlled using a slider for the amount of time in minutes and seconds between refreshes. Automatic screen refresh can be set using the Set Auto Refresh cascade menu, which is available under the View menu.

Testing IPX/SPX connections (nping)

After installation or reconfiguration, one should test for connectivity to the local and remote hosts using the nping command, which sends packets to a specified host and waits for them to be returned by the host.

One of the first aspects of IPX/SPX operation that should be tested for is the correct operation of the IPX/SPX server itself. The next aspect of operation that should be tested is the ability of the server to communicate with other SCO IPX/SPX or NetWare for UNIX servers on the network. nping can perform both of these tests.

To test for the local host, run nping with the command line:

nping local_host_name

For local_host_name, use the machine name as reported by uname.

If IPX/SPX is performing properly, nping displays output similar to the following:

   Received 64 bytes from [60.01.02], seq#=0 time=0 (ms)
   Received 64 bytes from [60.01.02], seq#=1 time=0 (ms)
   Received 64 bytes from [60.01.02], seq#=2 time=0 (ms)
   Received 64 bytes from [60.01.02], seq#=3 time=0 (ms)
   Received 64 bytes from [60.01.02], seq#=4 time=0 (ms)
   5 packets transmitted, 5 packets received, 0% packet loss
   round-trip min/avg/max 0/0/0 ms

If nping does not display the previous output, see ``Daemon operation'' for procedures to remedy this situation.

To test for a remote host, run nping with the following command line:

nping remote_host_name

remote_host_name should be the name of a known server on the network. Note that the remote host must be an SCO host or a NetWare-for-UNIX host. nping cannot currently communicate with NetWare servers or clients. Press <Del> to stop the test.

If IPX/SPX can communicate with the remote host, nping displays output similar to the following:

   Received 64 bytes from [50.01.02], seq#=0 time=0 (ms)
   Received 64 bytes from [50.01.02], seq#=1 time=0 (ms)
   Received 64 bytes from [50.01.02], seq#=2 time=0 (ms)
   Received 64 bytes from [50.01.02], seq#=3 time=0 (ms)
   Received 64 bytes from [50.01.02], seq#=4 time=0 (ms)
   5 packets transmitted, 5 packets received, 0% packet loss
   round-trip min/avg/max 0/0/0 ms
If nping does not display the previous output, see ``Daemon operation'' for procedures to remedy this situation.


NOTE: The nping binary included with SCO Open Desktop Release 3.0 and earlier releases will not be able to communicate with machines running SCO OpenServer Release 5. The nping binary included with the current release is located in /usr/bin/nping and should be copied to the older SCO system in order to correct this problem.

Displaying available NetWare services (showsvcs)

The Service Advertising Protocol daemon (SAPD) included with SCO IPX/SPX constantly receives information about the services available on the NetWare network via SAP broadcasts. The NetWare SAP Monitor and the corresponding showsvcs(PADM) command display the SAP information in a convenient format, allowing selective display based on server type and/or name. The output from this command is useful to ensure that services are available on the network.

A useful feature of the NetWare SAP Monitor is automatic screen refresh which updates the available NetWare services display at a regular, user specified, interval. The refresh interval can be controlled using a slider for the amount of time in minutes and seconds between refreshes. Automatic screen refresh can be set using the Set Auto Refresh cascade menu, which is available under the View menu.

The NetWare SAP Monitor's output looks like this:


The NetWare SAP Monitor displays the following:

Server name
The name of the server that is advertising the service.

Type
The type of service advertised. Whenever possible, the NetWare SAP Monitor prints a string describing the type (such as "File server") when its type is known. If the type is unknown, a hexadecimal value is printed instead. For example, instead of "NVT server", "9E" would be printed).

For more information on Novell object types, see Table 4-5.

Hops
The number of network hops to the service.

Address
The IPX address of the service: The first set of numbers is the network number. The second set of numbers is the node number. The third number is the socket number.

Service advertising broadcast operation (track)

Servers on a NetWare network advertise their services and addresses using the Service Advertising Protocol (SAP). The information that these servers broadcast is collected by a SAP agent within each NetWare file server (by SAPD on an SCO IPX/SPX server) on the server's segment. If all SAP agents on the internetwork are exchanging SAP information properly, each agent's server information table should have information about all the servers on the internetwork. For more information about the server information table, see ``Service advertising''.

track can monitor the operation of service advertising broadcasts. Run track with the command line:

track on

track starts listing SAP traffic to the file specified by the parameter sap_track_out in NPSConfig. The default output file is /dev/console. To stop the listing, run track with the command line:

track off

The track listing looks like this:

   IN  [00000299:10005AAC41B2]  2:18:59pm   TIGER         1   DEMING        2
        FRED          1
   OUT [00000080:FFFFFFFFFFFF]  2:19:00pm   TIGER         2   DEMING        3
        OPUS          2   CALVIN        1
   OUT [00000299:FFFFFFFFFFFF]  2:19:00pm   OPUS          2   CALVIN        1
   OUT [00000099:FFFFFFFFFFFF]  2:19:00pm   TIGER         2   DEMING        3
        OPUS          2   CALVIN        1
   OUT [00000199:FFFFFFFFFFFF]  2:19:00pm   TIGER         2   DEMING        3
        CALVIN        1
   IN  [00000299:10005AAC41FC]  2:19:00pm   OPUS          2   CALVIN        1
   IN  [00000080:000000000001]  2:19:01pm   CALVIN        0
   IN  [00000199:0000C00FAB13]  2:19:23pm   OPUS          1
   IN  [00000099:0000C0448328]  2:19:33pm   FRED          1
   OUT [00000080:FFFFFFFFFFFF]  2:19:33pm   FRED          2
   OUT [00000299:FFFFFFFFFFFF]  2:19:33pm   FRED          2
   OUT [00000199:FFFFFFFFFFFF]  2:19:33pm   FRED          2
   IN  [00000299:10005AAC41FC]  2:19:33pm   FRED          2
It presents the following:

direction
The first field indicates the direction of the packet sent. 

network address
The second field gives the network address. The number to the left of the colon is the network number. The number to the right of the colon is the node number. 

time sent
The third field indicates the time that the packet was sent or received by the server. 

routers
The remaining fields give the names of servers and the number of hops to access them.

Displaying the server information table (track)

Applications need to know about the services available on a network and the address through which their services can be accessed. SAP agents maintain this information in the server information table. It provides clients with the addresses of all the servers on the internetwork. For more information about the server information table, see ``Service advertising''.

track can monitor the current state of the server information table. The NetWare SAP Monitor and showsvcs can list selected information from the server information table that you can use to monitor and validate the network names, addresses, and services offered by servers on the network. 

To display the information currently in the server information table, run track with the command line:

track tables

track writes the contents of the server information table to /etc/ipx.d/sapd.out.

The output from track looks like this:

   TIGER  Type: 009E Hops: 0001 Address:  00000020 000000000001 8063
   TIGER  Hops: 0001 Timer: 0001 connectedLan: 0001 10005AAC41B2
   

DEMING Type: 009E Hops: 0002 Address: 00000040 000000000001 8063 DEMING Hops: 0001 Timer: 0001 connectedLan: 0001 10005AAC41B2

OPUS Type: 009E Hops: 0001 Address: 00000060 000000000001 8063 OPUS Hops: 0001 Timer: 0001 connectedLan: 0001 10005AAC41B2

CALVIN Type: 009E Hops: 0000 Address: 00000080 000000000001 8063 CALVIN Hops: 0001 Timer: 0001 connectedLan: 0001 10005AAC41B2

FRED Type: 0004 Hops: 0001 Address: 00000098 000000000001 0451 FRED Hops: 0001 Timer: 0001 connectedLan: 0001 10005AAC41B2

Type 009Eh Count 4 Type 0004h Count 1 total number of server types known 5

For each known server on the network, track outputs the following information:

Type
Novell object type of the service being advertised. For example, 9E advertises an NVT server, 4 advertises a Novell file server. For more information on Novell object types, see Table 4-5.


Hops
The first hop value indicates the number of hops to the advertised server. The second hop value indicates the number of hops to the machine that was the source of the hops information. 

Address
IPX address of the advertised server. The first number is the network number. The second number is the node number. The third number is the socket number. 

Timer
Time in ticks to reach the advertised server. 

connectedLan
Address of the connected LAN segment.

This output provides information about the services offered across the network and the location of these services. To obtain more information about these services with the NetWare SAP Monitor and showsvcs utilities, see ``Displaying available NetWare services (showsvcs)''.

Troubleshooting IPX/SPX

The following sections describe:




IPX operation

If you suspect that the IPX protocol is not operating correctly, you can use the following commands to verify its state:

ipx
Used to start/stop/restart IPX/SPX and NVT. 

getlan
Checks the state of IPX with respect to the network adapter drivers. 

nping
Checks for the existence of the local and remote hosts.
See ``Managing IPX/SPX'' for more information.


Daemon operation

For IPX/SPX to operate correctly, NPSD, SAPD, and NVTD must be running.

To make sure that the daemons are running, execute the following command lines:

ps -ef | grep npsd
ps -ef | grep nvtd
ps -ef | grep sapd

If there is no output from these commands, these daemons are not running.

To restart the daemons, execute the following command line: 

/etc/ipx restart

If services on the network are inaccessible, then SAPD may not be operating correctly. Use showsvcs to display the services. If services are not displayed, then IPX/SPX may not have been configured correctly. 

Router operation

If LANs on the network are inaccessible, then routers on the network may not be operating correctly. To verify the operation of routers, use the drouter command. If known LANs do not appear in the output of drouter, it is likely that the routers for the missing segments are not operating. For further details, refer to the documentation that came with your routing hardware. 

LAN adapters

Incorrectly configured LAN adapters are the principal cause of IPX failures. It is essential to verify that all LAN adapters have been installed correctly without any hardware and/or software configuration conflicts. Examine settings for: IRQ, I/O port, DMA, and shared-memory settings (depending on the type of adapter). For further details, refer to Appendix A, ``Configuration parameters'' in Configuring Network Connections, as well as to the documentation that came with your network adapter hardware.

The llistat(ADM) command, provided with the network adapter drivers, can verify the operation of drivers. Execute the following command line:

   llistat
In the llistat output, In/Out counts of zero typically point to configuration or installation errors.


Addressing problems

The SCO IPX/SPX installation mechanism prevents many potential installation errors. However, it is important to have a clear picture of the network topology prior to software installation. This is particularly important when routers and multiple subnetworks are being configured.

Incorrect specification of internal or subnet network numbers cause host addressing problems. All server network numbers and subnet numbers have to be manually checked for uniqueness. This should be done prior to configuration or installation. It is advisable to establish a numbering convention to distinguish internal (that is, logical) networks from physical subnetworks. This facilitates the interpretation of the outputs from certain utilities, for example, drouter. 

Server names

The naming of servers, as well as services offered by servers, should be done in a meaningful way. Duplicate names and addresses can cause serious addressing problems. A meaningful naming scheme and corresponding addressing convention reduce potential problems significantly. 

Pseudo-ttys

Each NVT connection requires at least one pseudo-tty to service it. If you are experiencing a high number of failed connections, make sure that the number of configured pseudo-ttys is not less than the value of the nvt_max_logins parameter in NPSConfig. See NPSConfig(SFF) for more information.


Disconnections from suspended NVT sessions

If you use a hot-key to bring up DOS when using NVT.EXE for several minutes at a time, the UNIX session may be disconnected. This occurs because the NVT protocol specification states that new connection requests will use existing inactive connections.

Increase the value of the parameter NVT_KEEP_ALIVE_INTERVAL_TIME in nvt_tune.h to work around this problem. Once you have increased this parameter, you will need to relink the kernel and reboot the system. For more information, see the nvt_tune.h(SFF) manual page.


Relinking the kernel

If the changes made during the reconfiguration of IPX/SPX do not seem to take effect, you may have omitted relinking the kernel and/or restarting IPX/SPX. When the IPX/SPX configuration is changed using the Network Configuration Manager, you are informed when it is necessary to relink the kernel and when it is simply enough to restart IPX/SPX. After a configuration change, make sure that the UNIX kernel has been relinked and the system is rebooted or, if relinking is not required, that IPX/SPX is restarted with the command line:

/etc/ipx restart

Installing and using the DOS component

The DOS component of SCO IPX/SPX allows users on DOS workstations to access data served by your SCO IPX/SPX system. To install the DOS component of IPX/SPX, you need to:

  1. Copy NVT to a floppy, and then to the appropriate directory on the hard drive.

  2. Configure IPXODI.

  3. Configure NVT.

  4. Configure the terminal emulation software.

The following information is also useful to the administrator:

Copying NVT

NVT must be installed from a floppy. An image of the required DOS floppy was stored on the CD-ROM, and transferred to your system when you installed SCO IPX/SPX. You will require a double-sided, high density, 3.5-inch floppy disk. Perform the following steps:

  1. Place the floppy in drive A:

  2. Enter the following commands:

    /usr/lib/ipxrt/nvtimage/nvtfloppy
    copy a:nvt.exe c:path

    where path is the directory to which NVT should be copied.

NVT is now copied to your hard drive.

Configuring IPXODI

To configure IPXODI for the chosen LAN adapter and network type, see the Novell-distributed installation and configuration notes.

Configuring NVT

To configure NVT, you must modify AUTOEXEC.BAT to load IPXODI and NVT as follows:

  1. If the following line is not already there, insert it:

    path\IPXODI

    where path is the path to the directory where IPXODI is stored.

  2. Insert the following line after the line just inserted:

    path\NVT

    where path is the path to the directory where NVT is stored.


    NOTE: The line that invokes NVT must appear after the line that runs IPXODI.


NOTE: Ensure that NVT does not conflict with other installed TSRs.

Configuring terminal emulation software

To configure the terminal emulation software, follow the installation and configuration instructions supplied by the terminal emulator vendor. Make sure that the emulation software is configured to use INT14 (BIOS) or INT6B/UB-NETCI.

Command-line options for NVT

The default hot-key used to display the NVT connection window is <Alt>-T. If this conflicts with other DOS applications, a new hot-key can be specified on the NVT command line. For example, the following command changes the hot-key to <Alt>-K:

NVT -ALTk

To unload NVT from memory on the DOS client machine, enter the following command:

NVT -y

To specify the SCO server server_name as the server to which NVT is supposed to connect, use the following command:

NVT server_name

These options can be combined. For example, to set the hot-key to <Ctrl>-d and to connect to an SCO host named "data", use the following command line:

NVT -CTRLd data

Using the DOS component

To start up the DOS component of IPX/SPX, perform the following steps:

  1. Reboot the machine to load the necessary drivers and TSRs. Make sure that IPXODI and NVT have been loaded correctly. The following messages should appear as part of the output from the boot sequence:
       NVT LOADED OK
    

  2. Establish a connection with the SCO server. Bring up the NVT menu by pressing the hot-key assigned to NVT on configuration. (The NVT menu screen may be moved by pressing the SHIFT key along with any of the arrow keys.) NVT displays a list of server names.

  3. Select the server to connect to from the list by highlighting it and pressing <Enter>. The NVT window disappears when a connection is made. If a connection is not made, select another server to connect to or see your network administrator.

  4. Run a terminal emulator that supports INT14 (BIOS) or INT6B/UB-NETCI. The SCO server displays a login prompt.

You can now log into the SCO server.


NOTE: NVT only supports one active connection at a time. An active connection is one in which the process is writing to the terminal. Any attempt to access more than one active connection may cause the system to freeze, necessitating a reboot.

(The active NVT connection will not be dropped during the reboot.)


For more about IPX/SPX

The following books may provide additional useful information for administrators of IPX/SPX networks: