TMG en Loadbalancers
Ingezonden door Blog redactie op 30-11-2011 12:22De TMG wordt vaak ingezet als proxy server. Hierbij doet de TMG dienst als DE gateway naar het internet voor de gehele organisatie. De TMG is dan dus een belangrijke dienst geworden. Zonder TMG geen internet. Het is dus dan ook verstandig TMG hoger beschikbaar te maken. Dit doe je door:
- Meer dan één TMG te gebruiken
- Eventueel een EMS in te zetten voor centrale configuratie
- Door de load en failover te regelen met een load balancer.
In deze blog wil ik voornamelijk een stil staan bij punt 3.
Manier van Load Balancing
Je heb twee mogelijkheden voor Load balancing. Bij het gebruiken van elke techniek is het belangrijk om op een paar zaken te letten. De eerste manier is op basis van de Network Load Balancing van Windows server 2008 (R2), de tweede manier is op basis van een hardware load balancer.
Er is ook nog een derde manier, DNS Round Robin. Maar dit is geen echte Load Balancing.
Network Load Balancing (NLB) van Windows Server 2008 (R2)
De “goedkoopste” optie is NLB. NLB is een onderdeel van Windows Server 2008 en kost dus geen extra hardware. Hierdoor is het een interessante optie voor load balancing. Toch zitten er een aantal nadelen aan NLB.
NLB kan op twee manier worden uitgerold:
- Unicast, hierbij maken alle hosts gebruik van een gedeelde MAC adres die aan een virtueel IP adres gekoppeld wordt.
- Multicast, hierbij reageren alle hosts op een multicast adres.
Voor deze tweede methode geldt dat de switch dit moet ondersteunen. De switch moet het toestaan dat één MAC adres is toegewezen aan meerdere poorten of hij moet Multicast MAC adressen ondersteunen. Niet elke switch ondersteunt dit. Wanneer je kiest voor NLB ga je je switch als Hub inzetten. Dit houdt in dat door NLB er broadcasten ontstaan in de VLAN. Daarnaast loop je het risico dat bij een misconfiguratie van de switch het netwerkverkeer overal of nergens naar toegestuurd wordt.
Voor meer informatie hierover.
Het resultaat van NLB is dat alle TMG nodes in een NLB cluster één virtueel IP delen. Onderling verdelen de TMGs binnen hun array het verkeer. Hierdoor weten de TMG’s altijd precies welk verkeer bij welke TMG hoort. Het nadeel is wel dat je maar 1x 65000 TCP poorten te verdelen hebt en dus niet per node over 65000 vrije TCP poorten beschikt. In bepaalde gevallen kan die leiden tot TCP Stack Starvation, een conditie waarbij TMG feitelijk geen of weinig load heeft, maar binnenkomende sessie gedropt worden, omdat de TCP stack geen vrije poorten meer heeft.
Harware Load Balancing (LB)
Bij LB wordt er gebruik gemaakt van een hardware loadbalancer, zoals een Cisco ACE, F5 of een Barracuda. Kijk ook eens op deze site.
Hardware loadbalancers hebben als nadeel dat ze “duur” zijn. Je moet namelijk twee extra hardware dozen kopen. Je wilt tenslotte dat je omgeving hoger beschikbaar is.
Een LB heeft geen last van de problemen, zoals we die zien bij NLB. De switch praat tegen één poort/IP/MAC aan; Het adres van de LB. Deze verdeelt het verkeer over de verschillende TMG’s. Daarnaast heeft elke TMG zijn eigen poel van TCP poorten. Per TMG krijg je dus de beschikking over 65000 extra TCPpoorten. Daarnaast hebben de verschillende hardware loadbalancers meer voordelen, maar dat is per type verschillen. In deze blog wil ik daar niet op ingaan.
Er zijn wel twee aandachtspuntjes bij het gebruik maken van hardware loadbalancers en TMG:
- Je zult, zowel voor als achter de TMG, loadbalancers moeten plaatsen. Nu is dit vaak op te lossen met 1 LB cluster. De meeste LB clusters ondersteunen VLAN’s en je kunt dus twee VLAN’s definiëren. 1x voor en 1x achter de TMG.
- De TMG’s weten zelf niet bij wie welke verkeer hoort. Dit is anders dan bij NLB. Dan zijn de TMG’s wel op de hoogte wie welk verkeer afhandelt. Je zult er dus voor moeten zorgen dat de twee hardware loadbalancer clusters weten welk verkeer naar welke TMG gaat. In het figuur hiernaast zie je twee loadbalancers en drie TMG’s. De groene pijl is verkeer dat naar buiten gaat. Deze gaat door de eerste TMG. De rode pijl is het terugkerende verkeer. Deze gaat door de derde TMG. De derde TMG weet niet dat de eerste TMG al een sessie heeft en denkt dan ook dat er iets mis is met het rode verkeer. Hij zal dit verkeer afkeuren en droppen. De Load balancer moet dus precies bijhouden welk verkeer bij welke TMG hoort.
DNS Round Robin
DNS Round Robin wordt vaak ingezet voor de TMG client. De TMG client ondersteunt niet het gebruik van Network Load balancing of een Hardware Load balancer. (http://technet.microsoft.com/en-us/library/ee796231.aspx#NLBIssues). De enige oplossing is dan Round Robin. Er zit wel één nadeel aan DNS Round Robin. Clients cache al zijn DNS querys die hij heeft gedaan. Op het moment dat een TMG server uitvalt zal een client niet automatisch naar de andere gaan. Pas als de TTL van het A-record verlopen is zal de client een nieuwe query doen. Als hij dan het adres krijgt van de werkende server zal hij ook daadwerkelijk naar die server gaan.
Conclusie
Al lijkt NLB goedkoper, dit is niet per definitie het geval. NLB vraagt om extra aandacht voor de switches. Gebeurt dit niet dan is NLB al snel een nachtmerrie. Hardware Loadbalancers kosten dan vaak iets meer, maar leveren een hoop extra voordelen. Het is dus zeker interessant om beide opties te onderzoeken.
Lees ook Forefront Productteam blog.
- blog van Blog redactie
- Login om te reageren
Tweet dit