Bu makalede8 bölüm
- Teknoloji
- IEEE 802.1AX (LACP), Cisco EtherChannel, PAgP, Linux bonding, Windows NIC Teaming
- Konu
- Fiziksel bağlantıların tek mantıksal bağlantıda birleştirilmesi
- Seviye
- Orta
- Ön koşullar
- Trunk ve access port kavramları
- Cisco IOS temel yapılandırma bilgisi
- Sunucu tarafında ağ arayüzü yönetimi yetkisi
İki adet 10G uplink bağladınız, port-channel kurdunuz, gece yedeklemesi yine 10G’de takılıyor. Ya da bir üye sürekli suspended görünüyor, bir başka sabah port err-disable olmuş. Link aggregation birden fazla fiziksel Ethernet bağlantısını switch’in ve STP’nin gözünde tek mantıksal bağlantıya çevirir; doğru kurulursa kapasite ve bağlantı yedekliliği verir, yanlış kurulursa bu belirtileri. Aşağıda LACP ve EtherChannel’ı Cisco IOS, Linux ve Windows tarafındaki eşleştirme örnekleri ve doğrulama komutlarıyla ele alıyoruz.
Link aggregation ne sağlar, ne sağlamaz?
Port-channel kurulunca STP üye portları tek port olarak görür; iki bağlantıdan birini bloklamaya gerek kalmaz ve ikisi de trafik taşır. Bir üye koptuğunda trafik kalan üyelere aktarılır ve STP yeniden hesaplama yapmaz. Kesinti genellikle fiziksel bağlantı kaybının algılanma süresiyle sınırlı kalır.
Sağlamadıkları da bilinmeli:
- Tek akışın hızı artmaz. İki adet 10G bağlantı tek bir yedekleme işine 20G vermez; bir akışın tüm çerçeveleri sıralama bozulmasın diye aynı üyeden gönderilir.
- Cihaz yedekliliği sağlamaz. Standart LACP her iki uçta tek bir cihaz varsayar. Bir uçta iki switch’e yayılan port-channel için stack, MLAG veya vPC gerekir.
- Dağılım kendiliğinden dengeli olmaz. Hash algoritması ve trafik karışımı uygun değilse bir üye dolar, diğeri boş kalır.
Port-channel bant genişliği toplamaz. Akışları dağıtır.
LACP, PAgP ve statik mod
LACP (Link Aggregation Control Protocol) ilk olarak IEEE 802.3ad ile tanımlandı, sonra IEEE 802.1AX standardına taşındı. İki uç LACPDU alışverişiyle karşı tarafın sistem kimliğini ve anahtar (key) bilgisini öğrenir; yalnız aynı karşı sisteme bağlı ve uyumlu portları gruba alır. PAgP Cisco’ya özgüdür; yeni tasarımda kullanmak için bir sebep yok.
| Mod (Cisco) | Protokol | Davranış | Çalışan eşleşme |
|---|---|---|---|
| active | LACP | LACPDU gönderir | active–active, active–passive |
| passive | LACP | Yalnız yanıt verir | passive–active |
| desirable / auto | PAgP | Cisco’ya özgü müzakere | desirable–desirable, desirable–auto |
| on | Yok (statik) | Müzakere yapmaz | Yalnız on–on |
passive–passive ve auto–auto eşleşmeleri hiçbir zaman grup kurmaz. Her iki tarafı active yapmak en az sürpriz çıkaran seçimdir. Statik mod (on) LACP desteklemeyen eski cihazlar veya VMware standard vSwitch’in “Route based on IP hash” politikası gibi özel durumlar dışında kullanılmamalı: bir uç grubu kurmuşken diğeri kurmamışsa trafik kara deliğe düşebilir veya döngü oluşabilir.
LACP zaman aşımı da bir tasarım parametresidir. Yavaş modda LACPDU’lar 30 saniyede bir, hızlı modda saniyede bir gönderilir; zaman aşımı üç kaçırılan PDU’dur. Fiziksel bağlantı ayaktayken karşı tarafın kontrol düzlemi takılırsa yavaş modda bunun fark edilmesi 90 saniyeyi bulabilir. Destekleyen platformlarda üye portlarda lacp rate fast ile hızlı mod açılır; iki tarafın ayarını eşleştirin.
Yük dağıtım algoritmaları ve tek akış sınırı
Switch her çerçeve için belirli başlık alanlarından (MAC, IP, L4 port) bir hash hesaplar ve sonucu bir üyeye eşler. Seçilen alanlar ne kadar çeşitli değer üretirse dağılım o kadar dengeli olur.
- src-mac / dst-mac: Router veya firewall’a giden trafikte hedef MAC hep aynıdır; her şey tek üyeye yığılır. Kurumsal ağ altyapısında kampüs uplink’leri için uygun değildir.
- src-dst-ip: L3 sınırlarının arkasındaki trafik için iyi bir varsayılandır.
- src-dst-port veya L4 içeren seçenekler: Aynı iki sunucu arasında çok sayıda oturum varsa (yedekleme, replikasyon) dağılımı iyileştirir.
Cisco Catalyst’te algoritma çoğunlukla global seçilir ve tüm port-channel’lara uygulanır. Hash yalnız gönderen tarafta çalışır; iki uçta farklı algoritma olması hata değildir, ama her yönün dağılımını ayrı değerlendirmeniz gerekir.
port-channel load-balance src-dst-ip
show etherchannel load-balance
! Belirli bir akışın hangi üyeye düşeceğini görmek (destekleyen platformlarda):
test etherchannel load-balance interface Port-channel1 ip 10.10.20.15 10.10.50.8
Örnek hesap: 4 x 10G üyeli bir port-channel’da gece çalışan tek bir yedekleme akışı en fazla 10G kullanabilir; aynı anda çalışan 40 farklı istemci–sunucu çifti ise dört üyeye yayılabilir. Tek akış hızı belirleyiciyse ya daha hızlı tek bağlantı (25G/40G/100G) gerekir ya da uygulama katmanında paralel akış.
Cisco IOS’ta EtherChannel yapılandırma örneği
Aşağıdaki örnek erişim switch’inden dağıtım switch’ine giden iki adet 10G trunk uplink’i LACP ile birleştirir. Üye portları kapalıyken yapılandırın; yarım kalmış bir yapılandırma anlık döngü üretebilir.
interface range TenGigabitEthernet1/1/1 - 2
shutdown
description UPLINK-DIST-SW1
switchport mode trunk
switchport trunk allowed vlan 10,20,30,99
switchport trunk native vlan 999
channel-group 1 mode active
!
interface Port-channel1
description UPLINK-DIST-SW1
switchport mode trunk
switchport trunk allowed vlan 10,20,30,99
switchport trunk native vlan 999
!
interface range TenGigabitEthernet1/1/1 - 2
no shutdown
Port-channel kurulduktan sonra trunk, VLAN segmentasyonu ve STP ayarlarını Port-channel arayüzünde değiştirin; IOS bunları üyelere yansıtır. Tek bir üyeye yazılan farklı ayar o üyeyi gruptan düşürür. Bazı eski Catalyst modellerinde trunk için önce switchport trunk encapsulation dot1q girmek gerekir. Gruptaki aktif üye sınırı ve hot-standby davranışı (lacp max-bundle, lacp port-priority) platforma göre değişir.
Sunucu ve depolama tarafıyla uyum
Switch tarafında LACP kurmanız sunucunun da LACP konuştuğu anlamına gelmez. Eşleşmeyen yapılandırmada switch portları (I) stand-alone veya (s) suspended görünür. Sahada en sık gördüğümüz senaryo budur: ağ ekibi port-channel kurar, sunucu ekibi teaming’i başka modda açar.
Linux bonding
Linux’ta LACP, bonding sürücüsünün 802.3ad (mode 4) moduyla sağlanır. Gönderim tarafındaki hash xmit_hash_policy ile seçilir:
nmcli con add type bond con-name bond0 ifname bond0 \
bond.options "mode=802.3ad,miimon=100,lacp_rate=fast,xmit_hash_policy=layer3+4"
nmcli con add type ethernet con-name bond0-p1 ifname ens1f0 master bond0
nmcli con add type ethernet con-name bond0-p2 ifname ens1f1 master bond0
cat /proc/net/bonding/bond0
/proc/net/bonding/bond0 çıktısında iki üyenin aynı “Aggregator ID” değerini taşıması ve “Partner Mac Address” alanının switch’in sistem MAC’ini göstermesi gerekir. Üyeler farklı aggregator ID’lerdeyse switch tarafı grubu kurmamıştır. Partner MAC sıfırsa LACPDU hiç gelmiyordur.
Windows ve sanallaştırma
Fiziksel Windows Server’da LBFO teaming LACP modunu destekler:
New-NetLbfoTeam -Name "Team1" -TeamMembers "NIC1","NIC2" `
-TeamingMode Lacp -LoadBalancingAlgorithm Dynamic
Get-NetLbfoTeamMember -Team "Team1"
Hyper-V sanal switch’i için ise Microsoft’un önerdiği yöntem Switch Embedded Teaming’dir ve SET yalnız switch’ten bağımsız çalışır; bu durumda switch tarafında port-channel kurulmaz. Sunucu tarafı Hyper-V sanal ağ tasarımı ve SET yazısında anlatılıyor. VMware’de LACP yalnız distributed switch üzerinde desteklenir; standard vSwitch ile ancak statik EtherChannel ve IP hash eşleştirilebilir. iSCSI depolama trafiğinde link aggregation yerine iki ayrı yol üzerinde çok yollu G/Ç (MPIO) kullanın; depolama üreticilerinin yaygın önerisi de budur.
Üye port tutarsızlıkları ve err-disable durumları
Bir port ancak şu parametreler diğer üyelerle aynıysa gruba alınır:
- Hız ve duplex
- Switchport modu (access veya trunk)
- Access VLAN’ı veya trunk’ta izin verilen VLAN listesi ve native VLAN
- Platforma bağlı olarak MTU, QoS ve port güvenliği ayarları
Tutarsız üye suspended durumuna düşer. Daha ciddisi, bir tarafın port-channel kurmuş, diğerinin kurmamış olmasıdır: Cisco’da varsayılan olarak açık gelen spanning-tree etherchannel guard misconfig bunu algılar ve portları channel-misconfig nedeniyle err-disable eder. Bu bir korumadır. Portları açmadan önce iki ucun yapılandırmasını yan yana koyun.
Doğrulama ve sorun giderme komutları
show etherchannel summary
show etherchannel 1 detail
show lacp neighbor
show lacp counters
show interfaces Port-channel1
show interfaces TenGigabitEthernet1/1/1 counters errors
show interfaces status err-disabled
İlk bakılacak yer show etherchannel summary çıktısındaki bayraklardır: P üyenin grupta çalıştığını, I LACPDU alınmadığı için portun tek başına çalıştığını, s askıya alındığını, D kapalı olduğunu gösterir. Port-channel satırında SU (L2, kullanımda) veya RU (L3, kullanımda) görmelisiniz. show lacp counters ile LACPDU gönderim ve alım sayaçlarının arttığını doğrulayın; alım sayacı sabitse karşı taraf LACP konuşmuyordur.
Kapasite için üyelerin trafik sayaçlarını ayrı ayrı karşılaştırın. Bir üye sürekli diğerlerinin birkaç katını taşıyorsa hash algoritmasını gözden geçirin. Hata sayaçları yalnız bir üyede artıyorsa sorun büyük ihtimalle o üyenin kablosu veya optik modülüdür. Port-channel bu tür fiziksel sorunları ortalamanın içinde saklar. Uplink kullanım trendlerini raporlamak için ağ kapasite raporlaması yazısına bakabilirsiniz.
Port-channel’ın iki ayrı switch’e yayılması gerekiyorsa konu cihaz yedekliliğine geçer; bu mimariler switch stack, MLAG ve vPC karşılaştırmasında anlatılıyor. Port-channel’ların STP ile etkileşimi için STP, RSTP ve MSTP yazısı tamamlayıcıdır. Linux tarafındaki bütün bonding parametreleri kernel bonding dokümantasyonunda listelenir. Uplink ve sunucu bağlantılarının kurulumunda destek için switch, router ve ağ cihazları kurulumu hizmet sayfamıza göz atın.
Sık sorulan sorular
İki adet 10G bağlantıyı birleştirince tek dosya kopyalama 20G hıza çıkar mı?
Hayır. Hash algoritması her akışı tek bir üyeye yerleştirir; tek bir TCP oturumu en fazla bir üyenin hızına, yani 10G’ye ulaşır. Toplam kapasite ancak çok sayıda farklı akış olduğunda kullanılır.
LACP mi statik EtherChannel mı kullanmalıyım?
Karşı taraf destekliyorsa LACP. LACP üyelerin gerçekten aynı karşı cihaza bağlı olduğunu doğrular ve yanlış kablolanan portu gruba almaz. Statik mod bu kontrolü yapmaz; yanlış eşleşmede trafik kaybı veya döngü oluşabilir.
Port-channel’a kaç port koymalıyım?
Birçok Cisco platformu hash sonucunu 8 kovaya dağıttığı için 2, 4 veya 8 üye daha dengeli yük paylaşımı verir. 3 üyeli grupta kovalar 3, 3 ve 2 olarak dağılır. Kullandığınız platformun davranışını üretici belgesinden doğrulayın.
Hyper-V sunucusunda LACP kullanabilir miyim?
Hyper-V sanal switch’i için Microsoft’un önerdiği yöntem Switch Embedded Teaming’dir; SET yalnız switch’ten bağımsız modda çalışır ve LACP desteklemez. Bu durumda switch tarafında port-channel kurulmaz, portlar ayrı ayrı trunk olarak yapılandırılır.
- Teknoloji
- IEEE 802.1AX (LACP), Cisco EtherChannel, PAgP, Linux bonding, Windows NIC Teaming
- Konu
- Fiziksel bağlantıların tek mantıksal bağlantıda birleştirilmesi
- Seviye
- Orta
- Ön koşullar
- Trunk ve access port kavramları
- Cisco IOS temel yapılandırma bilgisi
- Sunucu tarafında ağ arayüzü yönetimi yetkisi
Switching ve Segmentasyon