Laura Chappell
This article is the second part of a three-part series that presents a packet-level view of NetWare Link Services Protocol (NLSP), Novell's default routing protocol for IntranetWare and NetWare 4.11. The first article in this series explained how NLSP devices use hello packets and Link State Protocol (LSP) packets to create a map of the entire network. This map is called the link state database. (See "NetWare Link Services Protocol: Building a Link State Database," NetWare Connection, Sept. 1997, pp. 3845.) The second article in this series explains the following:
As explained in the last issue of NetWare Connection, NLSP devices build the link state database by exchanging hello packets and LSP packets. By default, each NLSP device transmits an LSP packet approximately every two hours. This LSP packet contains information about the NLSP device's links, services, and external routers. For example, an LSP packet transmitted by an IntranetWare server would include information such as the services the server provides and its internal and external IPX addresses.
Each NLSP device uses a unique identification number called an LSP ID number to identify all of the device's LSP packets. To uniquely identify LSP packets, the NLSP device increments the sequence number in each LSP packet, whether or not other information has changed since this device sent its last LSP packet.
The higher the sequence number is, the more up-to-date the information in the LSP packet is. For example, suppose that the CORP-FS router were running on a network on which few changes were made. If the CORP-FS router transmitted an LSP packet with sequence number 4 at 8 a.m., this router would transmit an LSP packet with sequence number 5 at approximately 10 a.m. Both LSP packets would contain the same LSP ID number, such as LSP ID number 0x02-00-00-22-22-22-00-00.
If you were to monitor network communications over a 24-hour period, you would find that each NLSP device would send approximately 12 LSP packets, incrementing the sequence number in each LSP packet. However, if the structure or function of the network changed, an NLSP device might send more than 12 LSP packets during a 24-hour period. Network events such as the following affect the structure or function of the network:
If an NLSP device detects a network event that changes the structure or function of the network, the device transmits an LSP packet that contains the updated information. The NLSP device transmits this LSP packet whether or not two hours have passed since the device last transmitted an LSP packet. For example, if you loaded the PSERVER NetWare Loadable Module (NLM) on an IntranetWare server, the server would then offer print services and would need to broadcast an updated LSP packet, advertising the new service. The IntranetWare server would use the same LSP ID number used to announce this server's presence on the network. However, the IntranetWare server would increment the sequence number of the LSP packet and include the new service information with its link information and other available services.
When an NLSP device receives an LSP packet, the device checks its link state database to determine if the LSP packet contains a new LSP ID number or a known LSP ID number. If the link state database does not contain the LSP ID number listed in the LSP packet, the NLSP device makes a new LSP ID entry in its link state database. If the LSP packet has an LSP ID number that matches an LSP ID entry in the link state database, the NLSP device must determine if the LSP packet contains more up-to-date information than the information already recorded in the link state database.
To make this determination, the NLSP device compares the sequence number of the incoming LSP packet to the sequence number associated with the LSP ID entry in the link state database. If the incoming LSP packet has a higher sequence number than the existing LSP ID entry in the link state database, the NLSP device updates this entry.
Because each NLSP device updates its information at least every two hours and every time the network changes, the link state database contains accurate information. If you want to increase or decrease the default time interval between LSP packets, you can use Novell's INETCFG utility to reset this interval. (For more information about changing the default time interval, see the "Changing NLSP Parameters" section.)
To further ensure that each NLSP device has accurate information about the network, the designated router periodically transmits a summary of its link state database in a Complete Sequence Number Packet (CSNP). The designated router sends a CSNP at least every 30 seconds but not more than every five seconds.
A CSNP lists the LSP ID number of every LSP ID entry in the designated router's link state database. A CSNP also includes the sequence numbers and checksum values associated with the LSP ID number. (See Figure 1.)
In addition, a CSNP includes a remaining lifetime, or time-to-live, field for each LSP ID entry. This field indicates when the NLSP device that is associated with each LSP ID entry is expected to transmit the next periodic LSP packet.
Each NLSP device compares the CSNP to the device's link state database to see if there are any inconsistencies. If an NLSP device finds inconsistencies, the device takes one of the following actions, depending on if the designated router (the sender) has up-to-date information or if the NLSP device (the receiver) has up-to-date information:
In most cases, the sequence number clearly identifies if the incoming LSP packet or the link state database has up-to-date information. Occasionally, however, an NLSP device may receive an incoming LSP packet that has the same LSP ID number and the same sequence number as an existing LSP ID entry in the link state database. In this case, the NLSP device examines two other fields contained in an LSP packet: the remaining lifetime field and the checksum field. Using these two fields, the NLSP device completes the process outlined in Figure 3 to determine if the incoming LSP packet or the existing LSP ID entry in the link state database has up-to-date information.
After an NLSP device determines that the LSP packet and the corresponding LSP ID entry in the link state database have the same sequence number, the device examines the remaining lifetime field. Because an NLSP device transmits an LSP packet approximately every two hours, each LSP packet includes a remaining lifetime field that indicates how long a receiving NLSP device should retain the information in the LSP packet. This aging mechanism ensures that NLSP devices purge information from the link state database when this information becomes outdated. The remaining lifetime is expressed in seconds.
The designated router includes the LSP ID entry's remaining lifetime value in the CSNP. For example, Figure 1 indicates that LSP ID 0x02-00-00-22-22-22-00-00 has a remaining lifetime of 6,634 seconds.
You can observe how remaining lifetime values decrease by examining CSNPs that are transmitted on the network. For example, Figure 4 lists the remaining lifetime values detected in five sequential CSNP packets.
After an LSP packet expires (the remaining lifetime of the LSP packet reaches zero), an NLSP device performs the following tasks:
1. The NLSP device retains only the LSP packet header in the link state database, indicating that the remaining lifetime is zero.
2. The NLSP device updates the LSP packet length and checksum fields to reflect the size of the LSP packet header (the only information retained in the link state database). The NLSP device then calculates the checksum of the LSP packet header.
3. The NLSP device records the time at which the remaining lifetime value became zero.
4. After the remaining lifetime value becomes zero, the NLSP device uses the zeroAgeLifetime parameter to determine how long this device should keep the LSP packet header in memory. After the zeroAgeLifetime expires (the default value of this parameter is 60 seconds), the NLSP device purges the LSP packet header from the link state database.
As explained in the last issue of NetWare Connection, when an NLSP device transmits an LSP packet, the LSP packet is "flooded" throughout the network. Typically, protocols that flood information cause problems on networks that contain routing loops. (A routing loop is created when networks that are connected by routers contain a circular path.) To ensure that the network can handle flooded LSP packets, Novell engineers used a technology called split horizon.
When an NLSP device receives an LSP packet, the device performs a series of checks to determine if the LSP packet is the proper length and to ensure that the information in the LSP packet has not expired. This NLSP device then forwards the LSP packet to all attached circuits, except the circuit on which the LSP packet was received. This split horizon technology prevents an NLSP device from transmitting an LSP packet back to the circuit from which the packet was received.
You can use Novell's INETCFG utility to adjust the way that NLSP operates on a network. NLSP has two types of parameters: Global parameters affect all NLSP devices, and per-binding parameters affect only a particular IPX circuit. (You define an IPX circuit each time that you bind IPX to a LAN driver on the server.)
Because NLSP has both global and per-binding parameters, you can customize how an NLSP device operates on each of its circuits. For example, you could use a global parameter to specify the maximum number of path splits (for load balancing), and you could use a per-binding parameter to specify the cost of individual routes.
To define global parameters, you select the Protocols option in the INETCFG utility; to define per-binding parameters, you select the Bindings option.
Hop Count Limit. Although the default maximum hop count for an NLSP device is 64, you can increase this parameter up to 127. However, if RIP devices exist on a route, these devices allow a maximum hop count of only 15.
Maximum Number of Path Splits. If two or more routes have an equal cost, this parameter determines how many routes an NLSP device should consider in load balancing. The default value is 1 (no path splitting), and the range is 1 to 8.
LSP Size. This parameter defines the size of LSP packets in bytes. The default value is 512 bytes, and the range is 128 to 4,096 bytes.
Override NLSP System ID. The NLSP system ID number identifies an NLSP device. This number is assigned automatically, using part of the NLSP device's internal IPX number.
The designated router uses a variation of its NLSP system ID number to assign the network a LAN ID number. As a result, you may want to manually assign the designated router a more distinctive NLSP system ID number. However, you should keep in mind that the NLSP system ID number must be unique on the entire network.
NLSP Convergence Rate. This parameter determines how fast NLSP information is processed. You can choose one of three values: Fast, Manual, or Default. You can then use the INETCFG utility to view a read-only file that displays the settings for the value you selected.
By selecting the Fast value, you automatically increase the rate that new information is propagated throughout the network. (See Figure 5.) By selecting the Manual value, you can manually configure this parameter's settings to customize the NLSP convergence rate. However, Novell recommends that you keep the Default value, since this value should meet the needs of most networks. (See Figure 6.)
NLSP State. An NLSP device has three possible states: on, off, and auto. The default value of this parameter is Auto.
Media Access Control (MAC) Channel. This parameter allows you to specify that an NLSP device sends LSP packets to the broadcast address (0xFF-FF-FF-FF-FF-FF) or to an NLSP multicast address. The following are NLSP multicast addresses:
IEEE 802.3 0x09-00-1B-FF-FF-FF
IEEE 802.5 0xC0-00-10-00-00-00
FDDI 0X09-00-1B-FF-FF-FF
Maximum Transmission Unit (MTU) Override. This parameter overrides the maximum packet size of a network interface board. The default value is 0, which means that you do not want to override the maximum packet size. You must specify a value between 576 and 65,535 bytes to override the maximum packet size.
You would adjust this parameter if the network included a bridge or another network device that accepts only certain packet sizes. You would also adjust this parameter if you wanted NLSP devices to send smaller packets across a WAN link.
Priority. This parameter determines the priority number of an NLSP device. The priority number is used to determine which NLSP device is the designated router. The default value is 44, and the range is 0 to 127. You can increase this value to force a particular NLSP device to become the designated router.
Cost Override. An NLSP device uses available throughput to determine a route's cost. For example, a 10 Mbit/s Ethernet network is assigned a cost of 20. You can override the cost to force an NLSP device to use a specific route. The range for this parameter is 0 to 63. (See Figure 7.)
Pace Override. The pace indicates how many routing packets can be sent in one second from a specific port. The default value of this parameter is based on available throughput in bits per second, and the range is 1 to 1,000. For example, on a 19,200 bit/s link, the following equation determines the pace:
paceRate = MAX [ 1, (19,200/10,000) ]
The paceRate on this link equals 1.92. The pacing on a faster network (such as a 10 Mbit/s Ethernet network) is actually 18 packets per second. A minimum gap of 1/18 second between LSP packets prevents an NLSP device from overloading other devices on the network.
This article explained how an NLSP device updates its link state database and how you can change NLSP parameters. The third article in this series will explain how NLSP devices interoperate with SAP/RIP devices.
Laura Chappell researches, writes, and lectures on protocol performance, troubleshooting, and optimization. You can reach Laura at lchappell@imagitech.com.
NetWare Connection, October 1997, pp.34-39