Windows NT 4.0: IPX Routing

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Microsoft® Windows® NT 4.0 with the Routing and Remote Access Service (RRAS) is a fully functional Internetwork Packet Exchange (IPX) router supporting Routing Information Protocol (RIP) for IPX, the primary routing protocol used in IPX internetworks; Novell NetWare Service Advertising Protocol (SAP) for IPX, a protocol for the collection and distribution of service names and addresses; and NetBIOS over IPX broadcast forwarding.

In This Document

Windows NT 4.0 with RRAS and IPX Routing
IPX Packet Filtering
RIP for IPX
SAP for IPX
NetBIOS Broadcasts

Windows NT 4.0 with RRAS and IPX Routing

An Internetwork Packet Exchange (IPX) router is a combination of an IPX routing agent and a Service Advertising Protocol (SAP) agent. The IPX routing agent routes IPX packets between IPX networks and maintains its routing table using Routing Information Protocol (RIP) for IPX. The SAP agent collects and distributes SAP information (a list of services available on the network and their corresponding IPX internetwork addresses) and responds to client SAP requests.

Microsoft® Windows NT® Server version 4.0 and earlier provided an SAP agent service that allowed Windows NT applications and services, such as File and Print Services for NetWare (FPNW) or Microsoft® Exchange Server, to advertise their service names and addresses for NetWare clients. Microsoft® Windows NT® version 3.51 (Service Pack 2 and later) and Windows NT Server 4.0 provided an IPX routing agent using the RIP for IPX routing protocol. Windows NT 4.0 with RRAS provides an integrated IPX router with an IPX routing agent using the RIP for IPX routing protocol and a SAP agent.

Windows NT 4.0 with RRAS Router Features for the IPX Protocol Suite

The Windows NT 4.0 with RRAS–based computer running the Routing and Remote Access Service (RRAS), known as the Windows NT 4.0 with RRAS Router, provides a rich set of features to support IPX internetworks:

IPX packet filtering Input and output filters for each interface, configured using key fields in the IPX header.

RIP for IPX Full support for Routing Information Protocol (RIP) for IPX, the primary routing protocol used in IPX internetworks.

IPX route filtering Filtering for incoming routes and for the announcement of routes.

Static IPX routes Static IPX routes that are advertised using RIP for IPX.

SAP for IPX Full support for Service Advertising Protocol (SAP), the mechanism by which the names and addresses of services running on IPX nodes are collected and distributed for NetWare clients.

SAP filtering The filtering of incoming service names and the announcement of service names.

Static SAP services Static SAP service names that are advertised using SAP.

NetBIOS broadcast propagation The forwarding of NetBIOS over IPX broadcasts, flexibly configured over local area networks (LAN) and demand-dial interfaces.

Static NetBIOS names Static NetBIOS names that can be configured so that NetBIOS over IPX name query broadcasts for specific NetBIOS names can be forwarded using specific interfaces.

Platform to Support Other IPX Routing Protocols A platform to support additional IPX routing protocols, such as NetWare Link Services Protocol (NLSP). (The Windows NT 4.0 with RRAS Router does not provide NLSP, but NLSP can be provided by third party independent software vendors.)

IPX Packet Filtering

In addition to routing IPX traffic, an IPX router can allow or disallow the flow of very specific types of IPX traffic. This capability, called IPX packet filtering, provides a way to precisely define the type of IPX traffic allowed to cross the router.

You can create a series of definitions called filters that indicate to the router the type of traffic allowed or disallowed on each interface. You can set these filters for incoming and outgoing traffic. Input filters define the incoming traffic on a given interface that is allowed to be routed or processed by the router. Output filters define the traffic that is allowed to be sent from that interface.

Figure 1 illustrates IPX packet filtering.

Figure 1: IPX Packet Filtering

Figure 1: IPX Packet Filtering

Because both input and output filters can be defined for each interface, it is possible to create contradictory filters. For example, the input filter on one interface allows the inbound traffic, but the output filter on the other interface does not allow the outbound traffic. The result is that the desired traffic is not passed across the router.

The Windows NT 4.0 with RRAS Router has the capability to perform input and output filtering for each interface based on key fields in the IPX header. The next section explains the structure of an IPX header to help you gain an understanding of the types of IPX filtering that the Windows NT 4.0 with RRAS Router can perform.

IPX Header Structure

The IPX header, which comes immediately after media and Data Link Layer headers (such as Ethernet, Token Ring, or Point-to-Point Protocol [PPP]), is shown in Figure 2.

Figure 2: The IPX Header

Figure 2: The IPX Header

Checksum A 16-bit checksum on the IPX header and its payload is typically unused. If unused, the Checksum field is set to 0xFF-FF. If the Checksum is used, the IPX node cannot be configured to use the ETHERNET_802.3 frame type.

Length The length field indicates the length of the IPX packet (IPX header and IPX payload) in bytes. To accommodate older routers and network adapters, sometimes an IPX node must be configured to ensure that the IPX packet is an even number of bytes. If the packet contains an odd number of bytes, an extra byte is used to fill out the packet to an even number of bytes. The extra byte is not included in the Length field.

Transport Control The Transport Control field indicates the number of IPX routers that have processed the IPX packet, known as the hop count. Sending nodes set this field to zero, and it is incremented by one by each IPX router in the path from the source to the destination. RIP for IPX routers limit the maximum number of routers in a network path to 16. At the 17th RIP for IPX router, the IPX packet is discarded by the router without notifying the sending node, known as a silent discard. NetWare Link Services Protocol (NLSP) for IPX routers can support a hop count of up to 127.

Packet Type The Packet Type field indicates the contents of the payload portion of the IPX packet. It allows a number of client protocols to use IPX and be identified by the IPX router. Table 1 lists some common defined values of the IPX Packet Type.

Table 1 IPX Packet Type Values

Client Protocol

Packet Type (Hex)

Unspecified

00

RIP

01

SAP/Normal IPX

04

SPX

05

IPX WAN Broadcast (used for NetBIOS over IPX Broadcasts)

14 (20 in decimal)

Routers can filter out IPX traffic based on the Packet Type field. For example, some routers by default do not propagate NetBIOS over IPX Broadcast traffic and must be manually configured to enable packets with a packet type value of 20.

Network (Destination and Source) The Destination Network and Source Network fields each identify the network (a segment of the IPX internetwork bounded by IPX routers) to which an IPX node is connected. IPX network numbers are a flat addressing space. No subnetting (the subdivision of network IDs) or summarization of groups of IPX networks is possible with RIP for IPX routing. RIP for IPX routers must have a route to each network number in their routing tables. All IPX networks must be given a unique IPX network number.

Node (Destination and Source) The Destination Node and Source Node fields each identify a node on an IPX network. The 6-byte fields can be used to store physical addresses—also known as Media Access Control (MAC) addresses.

Socket (Destination and Source) The Destination Socket and Source Socket fields identify the software process addresses of the destination and source applications respectively. With multiple processes communicating between the same two computers, the IPX Network and Node numbers are the same. The IPX Socket number is a software process identifier that is used to forward the IPX payload to the proper process.

Many socket numbers are well known. For example, the file server process running on Novell NetWare or compatible file servers uses the well-known socket address of 0x451. Any requests to socket 0x451 on the NetWare file server are forwarded to the NetWare file server process. NetWare file server clients and IPX applications that do not use a well-known socket number use dynamically allocated socket numbers. Table 2 lists some common, defined values for IPX socket numbers.

Table 2 IPX Socket Numbers

Process

Socket Number (Hex)

NCP Server

451

RIP

453

SAP

452

NetBIOS

455

Note: The IPX socket is not the same as a socket in the Windows Sockets 2.x API (WinSock). A socket in WinSock is a generalized process endpoint. A TCP/IP-based WinSock socket is a combination of the IP Address and port number that identifies a process endpoint on an IP internetwork. An IPX-based WinSock socket is a combination of the IPX Network, IPX Node, and IPX Socket numbers that identifies a process endpoint on an IPX internetwork.

Demultiplexing an IPX Packet

When an IPX packet arrives at its destination and is handed to the IPX protocol, the application data must be demultiplexed, or forwarded to the proper process.

The demultiplexing of the IPX packet within the destination host is done in two stages. First, the IPX module checks the Destination Network and Node numbers to ensure that they correspond to a locally configured IPX interface. Second, the IPX module checks the Destination Socket number and based on its value, passes the IPX payload (the resulting packet minus the IPX header) to the appropriate process.

Figure 3 illustrates the IPX demultiplexing process.

Cc750599.inag03(en-us,TechNet.10).gif

Figure 3: Demultiplexing an IPX Packet

For example, a NetWare client sends a file sharing request to a NetWare server. Upon arrival at the NetWare server's IPX module, the destination Network and Node numbers are checked to verify that it corresponds to a local IPX interface. The IPX module then notes the Destination Socket field value of 0x451 and passes the IPX payload to the NetWare file server process.

The Windows NT 4.0 with RRAS Router IPX Packet Filtering

The Windows NT 4.0 with RRAS Router IPX packet filtering is based on exceptions. You can either configure the Windows NT 4.0 with RRAS Router to pass all IPX traffic except those disallowed by filters or to discard all IPX traffic except those allowed by filters. For example, you may want to set up output filters to forward all traffic except for SAP advertisements. Or, you may want to set up an input filter on a dedicated SQL server to disregard all but SQL-based Sequence Packet Exchange (SPX) traffic.

The Windows NT 4.0 with RRAS Router allows configuration of IPX filters based on the following fields:

  • IPX Packet Type

  • Source Network Number

  • Source Node Address

  • Source Socket

  • Destination Network Number

  • Destination Node Address

  • Destination Socket

Note: Both the Source and Destination Network Numbers can be configured with a network mask allowing a range of IPX Network Numbers to be specified with a single filter entry. To determine whether the Network Number of an IPX packet matches the filter, the Windows NT 4.0 with RRAS Router uses AND to combine the Network Mask and the Network Number in the IPX packet and compares the result to the filter Network Number. The digit 0 can be used as a wildcard for a hex digit and F for a specific hex digit.

Configuring an IPX Filter

You can configure IPX input or output filtering by selecting a filter action and adding a series of filters using the IPX Filters Configuration dialog box, as shown in Figure 4.

Cc750599.inag04(en-us,TechNet.10).gif

Figure 4: IPX Packet Filters Configuration Dialog Box

Note: You cannot configure separate active filters for Receive all except listed below and Drop all except listed below.

You can specify the parameters of an input or output filter using the Add/Edit IPX Filter dialog box shown in Figure 5 If multiple parameters are configured, the logical operation, AND, combines the parameters of the filter during the filtering process. For example, if the Packet Type and Destination Socket are specified in the filter, the IPX packet passes the filter if both the IPX packet's Packet Type and its Destination Socket match those of the filter.

Note: All numbers in the Add/Edit IPX Filter dialog box shown in Figure 5 are entered in hexadecimal.

Cc750599.inag05(en-us,TechNet.10).gif

Figure 5: Add/Edit IPX Filter Dialog Box

The following two sample IPX filters provide examples of IPX filtering scenarios and the implementation of IPX filtering using the fields in the Add/Edit IPX Filter dialog box. These examples are provided to illustrate how IPX filters are configured, not as a recommendation of specific IPX filtering for your network.

To configure an IPX input filter using the network mask (Example)

To allow only the processing of received IPX packets with the Destination Network Number starting with the hex digits AB, configure the input filter as follows.

  1. In the IPX Packet Filters Configuration dialog box, click Add.

  2. In the Add/Edit IPX Filter dialog box in the Network Number text box, under Destination, type AB000000.

  3. In the Network Mask text box, under Destination, type FF000000.

  4. Click OK.

  5. In the IPX Packet Filters Configuration dialog box, select the Drop all except listed below option.

  6. Click OK.

This filter uses the network mask to express a range of IPX network numbers from AB000000 to ABFFFFFF.

To configure an IPX output filter using the network mask (Example)

To prevent the transmission or forwarding of all IPX traffic from the Source IPX Network Number of CC000001, configure the output filter as follows:

  1. In the IPX Packet Filters Configuration dialog box, click Add.

  2. In the Add/Edit IPX Filter dialog box, in the Network Number text box, under Source, type CC000001.

  3. In the Network Mask text box, under Source, type FFFFFFFF.

  4. Click OK.

  5. In the IPX Packet Filters Configuration dialog box, select the Receive all except listed below option.

  6. Click OK.

This filter uses the network mask to express the single IPX network number CC000001.

Note: The network mask in the IPX Add/Edit Filter dialog box is used only as an administrative convenience to express a range of IPX network IDs. This does not mean that the Windows NT 4.0 with RRAS Router is implementing a subnetting scheme for IPX internetworks. RIP for IPX internetworks use a flat network addressing space and do not support subnetting or route summarization.

RIP for IPX

RIP for IPX, a distance vector routing protocol, distributes routing information on an IPX internetwork. RIP for IPX was derived from the Xerox Network Systems (XNS) form of RIP but contains an additional field called the Tick Count. The Tick Count is an estimate of the amount of time it takes an IPX packet to reach the destination network. The Tick Count enables the RIP for IPX router to choose the route that has the lowest delivery delay.

To reduce convergence time, RIP for IPX uses split horizon and triggered updates. For information about split horizon and triggered updates, see "Unicast IP Support."

RIP for IPX consists of the following types of messages:

  • RIP clients, such as workstations, can locate the optimal route to an IPX network number by broadcasting a RIP GetLocalTarget route request.

  • Routers can request routing information from other routers by broadcasting a RIP general route request.

  • Routers can respond to RIP GetLocalTarget and RIP general route requests.

  • Routers can periodically (every 60 seconds by default) broadcast their routing tables using split horizon.

  • Routers can perform a triggered-update broadcast to inform adjacent routers of a change in the IPX internetwork configuration.

IPX Routing Tables

The IPX routing table is maintained by the RIP for IPX routing protocol. An entry in an IPX routing table contains the following fields:

Network Number The IPX Network Number that is matched to the destination network number in a packet's IPX header.

Forwarding MAC Address The destination MAC address of the IPX packet when it is forwarded to the next hop. For directly attached networks, the Forwarding MAC Address field is blank.

Tick Count The number of ticks it takes to reach the destination network where one tick is approximately 1/18 of a second. This estimate is based on ongoing RIP requests and replies and is determined by the transmission speed of network segments. LAN links are typically one tick, and WAN links, such as a T-1 link, are usually six or seven ticks. The tick count is an estimated, not precise, measurement of delay.

Hop count The number of routers that must be crossed to reach the IPX network number.

Interface (or port) The interface (or network interface card) that is used when forwarding IPX traffic using this route. The router has one interface installed for each attached network segment.

Figure 6 shows the structure of the IPX routing table.

Figure 6: IPX Routing Table

Figure 6: IPX Routing Table

If there are multiple routes to an IPX network number, IPX routers use the following process to select a route:

  1. Select the route with the lowest number of ticks.

  2. If there are multiple routes with the lowest number of ticks, select the route with the lowest number of hops.

  3. If there are multiple routes with the lowest number of ticks and the lowest number of hops, the router chooses from the routes with the lowest number of ticks and the lowest number of hops.

RIP for IPX Operation

The RIP operation for an IPX router consists of the following processes:

Initialization At startup, the IPX router broadcasts a RIP packet on each of its attached networks informing adjacent routers of the network numbers that are directly attached to the IPX router. Adjacent IPX routers process the broadcast and add appropriate entries to their routing tables. The initializing IPX router also broadcasts a RIP general request on all of its attached networks. The adjacent IPX routers respond to the RIP general request by sending their routing tables to the initializing IPX router, which uses them to build its own routing table.

Ongoing maintenance Every 60 seconds, the IPX router broadcasts its routing table (using split horizon) to all attached networks. Adjacent IPX routers receive the announced routes and update their routing tables accordingly.

Administrative router shutdown If an IPX router is brought down through an administrative action, it sends a RIP broadcast on all locally attached networks. In this broadcast all routes available through the router have a hop count of 16, indicating that these routes are no longer available. (All IPX routes must have a hop count of less than 16 to be considered reachable.) Neighboring routers propagate this change throughout the IPX internetwork through a triggered update.

Downed link If a link corresponding to one of the router's interfaces goes down and this failure is detected by the interface hardware and indicated to the routing process, IPX routes learned through the interface are no longer reachable. The unreachable IPX network numbers are announced, with a hop count of 16, in a triggered update. Note that most LAN-based interface hardware does not detect media faults, and therefore, the downed link is not immediately sensed. Many WAN adapters, however, have the ability to sense that a link to the WAN service provider is down.

Downed router An IPX router that goes down due to a power outage or other hardware or software failure does not have the ability to inform neighboring routers that routes once available through it are now unavailable. To prevent the lingering existence of unavailable network numbers in routing tables, each learned entry in the IPX routing table has a timeout value of 3 minutes (default value). If the entry is not refreshed in 3 minutes, it is set to unreachable (it is given a hop count of 16) and eventually removed. Therefore, if an IPX router goes down, it takes up to 3 minutes for the neighboring routers to time out routing table entries for routes that had been available through the downed router. The adjacent routers then broadcast those changes through a triggered update.

RIP for IPX Packet Structure

The RIP for IPX header (shown in Figure 7) comes immediately after the IPX header. RIP for IPX packets have a Packet Type of 0x1 and Source and Destination Socket numbers of 0x453.

Figure 7: The RIP for IPX Packet Structure

Figure 7: The RIP for IPX Packet Structure

Operation The 2-byte Operation field indicates the type of RIP for IPX message. Two values are defined:

  • 0x00-01 - RIP Request is set by a client attempting to find the best route to a destination network (a RIP GetLocalTarget request), or by a router to request all available routes from adjacent routers upon startup (a RIP general request).

  • 0x00-02 - RIP Response is set by a router replying to either a RIP GetLocalTarget or general request. Periodic announcements are also sent as RIP Response messages.

Following the Operation field is one or multiple RIP routes.

For RIP Requests, a single RIP route is included. For the RIP GetLocalTarget request, the single route includes the IPX network number of the desired destination network. For the RIP general request, the IPX network number is set to 0xFF-FF-FF-FF.

For RIP Responses, one or multiple RIP routes are included. For the response to the GetLocalTarget request, a single route is included. For the response to the RIP general request or a periodic announcement, up to 50 IPX routes can be sent in a single RIP for IPX packet. The maximum size for a RIP for IPX packet is 432 bytes. If more than 50 routes need to be sent, they are sent in multiple RIP for IPX packets.

Network Number The 4-byte Network Number field indicates the IPX Network Number.

Hop Count The 2-byte Hop Count field indicates the number of routers that are crossed when using this route.

Tick Count The 2-byte Tick Count field indicates the number of ticks it takes for an IPX packet to be sent using this route.

RIP for IPX Route Filters

RIP for IPX filters are available from the Input Filters and Output Filters options in the RIP for IPX Configuration dialog box. RIP route filtering allows input and output filtering on each interface and is based on exceptions. You can either configure the Windows NT 4.0 with RRAS Router to:

Accept or announce all RIP for IPX routes except those disallowed by filters.

– Or –

Discard or not announce all RIP for IPX routes except those allowed by filters.

Figure 8 shows the Input Route Filters and the Route Filter dialog boxes.

Cc750599.inag08(en-us,TechNet.10).gif

Figure 8: RIP for IPX Route Filter Dialog Boxes

The following two sample RIP route filters provide examples of route filtering scenarios and the implementation of route filtering using the fields in the Route Filter dialog box. These examples are provided to illustrate how route filters are configured, not as a recommendation of specific route filtering for your network.

To set a RIP for IPX route input filter (Example)

Set the following input filter in order to discard all RIP for IPX routes except those starting with the hexadecimal digit A.

  1. In the Input Route Filters dialog box, click Add.

  2. In the Network Number text box, type A0000000.

  3. In the Network Mask text box, type F0000000.

  4. Click OK.

  5. In the Input Route Filters dialog box, select the Deny Routes Except Listed Below option.

  6. Click OK.

This filter uses the network mask to express a range of IPX network numbers from A0000000 to AFFFFFFF.

To set a RIP for IPX route output filter (Example)

Set the following output filter in order to announce all RIP for IPX routes except the specific IPX Network ID of BB0000099.

  1. In the Output Route Filters dialog box, click Add.

  2. In the Network Number text box, type BB0000099.

  3. In the Network Mask text box, type FFFFFFFF.

  4. Click OK.

  5. In the Output Route Filters dialog box, select the Permit Routes Except Listed Below option.

  6. Click OK.

This filter uses the network mask to express the single IPX network number BB000009.

Note: The network mask above is used only as an administrative convenience to express a range of IPX network numbers. This does not mean that the Windows NT 4.0 with RRAS Router is implementing a subnetting scheme for IPX internetworks. RIP for IPX internetworks use a flat network addressing space and do not support subnetting or route summarization.

Note: You cannot configure separate active filters for Permit Routes Except Listed Below and Deny Routes Except Listed Below.

Static IPX Routes

The Windows NT 4.0 with RRAS Router allows the configuration of static IPX routes in the IPX routing table. Static IPX routes are typically used to define the IPX network numbers that are available across a dial-up connection. For more information about how static IPX routes are used over dial-up connections, see "Demand Dial Routing."

Static IPX routes are announced over LAN interfaces using normal RIP for IPX processes.

To add a static route

  1. In the Routing and Remote Access Manager console tree, click the plus sign (+) next to IPX Routing, right-click Static Routes, and then click Add Static Route.

    To define a static IPX route, in the Static Route dialog box, shown in Figure 9, type the following in the appropriate text boxes:

    • Network Number (4-byte IPX Network Number in hexadecimal [8 hex digits]).

    • Next Hop MAC Address (6-byte MAC address of the next hop in hexadecimal [12 hex digits]).

    • Tick Count (number of ticks to get to the Network Number).

    • Hop Count (number of routers to be traversed to get to the Network Number).

    • Interface (Windows NT 4.0 with RRAS Router interface through which the Network Number can be reached. For dial-up connections, the name of the appropriate demand-dial interface is selected).

Figure 9 shows the IPX Static Route dialog box.

Cc750599.inag09(en-us,TechNet.10).gif

Figure 9: Static IPX Route Dialog Box

SAP for IPX

The Novell NetWare Service Advertising Protocol (SAP) for IPX provides a name resolution mechanism for clients to resolve the addresses of services on an IPX internetwork. Through SAP, service-providing hosts, such as file servers, print servers, and application servers advertise their service names, service types, and IPX internetwork addresses using broadcasts. The service and IPX internetwork address information is collected in a database called a SAP table by IPX routers and Novell NetWare servers.

The SAP table information is periodically advertised and propagated throughout the internetwork, in a way similar to that in which IPX routes are announced. Services are added and removed from the SAP table dynamically: they are added and maintained in the SAP table based on periodic announcements, and they are removed from the SAP table through a time-out mechanism when announcements are no longer received. To reduce convergence time, SAP uses split horizon and triggered updates. For information about split horizon and triggered updates, see "Unicast IP Support."

SAP for IPX consists of the following types of messages:

  • SAP clients such as workstations request the name and address of the nearest server of a specific type by broadcasting a SAP GetNearestServer request.

  • Routers or SAP clients request the names and addresses of all services or of all services of a specific type by broadcasting a SAP general service request.

  • Routers respond to SAP GetNearestServer or SAP general service requests.

  • Routers periodically (every 60 seconds by default) broadcast their SAP tables using split horizon.

  • Service-providing hosts that are not routers periodically (every 60 seconds by default) broadcast their services.

  • Routers perform a triggered update broadcast to inform neighboring routers of a change in the SAP table.

IPX Routers and the Internal Network Number

To facilitate optimal communication to services running on IPX routers advertising themselves using Novell NetWare Service Advertising Protocol (SAP), IPX routers that are hosting services, such as Novell NetWare servers or Windows NT 4.0 with RRAS–based computers, require the configuration of an IPX internal network number. The IPX internal network is a virtual network inside the router. Attached to this virtual network is a virtual network interface card with the MAC address of 0x00-00-00-00-00-01. The IPX internal network is announced using RIP for IPX just as physical IPX networks are. When services running on the router are advertised with SAP, they are advertised with the IPX internetwork address of the internal network number and the virtual MAC address.

The IPX internal network allows for the optimal routing of packets to services running on the IPX router. The following analysis of the IPX traffic before and after the use of the IPX internal network clearly illustrate this optimization.

IPX Traffic Before the IPX Internal Network

Figure 10 depicts a simple IPX internetwork and a file server process where the IPX internal network is not being used.

Cc750599.inag10(en-us,TechNet.10).gif

Figure 10: Prior to Defining an IPX Internal Network Number

  1. The NetWare file server process running on IPX Router 1 advertises its location (using SAP) at the server address of AAAAAAAA:111111111111:0451 (IPX network:IPX Node:IPX Socket).

  2. The Host resolves the file server address by querying its default NetWare server (not shown in Figure 10).

  3. The Host broadcasts a RIP GetLocalTarget packet on network BBBBBBBB requesting the best route to IPX network AAAAAAAA.

  4. IPX Router 1 responds with a route that is 1 hop and 2 ticks away.

  5. IPX Router 2 responds with a route that is 1 hop and 2 ticks away.

  6. The Host chooses IPX Router 2's response (either because it was the first response received or through a random selection of multiple routers with the lowest tick count).

  7. The Host sends a connection request packet to the file server process at AAAAAAAA:111111111111:0451 by forwarding it to IPX Router 2 at the MAC address of 44-44-44-44-44-44 on network BBBBBBBB.

  8. IPX Router 2 forwards the connection request packet to Router 1 at its MAC address 11-11-11-11-11-11 on network AAAAAAAA.

  9. The file server process on Router 1 responds to the connection request packet by forwarding it to the Host's MAC address (not shown in the figure) on network BBBBBBBB.

The end result of the RIP GetLocalTarget sent by the Host is that packets sent from the Host to the file server process take a route that is not optimal. They are forwarded to IPX Router 2 when the optimal route is to IPX Router 1.

IPX Traffic After the IPX Internal Network

Figure 11 depicts the same simple IPX internetwork and file server process where the IPX internal network is being used.

Cc750599.inag11(en-us,TechNet.10).gif

Figure 11: After Defining an IPX Internal Network Number

  1. The NetWare file server process running on IPX Router 1 advertises its location (using SAP) on the internal network at the server address of CCCCCCCC:000000000001:0451 (IPX network:IPX Node:IPX Socket).

  2. The Host resolves the file server address by querying its default NetWare server (not shown in Figure 11).

  3. The Host broadcasts a RIP GetLocalTarget packet on network BBBBBBBB requesting the best route to IPX network CCCCCCCC.

  4. IPX Router 1 responds with a route that is 1 hop and 2 ticks away.

  5. IPX Router 2 responds with a route that is 2 hops and 3 ticks away.

  6. The Host always chooses IPX Router 1's response because Router 1's route to network CCCCCCCC has the lowest tick count.

  7. The Host sends a connection request packet to the file server process at CCCCCCCC:00000000001:0451 by forwarding it to IPX Router 1 at the MAC address of 22-22-22-22-22-22 on network BBBBBBBB.

  8. The file server process on Router 1 responds to the connection request packet by forwarding it to the Host's MAC address (not shown in the figure) on network BBBBBBBB.

The end result of the RIP GetLocalTarget by the Host is that packets sent from the Host to the file server process always take the optimal route.

The Windows NT 4.0 with RRAS Router and the IPX Internal Network and Internal Adapter

A Windows NT 4.0 with RRAS Router supporting IPX routing can be configured with a unique IPX internal network number that is entered in the properties of the IPX/SPX/NetBIOS Compatible Transport. If the internal IPX network number is not configured, a unique IPX network number is automatically configured during the startup of the Windows NT 4.0 with RRAS Router.

The Windows NT 4.0 with RRAS Router automatic configuration process picks a random IPX network number and sends out a RIP GetLocalTarget packet requesting a route to the chosen IPX network number. If a RIP response is received, the chosen IPX network number cannot be used, and a new random IPX network number is chosen. If a RIP response is not received, the chosen IPX network number is automatically entered in the properties of the IPX/SPX/NetBIOS Compatible Transport.

To see the virtual network adapter corresponding to the IPX internal network, in the Routing and Remote Access Manager console tree, click the plus sign (+) next to your server, and then click Routing Interfaces. Internal appears in the details pane. Internal is also found in many of the containers under IPX Routing.

SAP Tables

An entry in a SAP table contains the following fields:

Server Name.

The name of the server hosting the service.

Server Type.

The type of service (for example, file server, print server, or application server).

Server Address.

The full Network:Node:Socket IPX address of the service. For example, the file and print sharing process on a NetWare server might have the Server Address of 000000AA:0000000000001:0451.

Hop Count.

The number of routers to cross to reach the server hosting the service. The maximum hop count for services is 15. Services 16 hops away or greater are considered unreachable.

Interface (or Port).

The interface (network interface card) on which the SAP entry was learned.

Figure 12 illustrates the structure of the SAP table.

Figure 12: SAP Table

Figure 12: SAP Table

If there are multiple entries for the same Server Name and Server Type, IPX routers select the SAP table entry with the lowest number of hops. If multiple SAP table entries have equally low hop counts, the router chooses randomly from those.

SAP Operation for an IPX Router

SAP operation for an IPX router consists of the following processes:

Initialization If the IPX router is also a hosting service, such as a Novell NetWare server or Windows NT 4.0 with RRAS–based computer, it broadcasts a SAP packet onto each attached network informing adjacent routers of its own services. The IPX router then broadcasts a SAP general request for all services onto each attached network. The responses to the SAP general request are used to build the SAP table.

Ongoing maintenance Every 60 seconds, the IPX router broadcasts its SAP Table using split horizon on all attached networks. Adjacent IPX routers receive the advertised services and update their SAP tables appropriately.

Administrative router shutdown If an IPX router is brought down properly through an administrative action, it sends a SAP broadcast on all attached networks indicating that the services previously available through the router are no longer available. The SAP Agent sets the hop count for the services to 16 to indicate that these services are unreachable. Adjacent routers propagate this change throughout the IPX internetwork with a triggered update.

Downed link If a link corresponding to one of the router's interfaces goes down and this failure is detected by the interface hardware and indicated to the router, SAP services learned through the interface are unreachable. The unreachable SAP services are advertised with a hop count of 16 in a triggered update. Note that most LAN-based interface hardware does not currently detect media faults and therefore this change is not immediately sensed and propagated. Many WAN adapters, however, have the ability to sense that a link to the WAN service provider is down.

Downed router If a router goes down due to a power outage or other hardware failure, it does not have the ability to inform the adjacent routers that the services available through the router are no longer available. To prevent the lingering existence of inaccessible services in SAP tables, each learned entry in the SAP table of each IPX router has a default timeout value of 3 minutes. If the entry is not refreshed in 3 minutes, it is given a hop count of 16 and eventually removed. Therefore, if an IPX router goes down, it takes up to 3 minutes for the adjacent routers to time out the entries in their SAP table for the services that were available through the downed router. The adjacent routers then broadcast those changes through a triggered update.

SAP Packet Structure

The SAP header, shown in Figure 13, immediately follows the IPX header. SAP packets have an IPX Packet Type of 0x4 or 0x0 and Source and Destination Socket numbers of 0x452.

Figure 13: The SAP for IPX Packet Structure

Figure 13: The SAP for IPX Packet Structure

Note: Figure 14 depicts the packet structure for the SAP Response and SAP GetNearestServer Response. The SAP Request and SAP GetNearestServer Requests packets only contain the Operation and Service Type fields and are a 34-byte packet (30 bytes for the IPX header, 4 bytes for the SAP header).

Operation The 2-byte Operation field indicates the type of SAP message. Table 3 defines the values for the Operation field.

Table 3 SAP Operations

Operation

Type of Message

Description

1

Request

Sent by a router or SAP client to request all services or all services of a specified type.

2

Response

A reply to a SAP Request. Periodic SAP advertisements are also sent as a SAP Response.

3

GetNearestServer Request

Sent by a workstation to request the IPX internetwork address of the nearest (quickest response) server of a specified service type.

4

GetNearestServer Response

Sent in response to the SAP GetNearestServer Request and contains a single name and IPX internetwork address of the nearest server of a requested service type.

Following the Operation field is a series of up to 7 SAP services in the same SAP message for a maximum SAP packet size of 480 bytes. If more than 7 services need to be sent, they are sent in multiple SAP packets.

Service Type The 2-byte Service Type field indicates the type of service that the service provides. Service types are assigned uniquely by Novell, Inc. Some commonly defined SAP service types are listed in Table 4.

Table 4 SAP Service Types

Server

Service Type (hex)

Unknown

00-00

NetWare File Server

00-04

NetWare Print Server

00-07

Microsoft RPC Server

06-40

General SAP Request

FF-FF

Server Name The 48-byte Server Name field stores the name of the server advertising the service. The combination of Server Name and Service Type uniquely identifies a service on an IPX internetwork. Server names under 48 bytes are terminated with the ASCII NULL character.

Network Number The 4-byte Network Number field indicates the IPX network number where the server hosting the service resides.

The 6-byte Node Number field indicates the IPX node number where the server hosting the service resides.

Socket Number The 2-byte Socket Number field indicates the socket number on which the service process is listening.

Intermediate Networks The 2-byte Intermediate Networks field indicates the number of routers to traverse to reach the server hosting the service.

SAP Filters

SAP filters are available from the Input Filters and Output Filters buttons in the SAP for IPX Configuration dialog box. You can configure input and output SAP filtering on each Windows NT 4.0 with RRAS Router interface to either permit or deny services based on exceptions, as shown in Figure 14.

Cc750599.inag14(en-us,TechNet.10).gif

Figure 14: SAP for IPX Input Filter Dialog Boxes

Note: You cannot configure separate active filters for Permit Services Except Listed Below and Deny Services Except Listed Below.

Note: When applying the filter, the logical operator, AND, is used to combine specified parameters within each filter. OR is used to combine the specified parameters between filters.

Static Services

The Windows NT 4.0 with RRAS Router allows the creation of static services in the SAP table. Static services are advertised using normal SAP processes. Static SAP services are typically used to define the services that are available across a dial-up connection. For more information about how static SAP services are used over dial-up connections, see "Demand Dial Routing."

To add static services, in the Routing and Remote Access Manager console tree, click the plus sign (+) next to IPX Routing, right-click Static Services, and then click Add Static Services. Figure 15 shows the resulting Static Service dialog box.

Cc750599.inag15(en-us,TechNet.10).gif

Figure 15: SAP Static Services Dialog Box

NetBIOS Broadcasts

To facilitate the operation of NetBIOS-based applications on an IPX internetwork, NetBIOS over IPX provides standard NetBIOS services such as datagrams (single packets sent without acknowledgement such as broadcasts), sessions (multiple packets sent with acknowledgements between two endpoints) and name management (registering, querying, and releasing NetBIOS names).

For more information about NetBIOS, see the Microsoft® Windows® 2000 Resource Kit TCP/IP Core Networking Guide.

NetBIOS over IPX is implemented with two different packet structures:

NetBIOS over IPX broadcasts Used to perform NetBIOS datagram and name management functions, such as Name Queries and Name Registrations. IPX routers might or might not forward NetBIOS over IPX broadcast packets.

NetBIOS over IPX sessions Used to provide connection-oriented, reliable data transfer between two NetBIOS applications on an IPX internetwork. NetBIOS over IPX session traffic is unicast to a specific IPX internetwork address, rather than broadcasted. NetBIOS over IPX sessions are characterized by an IPX packet type of 0x04 (Normal IPX), and an IPX Source or Destination Socket of 0x455.

Because all NetBIOS over IPX session traffic is forwarded by IPX routers, the following sections discuss only NetBIOS over IPX broadcasts and how the Windows NT 4.0 with RRAS Router supports them.

The IPX WAN Broadcast

An IPX router must be able to propagate broadcast traffic in order for nonroutable protocols (such as NetBIOS), which rely on broadcast traffic, to function properly in an IPX internetwork. (NetBIOS relies on broadcast traffic to register and resolve NetBIOS names.) Support for the propagation of broadcast traffic across IPX routers is provided by a special IPX packet called the IPX WAN Broadcast or IPX Packet Type 20.

The IPX WAN Broadcast header is characterized by an IPX packet type of 0x14 (20 in decimal) and the IPX Destination Node address of 0xFF-FF-FF-FF-FF-FF. IPX routers can be configured to either propagate or silently discard IPX WAN Broadcasts.

NetBIOS over IPX Broadcasts contain the IPX WAN Broadcast header.

IPX WAN Broadcasts and Microsoft Networking

In Windows NT 4.0 with RRAS, Windows NT 4.0 and earlier, Windows for Workgroups, or Windows 95 or Windows 98 networking, server, and workstation services using Server Message Blocks (SMBs) for file and print sharing communication can use NetBIOS over IPX or just IPX. The process of sending SMBs over IPX without NetBIOS is known as direct hosting.

IPX WAN Broadcasts are used for the following NetBIOS over IPX SMB–based networking processes:

  • NetBIOS Name Registration

  • NetBIOS Name Query

  • Browser Host Announcement

  • NetLogon

IPX WAN Broadcasts are used for the following direct hosting SMB-based networking processes:

  • Locate Server Name Query

  • Browser Host Announcement

Disabling the propagation of IPX WAN Broadcasts can impair the ability of Microsoft SMB–based computers to propagate browsing information, resolve names, and establish connections on an IPX internetwork.

Note: When direct hosting, an IPX over NetBIOS header is not used. Instead, the SMBs are sent directly over IPX. The Locate Server Name Query and Browser Host Announcement direct hosting messages are sent using an IPX WAN Broadcast without the corresponding NetBIOS fields.

NetBIOS Over IPX Broadcast Packet Structure

The NetBIOS over IPX Broadcast header, shown in Figure 16, is a combination of the IPX WAN Broadcast header and a NetBIOS header, which is placed immediately after the IPX header. NetBIOS over IPX Broadcast packets have a Packet Type of 0x14, a Destination Node number of 0xFF-FF-FF-FF-FF-FF, and a Source and Destination Socket number of 0x455.

Figure 16: NetBIOS over IPX Broadcast Packet Structure

Figure 16: NetBIOS over IPX Broadcast Packet Structure

Network 1–Network 8 (IPX WAN Broadcast Header)

The first eight fields (Network 1 through Network 8) are the IPX WAN Broadcast header. The series of IPX networks on which the IPX WAN Broadcast packet has traveled is recorded by IPX routers as the packet is propagated through an IPX internetwork. To prevent loops, this network path information is analyzed upon receipt at a router and the packet is forwarded to all networks except those on which it has already been.

After eight networks, the IPX WAN Broadcast packet is silently discarded by the last router in the path. However, recall that the maximum hop count for any IPX packet on a RIP for IPX-based internetwork is 16. The difference in the maximum number of hops between an IPX WAN Broadcast and a normal IPX packet can cause confusion in large IPX internetworks.

For example, a NetWare server 10 hops away is reachable from a NetWare client because its IPX internetwork address is discovered by querying the SAP table or directory tree of its default NetWare server. Connection requests sent to the NetWare server are unicast traffic that reach the NetWare server because it is within 16 hops.

On the other hand, a Windows NT 4.0 with RRAS–based computer 10 hops away is not reachable for a Microsoft SMB–based client because its IPX internetwork address is discovered using a NetBIOS Name Query sent using a NetBIOS over IPX Broadcast packet that is discarded after 8 networks. Because there is no response to the Name Query, the IPX internetwork address of the Windows NT 4.0 with RRAS–based computer is not resolved and a connection cannot be established. To prevent this problem, design your IPX internetwork so that there are no more than 7 IPX routers between any two Windows NT 4.0 with RRAS computers.

Name Type Flags (NetBIOS Header) The 1-byte Name Type Flags field of the NetBIOS header contains a series of flags to indicate the state of the NetBIOS name. The individual bits are defined in Table 5.

Table 5 Name Type Flag Bits

Name Type Bit

Description

1

Group Name (1) or Unique Name (0)

2

Name in Use (1) or Name Unused (0)

3, 4, 5

Unused

6

Name Registered (1) or Name Not Registered (0)

7

Name Duplicated (1) or Name Not Duplicated (0)

8

Name Deregistered (1) or Name Not Deregistered (0)

Bits are numbered from the high order bit (Bit 1) to the low order bit (Bit 8).

Data Stream Type 2 (NetBIOS Header) The 1-byte Data Stream Type 2 field of the NetBIOS header indicates the type of NetBIOS packet. Table 6 lists the defined values for the Data Stream Type 2 field.

Table 6 Data Stream Type 2 Values

Data Stream Type 2

Description

1

Find Name

2

Name Recognized

3

Add Name

NetBIOS Name (NetBIOS Header) The 16-byte NetBIOS Name field of the NetBIOS header stores the NetBIOS name.

Static NetBIOS Names

When the Only for Statically Seeded Names NetBIOS broadcast delivery option is selected in the NetBIOS Broadcast Configuration dialog box, NetBIOS over IPX broadcasts are only propagated for a defined series of NetBIOS names and in a preferred direction. Static NetBIOS names can be used to confine NetBIOS over IPX broadcast traffic in environments where client-side NetBIOS applications need to access a small set of server-side NetBIOS applications.

For example, in a NetBIOS over IPX Lotus Notes environment, numerous Lotus Notes clients need to access a relatively small number of Lotus Notes servers and to resolve the IPX internetwork addresses of those servers. In this situation, the network administrator configures the routers to pass NetBIOS over IPX broadcasts for only those NetBIOS names that correspond with the names of the Lotus Notes servers.

To add statically configured NetBIOS names, in the Routing and Remote Access Manager console tree, click the plus sign (+) next to IPX Routing, right-click Static NetBIOS Names, and then click Add NetBIOS Name. Figure 17 shows the resulting Static NetBIOS Name dialog box.

Cc750599.inag17(en-us,TechNet.10).gif

Figure 17: Static NetBIOS Name Dialog Box

Additional Resources

  • For more information about the IPX router, see IPX Router Specification Version 1.10, Part 107 by Novell, Inc., October 16, 1992.

  • For more information about NetWare LANs, see NetWare LAN Analysis, 2nd Edition by Laura Chappel, 1996: Novell Press.