|
Cerca |
Questa guida descrive la configurazione di base diload balancing con la connessione sticky abilitata. In questo esempio, utilizzeremo il metodo HTTP-cookie per eseguirla. I requisiti richiesti e le configurazioni iniziali dei server (A e B) dovrebbero essere gli stessi riportati nella guida Configurazione di base su Cisco ACE. Alcune parti della confgurazione ACE descritta in precedenza sarà riportata qui senza dettagli. Access-lists: 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 VLan interna: rbx-99-6k-ace-1/vrack1234(config)# interface vlan 1234 ip address 192.168.1.10 255.255.255.0 access-group input ANY nat-pool 1 192.168.1.254 192.168.1.254 netmask 255.255.255.0 pat no shutdown TCP probe: rbx-99-6k-ace-1/vrack1234(config)# probe tcp PROBE_TCP interval 30 passdetect interval 60 http-parameter map: rbx-99-6k-ace-1/vrack1234(config)# parameter-map type http HTTP_PARAMETER_MAP persistence-rebalance Server fisici: rbx-99-6k-ace-1/vrack1234(config)# rserver host SERVER1 ip address 192.168.1.1 conn-limit max 50000 min 40000 inservice rbx-99-6k-ace-1/vrack1234(config)# rserver host SERVER2 ip address 192.168.1.2 conn-limit max 50000 min 40000 inservice Configurazione serverfarm: rbx-99-6k-ace-1/vrack1234(config)# serverfarm host FARM_WEB predictor leastconns probe PROBE_TCP rserver SERVER1 inservice rserver SERVER2 inservice Layer4 class-map: rbx-99-6k-ace-1/vrack1234(config)# class-map match-all L4-WEB-IP 2 match virtual-address 188.123.123.123 tcp eq www Impostazione nome cookie e parametri di timeout.Ci aspettiamo un cookie chiamato CookieACE inviato dalla webfarm ad un client. Se viene identificato, allora sarà conservato sull'ACE in un database con connessione sticky.Ipostiamo il timeout a 3600 minuti e inseriamo CookieACE in sticky http-cookie CookieACE timeout 3600 serverfarm FARM_WEB Il passo successivo consiste nella configurazione del load balancing sulla policy-map Layer7. In questa parte utilizzeremo i parametri della sticky-serverfarm: policy-map type loadbalance http first-match WEB_L7_POLICY class class-default sticky-serverfarm StickyGroup1? insert-http x-forward header-value "%is" Come nell'esempio precedente, la policy-map multi-match WEB-to-vIPs è utilizzata per inserire tutte le configurazioni: 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 1234 appl-parameter http advanced-options HTTP_PARAMETER_MAP Applicazione delle service-policy e access-list all'interfaccia VLan in ingresso: rbx-99-6k-ace-1/vrack1234(config)# interface vlan 123 service-policy input WEB-to-vIPs access-group input ANY Impostazione cookie del serverPer testare la configurazione stickiness, dobbiamo necessariamente impostare i cookie sul sito internet che li richiede.Salviamo la pagina cookie.php nella cartella principale di root web-docs. Questo imposterà il nome del cookie a CookieACE con un valore casuale o semplicemente lo mostrerà quando sarà impostato sul browser: <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> Eseguiamo la stessa operazione sul Server B, ma inseriamo "Hello from SERVER2" per verificare la differenza tra le due macchine. Per testare la configurazione stickiness colleghiamoci ad Hello from SERVER1 set a new cookie: CookieACE = 3028 Ora, se il vostro browser accetta i cookies, dopo aver eseguito il refresh del sito dovreste ottenere risposta dal SERVER1. Esempio di insieme di richieste con cookies abilitati nel browser: 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 Controlliamo il database sticky su ACE: rbx-99-6k-ace-1/vrack1234# show sticky database sticky group : type : HTTP-COOKIE timeout : 3600 timeout-activeconns : FALSE sticky-entry rserver-instance time-to-expire flags -------------------- ---------------------------------------------+-------+12411268269029278684 SERVER1:0 215995 - Si può vedere un cookie http inviato da Quando la sessione TCP è attiva, è possibile verificare la connessione: rbx-99-6k-ace-1/vrack1234# show conn port 80 conn-id np dir proto vlan source destination state 383186 1 in TCP 123 11.22.33.44:39277 188.123.123.123:80 ESTAB 230973 1 out TCP 1234 192.168.1.11:80 192.168.1.254:14013 ESTAB Lato browser invece, potrete vedere i dettagli del cookie: 1 cookie set: Name CookieACE Value 3028 Server 188.123.123.123 path / secure No expires End of session Infine, dopo la rimozione di questa e disabilitando completamente i cookies nel browser, è possibile notare che le differenti richieste sono gestite da server diversi da serverfarm (ma la sessione TCP deve terminare - una sessione TCP è gestita da un rserver). Esempio di insieme di richieste con cookies disabilitati: 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 Guida Cisco Application Control Engine Module Load Balancing |