www.SAMURAJ-cz.com 

24.04.2024 Jiří Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Windows a NIC Teaming aneb připojení přes více síťovek

Středa, 12.08.2009 15:02 | Samuraj - Petr Bouška |
Dnes máme mnoho situací, kdy využijeme možnost připojit server pomocí více síťových karet, a to do stejné sítě. Hlavní dvě výhody jsou zvýšení propustnosti a dostupnosti serveru. To využijeme jak u významných klasických serverů, tak u dnes stále rozšířenějších serverů, kde provozujeme virtualizaci. Tato technika se většina označuje jako NIC Teaming, Bonding či Link Bundling a může využívat i standardní metody Link Aggregation.

Co potřebujeme pro Teaming

Obecně můžeme říci, že potřebujeme tři základní věci, i když jedna z nich je volitelná. Jedná se o:

  • minimálně dvě síťové karty (síťový adaptér, Network Interface Controller, zkráceně NIC)
  • podporu teamingu v operačním systému nebo NIC driver s touto podporou
  • (volitelně) switch s podporou Link Aggregation (IEEE 802.1ax)

Síťová karta a ovladač ve Windows

MS Windows nemají v jádru podporu ani pro NIC Teaming ani pro VLANy. Což je rozdíl oproti Linuxu (a dalším podobným systémům), kde je tato podpora integrovaný ve vyšší vrstvě OS, takže může pracovat s každou NIC, která je podporovaná kernelem.

Pokud tedy chceme použít NIC Teaming ve Windows, potřebujeme speciální ovladač od výrobce síťové karty, a tedy i kartu, která tuto funkci podporuje. Většina výrobců serverů má takovýto driver pro svoje produkty, i když ne vždy pro nejlevnější modely. Příkladem je Hewlett Packard (HP), který s ovladačem pro síťovou kartu instaluje HP Network Config Utility, a ten slouží ke konfiguraci Teamingu a VLAN. U výrobců síťových karet se nejedná o běžnou vlastnost. Pouze některé adaptéry od 3Com či Broadcom podporují Teaming. Myslím, že asi největší podporu má firma Intel, kdy většina síťových karet, včetně integrovaných, Teaming podporuje.

Právě na síťové kartě od Intelu budu Teaming popisovat. Na webu Intelu můžeme stáhnou balík, který obsahuje ovladače pro všechny Intel síťové karty a podporované OS. Včetně Advanced Networking Services (ANS), což je podpora funkce Teaming, VLAN (802.1q) a prioritizace paketů. Vyzkoušel jsem nejběžnější adaptéry jako je Intel PRO/1000 GT Desktop a Intel PRO/1000 PT Server a také integrované Intel 82567LM a Intel 82566DM (u této karty ovšem podpora Teamingu není, podporuje pouze VLANy). Více o Intel ANS nalezeme na stránce Teaming with Advanced Networking Services.

U Intelu (a nejen u něj) se nám konfigurace Teamingu vloží jako nová záložka ve vlastnostech síťového adaptéru.

Pozn.: Rozšířené záložky (jako je Teaming) se nezobrazují při připojení přes Remote Desktop, pouze pokud se připojíme přímo na konzoli, tzn. mstsc /admin v RDC 6 nebo mstsc /console ve starší verzi.

Záložka Teaming u síťového adaptéru

Intel ovladače podporují celou řadu typů teamů a většina nepotřebuje podporu na druhé straně, tedy na switchi. V tom případě můžeme použít libovolný "hloupý" switch/hub a teaming nám bude fungovat. Load Balancing se ovšem provádí pouze na odchozím provozu. Pokud použijeme switch s podporou IEEE 802.3ax (dříve IEEE 802.3ad) – Link Aggregation, tak dochází k Load Balancingu na obou stranách.

Co nám Teaming přinese

Pokud využijeme připojení serveru přes více síťových karet s využitím Teamingu, tak získáme tři hlavní benefity. Jedná se o odolnost proti chybě (Fault Tolerance), zvýšení propustnosti (bandwidth throughput) díky agregaci linek a vyvažování zátěže (Load Balancing). Přičemž zvýšení propustnosti a vyvažování zátěže spolu značně souvisí. Pro distribuci paketů na různé linky se vychází z cílové adresy a stejné konverzace jsou posílány přes stejnou linku (aby nedošlo k doručení mimo pořadí), takže se obě metody uplatní pouze při komunikaci s různými adresáty.

Různé typy Teamingu

Jednotlivé typy bych rozdělil na dvě skupiny. První jsou ty, kdy nastavujeme pouze server a můžeme použít libovolný switch. Síťové adaptéry mohou být zapojeny i do různých switchů a mohou mít jinou rychlost a duplex. Všechny fyzické porty (uvnitř virtuálního) používají svoji vlastní MAC adresu.

  • Adapter Fault Tolerance, kdy je jeden adaptér aktivní a ostatní jsou standby (přepnou se v případě výpadku), doporučuje se, aby adaptéry byly připojeny do stejného switche/hubu s vypnutým STP
  • Switch Fault Tolerance podporuje dvě linky připojené do dvou různých switchů, jedna je aktivní a druhá standby
  • Adaptive Load Balancing odesílaný provoz je vyvažován přes všechny adaptéry (2 až 8), zároveň poskytuje fault tolerance, příchozí provoz jde pouze přes primární adaptér, může se použít spolu s Receive Load Balancing, potom může provádět load balancing i na příchozím provozu

V druhém případě konfigurujeme jak server, tak switch. Síťové adaptéry musí být zapojeny do stejného switche/stacku a musí mít stejnou rychlost a full duplex. Vytvořením teamu podle 802.3ad se vytvoří jeden virtuální interface, který získá MAC adresu jednoho z fyzických interfaců a můžeme mu nastavit jednu nebo více IP adres.

  • Static Link Aggregation je použití manuálního EtherChannelu, kdy je na switchi nastaven mód on
  • Dynamic Link Aggregation využívá LACP protokol podle IEEE 802.3ad

Vytvoření Teamu ve Windows

Předpoklad: máme v počítači správné síťové karty (minimálně 2) a máme nainstalované ovladače Intel s podporou ANS

  • otevřeme Network Connections
  • klikneme pravým tlačítkem na vybrané připojení a zvolíme Properties
Network Connections
  • na záložce General klikneme na Configure
  • přepneme se na záložku Teaming
Vytvoření nového Teamu
  • zaškrtneme Team this adapter with other adapters a klikneme na New Team
  • projdeme průvodce, kde zadáme jméno teamu, zvolíme adaptéry, které budou součástí, a vybereme typ teamu
Volba typu Teamu
  • následně chvíli probíhá vytváření teamu
Průběh vytváření Teamu
  • po vytvoření teamu se nám otevřou jeho vlastnosti
  • zde se můžeme přepnout na záložku Settings, kde vidíme adaptéry v teamu a jejich stav
  • také můžeme kliknout na tlačítko Test Switch, pro otestování komunikace se switchem
Vlastnosti nového Teamu
  • po spuštění testu tlačítkem Run Test dostaneme výsledky, zda je komunikace OK nebo chybná a případné rady
Test spojení se switchem
  • nově vytvořený team se nám následně zobrazí jako nové síťové připojení v Network Connections a na něm provádíme všechny konfigurace (jako je nastavení IP adresy)
Network Connections spolu s Teamem

Konfigurace Cisco Switche

Podrobněji o konfiguraci hovoří článek Cisco IOS 21 - EtherChannel, Link Agregation, PAgP, LACP, NIC Teaming.

Pokud použijeme některou z metod Link Aggregation, tak potřebujeme switch s podporou LAG, to je například většina Cisco switchů. Ukážeme si konfiguraci v Cisco IOSu. Pokud na serveru nastavíme Static Link Aggregation, tak na switchi musíme nastavit mode on. Pokud zvolíme Dynamic Link Aggregation, tak použijeme mode active.

V našem příkladu máme stack ze tří Catalyst 3750, server je připojen do portu G1/0/7 a G3/0/6. Provedeme konfiguraci, kdy nejprve nastavíme společné parametry pro oba porty a následně zapneme statickou agregaci. Ještě zkontrolujeme konfiguraci a vidíme, že vše je v pořádku (podle příznaků v závorkách).

SWITCH(config)#interface range g1/0/7,g3/0/6
SWITCH(config-if-range)#switchport mode access
SWITCH(config-if-range)#switchport access vlan 100
SWITCH(config-if-range)#channel-group 1 mode on
Creating a port-channel interface Port-channel 1
SWITCH#show etherchannel 1 summary | begin Group
Group  Port-channel  Protocol    Ports
------+-------------+-----------+-----------------------------------------------
1      Po1(SU)          -        Gi1/0/7(P)  Gi3/0/6(P)

Pozn.: Na switchi můžeme v konfiguraci určovat, jak se spojení rozhazují na jednotlivé porty. U serveru toto není možné.

Intel doporučuje, aby porty switche, které se účastní teamu, měli vypnutý Spanning Tree Protocol (STP). V Cisco IOSu se ale nedá vypnout STP pro port. Můžeme jej pouze vypnout pro celý switch nebo pro určitou VLAN, ale oboje se nedoporučuje.

Testování funkčnosti

Na závěr jsem provedl jednoduchý test. Server je spojen se switchem Cisco C3750 pomocí dvou linek. Je nastavena Static Link Aggregation. Na tomto serveru pustíme ping na jiný stroj. Veškerá komunikace jde pouze přes primární linku. Po chvíli vytáhneme kabel, dojde k výpadku jednoho pingu, komunikace se přepne na druhou linku a pokračuje (při kopírování dat dojde k pozastavení, ale ne k přerušení). Následně kabel vrátíme zpět. Nyní se již bez výpadku komunikace přepne opět na primární linku.

C:\>ping 10.0.200.13 -t
Pinging 10.0.200.13 with 32 bytes of data:
Reply from 10.0.200.13: bytes=32 time=52ms TTL=127
Reply from 10.0.200.13: bytes=32 time<1ms TTL=127
Reply from 10.0.200.13: bytes=32 time<1ms TTL=127
Request timed out.
Reply from 10.0.200.13: bytes=32 time<1ms TTL=127
Reply from 10.0.200.13: bytes=32 time<1ms TTL=127
Reply from 10.0.200.13: bytes=32 time<1ms TTL=127
Reply from 10.0.200.13: bytes=32 time<1ms TTL=127
Reply from 10.0.200.13: bytes=32 time<1ms TTL=127
Reply from 10.0.200.13: bytes=32 time<1ms TTL=127
Reply from 10.0.200.13: bytes=32 time<1ms TTL=127
Reply from 10.0.200.13: bytes=32 time<1ms TTL=127
Reply from 10.0.200.13: bytes=32 time<1ms TTL=127

Switch si na fyzických portech neukládá MAC adresu, má uloženou pouze virtuální MAC na interfacu Portchannel 1.

SWITCH#sho mac address-table | inc Gi1/0/7
SWITCH#sho mac address-table | inc Gi3/0/6
SWITCH#sho mac address-table | inc Po1
  600    001b.2138.0291    DYNAMIC     Po1           

Ještě jsem vyzkoušel chování na switchi, když se zruší Etherchannel a na serveru se nastaví Adaptive Load Balancing.

SWITCH(config)#no interface Po1
SWITCH(config)#int ran g1/0/7,g3/0/6
SWITCH(config-if-range)#no shut      

SWITCH#sho mac address-table | inc Gi3/0/6
  600    0015.17ba.9d97    DYNAMIC     Gi3/0/6
SWITCH#sho mac address-table | inc Gi1/0/7
  600    001b.2138.0291    DYNAMIC     Gi1/0/7

odpojení portu G3/0/6
SWITCH#sho mac address-table | inc Gi3/0/6
SWITCH#sho mac address-table | inc Gi1/0/7
  600    0015.17ba.9d97    DYNAMIC     Gi1/0/7
  600    001b.2138.0291    DYNAMIC     Gi1/0/7

zapojení portu G3/0/6
SWITCH#sho mac address-table | inc Gi3/0/6
  600    0015.17ba.9d97    DYNAMIC     Gi3/0/6
  600    0215.17ba.9d97    DYNAMIC     Gi3/0/6
SWITCH#sho mac address-table | inc Gi1/0/7
  600    001b.2138.0291    DYNAMIC     Gi1/0/7

odpojení portu G1/0/7
SWITCH#sho mac address-table | inc Gi3/0/6
  600    0015.17ba.9d97    DYNAMIC     Gi3/0/6
  600    001b.2138.0291    DYNAMIC     Gi3/0/6
  600    0215.17ba.9d97    DYNAMIC     Gi3/0/6
SWITCH#sho mac address-table | inc Gi1/0/7

zapojení portu G1/0/7
SWITCH#sho mac address-table | inc Gi1/0/7
  600    021b.2138.0291    DYNAMIC     Gi1/0/7
SWITCH#sho mac address-table | inc Gi3/0/6
  600    0015.17ba.9d97    DYNAMIC     Gi3/0/6
  600    001b.2138.0291    DYNAMIC     Gi3/0/6
  600    0215.17ba.9d97    DYNAMIC     Gi3/0/6

Pozn.: Na závěr ještě jedno moje doporučení. Při změnách na Etherchannelu (hlavně typu) toto provádět při vypnutém interfacu. Nejprve rušit staré nastavení a pak přidávat nové.

zobrazeno: 25719krát | Komentáře [8]

Autor:

Související články:

Link Aggregation

Připojení přes více linek. EtherChannel, Link Aggregation, PAgP, LACP, NIC Teaming, Bonding, Bundling ...

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

  1. [1] Paja

    Moc hezký článek díky ;-) a mám malou otázku jakou rychlost by měla hlásit virtuální síťová karta při použití 4 ethernetu Static Link Aggregation ve Windows?

    Sobota, 29.08.2009 20:55 | odpovědět
  2. [2] Samuraj

    odpověď na [1]Paja: Mě se zobrazuje součet rychlostí jednotlivých karet (tedy v mém případě dvou gigabitových se hlásí 2Gb/s).

    Pondělí, 31.08.2009 12:12 | odpovědět
  3. [3] gabo

    Ja mám otázok viac:

    -kedy je vlastne potrebné nastavovať teaming na oboch stranách

    t.j mám Cisco switch a server s dvoma eth.k?

    -kedy iba na jednej strane?

    -ak nastavím etherchannel iba na Ciscu a na servery mám dve sieťovky, ako nastavujem IP adresáciu na eth.kartách

    (rovnaké prvé tri oktety a štvrtý iný?, ale potom na akú IPnu mám pristupovať?)

    -na ethernet karte existuje ešte možnosť Network load balancing...nemám skúsenosti

    Pátek, 18.09.2009 12:01 | odpovědět
  4. [4] Samuraj

    odpověď na [3]gabo: Na obou stranách je to výhodnější, protože se rozvažuje provoz z obou stran. Pokud je nastaveno pouze na serveru, tak se rozvažuje odchozí provoz a ne příchozí. Ochrana proti výpadku funguje u obou.

    Myslím, že není možné nastavit Teaming pouze na switchi, ale nezkoušel jsem to.

    Jestli se nepletu, tak NLB má jiný účel, používá se pro clustery, kdy máme více sevrerů, které se navzájem zastupují.

    Pátek, 18.09.2009 14:21 | odpovědět
  5. [5] sonic

    ahoj,

    vcera jsem to zprovoznoval - absolutne bez problemu (stejny scenar jako zde C3570 + 2xEth server).

    co mne zarazilo byla jedna vec.

    pokud utrhnu z EthChann sitovku A tak provoz jde bez vypadku (ani jeden ping se neztrati).

    pokud utrhnu sitovku B tak se jeden ping ztrati.

    znovuzapojeni je bez vypadku, jak je zde popsano.

    proc? STP?

    cekal bych ze se to bude chovat stejne...

    diky

    Středa, 05.01.2011 15:05 | odpovědět
  6. [6] choze

    Ahojte

    Mam HP server s HP teamingem. Po pripojeni je vse ok, jen u 2 terminalu ze ctryr nefunguje ani ping.

    Bude problem nejspis na strane terminalu ze ??

    Dekuji

    Pátek, 13.01.2012 10:09 | odpovědět
  7. [7] Mario

    caute...chcel by som sa opytat na rychlost kopirovania. Presnejsie ked mam spraveny 2Gbps teaming(802.3ad Dynamic Fault Tolerance)HP server a cisco switch.Chcel by som sa opytat aka bude rychlost 1 season napr:Chcel by som zalohovat servery na FTP (bohuzial mame len 1Gb linku) a rychlost kopirovania nepresiahne hranicu tej 1Gb linky cez teaming. Chcel by som sa opytat ci by sa nedalo volak nastavit aby sa vyuzivala plna 2Gb linka prenosu tej jednej season.

    Dakujem velmi pekne za odpoved a prajem pekny zvysok dna.

    Čtvrtek, 22.11.2012 17:25 | odpovědět
  8. [8] Petr Macek

    odpověď na [7]Mario: Link agregace/LAN bonding resi to, ze posila ramce vice cestami. Kterou cestou ktery ramec pujde rozhoduje napr. dle MAC adres nebo IP adres. Pokud tedy mate komunikace 1 IP proti 1 IP (takze i 1 MAC proti 1), tak s timhle vam agregace nepomuze. Takova komunikace proste pujde vzdy jen jednou linkou. Pokud ale alespon na jedne strane bude vice IP/MAC, dojde k rozbalacovani a vyuzijete obe linky. Nebude to presne 50:50, protoze zalezi na tom, dle ceho se balancuje.

    Jina situace je napr. u iSCSI MPIO.

    Středa, 25.03.2015 13:50 | odpovědět
Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách