Search


print PDF

Yksinkertainen kuormantasaus Cisco ACE:ssa sticky-ominaisuudella


Tämän ohjeen avulla voit toteuttaa yksinkertaisen kuormantasauskonfiguraation sticky-yhteyksillä varustettuna. Tässä esimerkissämme käytämme HTTP-cookiemetodia sen mahdollistamiseksi.

Cisco ACE: konfiguraatio


Vaaditut asiat ja palvelimien (A ja B) konfiguraatiot tulisivat olla samanalaiset kuin ohjeessa VrackLoadBalancingACESimple.
Jotkut ACE-konfiguraation edellä määritellyt osat ovat listattu tähän ohjeeseen ilman yksityiskohtia.

Peruskonfiguraatio


access-lists:
rbx-99-6k-ace-1/vrack2070(config)# access-list ANY line 8 extended permit icmp any any
rbx-99-6k-ace-1/vrack2070(config)# access-list ANY line 16 extended permit ip any any


internal vlan:
rbx-99-6k-ace-1/vrack2070(config)# interface vlan 2070
ip address 10.20.70.10 255.255.255.0
access-group input ANY
nat-pool 1 10.20.70.254 10.20.70.254 netmask 255.255.255.0 pat
no shutdown


tcp probe:
rbx-99-6k-ace-1/vrack2070(config)# probe tcp PROBE_TCP
interval 30
passdetect interval 60


http-parameter map:
rbx-99-6k-ace-1/vrack2070(config)# parameter-map type http HTTP_PARAMETER_MAP
persistence-rebalance


real servers:
rbx-99-6k-ace-1/vrack2070(config)# rserver host SERVER1
ip address 10.20.70.10
conn-limit max 50000 min 40000
inservice
rbx-99-6k-ace-1/vrack2070(config)# rserver host SERVER2
ip address 10.20.70.101
conn-limit max 50000 min 40000
inservice


serverfarm config:
rbx-99-6k-ace-1/vrack2070(config)# serverfarm host FARM_WEB
predictor leastconns
probe PROBE_TCP
rserver SERVER1
inservice
rserver SERVER2
inservice


Layer4 class-map:
rbx-99-6k-ace-1/vrack2070(config)# class-map match-all L4-WEB-IP
2 match virtual-address 188.165.125.115 tcp eq www


Sticky-konfiguraatio


Aseta cookie-nimi ja timeout-arvo. Oletamme cookien "CookieACE" lähetettävän palvelinfarmista client-ohjelmistoon. Jos cookie löydetään, se tallennetaan ACEen sticky-yhteystietokantaan.
Asetamme timeout-arvon 3600 minuuttiin ja laitamme CookieACE StickyGroup1:een joka on yhteydessä FARM_WEB-farmiin:
sticky http-cookie CookieACE StickyGroup1?
timeout 3600
serverfarm FARM_WEB


Seuraava askel on Layer7 policy-map -kuormantasauskonfiguraatio. Tässä osassa sinun on käytettävä sticky-serverfarm -parametriä:
policy-map type loadbalance http first-match WEB_L7_POLICY
class class-default
sticky-serverfarm StickyGroup1?
insert-http x-forward header-value "%is"


Edellisessä esimerkissä policy-map multi-match WEB-to-vIP:tä käytetään kaikkien toimintojen yhteennaittamiseksi:
policy-map multi-match WEB-to-vIPs
description Ties 4-WEB-IP class-map, WEB_L7_POLICY maps together and applies HTTP_PARAMETER_MAP. Uses NAT.
class L4-WEB-IP
loadbalance vip inservice
loadbalance policy WEB_L7_POLICY
loadbalance vip icmp-reply active
nat dynamic 1 vlan 2070
appl-parameter http advanced-options HTTP_PARAMETER_MAP


Ota service-policy ja access-list käyttöön sisääntulevalle VLAN-liitännälle
rbx-99-6k-ace-1/vrack2070(config)# interface vlan 270
service-policy input WEB-to-vIPs
access-group input ANY


Palvelimen cookieasetus

Testataksemme sticky-ominaisuutta sinun täytyy konfiguroida cookiet web-sivustolle joka vaatii sitä.
Tallennetaan cookie.php-sivu pää-web-hakemistoon. Tämä asettaa cookien CookieACE ylös random-arvoilla tai vain näyttää sen silloin, kun se on jo käytössä selaimessa.
<html>
<head>
<?php
$n = 'CookieACE';
if( ! $_COOKIE["$n"]) {
$cookie=rand(1,10000);
echo '<meta http-equiv="Set-Cookie" content="'.$n.'='.$cookie.'; path=/" />';
}
?>
</head>
<body>
Hello from SERVER1
<?php
if($_COOKIE["$n"])
echo "Got cookie: $n = $cookie";
else
echo "New cookie set: $n = $cookie";
?>
</body>
</html>


Tee sama palvelimen B kohdalla, mutta pistä sinne arvoksi esimerkiksi "Hello from SERVER2" nähdäksesi eroavuuden cookie.php-sivustojen välillä.

Kuormantasauksen testaaminen


Testataksesi sticky-ominaisuutta mene osoitteeseen http://188.165.125.115/cookie.php. Näemmäe esimerkiksi:
Hello from SERVER1 set a new cookie: CookieACE = 3028


Nyt jos web-selaimesi hyväksyy keksit, sivuston uudelleenlatauksen/virkistyksen jälkeen näet palvelimen SERVER1 vastaukset.
Esimerkkipyynnöt silloin kun selaimessa on keksit hyväksyttynä:
Hello from SERVER1 Got cookie: CookieACE = 3028

Hello from SERVER1 Got cookie: CookieACE = 3028

Hello from SERVER1 Got cookie: CookieACE = 3028

Hello from SERVER1 Got cookie: CookieACE = 3028


Tässä vaiheessa tarkastetaan ACEn sticky-tietokanta:
rbx-99-6k-ace-1/vrack2070# show sticky database
sticky group : StickyGroup1?
type : HTTP-COOKIE
timeout : 3600 timeout-activeconns : FALSE
sticky-entry rserver-instance time-to-expire flags
-----------------------------------------------------------------+-------+
12411268269029278684 SERVER1:0 215995 -


HTTP-cookie StickyGroup1:stä on asetettu. Voit nähdä ACE-timeout-arvon kuin myös cookie-tyypin, -nimen tai palvelimen instanssin.

Kun TCP-istunto on käynnissä, on mahdollista tarkastaa itse yhteystapahtuma:
rbx-99-6k-ace-1/vrack2070# show conn port 80

conn-id np dir proto vlan source destination state

383186 1 in TCP 270 78.8.249.77:39277 188.165.125.115:80 ESTAB
230973 1 out TCP 2070 10.20.70.101:80 10.20.70.254:14013 ESTAB


Näet selaimessasi cookie-yksityiskohdat:
1 cookie set:
Name CookieACE
Value 3028
Server 188.165.125.115
path /
secure No
expires End of session


Lopuksi tämän poistamisen jälkeen ja selaimen keksien disabloimisen jälkeen on mahdollista havaita eri pyyntöjä jotka eri palvelin palvelinfarmista (server farm) käsittelee - huomaa että TCP-yhteysistunnon täytyy vanhentua, yksi TCP-istunto käsitellään yhden rserverin toimesta.

Esimerkkipyynnöt keksit käytöstä poistettuna:
Hello from SERVER1 set a new cookie: CookieACE = 6077

Hello from SERVER1 set a new cookie: CookieACE = 4231

Hello from SERVER2 set a new cookie: CookieACE = 4199

Hello from SERVER2 set a new cookie: CookieACE = 2803

Hello from SERVER1 set a new cookie: CookieACE = 926


Lisädokumentit

-Cisco Application Control Engine Module Load Balancing Guide