Content Delivery Networks - LABinf

Download Report

Transcript Content Delivery Networks - LABinf

LEZIONE 24

Content Delivery Networks Terena 2000

ftp://ftpeng.cisco.com/sgai/t2000cdn.pdf

Argomento interessante e molto particolare. Oggi le CDN sono un pi lastro portante dei servizi offerti su Internet. Hanno un sacco di pro blematiche, ma danno tutta una serie di vantaggi a livello di Quality of Experience (l'utente percepisce un servizio buono con la rete che abbiamo, al contrario della QoS in cui si cerca di agire sulla rete).

Queste slide sono del 2000. Erano gli anni in cui si cominciava a par lare di CDN. Oggi i contesti sono più o meno gli stessi (con le dovute migliorie) ma si sono espanse un sacco.

Silvano Gai

Cisco Systems, USA Politecnico di Torino, IT [email protected]

1 Terena 2000

© 2000, Cisco Systems, Inc.

Agenda

• • • • • •

What are Content Delivery Networks? DNS based routing Server Load Balancing Content Routers Ethical questions Conclusion

Terena2000CDN

© 2000, Cisco Systems, Inc.

2 S2

At the beginning were Web Caches

S1

IP Network

S3 Terena2000CDN

© 2000, Cisco Systems, Inc.

IP Network

Web Cache

A Web Cache is a device that stores a local copy of more recently required HTTP objects and reacts as proxy server to clients’ requests

3 Che cos'è una CDN? E' un po' una generalizzazione delle cache del web. Ricordiamo, infatti, l'uso dei proxy: quando un utente chiede qualcosa può passare da un proxy (la cosa dev'essere opportuna mente configurata) e sarà il proxy a chiedere, ad esempio, google.it per poi inoltrarlo al client. Se un altro client chiede google.it verrà res tituito il risultato in cache. Meno tempo di servizio, meno traffico sul backbone (il proxy solitamente sta vicino all'utente), meno carico sui server web.

Fare un apparato che faccia analisi del traffico a L4+ è estremamen te complicato per tutta una serie di motivi (gestire un gran numero di connessioni, dover ricostruire e gestire i pacchetti di una sessione TCP, analizzarne il contenuto...). Con un proxy è molto più facile, do po opportuna configurazione.

Motivations for Content Delivery Networks

Web site performance improvement

Static Web pages or nonlive streaming media

• • • •

Server farms are far from users Better RTT

à

better user’s experience Bandwidth

• •

Cost saving Less probability to incur in a bottleneck Availability Load balancing

Traffic peaks crashes sites

Terena2000CDN

© 2000, Cisco Systems, Inc.

Nella CDN il problema che abbiamo è relativo alle prestazioni. Sicco me coi proxy possiamo memorizzare delle informazioni per non con tattare tutte le volte i webserver. Sarebbe bello generalizzare questa idea e avere dei proxy sparsi per il mondo con delle copie locali.

Il problema che abbiamo è obbligare l'utente a usare dei proxy. CDN invece vuole fare dei proxy sparsi in giro per il mondo a cui l'utente accede SENZA ACCORGERSENE.

Naturalmente le copie del contenuto sparse devono essere allineate al contenuto principale (questo dunque non funziona bene con i con tenuti che cambiano spesso). E dobbiamo avere dischi grandi.

Facciamo CDN perchè se invece facciamo andare gli utenti fino all' unico server centralizzato ci ritroviamo casi in cui il servizio è povero 4

Content Delivery Networks (CDNs)

• •

Distributed Web Hosting Video-On-Demand

MPEG on LAN

Low/Mid-rate streaming on WAN

• • •

Scalable Live Streaming Dynamic Content Conditional-Access Content

advertisements

Terena2000CDN

© 2000, Cisco Systems, Inc.

Example of CDN

Content Updates Server Live Streams

Quello che si vuole cercare di fare è sostanzialmente del web hosting distribuito. Invece che tenere il mio contenuto in una server farm cen tralizzata, cerco di metterlo su diverse copie sparse in giro per il mon do. Il problema è dunque far accedere gli utenti alle copie distribuite: questo è l'obiettivo delle tecniche CDN.

I contenuti sono: - contenuto web - video on-demand (più complicato se è streaming live, ma fattibile) - contenuti dinamici (PHP): in questo caso distribuiamo la funzionali tà, cosa non sempre fattibile - contenuti non sempre accessibili: il contenuto è messo insieme ad altri contenuti da inviare a utenti che arrivano da specifici posti.

5 CDN dunque è una roba ben complicata e dietro girano bei soldini.

Se io sono un content provider (Youtube) non è che voglia avere il servizio di CDN da content provider diversi, quindi non c'è uno stan dard a cui adeguarsi. Non c'è bisogno di interoperabilità.

La slide qui vuol far vedere che ho migliaia/milioni di clienti a cui ac cedono, ma il lavoro del server è molto basso.

1K to 10M Client Requests

Terena2000CDN

© 2000, Cisco Systems, Inc.

6

An Overlay Network over Internet

A CDN is an overlaid network of Caches , a.k.a. Content Servers , a.k.a. Delivery Nodes , a.k.a. Replicas

Terena2000CDN

© 2000, Cisco Systems, Inc.

7 La CDN è un servizio di overlay (anche se a livello di ricerca si trova un po' di tutto), al di sopra della rete. C'è una rete di server che si oc cupano di portare i contenuti vicino ai clienti. Il problema è come por tare i clienti ai server più vicini.

Le copie di contenuto hanno vari nomi, proprio perchè siccome non esiste uno standard ognuno si è inventato la sua soluzione.

Agenda

Come facciamo a fare in modo che le richieste degli utenti arrivino al posto giusto? Una delle soluzioni possibili si chiama DNS Based Routing.

• • • • • •

What are Content Delivery Networks? DNS based routing Server Load Balancing Content Routers Ethical questions Conclusion

Terena2000CDN

© 2000, Cisco Systems, Inc.

8

The idea: a new DNS Server Architecture

DNS queries for www.terena2000.com

Standard DNS interface

Si sfrutta il fatto che l'utente, nella quasi totalità dei casi, quando vuo le accedere al servizio usa il nome del servizio. Il client, dunque, va prima o poi a fare una richiesta verso un server DNS "modificato".

Il gestore della CDN ha accordi con un certo numero di gestori di ser ver DNS. Ricordiamo anche che se nessuno sa rispondere risponde direttamente il server interessato.

Il server DNS, dunque, nel fornire una risposta, guarda sia il nome che l'indirizzo IP grazie al quale posso trovare la posizione geografi ca di una determinata rete. Riesco così a distribuire il carico su tanti server e a dare a ciascuno un server vicino.

Diverse problematiche da gestire tra cui il caching DNS.

Routing Engine {DNS-names, IP-SA}

®

IP-DA

Terena2000CDN

© 2000, Cisco Systems, Inc.

9

DNS-based CDNs

Host Names are used to redirect the traffic to the best replica

the replica selections happens when the name is translated to an IP address

DNS servers become “Content Routers”

they measure as many metric as possible (RTT, Server Load, Layer 3 metrics, response time, etc.) to compute a replica routing table {{DNS-names, IP-SA}

®

IP-DA}

Metric measurement is not easy

Layer 3 metrics alone are not particularly meaningful

Teniamo presente che in realtà il server DNS può usare anche altre informazioni rispetto al solo indirizzo IP per restituire un indirizzo da contattare (ad esempio il RTT). Soluzioni fatte ad hoc.

Si possono fare cose complicate a piacere, ma la complicazione es plode. Si tenga poi presente che alcune metriche sono anche parec chio dinamiche.

Terena2000CDN

© 2000, Cisco Systems, Inc.

10

Access Provider

Traditional Browsing

MSPG DNS

Qual è lo scenario?

Da un lato abbiamo dei client, dall'altro dei server che contengono i contenuti (in realtà il modello è ancora diverso, perchè non è detto che chi possiede i server possiede anche i contenuti) 1. Il client fa la richiesta DNS rivolgendosi al DNS del suo Access Provider 2. La richiesta va a finire al DNS del Content Provider 3. Il client accede al server

Backbone Provider AT&T UUNET MCI ABOV Hosting Provider EXDS DNS Content Provider

Terena2000CDN

© 2000, Cisco Systems, Inc. CNN

DNS-based CDN Browsing

DNS Access Provider

#

Replica MSPG Backbone Provider AT&T UUNET Replica MCI

11

Replica

Usando soluzioni basate su CDN ci sono repliche del contenuto in giro per il mondo (occhio: anche se le repliche sono sul backbone provider non sono messe dal backbone provider, ma dal CDN provi der che compra servizi di connettività).

Il servizio viene fornito da un server # vicino al client.

GBLX Hosting Provider EXDS Content Provider

Terena2000CDN

© 2000, Cisco Systems, Inc. CNN DNS CDN DNS

12

Example

“ Akamaized ” content Akamaization HTML delivered by CNN Entire page delivered by CNN Terena2000CDN

© 2000, Cisco Systems, Inc.

13

DNS-based CDNs Limitations

There are limitations

The granularity of redirection is an host name, not a URL

Content of large web sites cannot be split into multiple caches

It is difficult to use the same host name for static and dynamic content

The Akamai approach:

Akamaized URLs: http:// a836.g.akamaitech.net

/7/836/123/e358f5db0045e/ www.terena2000.com/logo.gif

Terena2000CDN

© 2000, Cisco Systems, Inc.

14 Quali sono le limitazioni che abbiamo? La granularità per scegliere il server è il nome, quindi non posso fare una cosa più raffinata di man darti in maniera ottimizzata a www.cnn.com (una volta entrato, bon).

Inoltre se il nostro sito web ha contenuti misti statici e dinamici, i con tenuti dinamici non possono essere distribuiti con una CDN, ma de vono essere distribuiti proprio i servizi. Non posso dunque mettere su un server con lo stesso nome contenuto statico e contenuto dina mico.

Una soluzione per ovviare a questo problema è utilizzare l'approccio Akamai. Akamai ha una soluzione di CDN molto flessibile (secondo i punti di vista): loro modificano le URL delle pagine Web, in modo che se io scarico la pagina Web di polito.it da Torino gli URL sono costrui ti apposta per farli "puntare" a Torino. A questo punto vale tutto: ogni singola sottopagina può essere su qualsiasi server. Ciò richiede che i riferimenti alle varie pagine siano "akamaizzati". Se dunque scarico la pagina del polito da Parigi i vari link contenuti non saranno polito.it

ma punteranno a server Akamai sparsi in giro per il mondo.

How Akamai works (1)

Akamai ha avuto un enorme successo. Soluzione specifica, poco ele gante. Però funziona. Inoltre Akamai può inoltrare le richieste come meglio crede.

It creates new domain names for each client content provider

E.g., a128.g.akamai.net

The CDNs DNS servers are authoritative for the new domains CDN’s

The content provider modifies its content so that embedded URLs reference the new domains

http:// cnn.com/a.gif

--> http://a128.g.akamai.net/7/23/ cnn.com/a.gif

Apache module or IIS ISAPI filter

Terena2000CDN

© 2000, Cisco Systems, Inc.

15

How Akamai works (2)

• •

Using multiple domain names for each client allows the CDN to further subdivide the content into groups DNS sees only the requested domain name, but it can route requests for different domains independently

www.repubblica.it

may point to mainly Italian caches

www.elpais.es

may point to mainly Spanish caches

Terena2000CDN

© 2000, Cisco Systems, Inc.

16

Extension to DNS-based CDNs

Un'altra possibilità per gestire questo tipo di cose, scendendo a una granularità più bassa è offerta dal fatto che sia HTTP che RTSP sono in grado di generare messaggi di redirect. Se a un certo punto il ser ver di www.polito.it diventa molto carico può inviare un messaggio di redirect.

How to implement more granular DNS-based CDNs (e.g. how to look for the complete URL)?

• •

HTTP/RTSP Redirect Redirection can be obtained in two ways

every server in the farm is capable to redirect

An SLB (Server Load Balancer) is capable to redirect

Effective only in a Local Area

Un'altra possibilità è quella di far fare questo lavoro a un server load balancer: ci sono una serie di server collegati, l'utente cerca di acce dere a un determinato server. Però è strapieno e quindi il server load balancer ti dice di farla a un altro server. Non tanto semplice e buono solo per server vicini (la distribuzione geografica te la scordi).

Terena2000CDN

© 2000, Cisco Systems, Inc.

17

The Next Step: URL-based CDNs

• • •

URLs are used to redirect the traffic to the best Content Server URL routing requires TCP termination

TCP termination is complex and expensive

TCP termination introduces delay There will be only one TCP termination point

Close to the client?

Close to the server?

Dispositivi in mezzo alla rete che guardano le richieste, guardano la URL, vedono cosa sta chiedendo il client e in base a quello lo man dano a un server diverso.

Problema di questa cosa: i dispositivi devono riuscire a terminare la connessione TCP (il client cerca di accedere a un server, apre una connessione TCP ma quando il pacchetto SYN arriva a questo dispo sitivo manda un SYN/ACK "fingendosi" il server). Più facile, però non è un end system (se il poveretto ha un sacco di server a valle, ha an che un sacco di carico e deve poi aprire le connessioni verso il ser ver).

Normalmente questo tipo di cose si fanno più nei data server. Solu zioni utili per load balancing, poco diffuse per il resto.

Terena2000CDN

© 2000, Cisco Systems, Inc.

18

Agenda

• • • • • •

What are Content Delivery Networks? DNS based routing Server Load Balancing Content Routers Ethical questions Conclusion

Terena2000CDN

© 2000, Cisco Systems, Inc.

19

Server Farms

A reality today

Clients see a unique Virtual Server (IP address)

Traffic destined to the Virtual Server is load balanced among different Real Server

Application Server

Terena2000CDN

Server Farm

© 2000, Cisco Systems, Inc.

Web Server

R

IP Network Client (Browser)

20

Server Load Balancing

I load balancer cercano di distribuire bene il traffico. Un po' più com plicato di quanto sembra perchè poi c'è la connessione (e dunque de vo andare sempre verso un server).

Real Server

S1

Real Server

S2

SLB

IP Network Client (Browser) Real Server

S3

Virtual Server

Terena2000CDN

© 2000, Cisco Systems, Inc.

21

Server Load Balancing

Quando si parla di server load balancing si parla di switching L4 e L7.

Supponiamo di avere due server e dire: tutti quelli che arrivano solo da indirizzi pari li mando sopra, tutti quelli che arrivano da indirizzi dispari li mando sotto. In più posso anche basarmi sulle porte.

Content-unaware ( layer 4 switching )

TCP connections are not terminated by the SLB All packets belonging to a given TCP connection must be terminated always on the same server

Examples Load distribution based on source IP address Load distribution based on hash (IP src/dst, TCP sport/dport ), …

Content-aware ( layer 7 switching )

TCP connections with both clients and servers are terminated

To support SSL (https) the SLB requires the server keys

Questo però non sempre è efficiente, quindi si fa L7 switching. Loro guardano informazioni di livello applicativo (come la URL) per decide re dove mandare il traffico.

Terena2000CDN

© 2000, Cisco Systems, Inc.

22

TCP Proxy

Client

Terena2000CDN

© 2000, Cisco Systems, Inc. SYN Content Aware Router (Layer 7 Switch) SYN/ACK ACK GET URL Data SYN SYN/ACK ACK GET URL Data Server

Qui si spiega il concetto della terminazione delle connessioni TCP.

Loro ora si sono messi "nei guai" e devono fare da passacarte.

Dunque abbiamo macchine enormi e costosissime.

Uno dei problemi che abbiamo in una configurazione del genere è con SSL. I certificati del server devono dunque stare sull'L7 switch: questo va bene se l'L7 switch è nella diretta disponibilità di chi ha il server, perchè altrimenti bisogna fidarsi. Oppure non si usa SSL.

23

Limitations with SLB

• •

Some applications require that TCP connections from the same client are redirected to the same server ( Sticky Connections ):

Shopping Cart

Searches

Forms

Economic Transactions Stickiness may be addressed/complicated by:

source IP address

cookies

SSL ID

Terena2000CDN

© 2000, Cisco Systems, Inc.

24

Agenda

• • • • • •

What are Content Delivery Networks? DNS based routing Server Load Balancing Content Routers Ethical questions Conclusion

Terena2000CDN

© 2000, Cisco Systems, Inc.

URL routing

• •

Can we build a router that routes on URLs? YES, but:

statefull (we must terminate TCP)

complex packet parsing (we need the URL)

anycast router (a URL is associated to multiple replicas)

Do we have URL routing tables?

Do we have URL routing protocols?

Do we have metrics? How do we compute them?

Terena2000CDN

© 2000, Cisco Systems, Inc.

26

IP vs. Content Routing

IP routing H1 R1 R2 R3 H2 Content routing or H1 CR2 CR1

Terena2000CDN

© 2000, Cisco Systems, Inc. CR3

Or even more complex

H2

27 25 Possiamo anche fare router di L7. Il routing "intelligente" viene dun que fatto su tutta la rete. Fantastico, ma estremamente complicato, difficile da far scalare e difficilmente vendibile.

H1 CR1 CR2 CR3 H2 H1 CR2 CR1 CR3

Terena2000CDN

© 2000, Cisco Systems, Inc. CR4 CR5 H2

28

Content Delivery Control Protocols

Content Routers in series cannot all terminate the TCP session:

we don’t want to reinvent X.25

• •

URL must be

extracted by the first Content Router

propagate by a Content Delivery Control Protocol Some protocols have been proposed:

HUP

Christmas Tree

ICAP

Still in a very preliminary phase:

if successful, they can be integrated in the hosts.

Terena2000CDN

© 2000, Cisco Systems, Inc.

29

Agenda

• • • • • •

What are Content Delivery Networks? DNS based routing Server Load Balancing Content Routers Ethical questions Conclusion

Terena2000CDN

© 2000, Cisco Systems, Inc.

30

The Ethical question

Is it ethical to deploy Content Routers in the Internet?

They hijack the packets

They spoof the addresses

They break the end-to-end model of IP

Terena2000CDN

© 2000, Cisco Systems, Inc.

31

Where, is the question

Access Provider Here No, or may be Backbone Provider NOT HERE !!! Hosting Provider Content Provider

Terena2000CDN

© 2000, Cisco Systems, Inc. Here YES

32

Agenda

• • • • • •

What are Content Delivery Networks? DNS based routing Server Load Balancing Content Routers Ethical questions Conclusion

Terena2000CDN

© 2000, Cisco Systems, Inc.

Sometime CDNs are very good!

33 Terena2000CDN

© 2000, Cisco Systems, Inc.

Sometime are not so good!

34 Terena2000CDN

© 2000, Cisco Systems, Inc.

Content Peering

Content Provider

CDN1 35

Control POP Routing POP Delivery POP

Terena2000CDN

© 2000, Cisco Systems, Inc.

CDN3 36

Conclusions

Content Delivery Networks (CDNs) DNS-based will be widely deployed

CDNs are not only for web traffic, but also for multimedia streaming

Replicas will have slightly different content (e.g. local advertisement)

Content Peering is still an unsolved problem

Server Farms and Server Load Balancing will be widely deployed

Intrusive content routing poses:

ethical questions

scalability concerns

Terena2000CDN

© 2000, Cisco Systems, Inc.

37

The End

Thank You

Terena2000CDN

© 2000, Cisco Systems, Inc.

38