11.6.2013

Exchange 2010 ja Cisco ACE HLB


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