Previous Page: Non-ARPable Secondary IP Address  Next Page: Setting Up

NIC Teaming

INETCFG is an Internetworking Configuration utility for the NetWare server. INETCFG.NLM is a server console utility that provides menus for configuring LAN boards, protocols, and bindings. In NetWare 6 Support Pack 1, INETCFG supports the configuration of NIC teaming solutions provided by third-party drivers such as Compaq and Dell.

Teaming is effective in cases where you install two or more NICs in a server. Teaming is logically grouping the NICs so that they appear to the operating system as just one network interface. The benefits include gaining extra network bandwidth and not having to deal with multiple NIC addresses. Instead, you can assign a single 'virtual' IP address to a team of adapters.

Most teaming solutions come with failover protection. Teaming allows your network to tolerate the failure of one or more adapters within a group, thus offering high availability. In addition, this kind of fault tolerance can be configured to work with complete transparency. The remaining NICs in the team continue to work if another card stops working or if a cable gets disconnected.


Configuring the NIC Teaming Solution

You configure the NIC teaming solution by first editing the AUTOEXEC.NCF and then using INETCFG.


Transferring Commands Using AUTOEXEC.NCF

Console commands can be executed using the AUTOEXEC.NCF file (or by using any .NCF file if you want to run the file separately instead of at boot up time). Commands in the file will be executed in a specified sequence at boot up. Complete these steps:

  1. Load physical drivers.

  2. Load the virtual driver.

  3. Bind the virtual driver to physical drivers.

  4. Bind IP to the virtual driver with an IP address.

Between Step 3 and Step 4, some commands need to be executed to expose the virtual driver to IP layer. These commands are called post-bind commands. Post-bind commands need a special syntax in order to distinguish them from other load commands.

Teaming drivers act as both protocol and driver.

As Protocol: real NICs bind to this protocol.

As Drivers: they bind to the upper layer (network layer).

INETCFG, on its first load, prompts you to transfer commands from AUTOEXEC.NCF to NETINFO.CFG. AUTOEXEC.NCF contains only load and bind commands. The first one is for loading a protocol and the second one is for binding a protocol to a driver.

When acting as a protocol, the post-bind commands must be enclosed within two # lines. The first # line in AUTOEXEC.NCF should follow this syntax:

#PostBindCommand-<ProtocolName>

ProtocolName is the name of the user-specified protocol. Post-bind command is the command line that needs to be executed after all bindings.

An AUTOEXEC.NCF file would appear as follows:

#PostBindCommand-<ProtocolName>

<post bind command1>

<post bind command2>

<post bind command3>

# End of postbind commands

It is called 'Post-bind Command' because in the LB & FT solutions provided by third-party drivers (Compaq, Dell), this command must be executed after all bind commands of the user-specified protocol (CPQANS for Compaq, ians for Dell). This special syntax is the only requirement for INETCFG to recognize any post-bind command.

For example, you would enter the following commands in AUTOEXEC.NCF if you were using Compaq's NIC teaming solution:

Load ce100b frame=ethernet_ii

Load cpqnf3 frame=ethernet_ii

Load cpqans frame=ethernet_ii

Bind cpqans cpqnf3

#postbindcommand cpqans

Load cpqans commit

# End of post bind command

Load tcpip

Bind ip cpqans addr=164.99.150.64


Configuring Teaming Using INETCFG

To set up a team of network boards using INETCFG, complete the following:

  1. (Conditional) You can run TCPCFG.NLM by entering MODULES TCPCFG at the server console. You can download a newer version at www.novell.com/downloads.

  2. At the server console, enter INETCFG.

    NOTE:  You can use INETCFG to enable and configure various protocol stacks and to bind the protocols to the network interfaces.

  3. (Conditional) Transfer the commands from AUTOEXEC.NCF to NETINFO.CFG when prompted.

  4. (Conditional) If you choose to delete the NETINFO.CFG file or if it has been corrupted, make sure you also delete the TCPIP.CFG file.

  5. In INETCFG, select Boards and add or verify that the correct LOAD commands exist for each network board. For example,

    Load ce100b frame=ethernet_ii

    Load cpqnf3 frame=ethernet_ii

    Load cpqans frame=ethernet_ii

  6. Add a command to load a virtual driver. For example,

    Load cpqans frame=ethernet_ii

  7. Bind the virtual driver to each network board in the team. For example,

    Bind cpqans ce100b

    Bind cpqans cpqnf3

  8. Add a beginning post-bind command.

    #postbindcommand cpqans

  9. Add the post-bind command following the syntax LOAD virtual_driver COMMIT. For example,

    Load cpqans commit

  10. Add the closing post-bind command if applicable.

  11. Enter the command to load the IP protocol.

    Load tcpip

  12. Bind the IP address to the virtual driver. For example,

    Bind ip cpqans addr=164.99.150.64

  13. Verify that you entered the commands correctly.

    If you follow the steps correctly, you will see a file with commands similar to the following:

    Load ce100b frame=ethernet_ii

    Load cpqnf3 frame=ethernet_ii

    Load cpqans frame=ethernet_ii

    Bind cpqans ce100b

    Bind cpqans cpqnf3

    #postbindcommand cpqans

    Load cpqans commit

    # End of post bind command

    Load tcpip

    Bind ip cpqans addr=164.99.150.64

  14. Enable the configuration by selecting Reinitialize System.


Example Configurations

The following examples show how INETCFG should be used to configure NIC teaming drivers.


Example 1:

Configuring CPQANS to provide the NIC teaming solution. The configuration through AUTOEXEC.NCF is as follows:

Load ce100b frame=ethernet_ii name=ce100b_1_eii slot=1

Load ne2000 frame=ethernet_ii name=ne2000_1_eii slot=2

Load cpqans frame=ethernet_ii name=alb_team mode=alb

Bind cpqans ce100b_1_eii

Bind cpqans ne2000_1_eii

#PostBindCommand cpqans

Load cpqans commit

#

Bind ip cpqans addr=164.99.150.99 mask=255.255.252.0 gate=164.99.151.254

Following are the steps for configuration through INETCFG:

Commands (1), (2), and (3) should be configured in the boards section.

Commands (7) must be entered in Protocols > User Specified Protocol. First insert a protocol name. In this example, it is CPQANS. (This name must be the same as the one that will be entered in bindings section later.) Then enter post-bind commands.

Commands (6) and (8) help in parsing AUTOEXEC.NCF to transfer commands to INETCFG.

Commands (4), (5), and (9) are from the Bindings section.


Example 2:

Suppose AUTOEXEC.NCF contains the following lines:

Load ce100b frame=ethernet_ii name=ce100b_1_eii slot=1

Load ne2000 frame=ethernet_ii name=ne2000_1_eii slot=2

Load cpqans frame=ethernet_ii name=alb_team mode=alb team=1

Load cpqnf3 frame=ethernet_ii name=cpqnf3_1_eii slot=3

Load n100 frame=ethernet_ii name=n100_1_eii slot=4

Load cpqans frame=ethernet_ii name=nft_team mode=nft team=2

Bind cpqans ce100b_1_eii team=1

Bind cpqans ne2000_1_eii team=1

Bind cpqans cpqnf3_1_eii team=2

Bind cpqans n100_1_eii team=2

#PostBindCommand cpqans

Load cpqans commit team=1

Load cpqans commit team=2

# This is the end of post bind commands

Bind ip cpqans addr=164.99.150.99 mask=255.255.252.0 gate=164.99.151.254

If these lines are not in AUTOEXEC.NCF, you can do a similar configuration in INETCFG as follows. (This example is similar to the previous one. The only difference is that there are two teams.)

Commands (1) to (6) are through the boards section.

Commands (12) and (13) are through the user-specified protocol section and Steps (11) and (14) are to help in parsing AUTOEXEC.NCF.

Commands (7) to (10) are through bindings. Here team=1 or 2 must be entered in the parameters field.

Commands (15) is another binding.

Whenever a new driver is going to be added and bound to CPQANS, an extra post-bind command - 'load cpqans recommit' - must be added in the user-specified protocol section.

NOTE:  'load cpqans commit' is a time-sensitive command. Make sure that it is executed before binding IP to CPQANS and after all bindings of CPQANS are configured. For example, suppose configuration through INETCFG is as follows:

1. Load D1 and D2 from boards and load CPQANS.
2. Enter CPQANS as a protocol and add the proper post-bind commands in the user-specified protocol section.
3. Add bindings of CPQANS as well as TCPIP.
4. Reinitialize the system

If, by mistake, the system is reinitialized before Step 3, the configuration may not succeed (even though Step 4 has been executed) because 'load cpqans commit' was executed at the wrong time.

To avoid this situation, you should use two post-bind commands: 'load cpqans commit team = xxx' and 'load cpqans recommit team = xxx' for each configured team in the post-bind commands section.


Using Multiple Post-Bind Commands

The 'load cpqans commit' and 'load cpqans recommit' commands should be executed after the execution of bindings of NIC teaming drivers to physical drivers and before the execution of bindings of IP NIC teaming drivers. All commands of a particular configuration in INETCFG would be executed only after a re-init. So, as part of the configuration, you should update the post-bind commands section according to the configuration.

For example, the first time three bindings (CPQANS to D1, CPQANS to D2 and IP to CPQANS) are configured, the post-bind commands section should contain 'load cpqans commit'.

If you add another binding (for example CPQANS to D3) to INETCFG after a re-init, the post-bind commands section should contain 'load cpqans recommit' instead of 'load cpqans commit'. You should make this change before doing another re-init. Otherwise, an inactive configuration may result.

A similar case is disabling a binding and later re-enabling it. This is because enabling a binding is similar to adding a new binding (provided disabling and enabling of the binding contain a re-init in between).

To avoid these types of complicated reconfigurations associated with NIC teaming solutions, we recommend that you use two commands: 'load cpqans commit team = xxx' and 'load cpqans recommit team = xxx' for each team you configure.


Fine-Tuning with SET Parameters

These third-party NIC teaming solutions provide some set parameters for fine-tuning the configuration. They can also take place in the post-bind commands section.



  Previous Page: Non-ARPable Secondary IP Address  Next Page: Setting Up