Is there any reason to have 2 NICs on a server BESIDES the following cases?
- You need to connect to 2 different physical networks
- Redudancy (1 NIC fails, so you use the other)
Are there any other reasons?
(2a). Load balancing.
(3). Separation of traffic (i.e. you could have a combo web/database server, same network, put all web traffic on one NIC, db traffic on the other, makes it easier to calculate loads for traffic types). This also makes it easier to split the two later on, nobody has to change connection strings.
There's only one other major reason that I can think of, which is similar to redundancy, and that's Trunking, so you could configure traffic to flow over 2x1Gbit ports, giving you 2Gbit of total throughput. Some refer to this as LaCP, linux knows this as mode=4 as described below.
Linux interface bonding modes give a few other options:
mode=0 (balance-rr) Round-robin policy
mode=1 (active-backup) Active-backup policy
mode=2 (balance-xor) XOR policy: Transmit based on [(source MAC address XOR'd with destination MAC address) modulo slave count].
mode=3 (broadcast) Broadcast policy: transmits everything on all slave interfaces. This mode provides fault tolerance.
mode=4 (802.3ad) IEEE 802.3ad Dynamic link aggregation. Creates aggregation groups that share the same speed and duplex settings.
mode=5 (balance-tlb) Adaptive transmit load balancing: channel bonding that does not require any special switch support.
mode=6 (balance-alb) Adaptive load balancing: includes balance-tlb plus receive load balancing (rlb) for IPV4 traffic, and does not require any special switch support.
Similar to #2, multiple NICs is also a requisite for high avaliability. Multiple network interfaces (on the same network, but should really be seperate) will be used to monitor which servers are avaliable (a heartbeat). Also, in the case of VMWare, a 3rd NIC can be used for migrating the active state of a virtual machine without interferring with the amount of bandwidth avaliable to the public interface, or the heartbeat.
I always use 2 NICs in a server for redundancy. More than once over the years I've unplugged the wrong cable (usually caused by rushing too much). It's really nice not to have the server disconnect as a result. I've also suffered failed NICs a couple of times.
As far as I'm concerned, if at all possible a server should have redundant everything. NICs are no exception. On the rare occasion I've also needed traffic isolation I add a second pair for that.