Search


print PDF
Yksinkertainen Cisco ACE -kuormantasauskonfiguraatio

Yksinkertainen kaksi palvelinta käsittävä, Ciscon ACE-laitteilla hoidettava kuormantasaus, onnistuu seuraamalla näitä ohjeita.

Vaadittavat asiat:
- 2 (hg/mg/eg) konetta kuormantasaamisen luomista varten niiden välille
- Ammattikäyttöoptio palvelimilla (VLAN ja ACE-laite koneiden välillä)
- Cisco ACE -laitteeseen pääsyoikeus
- IP-verkko RIPEltä (käytämme vain yhden IP-osoitteen tässä tapauksessa)


Privaattiverkon testaus


Määrittele kaksi palvelinta seuraavan ohjeen mukaan: http://ohjeet.ovh-hosting.fi/Vrack.
Ensin määrittelemme osoitteen 172.16.0.1 ensimmäiselle koneelle, 172.16.0.2 toiselle koneelle ja niin edespäin.

TÄRKEÄÄ!!
Voit ottaa käyttöön verkon 172.16.0.0/12 poislukien alla listatut IP-osoitteet:
  • 172.16.0.0 => Verkko-osoite
  • 172.31.255.248 => Esimerkkimme IP
  • 172.31.255.249 => Esimerkkimme IP
  • 172.31.255.250 => Esimerkkimme IP
  • 172.31.255.251 => Esimerkkimme IP
  • 172.31.255.252 => OVH:n sisäiseen käyttöön varattu IP
  • 172.31.255.253 => OVH:n sisäiseen käyttöön varattu IP
  • 172.31.255.254 => Virtuaaliräkkinne GW-osoite


Testaa että ping menee läpi palvelimien välillä:

serverA:~# ping -c3 172.16.0.2
PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data.
64 bytes from 172.16.0.2: icmp_seq=1 ttl=64 time=0.277 ms
64 bytes from 172.16.0.2: icmp_seq=2 ttl=64 time=0.261 ms
64 bytes from 172.16.0.2: icmp_seq=3 ttl=64 time=0.275 ms

serverB:~# ping -c3 172.16.0.1
PING 172.16.0.1 (172.16.0.1) 56(84) bytes of data.
64 bytes from 172.16.0.1: icmp_seq=1 ttl=64 time=0.277 ms
64 bytes from 172.16.0.1: icmp_seq=2 ttl=64 time=0.261 ms
64 bytes from 172.16.0.1: icmp_seq=3 ttl=64 time=0.275 ms



Cisco ACE -konfiguraatio


Huomaa että tietoturvaa varten ACE:n luovutuksen aikana laite on saavutettavissa vain 172.16.0.0/12-privaattiverkosta joten sinun täytyy määritellä jollekin palvelimistasi ko. verkosta privaatti-IP jotta yhteys kuormantasaajaan onnistuu. Esimerkki aloitusnäkymästä alla, IP-osoitteen määrittelyn jälkeen:

user@machine ~ ssh admin@172.31.255.249
Password:
Cisco Application Control Software (ACSW)
TAC support: http://www.cisco.com/tac
Copyright (c) 2002-2009, Cisco Systems, Inc. All rights reserved.
The copyrights to certain works contained herein are owned by
other third parties and are used and distributed under license.
Some parts of this software are covered under the GNU Public
License. A copy of the license is available at
http://www.gnu.org/licenses/gpl.html.
rbx-s1-6k/vrack1234#


Mene määrittelytilaan komennolla 'conf t' ja luo uusi ACL päästäksesi ulkoverkosta sisään ACE-laitteeseen.
Julkisen vlanin löytämistä varten komenna 'sh run'. Verkkoliitäntä joka sisältää verkkoavaruutesi IP-osoitteen on RIPE-liitäntä nimellä 'vlan public'.


rbx-s1-ace/vrack2009# conf t
Enter configuration commands, one per line. End with CNTL/Z.
rbx-s1-ace/vrack2009(config)# class-map type management match-all PUBLIC_REMOTE
rbx-s1-ace/vrack2009(config-cmap-mgmt)# match protocol ssh source-address VOTRE.IP.ADSL.ICI 255.255.xxx.xxx
rbx-s1-ace/vrack2009(config-cmap-mgmt)# policy-map type management first-match REMOTE_PUBLIC_MGMT
rbx-s1-ace/vrack2009(config-pmap-mgmt)# class PUBLIC_REMOTE
rbx-s1-ace/vrack2009(config-pmap-mgmt-c)# permit
rbx-s1-ace/vrack2009(config-pmap-mgmt)# interface vlan209
rbx-s1-ace/vrack2009(config-if)# service-policy input REMOTE_PUBLIC_MGMT
rbx-s1-ace/vrack2009(config-if)# end
rbx-s1-ace/vrack2009# wr m
Generating configuration....
running config of context vrack2009 saved

Please wait ... sync to compact flash in progress.
This may take a few minutes to complete
Sync Done


Nyt ACE on saavutettavissa SSH:n kautta julkisessakin IP-osoitteessa

Muistin virkistys
Konfiguraatiotilaan pääset komennolla 'conf t' ja pois näppäinyhdistelmällä CTRL + Z.



Privaattiverkon määrittely


TÄRKEÄÄ!!
Käytämme VLAN-tagia joka on lähellä joka on lähellä sinun VLANiasi, ACE-laitteen määrittelyä varten. VLANia 2045 varten, käytämme yleensä VLANia 245. On myös mahdollista että tämä on eri kuin 245. Saat VLANin selville komentamalla 'show running-config'. Elä poista verkkoliitännältä VLANia 245! Jos teet näin, yhteys kuormantasaajalle katkeaa ja mikäli haluat laitteen takaisin käyttöön, tämä vaatii aiemman konfiguraation palauttamista joka on maksullinen operaatio.


Vinkki!
Voit mitätöidä vahingossa antamasi parametrin. Esimerkkinä porttiohjaussääntö jonka GW-osoite on määritelty väärin. Komenna ensin 'show running interface' ja sen jälkeen seuraavasti:
rbx-99-6k-ace-1/vrack1234# configure
rbx-99-6k-ace-1/vrack1234(config)# no ip address 72.16.0.10 255.255.255.255
Nyt syötä oikeat osoitteet:
rbx-99-6k-ace-1/vrack1234# configure
rbx-99-6k-ace-1/vrack1234(config)# ip address 172.16.0.10 255.240.0.0


Ensin lisää "ANY" access-list ICMP:n (ping) sallimiseksi ja TCP auki kaikkialle:
rbx-99-6k-ace-1/vrack1234(config)# access-list ANY line 8 extended permit icmp any any
rbx-99-6k-ace-1/vrack1234(config)# access-list ANY line 16 extended permit ip any any

Tämän jälkeen määrittele verkkoliitäntä virtuaaliräkistä privaattiverkon käyttöä varten.
OVH suosittelee käyttämään osoiteavaruutta 172.0.0.0/12.

ACE-laitteen vikasietoisuus on 0 (nolla). Tämän takia sinun on erittäin tärkeää tietää että tapauksessa jossa ensimmäinen reititin vikaantuu, toinen reititin ottaa liikenteenvälityksen hoidettavakseen.
Tämä toimii vain silloin kun verkkokortit ovat määritelty.


Ko. konfiguraatio on seuraavassa esimerkissä:

  • 172.31.255.248 => NAT-reititin
  • 172.31.255.249 => IP-alias (jonka liikennöinnin hoitaa reititin #1 tai #2)
  • 172.31.255.250 => Reititin #1
  • 172.31.255.251 => Reititin #2



INFO!
Kortti joka on varalla olevana ACE-laitetta varten ei ole konfiguroitavissa. Määrittely hoituu aktiivikartoituksen kautta joka lähettää viestin vikasietoisuusryhmälle/järjestelmälle että kortti on varalla olevana ja valmiina nousemaan ylös mikäli niin vaaditaan.


Määritellään ensimmäinen verkkoliitäntä privaattiverkkoa varten:

rbx-99-6k-ace-1/vrack1234#conf t
rbx-99-6k-ace-1/vrack1234(config)# interface vlan 1234
(korvaa 1234 virtuaaliräkkisi VLAN-tägillä)

Lisää privaattiosoite verkkoliitännälle:
rbx-99-6k-ace-1/vrack1234(config-if)#ip address 172.31.255.250 255.240.0.0

Määritä toinen reititin ja ns. mainosta reitittimen IP-osoitetta peeringin avulla:
rbx-99-6k-ace-1/vrack1234(config-if)#peer ip address 172.31.255.251 255.240.0.0

Aseta aliasosoite yllä mainituille reititinosoitteille:
rbx-99-6k-ace-1/vrack1234(config-if)#alias 172.31.255.249 255.240.0.0


Kolme yllämainittua vaihetta ovat täten asettaneet verkkoliitännälle VLAN-tägin privaattireitittimille #1 ja #2 sekä alias-IP-osoitteen molempia varten (.249).
Joudumme vielä asettamaan NAT-poolin. Tässä käytämme porttiohjausta palvelimille jotka ovat natin takana:

rbx-99-6k-ace-1/vrack1234(config-if)# nat-pool 1 172.31.255.248 172.31.255.248 netmask 255.240.0.0 pat

aktivoi verkkoliitäntä ja salli ICMP/ping:
rbx-99-6k-ace-1/vrack1234(config-if)# access-group input ANY
rbx-99-6k-ace-1/vrack1234(config-if)# no shutdown



Tarkista konfiguraatio


Varmista että palvelimesi A ja B ovat saavutettavissa virtuaaliräkin kautta ACEsta
rbx-s1-ace/vrack2199# ping 172.16.0.1
Pinging 172.16.0.1 with timeout = 2, count = 5, size = 100 ....

Response from 172.16.0.1 : seq 1 time 0.295 ms
Response from 172.16.0.1 : seq 2 time 0.161 ms
Response from 172.16.0.1 : seq 3 time 0.080 ms
Response from 172.16.0.1 : seq 4 time 0.160 ms
Response from 172.16.0.1 : seq 5 time 0.176 ms
5 packet sent, 5 responses received, 0% packet loss

rbx-s1-ace/vrack2199# ping 172.16.0.2
Pinging 172.16.0.2 with timeout = 2, count = 5, size = 100 ....

Response from 172.16.0.2 : seq 1 time 0.392 ms
Response from 172.16.0.2 : seq 2 time 0.378 ms
Response from 172.16.0.2 : seq 3 time 0.338 ms
Response from 172.16.0.2 : seq 4 time 0.302 ms
Response from 172.16.0.2 : seq 5 time 0.276 ms
5 packet sent, 5 responses received, 0% packet loss



Luo palvelinryhmä (server farm)


Kuten ylhäältä voi huomata, käskytämme ACE:tä tarkistamaan palvelimiesi saavutettavuuden, tämän jälkeen määrittelemme PROBE_TCP-ominaisuuden päälle 30 ja 60 sekunnin intervallilla virheiden tarkistusta varten:
rbx-99-6k-ace-1/vrack1234(config)# probe tcp PROBE_TCP
interval 30
passdetect interval 60


Nyt määrittelemme palvelimet kuormantasaus-VLANiin IP-osoitteineen ja samalla laitamme yhteysmäärärajoituksen 50 000:een yhteyteen ylikuormituksen ehkäisemiseksi:

rbx-99-6k-ace-1/vrack1234(config)# rserver host SERVER1 # korvaa SERVER1 ensimmäisellä palvelimellasi
ip address 172.16.0.1
conn-limit max 50000 min 40000
inservice
rbx-99-6k-ace-1/vrack1234(config)# rserver host SERVER2 # korvaa SERVER2 toisella palvelimellasi
ip address 172.16.0.2
conn-limit max 50000 min 40000
inservice


Luo palvelinryhmä (server farm).
Tässä esimerkissä ryhmälle annetaan nimeksi FARM_WEB ja käytämme metodina 'leastconns predictor' joka luo kuormantasauksen joka taasen perustuu yhteysmäärään. Samalla käytämme myös PROBE_TCP:tä joka on konfiguroitu ylhäällä:

rbx-99-6k-ace-1/vrack1234(config)# serverfarm host FARM_WEB
predictor leastconns
probe PROBE_TCP
rserver SERVER1 # korvaa SERVER1 ensimmäisellä palvelimellasi
inservice
rserver SERVER2 # korvaa SERVER2 toisella palvelimellasi
inservice



Määrittele kuormantasaus


Aseta HTTP-parametrikartoitus. Tämä käskyttää ACE:tä suorittamaan HTTP-headermuutokset ja myös siirtämään jokaisen uuden HTTP-pyynnön palvelimille:

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

Nyt olemme asettaneet class-map -ominaisuuden sisääntulevan yhteyden valitsemiselle. Tätä varten käytämme IP-osoitetta 178.33.8.65 (yksi RIPE-blokin IP-osoitteista) ja porttia 80 (httpd):
rbx-99-6k-ace-1/vrack1234(config)# class-map match-all L4-WEB-IP
2 match virtual-address 178.33.8.65 tcp eq www

Tämän jälkeen policy-map joka siirtää asiakas-IP:n HTTP-headerille samalla kun liikennettä siirretään palvelinryhmälle (ns. server farm). Nimeämme tämän muotoon WEB_L7_POLICY:
rbx-99-6k-ace-1/vrack1234(config)# policy-map type loadbalance http first-match WEB_L7_POLICY
class class-default
serverfarm FARM_WEB
insert-http x-forward header-value "%is"

Yhdistä class-map IP-WEB-L4 ja WEB_L7_POLICY HTTP_PARAMETER_MAP ja aseta nämä käyttöön:
rbx-99-6k-ace-1/vrack1234(config)# policy-map multi-match WEB-to-vIPs
class L4-WEB-IP
loadbalance vip inservice
loadbalance policy WEB_L7_POLICY
loadbalance vip icmp-reply active
nat dynamic 1 vlan 1234 # replace 1234 with your virtual rack tag
appl-parameter http advanced-options HTTP_PARAMETER_MAP

Aseta käyttöön access-list -politiikka verkkoliitännän sisääntulevalle VLANille:
rbx-99-6k-ace-1/vrack1234(config)# interface vlan 123 # jos VLAN-tägisi virtuaaliräkille on 2045, käytämme sen asemasta 245:ttä. VLAN-tägin saat tietoon tutulla komennolla 'show running-config'.
service-policy input WEB-to-vIPs
access-group input ANY


Konfiguraatioesimerkki


Verkkoliitäntäsi pitäisi näyttää tältä (käytämme hallinta-IP-osoitetta 178.33.8.77 ACE-laitteelle pääsyä varten)
rbx-99-6k-ace-1/vrack1234# show running-config
Generating configuration....

access-list ANY line 8 extended permit icmp any any
access-list ANY line 16 extended permit ip any any

probe tcp PROBE_TCP
interval 30
passdetect interval 60

parameter-map type http HTTP_PARAMETER_MAP
persistence-rebalance

rserver host testvrack1.ovh.net
ip address 172.16.0.1
conn-limit max 50000 min 40000
inservice
rserver host tesvrack2.ovh.net
ip address 172.16.0.2
conn-limit max 50000 min 40000
inservice

serverfarm host FARM_WEB
predictor leastconns
probe PROBE_TCP
rserver testvrack1.ovh.net
inservice

class-map match-all L4-WEB-IP
2 match virtual-address 178.33.8.65 tcp eq www
class-map type management match-all REMOTE_ACCESS
2 match protocol ssh any
class-map type management match-all TEST
2 match protocol icmp any

policy-map type management first-match REMOTE_MGMT_ALLOW_POLICY
class REMOTE_ACCESS
permit
policy-map type management first-match TEST_ALLOW
class TEST
permit

policy-map type loadbalance http first-match WEB_L7_POLICY
class class-default
serverfarm FARM_WEB
insert-http x-forward header-value "%is"

policy-map multi-match WEB-to-vIPs
class L4-WEB-IP
loadbalance vip inservice
loadbalance policy WEB_L7_POLICY
loadbalance vip icmp-reply active
nat dynamic 1 vlan 1234
appl-parameter http advanced-options HTTP_PARAMETER_MAP

interface vlan 123
ip address 178.33.8.77 255.255.255.240
access-group input ANY
service-policy input REMOTE_MGMT_ALLOW_POLICY
service-policy input WEB-to-vIPs
no shutdown
interface vlan 1234
ip address 172.31.255.251 255.240.0.0
access-group input ANY
nat-pool 1 172.31.255.250 172.31.255.250 netmask 255.240.0.0 pat
service-policy input TEST_ALLOW
no shutdown



Kuormantasauksen testaaminen


Ota useita telnet-yhteyksiä testaamista varten:
user@machine ~ telnet 178.33.8.65 80
Trying 178.33.8.65...
Connected to 178.33.8.65.
Escape character is '^]'.
GET /


Apache (Debian) Server at 172.16.0.1 Port 80



user@machine ~] telnet 178.33.8.65 80
Trying 178.33.8.65...
Connected to 178.33.8.65.
Escape character is '^]'.
GET /


Apache (Debian) Server at 172.16.0.2 Port 80