Exchange 2010 ja Cisco ACE HLB
Kirjoitin viime vuonna neljä artikkelia, jotka liittyivät kuormantasaukseen noin yleisellä tasolla ja erityisesti Exchangeen liittyen. Tässä artikkelissa käsitellään yhtä käytännön tapausta, jossa taustalla Exchange 2010 ja edustalla Cisco ACE Hardware Load Balancer. Jälkimmäinen on ilmeisesti poistumassa Ciscon tuotevalikoimasta, näin olen ymmärtänyt. Ciscon vahvoja puolia ovat sen konfigurointi ja hallinta, mutta samalla ne ovat sen heikkoja puolia. Kun muut kilpailijat tarjoavat graafisella käyttöliittymällä valmiita mallipohjia, joiden avulla Exchangen kuormantasaus voidaan määritellä helposti ja nopeasti, niin Ciscon asetukset joudutaan määrittelemään käytännössä komentorivillä (Cisco IOS). Tämä tuo oman lisänsä ja nostaa kynnystä jonkin verran, vaikka omasta mielestäni komentorivipohjainen liittymä on kyllä jossain määrin selkeämpi esim. konfiguraation tarkastelussa. Komennot ovat aina yksiselitteisiä komentorivillä ja niitä ei voi vahingossa ”kliksutella” kuten hiirellä. Toisaalta täytyy tietää tarkkaan mitä haluaa ja laite tekee juuri sitä mitä pyydetään.
Netistä löytyy niukalti konfiguraatioesimerkkejä Ciscon toteutuksista, mutta yksi hyvä pohja sieltä ainakin löytyy. Olen muokannut sitä oma näkemykseni mukaiseksi.
Ensinnäkin Exchange on omassa kontekstissaan, joka mahdollistaa oman hallinnollisen hiekkalaatikon. ACE toimii normaalisti reitittimenä Hostien välisessä liikenteessä. Eli kun EX-NODE1 haluaa keskustella esim. Domain Controller-palvelimien kanssa, reitittyy liikenne ACE:n ja runkoreitittimien välillä.
Load Balancerin FE kuuntelee palvelupyyntöjä, jotka kohdistuvat osoitteeseen 192.168.1.65 (osoite voi olla esim. julkinen IP-osoite ja se voisi olla esim. DMZ-vyöhykkeellä, koska tuote on myös palomuuri). Services-taulusta näkyy palveluiden protokollat ja portit.
Selityksiä konfiguraatioista
Probe on monitorointiasetus.
OWA:ssa pollataan kirjautumislomaketta, mutta siihen ei yritetä varsinaisesti kirjautua (status 400 ja 404). Kirjautuminen perustunnistusta vasten (joka on yleensä määritelty tunnistautumisen välittämiseen esim. TMG-palvelimella) edellyttäisi jonkin validin tunnuksen ja postilaatikon määrittelyä monitorointiin.
probe https Exchange-OWA
interval 30
passdetect interval 91
ssl version all
request method get url GET /owa/auth/logon.aspx
expect status 400 404
Jokaista Exchange-palvelinta pitää aina aika ajoin päivittää. Päivittämistä varten on hyvä luoda oma monitorointi, joka tarkistaa yhtä tiedostoa. Kun tiedoston nimi muuttuu, monitorointi kertoo, että uusia asiakasyhteyksiä ei enää tarjota päivitettävälle palvelimelle. Huoltotoimenpiteiden jälkeen tiedosto nimetään takaisin alkuperäiseksi. Sama toistetaan toisella palvelimella.
probe https Exchange_alive
port 443
interval 60
passdetect interval 181
ssl version all
request method get url /isalive/Online.htm
Todellisia palvelimia on kaksi kappaletta.
rserver host EX-NODE1
description "Exchange 2010 cluster server 1"
ip address 10.1.2.10
inservice
rserver host EX-NODE2
description "Exchange 2010 cluster server 2"
ip address 10.1.2.11
inservice
OWA:n uudelleenohjaus.
rserver redirect OWA-SSL-REDIRECT
webhost-redirection https://outlookws.uc.demo/owa 302
inservice
HTTP-pohjaisen farmin asetukset, jossa tasaus perustuu yhteyksien määrään, mikä on älykkäämpi tapa kuin Round Robin. Tähän on yhdistetty kaksi monitorointia.
serverfarm host Exchange-CAS-HTTPS
predictor leastconns
probe Exchange-OWA
probe Exchange_alive
rserver EX-NODE1 443
inservice
rserver EX-NODE2 443
inservice
Pysyvyysasetukset, jotka ovat sovelluskohtaisia. Periaate toimii palomuurilistan kaltaisesti, eli kun liikenne vastaa listan kanssa, toteutetaan kyseinen pysyvyys.
sticky ip-netmask 255.255.255.255 address source Exchange-CAS-RPC
serverfarm Exchange-CAS-RPC
timeout 3600
replicate sticky
sticky http-cookie Exchange-Sticky Exchange-CAS-HTTPS-Cookie
cookie insert browser-expire
serverfarm Exchange-CAS-HTTPS
replicate sticky
sticky http-header Authorization Exchange-CAS-HTTPS-AuthZHeader
serverfarm Exchange-CAS-HTTPS
timeout 3600
replicate sticky
sticky ip-netmask 255.255.255.255 address source Exchange-CAS-HTTPS-SourceIP
serverfarm Exchange-CAS-HTTPS
timeout 3600
replicate sticky
Kaikki asiakasyhteydet näkyvät CAS-palvelimen IIS:n lokissa ja riippuen kuormantasaajasta, se voidaan määritellä läpinäkyväksi tai ei. Vianselvityksen kannalta on olennaista, että alkuperäinen asiakkaan IP-osoite näkyy lokissa, joten jos mahdollista tuo ”X-Forwarded-For”-otsikkotieto kannattaa määritellä.
action-list type modify http Exchange-CAS-HTTP
header insert request X-Forwarded-For header-value "%is"
Listaus, jossa tunnistetaan liikenne ja sen pysyvyys.
class-map match-any Exchange-CAS-HTTPS
2 match virtual-address 192.168.1.65 tcp eq https
class-map match-any Exchange-CAS-RPC
2 match virtual-address 192.168.1.65 tcp eq 60001
3 match virtual-address 192.168.1.65 tcp eq 60000
4 match virtual-address 192.168.1.65 tcp eq 135
class-map match-any Exchange-IMAP-POP
2 match virtual-address 192.168.1.65 tcp eq pop3
3 match virtual-address 192.168.1.65 tcp eq 143
4 match virtual-address 192.168.1.65 tcp eq 993
5 match virtual-address 192.168.1.65 tcp eq 995
class-map match-any Exchange-OWA-REDIRECT
2 match virtual-address 192.168.1.65 tcp eq www
class-map match-any Exchange-SMTP
2 match virtual-address 192.168.1.65 tcp eq smtp
Tunnistetaan sovellus.
policy-map type loadbalance first-match Exchange-CAS-HTTPS
match OWA http url /owa/*
sticky-serverfarm Exchange-CAS-HTTPS-Cookie
action Exchange-CAS-HTTP
ssl-proxy client Exchange-CAS
match ECP http url /ecp/*
sticky-serverfarm Exchange-CAS-HTTPS-Cookie
action Exchange-CAS-HTTP
ssl-proxy client Exchange-CAS
match EWS http url /ews/*
sticky-serverfarm Exchange-CAS-HTTPS-Cookie
action Exchange-CAS-HTTP
ssl-proxy client Exchange-CAS
match ActiveSync http url /Microsoft-Server-ActiveSync/*
sticky-serverfarm Exchange-CAS-HTTPS-AuthZHeader
action Exchange-CAS-HTTP
ssl-proxy client Exchange-CAS
match OutlookAnywhere http header User-Agent header-value "MSRPC"
sticky-serverfarm Exchange-CAS-HTTPS-AuthZHeader
action Exchange-CAS-HTTP
ssl-proxy client Exchange-CAS
class class-default
sticky-serverfarm Exchange-CAS-HTTPS-SourceIP
action Exchange-CAS-HTTP
ssl-proxy client Exchange-CAS
policy-map type loadbalance first-match Exchange-CAS-RPC
class class-default
sticky-serverfarm Exchange-CAS-RPC
policy-map type loadbalance first-match Exchange-IMAP-POP
class class-default
serverfarm Exchange-IMAP-POP
policy-map type loadbalance http first-match Exchange-OWA-REDIRECT
class class-default
serverfarm Exchange-OWA-REDIRECT
policy-map type loadbalance first-match Exchange-SMTP
class class-default
serverfarm Exchange-SMTP
Verkkoasetukset ja reititys.
interface vlan 10
description Client Vlan
ip address 10.1.1.6 255.255.255.0
alias 10.1.1.7 255.255.255.0
peer ip address 10.1.1.5 255.255.255.0
access-group input ALL
access-group output ALL
service-policy input MANAGEMENT-POLICY-MAP
service-policy input SERVER1-CONTEXT-POLICY
no shutdown
interface vlan 11
description Server Vlan
ip address 10.1.2.3 255.255.255.0
alias 10.1.2.1 255.255.255.0
peer ip address 10.1.2.2 255.255.255.0
access-group input ALL
access-group output ALL
service-policy input MANAGEMENT-POLICY-MAP
service-policy input SERVER1-CONTEXT-POLICY
no shutdown
Ei kommentteja:
Lähetä kommentti