Sunucu altyapılarında ağ bağlantısı çoğu zaman işlemci, bellek veya disk kadar kritik bir bileşendir. Özellikle veri tabanı sunucuları, web servisleri, sanallaştırma platformları, yedekleme sistemleri ve güvenlik cihazları gibi sürekli erişilebilir olması gereken yapılarda tek bir ağ kartına bağlı kalmak ciddi bir risk oluşturur.
Bir kablonun çıkması, switch portunun arızalanması ya da fiziksel NIC üzerinde oluşabilecek bir problem, doğrudan servis kesintisine neden olabilir.
Linux sistemlerde bu riski azaltmanın ve aynı zamanda ağ performansını artırmanın en etkili yollarından biri NIC Bonding kullanmaktır.
NIC Bonding birden fazla fiziksel network interface’i tek bir mantıksal interface altında birleştirerek hem redundancy hem de belirli modlarda load balancing sağlar.
NIC Bonding Nedir?
NIC Bonding bir sunucuda bulunan iki veya daha fazla fiziksel network interface’in tek bir sanal interface gibi çalışmasını sağlayan Linux tabanlı bir ağ yapılandırma yöntemidir.
Bu sanal interface genellikle bond0 adıyla oluşturulur ve sistem dış dünya ile bu interface üzerinden haberleşir.
Örneğin sunucuda ens33, ens37 ve ens38 adında üç farklı fiziksel NIC olduğunu düşünelim. Bu interface’ler bonding yapısı altında birleştirildiğinde işletim sistemi açısından ana network interface artık bond0 olur.
IP adresi, gateway, DNS ve routing ayarları fiziksel interface’lere değil bond0 üzerine tanımlanır.
Bu yaklaşımın en önemli avantajı, fiziksel network katmanındaki riskleri uygulamalardan ve servislerden mümkün olduğunca izole etmesidir. Uygulamalar açısından bağlantı hâlâ aynı IP üzerinden devam ederken, arka planda hangi fiziksel interface’in aktif olduğu bonding mekanizması tarafından yönetilir.
Neden NIC Bonding Kullanılır?
NIC Bonding’in iki temel kullanım amacı vardır yedeklilik ve performans artışı.
Redundancy ile Kesintisiz Bağlantı
Sunucu altyapılarında en sık tercih edilen bonding senaryolarından biri active-backup modudur.
Bu modda bir interface aktif olarak kullanılır diğer interface ise yedekte bekler. Aktif interface üzerinde bir bağlantı problemi oluştuğunda trafik otomatik olarak yedek interface’e aktarılır.
Örneğin kritik bir PostgreSQL veritabanı sunucusunda ens33 aktif, ens37 ise yedek interface olarak yapılandırılmış olsun.
Eğer ens33 bağlı olduğu switch portu nedeniyle devre dışı kalırsa bonding yapısı kısa süre içinde link durumunu algılar ve trafiği ens37 üzerinden devam ettirir. Bu geçiş, doğru yapılandırılmış bir ortamda uygulamalar açısından fark edilmeyecek kadar hızlı gerçekleşebilir.
Bu yapı özellikle şu sistemlerde büyük avantaj sağlar:
- Veritabanı sunucuları
- Web ve application server’lar
- Sanallaştırma host’ları
- Dosya ve yedekleme sunucuları
- Firewall, proxy, SIEM ve DLP sistemleri
- Kritik iç servisler
Buradaki temel hedef, tek bir NIC veya switch portu arızasının tüm servisi etkilemesini engellemektir.
Load Balancing ile Daha Verimli Trafik Dağıtımı
Bazı bonding modları yalnızca yedeklilik sağlamaz aynı zamanda birden fazla interface üzerinden trafik dağıtımı da yapabilir. Bu sayede teorik olarak toplam bant genişliği artırılabilir.
Örneğin iki adet 10 Gbps NIC bulunan bir sunucuda uygun bonding modu kullanıldığında toplam trafik kapasitesi belirli senaryolarda 20 Gbps seviyesine yaklaşabilir. Üç adet 10 Gbps interface kullanıldığında ise teorik toplam kapasite 30 Gbps olarak düşünülebilir.
Ancak burada önemli bir ayrıntı vardır. Bonding her zaman tek bir TCP bağlantısını doğrudan tüm interface’lere bölerek hızlandırmaz. Kullanılan bonding modu switch desteği, hash policy, trafik tipi ve bağlantı sayısı performans sonucunu doğrudan etkiler. Bu nedenle bonding yapılandırması yapılırken amaç net belirlenmelidir: öncelik kesintisizlik mi, yoksa throughput artışı mı?
Linux Bonding Modları
Linux bonding farklı ihtiyaçlara göre kullanılabilecek çeşitli modlar sunar. Her modun davranışı ve switch gereksinimi farklıdır.
| Mode | Adı | Temel Amaç | Switch Desteği |
|---|---|---|---|
| 0 | balance-rr | Round-robin trafik dağıtımı | Genellikle gerekmez |
| 1 | active-backup | Redundancy / failover | Gerekmez |
| 2 | balance-xor | Hash tabanlı trafik dağıtımı | Ortama göre gerekebilir |
| 3 | broadcast | Trafiği tüm interface’lerden gönderme | Gerekmez |
| 4 | 802.3ad / LACP | Standart link aggregation | Gerekir |
| 5 | balance-tlb | Adaptive transmit load balancing | Gerekmez |
| 6 | balance-alb | Adaptive load balancing | Gerekmez |
Pratikte en sık kullanılan modlar active-backup ve 802.3ad/LACP modlarıdır.
Test ortamlarında veya switch desteği bulunmayan yapılarda ise balance-rr tercih edilebilir.
Ancak balance-rr modunda bazı TCP bağlantılarında paket sıralama problemleri yaşanabileceği unutulmamalıdır.

Active-Backup Modu = Yedeklilik İçin En Güvenli Seçenek
active-backup modu yüksek erişilebilirlik gerektiren sistemler için en sade ve güvenilir bonding modlarından biridir.
Bu modda yalnızca bir interface aktif olarak trafik taşır. Diğer interface veya interface’ler standby durumda bekler.
Aktif interface down olduğunda bonding driver trafiği otomatik olarak yedek interface’e geçirir. Switch tarafında özel bir LACP yapılandırmasına ihtiyaç duyulmadığı için kurulumu görece kolaydır. Bu nedenle fiziksel sunucularda sanal makinelerde ve basit network altyapılarında rahatlıkla kullanılabilir.

Ubuntu Server 22.04 üzerinde Netplan ile örnek bir active-backup yapılandırması aşağıdaki gibi olabilir.
network:
version: 2
renderer: networkd
ethernets:
ens33: {}
ens37: {}
bonds:
bond0:
interfaces:
- ens33
- ens37
addresses:
- 192.168.1.200/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
parameters:
mode: active-backup
primary: ens33
mii-monitor-interval: 100
Bu yapılandırmada ens33 primary interface olarak belirlenmiştir.
Normal şartlarda trafik ens33 üzerinden akar. Eğer ens33 link down durumuna düşerse bonding mekanizması ens37 interface’ini devreye alır.
mii-monitor-interval: 100 değer ise link durumunun 100 milisaniyelik aralıklarla kontrol edilmesini sağlar. Bu değer failover süresini etkileyen önemli parametrelerden biridir.
Yapılandırmayı uygulamak için;
sudo netplan apply -f
Balance-RR Modu = Round-Robin Trafik Dağıtımı
balance-rr modu paketleri fiziksel interface’ler arasında sırayla dağıtır.
Örneğin üç interface bulunan bir yapıda ilk paket ens33, ikinci paket ens37, üçüncü paket ens38 üzerinden gönderilebilir. Sonraki paketlerde döngü tekrar eder.
Bu modun avantajı özel switch desteğine ihtiyaç duymadan birden fazla interface’i aynı anda kullanabilmesidir. Özellikle laboratuvar ortamlarında, sanal test sistemlerinde veya UDP ağırlıklı iş yüklerinde faydalı olabilir.

Örnek Netplan yapılandırması;
network:
version: 2
renderer: networkd
ethernets:
ens33: {}
ens37: {}
ens38: {}
bonds:
bond0:
interfaces:
- ens33
- ens37
- ens38
addresses:
- 192.168.1.200/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
parameters:
mode: balance-rr
mii-monitor-interval: 100
Bu yapılandırma sonrasında sunucu dış ağ ile bond0 interface’i üzerinden haberleşir. Fiziksel interface’ler doğrudan IP taşımaz IP adresi bond interface üzerine atanır.
Ancak balance-rr modunda dikkat edilmesi gereken önemli bir konu vardır. Paketler farklı fiziksel yollardan gittiği için bazı network ortamlarında paket sıralaması bozulabilir. Bu durum özellikle TCP trafiğinde performans düşüşü, retransmission veya beklenmeyen bağlantı davranışlarına neden olabilir. Bu yüzden production ortamlarında kullanılmadan önce mutlaka gerçek iş yüküne yakın testler yapılmalıdır.
802.3ad / LACP Modu = Kurumsal Network’ler İçin Standart Yaklaşımıdır. Mutlaka Kullananın !!!
Daha profesyonel network altyapılarında tercih edilen yöntem genellikle 802.3ad yani LACP modudur. Bu mod switch tarafında da link aggregation yapılandırması gerektirir.
Sunucu üzerindeki birden fazla NIC switch üzerinde aynı LAG grubu altında toplanır.
LACP’nin en büyük avantajı standart bir yöntem olmasıdır. Doğru yapılandırılmış switch altyapısı ile hem redundancy hem de trafik dağıtımı sağlanabilir. Ancak LACP’de performans dağıtımı genellikle hash algoritmalarına bağlıdır. Kaynak IP, hedef IP, port bilgisi veya Layer 3/Layer 4 parametrelerine göre trafik belirli linklere yönlendirilir.
Bu nedenle tek bir bağlantının tüm linkleri aynı anda kullanmasını beklemek doğru değildir. Asıl kazanç çoklu bağlantı ve çoklu istemci trafiğinde ortaya çıkar.

Ubuntu Üzerinde Bonding İçin Gerekli Hazırlıklar
Ubuntu üzerinde bonding yapılandırmasına başlamadan önce gerekli paketlerin kurulması ve bonding kernel modülünün yüklenmesi gerekir.
sudo apt update
sudo apt install ifenslave -y
Bonding modülünü manuel olarak yüklemek için:
sudo modprobe bonding
Modülün yüklendiğini kontrol etmek için:
lsmod | grep bonding
Bond interface durumunu incelemek için en faydalı dosyalardan biri şudur:
cat /proc/net/bonding/bond0
Bu çıktı üzerinden aktif interface, yedek interface’ler, bonding modu, link durumu ve failover bilgileri görülebilir.
Trafik Dağılımını İzlemek için;
Bonding yapılandırması yapıldıktan sonra yalnızca IP erişimini test etmek yeterli değildir. Trafiğin gerçekten beklenen interface’ler üzerinden akıp akmadığı da kontrol edilmelidir.
Interface bazlı trafik istatistikleri şu komutlarla izlenebilir:
watch -n 1 cat /sys/class/net/ens33/statistics/tx_bytes
watch -n 1 cat /sys/class/net/ens37/statistics/tx_bytes
watch -n 1 cat /sys/class/net/ens38/statistics/tx_bytes
Alternatif olarak:
ip -s link show ens33
ip -s link show ens37
ip -s link show ens38
Daha pratik bir takip için basit bir script de kullanılabilir:
#!/bin/bash
interfaces=("ens33" "ens37" "ens38")
declare -A last
for iface in "${interfaces[@]}"; do
last[$iface]=$(cat /sys/class/net/$iface/statistics/tx_bytes)
done
while true; do
clear
echo "NIC Bonding Trafik İzleme - tx_bytes/sn"
echo "---------------------------------------"
for iface in "${interfaces[@]}"; do
current=$(cat /sys/class/net/$iface/statistics/tx_bytes)
diff=$((current - last[$iface]))
kbps=$((diff / 1024))
printf "%-8s: %8d KB/s\n" "$iface" "$kbps"
last[$iface]=$current
done
sleep 1
done
Bu script, her interface üzerinden saniyede yaklaşık ne kadar veri gönderildiğini gösterir. Özellikle balance-rr veya benzeri load balancing modlarında trafiğin dağılıp dağılmadığını anlamak için oldukça kullanışlıdır.
iperf3 ile Performans Testi
Bonding sonrasında performans ölçümü yapmak için en yaygın araçlardan biri iperf3 aracıdır. Test ortamında bir makine server bonding yapılan makine ise client olarak kullanılabilir.
Server tarafında:
iperf3 -s
Client tarafında:
iperf3 -c 192.168.1.165 -t 10 -P 4
Buradaki -P 4 parametresi dört paralel bağlantı açar. Bonding performansı test edilirken paralel bağlantılar önemlidir; çünkü birçok bonding modunda tek bağlantı üzerinden tüm link kapasitesini görmek mümkün olmayabilir. Çoklu bağlantı kullanıldığında trafik dağılımı daha sağlıklı gözlemlenir.
VMware ve Sanal Ortamlarda Bonding !!!
Sanal ortamlarda bonding davranışı fiziksel sunuculara göre farklılık gösterebilir.
Özellikle VMware Workstation, VirtualBox gibi masaüstü sanallaştırma platformlarında switch tarafında gerçek LACP desteği bulunmadığı için 802.3ad modu beklenen şekilde çalışmayabilir.
Bu tür ortamlarda genellikle active-backup veya balance-rr gibi switch bağımlılığı düşük modlar daha sorunsuz sonuç verir.
Ancak her sanal NIC’in connected durumda olduğundan ve doğru virtual network’e bağlı olduğundan emin olunmalıdır.
Production ortamlarında ise VMware ESXi, fiziksel switch, vSwitch veya distributed switch yapılandırması birlikte değerlendirilmelidir. Çünkü bonding yalnızca Linux tarafındaki bir ayar değildir; ağın tamamı ile uyumlu çalışması gereken bir tasarım kararıdır.
Hangi Mod Ne Zaman Seçilmeli?
NIC Bonding yapılandırmasında en doğru mod, sistemin ihtiyacına göre belirlenmelidir.
Kesintisizlik öncelikliyse:
active-backup
Switch üzerinde LACP desteği varsa ve kurumsal bir yapı kuruluyorsa:
802.3ad / LACP
Test ortamında veya switch desteği olmayan yapılarda trafik dağıtımı denenmek isteniyorsa:
balance-rr
Daha gelişmiş trafik dağıtımı isteniyor ancak switch yapılandırması mümkün değilse:
balance-tlb veya balance-alb
Burada unutulmaması gereken nokta şudur: En hızlı görünen mod her zaman en doğru mod değildir. Kritik sistemlerde kararlılık, öngörülebilirlik ve failover davranışı çoğu zaman teorik bant genişliğinden daha önemlidir.
NIC Bonding, Linux sistemlerde ağ bağlantısını daha dayanıklı ve daha verimli hale getirmek için kullanılan güçlü bir yöntemdir. Doğru yapılandırıldığında tek bir NIC, kablo veya switch portu arızasının servis kesintisine dönüşmesini engelleyebilir. Ayrıca uygun modlar ve doğru network altyapısı ile toplam bant genişliğinin daha verimli kullanılmasını sağlayabilir.
Küçük yapılarda active-backup modu sade ve güvenli bir çözüm sunarken, kurumsal network altyapılarında 802.3ad / LACP daha standart ve ölçeklenebilir bir yaklaşım sağlar. Test veya laboratuvar ortamlarında ise balance-rr, bonding davranışını gözlemlemek ve trafik dağıtımını anlamak için faydalı olabilir.
En sağlıklı sonuç için bonding yapılandırması yalnızca dosyaya yazılıp bırakılmamalıdır. Failover testleri yapılmalı interface istatistikleri izlenmeli, iperf3 ile performans ölçülmeli ve /proc/net/bonding/bond0 çıktısı düzenli olarak kontrol edilmelidir. Çünkü ağ altyapısında güvenilirlik, yalnızca doğru komutu çalıştırmakla değil; doğru tasarım, doğru test ve doğru izleme ile sağlanır.
![[TR] Linux’ta NIC Bonding Yapılandırması](https://kadirkozan.com/wp-content/uploads/2026/03/27ce25e0-1b0e-475e-9233-d088f6756076-1024x683.png)
![[TR] Docker Üzerinde Çalışan Nginx Konteyner İçin Log Rotation Ayarı Nasıl Yapılır?](https://kadirkozan.com/wp-content/uploads/2026/05/Docker-Logo-150x150.jpg)