How to Configure NIC Teaming Drivers Using INETCFG
Articles and Tips: article
Senior Software Engineer
Thanks to Sudarshan S of Novell for his help with this AppNote.
01 Oct 2002
This AppNote discusses how to configure third-party NIC teaming drivers through the INETCFG utility on servers running NetWare 6 SP 1 and above. These drivers combine physical NICs to provide solutions such as load balancing and fault tolerance. The AppNote also provides information on how to transfer the ownership of the commands related to NIC teaming from the AUTOEXEC.NCF file to the INETCFG utility. It ends with an example configuration.
INETCFG utility, NIC teaming, fault tolerance, load balancing, network management, server management, product configuration
NetWare 6 SP1 and above
network administrators, support technicians
familiarity with NetWare server management
NIC teaming is a feature that allows you to logically group network interface cards (NICs) in a server together so that they appear to the operating system as one network interface. Most teaming solutions are vendor specific. Every vendor provides their own virtual driver which supports NIC teaming on specific NICs. This is unlike the load balancing and fault tolerance solution built into the NetWare TCP/IP stack, which is generic and works with all drivers. (For more information on this, see "Link Level Load Balancing and Fault Tolerance in NetWare 6" in the March 2002 issue of Novell AppNotes, available online at http://support.novell.com/techcenter/articles/ana20020303.html.)
This AppNote discusses how to configure third-party NIC teaming drivers via the INETCFG utility on servers running NetWare 6 SP 1 and above. These drivers combine physical NICs to provide solutions such as load balancing and fault tolerance. The AppNote also provides information on how to transfer the ownership of the commands related to NIC teaming from the AUTOEXEC.NCF startup file to the INETCFG utility. It ends with an example configuration.
INETCFG Support for NIC Teaming Solutions
INETCFG is the utility on NetWare to enable and configure various protocol stacks and network interfaces, and to bind the protocols to the network interfaces. This utility also provides a framework that allows a NIC teaming configuration. The main advantage of using INETCFG is ease of further configuration. This enhancement of INETCFG is completely backward-compatible. Hence, configuration files need not be replaced.
There are two parts to the configuration of NIC teaming drivers:
Configuration of the NIC teaming solution in INETCFG
Transfer of commands related to NIC teaming from the AUTOEXEC.NCF file to the INETCFG utility
Configuration of the NIC Teaming Solution in INETCFG
This section discusses how to configure the NIC teaming solution through INETCFG.
Note: To understand this configuration better, it is suggested that you use the online help which is available by pressing the <F1> key within the INETCFG utility.
INETCFG identifies the following steps in the NIC teaming configuration:
Configure the drivers.
Sepcify the virtual driver as a protocol.
Bind the virtual driver to physical drivers.
Specify the post-bind commands.
Bind a Network-layer protocol to the virtual driver.
Step 1: Configure the Drivers. First, ensure the presence of an .LDI file for the virtual driver in the SYS:\SYSTEM directory. To configure the board, go to "Boards" section and select the driver name. Similarly, configure all other physical drivers which are also part of the configuration.
Step 2: Specify the Virtual Driver as a Protocol. In most NIC teaming solutions, there are bind commands which bind the virtual driver to physical drivers. The NIC teaming driver acts as both a protocol and a driver.
As a protocol, real NICs will be bound to this protocol.
As a driver, they will be bound to the immediate uper layer (Network layer IP, IPX).
INETCFG accepts a binding such as "BIND A to B" only if A is a protocol and B is a driver. Since the virtual driver plays both roles (a protocol and a driver) in the bind command, it should be registered as a protocol, in addition to its configuration as a driver (Step 1). To do this, go to Protocols > User-specified Protocol and add a protocol field.
Step 3: Bind the Virtual Driver to Physical Drivers. The syntax of any bind command is:
Bind <Protocol> [To] <Driver> [Parameters]
Go to the "Bindings" section of INETCFG to perform this step. Since in this case the first parameter (Protocol) is the virtual driver, select the protocol from the "User-specified Protocol" section. Then select a physical driver as the second parameter (Driver). Use the Parameters field to specify any additional parameters for this bind command.
Note: The name of the protocol must be same while configuring Step 2 in the "User- specified Protocol" section and configuring Step 3 in the "Bindings" section.
Step 4: Specify the Post-Bind Commands. Most NIC teaming solutions need the execution of some proprietary commands after Step 3 and before Step 5. We call these "post-bind" commands because you must execute these commands after executing all the bind commands of the user- specified protocol (virtual driver) to physical drivers (that is, after executing all the bindings of Step 3).
When configuring post-bind commands, always include the full command line. For example, do not skip the keyword "load" in a post-bind command such as "load VDriver commit". Upon reinitializing, INETCFG executes only three types of commands: load, bind, and set.
Step 5: Bind a Network-Layer Protocol to the Virtual Driver. To configure this binding, select any Network-layer protocol and then select the NIC teaming virtual driver as the driver. Reinitialize the system to activate this configuration.
Transfering Commands Related to NIC Teaming to INETCFG
On its first load, INETCFG prompts the user to transfer commands from AUTOEXEC.NCF to configuration files maintained by INETCFG. Accept this transfer if you want INETCFG to take ownership of the commands related to NIC teaming for ease of the further configuration.
Note: In this section and in the remainder of this AppNote, "commands" means those commands that configure NIC teaming.
As far as INETCFG's ownership is concerned, the AUTOEXEC.NCF startup file is supposed to contain only load, bind, and set commands. The load command is for loading protocols and drivers; the bind command is for binding a protocol to a driver. Hence, post-bind commands require a special syntax since they also start with the keyword "load" and therefore need to be distinguished from general load commands.
In order for INETCFG to accept post-bind commands, they need to be enclosed within two "#" lines (any line that starts with "#" is considered a comment in AUTOEXEC.NCF). The first "#" line in the AUTOEXEC.NCF file should have the following syntax:
where <ProtocolName> is the name of the user-specified protocol.
Note: Either a space or hyphen ("-") can be used as the delimiter between the keyword PostBindCommand and the protocol name.
After specifying all the post-bind commands, place a second "#" line before entering any other command in the next line.
Here is an example of the proper syntax for post-bind commands in the AUTOEXEC.NCF file:
#PostBindCommand <ProtocolName> <Post Bind Command-1> <Post Bind Command-2> . . . <Post Bind Command-n> # Proceed with other commands from this line onward
In this example, the first "#" line with the specified keyword, delimiter (space or "-"), and protocol name indicates the start of the post-bind commands, whereas the second "#" line indicates the end of the post-bind commands.
Use of Multiple Post-Bind Commands
The post-bind command section in INETCFG can accept up to 10 commands. You can input multiple relevant commands, depending on the current NIC teaming configuration.
Most NIC teaming solutions provide set parameters for fine-tuning the configuration. These parameters can also appear in the post-bind commands section. Be sure to remember the execution order of the post-bind commands and their order of execution in the NIC teaming configuration.
Example Configuration in INETCFG
Several third-party drivers provide a NIC teaming solution on NetWare. For example, Compaq's CPQANS.LAN and Intel's iANS.LAN drivers can act as virtual drivers to provide this solution.
This section presents a generic NIC teaming example, where "VDriver" could be any virtual driver providing a NIC teaming solution. This is a very simple example. For more details on a particular implementation, refer to the documentation provided by the respective third-party vendors.
The commands for this configuration are:
(1) LOAD CE100B NAME=CE100B_1_EII FRAME=Ethernet_II SLOT=5 (2) LOAD CE100B NAME=CE100B_2_EII FRAME=Ethernet_II SLOT=6 (3) LOAD VDriver FRAME=Ethernet_II (4) BIND VDriver CE100B_1_EII (5) BIND VDriver CE100B_2_EII (6) PostBindCommand-1 . . . (7) PostBindCommand-n (8) Additional commands that set NIC teaming parameters (optional) (9) BIND IP VDriver ADDR=188.8.131.52 MASK=255.255.252.0
Following are the steps for setting up this configuration in INETCFG (these steps are the same as those presented earlier in this AppNote).
Step 1: Configuring the Drivers
Commands (1), (2), and (3) are configured in the "Boards" section of INETCFG, as shown in Figure 1.
Configuring physical drivers and the virtual driver.
Step 2: Specifying the Virtual Driver as a Protocol
Register the virtual driver as a protocol, as shown in Figure 2.
Registering the virtual driver as a protocol.
Remember, this name must be the same as the one that will be entered in the "Bindings" section later in Step 3. This is mandatory for correct configuration.
Figure 3 shows the virtual driver configured as a protocol.
Virtual driver configured as a protocol.
Step 3: Binding the Virtual Driver to Physical Drivers
Commands (4) and (5) are configured in the "Bindings" section of INETCFG. Bind the virtual driver to all physical drivers that are part of this configuration, as shown in Figure 4.
Binding the virtual driver to a physical driver.
Step 4: Specifying the Post-Bind Commands
Commands (6) through (8) must be entered in the Protocols > User-specified Protocol > PostBindCommands section of INETCFG, as shown in Figure 5.
Specifying the post-bind commands.
Most NIC teaming drivers provide the option of fine-tuning parameters. You can enter additional commands that set NIC teaming parameters in this section, in addition to the post-bind commands.
Step 5: Binding a Network-Layer Protocol to the Virtual Driver
Command (9) must be configured in the "Bindings" section of INETCFG. In this step, you bind a Network-layer protocol to the virtual driver, as shown in Figure 6.
Viewing the list of all bindings.
Remember to reinitialize the system for the new configuration to become active.
The NIC teaming feature described in this AppNote provides solutions such as load balancing and fault tolerance. INETCFG provides the framework to support these solutions on server running NetWare 6 SP1 and above. Users can opt to transfer the ownership of commands related to NIC teaming to INETCFG, which eases the further configuration of NIC teaming. Novell recommends that you verify these NIC teaming solutions on a simulated test network before you deploy them directly in a production environment.
* Originally published in Novell AppNotes
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.