If you configure a Windows-based computer that has more than one network adapter on the same physical network and protocol subnet, you may experience unexpected results. This article describes the expected behavior of this kind of nonstandard configuration.
Consider the following scenario:
- You have a working computer that has Windows installed.
- Two network adapters are connected to the same physical network or hub.
- TCP/IP is installed as the network protocol.
- The adapter addresses on the same subnet are 192.168.0.1 and 192.168.0.2.
- A client on the network uses the address 192.168.0.119.
In this scenario, you may expect the two adapters on the same physical network and protocol subnet to perform load balancing. However, by definition, only one adapter may communicate on the network at a time in the Ethernet network topology. Therefore, both adapters cannot be transmitting at the same time and must wait if another device on the network is transmitting. Additionally, broadcast messages must be handled by each adapter because both are listening on the same network. This configuration requires significant overhead, excluding any protocol-related issues. This configuration does not offer a good method for providing a redundant network adapter for the same network. Note
Windows Server 2012 includes a new feature call SMB Multichannel. SMB Multichannel is part of the SMB 3.0 protocol and lets servers use multiple network connections at the same time. For more information about SMB Multichannel, visit The basics of SMB Multichannel, a feature of Windows Server 2012 and SMB 3.0
Windows Server 2012 servers cannot use multiple network connections at the same time if the network is configured by using CSMA/CD.
Assume that the server has to send a packet by using the TCP/IP protocol to a client whose address is 192.168.0.119. This address is located on the local subnet. Therefore, a gateway does not have to be used to reach the client. The protocol stack uses the first route that it finds in the local routing table. Typically, this is the first adapter that was installed. In this case, that adapter is 192.168.0.1. If the transmission fails, later retries may use the same adapter according to the entry that is found in the routing table.
If the network cable for the 192.168.0.1 adapter fails, this does not necessarily cause the route to be removed from the routing table. Therefore, the second adapter still may not be used.
Another thing to consider is that some network applications bind to specific adapters in the system. If a network application were to bind to the second adapter specifically, application-related traffic that was received from clients on the first adapter might be ignored by the application. This might be caused by NetBIOS name registration on the network. Additionally, if the adapter to which the application is bound fails, the application may fail if it does not use the other adapter.
Usually, unless applications specifically demand it, this kind of configuration is not helpful. Some manufacturers make fault-tolerant network adapters to guard against a single point of failure. These adapters enable two adapters to be included on the same server but enable only one adapter to be used at a time. If the primary adapter fails, the driver deactivates the first card and enables the second by using the same address configuration. The result is a fairly seamless transition to the alternative adapter. This is the preferred method to guard against a single network adapter as a single point of failure.
Windows Server Failover Clustering
Windows Server Failover Clustering does not use additional adapters on the same network and relies on existing features of the TCP/IP protocol. If there is an adapter failure, the software does not automatically try to register IP Address Resource addresses on the other adapter. If you want to avoid a single network adapter as a single point of failure, configure the network adapters to be on different logical subnets. Or, use NIC Teaming to combine the multiple physical adapters into a single logical adapter (as mentioned earlier in this article).
The previous information applies to the broadcast route. The route to the subnet uses the highest numeric IP address within the subnet. For example, assume two adapters with IP addresses 192.168.0.1 and 192.168.0.2, and assume that 192.168.0.1 was installed first. This situation creates the following routes:
192.168.0.0 255.255.255.0 192.168.0.1 192.168.0.1
192.168.0.0 255.255.255.0 192.168.0.2 192.168.0.2
126.96.36.199 255.255.255.255 192.168.0.1 192.168.0.1
255.255.255.255 255.255.255.255 192.168.0.1 192.168.0.1