No, simply connecting two Network Interface Cards (NICs) to a switch does not automatically double your bandwidth. Operating systems treat each NIC as a separate network path, so most applications will only use one connection at a time. To achieve true throughput aggregation, you must configure Link Aggregation using protocols like LACP or bonding modes that combine the interfaces into a single logical link.
Why Dual NICs Do Not Auto-Aggregate
When you plug two Ethernet cables from a computer into a standard unmanaged switch, the operating system sees two distinct network adapters. Each adapter has its own IP address and MAC address. Standard networking stacks do not automatically split a single data stream across multiple physical links because this requires complex coordination between the source, the destination, and every switch in the path. Without specific configuration, traffic is routed based on the default gateway or routing table. If you try to download a large file, the application binds to one socket and uses one NIC. The second NIC remains idle for that transfer. This is why users often see high latency on one interface while the other sits at zero utilization. You cannot get double the speed for a single TCP connection without specialized hardware support or software-level bonding that both ends of the connection understand. For more details on how physical layer speeds impact performance, see Understanding the Difference Between 10 Mbps, 100 Mbps, and 1000 Mbps (BASE-T) TCP Handshake and Physical Differences.Configuring Link Aggregation on Linux
Linux provides robust tools for combining NICs, but the method depends on your distribution and initialization system. Modern Debian-based systems (Ubuntu 18.04+) typically use Netplan, while older or RHEL-based systems may still rely on/etc/network/interfaces.
If you are using a modern system with Netplan, you define the bond in your YAML configuration file. You must specify the type of bonding mode. Mode 4 (LACP) is the most common for switches that support it.
nics:
eth0:
dhcp4: no
eth1:
dhcp4: no
bond0:
interfaces: [eth0, eth1]
parameters:
mode: 802.3ad
lacp-rate: fast
mii-monitor-interval: 100
addresses: [192.168.1.10/24]
routes:
- to: default
via: 192.168.1.1
Apply the configuration with netplan apply. This creates a virtual interface bond0 that balances traffic across both physical ports. Note that your switch must also be configured for LACP (IEEE 802.3ad) on the corresponding ports. If your switch is unmanaged or does not support LACP, you can use Mode 0 (balance-rr) which rounds-robin packets, though this can cause out-of-order packet issues on some networks.
For legacy systems using /etc/network/interfaces, the syntax differs significantly. You cannot use bond-slaves directly in all contexts; instead, you define the bond device and assign the physical interfaces to it.
auto bond0
iface bond0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
bond-mode balance-rr
bond-miimon 100
bond-downdelay 200
bond-updelay 200
bond-slaves none
auto eth0
iface eth0 inet manual
bond-master bond0
auto eth1
iface eth1 inet manual
bond-master bond0
After editing, restart the networking service. Ensure the ifenslave package is installed if required by your kernel version.
Configuring Link Aggregation on Windows
Windows Server and Pro editions support Switch Independent Teaming through PowerShell. The previous deprecated commands have been replaced by theNetLBFO module.
First, verify your NICs are ready for teaming. Use PowerShell to create a new team. Replace NIC1 and NIC2 with the actual names of your network adapters found in Get-NetAdapter.
New-NetLbfoTeam -Name "DataTeam" -TeamMembers NIC1, NIC2 -TeamingMode SwitchIndependent -LoadBalancingAlgorithm Dynamic
This command creates a team named "DataTeam". The SwitchIndependent mode does not require special switch configuration, making it ideal for home labs or unmanaged switches. However, it relies on the OS to handle load balancing. The Dynamic load balancing algorithm distributes traffic based on port pairs, which works well for multiple concurrent connections.
To verify the team status, run:
Get-NetLbfoTeam
Check the Status field. It should show Up. You can then assign an IP address to the team interface just like any other NIC. Be aware that Windows client versions (Home/Pro) may have limitations on advanced teaming features compared to Windows Server.
Hardware Requirements and Limitations
Link aggregation is not a magic bullet for all internet speeds. If your internet plan is 100 Mbps, bonding two 1 Gbps NICs will not give you 200 Mbps of internet speed. The bottleneck becomes your upstream ISP connection. Bonding is most effective for local transfers, such as copying files between two servers connected to the same switch, or when running multiple simultaneous heavy downloads that can be distributed across sockets. Additionally, not all switches support Link Aggregation Control Protocol (LACP). Cheap consumer switches usually lack this feature. If you use LACP mode on Linux or Static LAG on Windows without switch support, the link will fail or cause severe packet loss. Always check your switch documentation. For setups involving routers acting as switches, ensure the device supports VLAN tagging if you need to segment traffic, as discussed in Setting Up a Mikrotik Router as an Acting Switch with WiFi Enabled.Troubleshooting Common Issues
If your bonded interface shows up but throughput doesn't increase, check the following:- Mismatched Speeds: Ensure both NICs are negotiating at the same speed (e.g., both 1 Gbps). One dropping to 100 Mbps can degrade the whole bond.
- Firewall Rules: Some firewalls inspect packets per-flow. Ensure your firewall allows traffic on the bond interface, not just individual physical NICs.
- Application Binding: Some legacy applications bind to the first available IP. They may not utilize the bond effectively. Test with tools like
iperf3which can generate multiple streams.
Frequently Asked Questions
Can I bond two Wi-Fi adapters for more speed?
No, Wi-Fi adapters generally cannot be bonded due to the nature of wireless medium access control. Each radio operates independently on channels, and the protocol does not support frame splitting across multiple radios for a single session. You would need dual-band clients supporting MIMO, but that is handled by the router, not OS-level bonding.
Does link aggregation work over the internet?
No, link aggregation is strictly a Layer 2 (data link) technology. It requires both endpoints to be on the same local network segment or connected via a trunk link. Once traffic leaves your local subnet, it traverses routers that do not understand LACP bonds, breaking the aggregation.
What happens if one NIC fails in a bond?
In active-backup or LACP modes, the remaining NIC continues to handle traffic. The switch detects the link failure and redirects all frames to the surviving port. There may be a brief pause during failover, but the connection typically remains stable without dropping existing sessions in most modern implementations.
Is LACP better than round-robin bonding?
LACP (Mode 4) is generally preferred because it provides load balancing based on hash algorithms that consider source and destination IPs, reducing out-of-order packets. Round-robin (Mode 0) sends packets sequentially, which can cause significant jitter and reordering issues for TCP connections, leading to reduced performance.
Do I need a managed switch for bonding?
Not necessarily. If you use Switch Independent mode (Windows) or Active-Backup/LACP with proper configuration, you can sometimes operate without a managed switch. However, for LACP to function correctly, the switch must be configured to aggregate the ports. Unmanaged switches will treat each cable as a separate link, potentially causing loops or dropped packets.