> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://helpdesk.ggcircuit.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# 🗄️ggRock Server NIC Teaming / Bonding / Link Aggregation

This guide outlines recommended bonding configurations between a ggRock Server and network switches to ensure optimal performance and reliability.

---

## 📚 Table of Contents

* [About](#2-about)
* [Supported Bonding Modes](#2-supported-bonding-modes)
* [IEEE 802.3ad (LACP)](#3-ieee-8023ad-lacp-dynamic-link-aggregation)
* [Active-Backup](#3-active-backup-bonding)
* [Conclusion](#2-conclusion)
* [Appending 1: Performance Testing](#2-appendix-1-single-client-pc-performance-testing)
* [Appendix 2: Mode Comparison](#2-appendix-2-bonding-mode-comparison-advanced-users)

---

## 🧠 About

**Bonding**—also known as NIC teaming or link aggregation—is a method of combining multiple network interfaces to improve:

* ✅ **Fault Tolerance**
* 🚀 **Performance**
* ⚖️ **Load Balancing**

---

## ⚙️ Supported Bonding Modes

Linux supports seven bonding modes, but **only two are recommended** for use with ggRock:

### 🧩 IEEE 802.3ad (LACP - Dynamic Link Aggregation)

**Key Benefits:**

* Utilizes multiple NICs simultaneously
* Provides both **fault tolerance** and **load balancing**

**Requirements:**

* Network switch must support **LACP (IEEE 802.3ad)**
* NICs must have the same speed and work in full-duplex
* All NICs should connect to the **same switch**
* Server and clients must be on the **same local network**

**Recommended Settings:**

* **Transmit Hash Policy:** `layer2+3` (recommended)
* **Link Monitoring:** `mii`
* **Monitoring Interval (miimon):** `100 ms`

|| While LACP improves outgoing throughput across multiple clients, it does not increase throughput for a single client PC operating at 1Gbps.

**🛠 Sample Configuration:**

**Configuration without 802.3ad bonding**

```bash
auto lo
iface lo inet loopback
iface eth0 inet manual
iface eth1 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 0
bridge_stp off
```

**Configuration WITH 802.3ad bonding**

```bash
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto eth1
iface eth1 inet manual
auto bond0
iface bond0 inet manual
bond-slaves eth0 eth1
bond-mode 802.3ad
bond-miimon 100
bond-xmit-hash-policy layer2+3
auto vmbr0
iface vmbr0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports bond0
bridge_fd 0
bridge_stp off
```

**Switch Configuration Required:**  
Ensure the switch is properly configured for LACP with matching hash policy and link monitoring.

---

### 🔁 Active-Backup Bonding

**Key Benefits:**

* Provides **fault tolerance** with no switch configuration required

**How It Works:**

* Only one NIC is active at any time.
* If the active NIC fails, another takes over.

**Recommended Settings:**

* **Miimon:** `100 ms`

**🛠 Sample Configuration:**

**Configuration without Active-Backup bonding**

```bash
auto lo
iface lo inet loopback
iface eth0 inet manual
iface eth1 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 0
bridge_stp off
```

**Configuration WITH Active-Backup bonding**

```bash
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
auto eth1
iface eth1 inet manual
auto bond0
iface bond0 inet manual
bond-primary eth0
bond-slaves eth0 eth1
bond-mode active-backup
bond-miimon 100
auto vmbr0
iface vmbr0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports bond0
bridge_fd 0
bridge_stp off
```

**Switch Configuration:**  
None required. 🙌

---

## ✅ Conclusion

* Bonding **does not** improve throughput for a **single iSCSI client connection**
* Bonding **can** provide aggregated throughput when **multiple clients** are accessing the server
* **No additional cost** is required to implement bonding on supported systems

---

## 📊 Appendix 1 - Single Client PC Performance Testing

![](https://ggcircuit.atlassian.net/wiki/download/attachments/15860123/image-20250329-025234.png?version=1&modificationDate=1743216765412&cacheVersion=1&api=v2)

* Single 1G NIC:

![](https://ggcircuit.atlassian.net/wiki/download/attachments/15860123/image-20250327-145028.png?version=1&modificationDate=1743087033512&cacheVersion=1&api=v2)

* 802.3ad (Two 1G NICs):

![](https://ggcircuit.atlassian.net/wiki/download/attachments/15860123/image-20250327-145037.png?version=1&modificationDate=1743087042166&cacheVersion=1&api=v2)

* Active-Backup (Two 1G NICs):

![](https://ggcircuit.atlassian.net/wiki/download/attachments/15860123/image-20250327-145047.png?version=1&modificationDate=1743087051917&cacheVersion=1&api=v2)

---

## 🧮 Appendix 2 - Bonding Mode Comparison (Advanced Users)
![](https://ggcircuit.atlassian.net/wiki/download/attachments/15860123/image-20250327-145057.png?version=1&modificationDate=1743087060532&cacheVersion=1&api=v2)
![](https://ggcircuit.atlassian.net/wiki/download/attachments/15860123/image-20250327-145109.png?version=1&modificationDate=1743087071255&cacheVersion=1&api=v2)
|| Most switches only support outgoing traffic aggregation.
|| Bonding behaviors may vary—refer to your switch’s documentation.
|| Some bonding modes require driver-level support (e.g., ethtool).