{"id":35973,"date":"2019-10-31T22:08:54","date_gmt":"2019-10-31T19:08:54","guid":{"rendered":"https:\/\/prohoster.info\/blog\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti\/"},"modified":"2019-10-31T22:08:54","modified_gmt":"2019-10-31T19:08:54","slug":"avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti","title":{"rendered":"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>In <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/453516\/\">versione precedente<\/a><\/noindex> Ho descritto un framework per l'automazione della rete. Dai feedback di alcune persone, anche questo primo approccio al problema ha gi\u00e0 chiarito alcune questioni. E questo mi rende molto felice, perch\u00e9 il nostro obiettivo nel ciclo non \u00e8 coprire Ansible con script Python, ma costruire un sistema.<\/p>\n<p>Questo stesso framework stabilisce l'ordine in cui ci occuperemo della questione.<br \/>\nE la virtualizzazione della rete, di cui questo episodio parla, non si adatta particolarmente al tema ADSM, dove trattiamo l'automazione. <\/p>\n<p>Ma diamo un'occhiata a essa da un'altra prospettiva.<\/p>\n<p>Da tempo molti servizi utilizzano una rete. Nel caso di un operatore di telecomunicazioni, si tratta di 2G, 3G, LTE, banda larga e B2B, per esempio. Nel caso del data center: connettivit\u00e0 per diversi clienti, Internet, storage a blocchi, storage oggettuale.<\/p>\n<p>E tutti i servizi richiedono isolamento reciproco. Cos\u00ec sono nate le reti overlay.<\/p>\n<p>E tutti i servizi non vogliono aspettare che qualcuno li configuri manualmente. Cos\u00ec sono nati gli orchestratori e SDN.<\/p>\n<p>Un primo approccio all'automazione sistematica della rete, o meglio, di una sua parte, \u00e8 stato intrapreso tempo fa ed \u00e8 stato implementato in molte situazioni: VMWare, OpenStack, Google Compute Cloud, AWS, Facebook.<\/p>\n<p>E oggi ci concentreremo proprio su di esso. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/kdpv.jpg\"><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/e0bf73b7b71c383c5526da48a6f6b776.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1>Contenuto<\/h1>\n<p><\/p>\n<ul>\n<li><b>Motivi<\/b><\/li>\n<li><b>Terminologia<\/b><\/li>\n<li><b>Underlay \u2014 rete fisica<\/b><\/li>\n<li><b>Overlay \u2014 rete virtuale<\/b>\n<ul>\n<li>Overlay del ToR<\/li>\n<li>Overlay da host<\/li>\n<li>Per esempio Tungsten Fabric\n<ul>\n<li>Comunicazione all'interno di una stessa macchina fisica<\/li>\n<li>Comunicazione tra VM dislocate su macchine fisiche diverse<\/li>\n<li>Uscita verso il mondo esterno<\/li>\n<\/ul>\n<p>\n <\/li>\n<\/ul>\n<p>\n <\/li>\n<li><b>FAQ<\/b><\/li>\n<li><b>Conclusione<\/b><\/li>\n<li><b>Link utili<\/b><\/li>\n<\/ul>\n<p><\/p>\n<h1>Motivi<\/h1>\n<p>\nE visto che ne stiamo parlando, \u00e8 opportuno menzionare le premesse per la virtualizzazione della rete. In realt\u00e0, questo processo non \u00e8 iniziato ieri. <\/p>\n<p>Probabilmente avrete sentito pi\u00f9 volte che la rete \u00e8 sempre stata la parte pi\u00f9 inerte di qualsiasi sistema. E questo \u00e8 vero in tutti i sensi. La rete \u00e8 la base su cui si poggia tutto, e apportare modifiche ad essa \u00e8 piuttosto difficile: i servizi non tollerano quando la rete \u00e8 inattiva. Spesso, dismettere un nodo pu\u00f2 influenzare una grande parte delle applicazioni e colpire molti clienti. In parte per questo, il team di rete potrebbe opporsi a qualsiasi modifica, perch\u00e9 adesso funziona in un certo modo (<i>potremmo anche non sapere come<\/i>), e ora c'\u00e8 da settare qualcosa di nuovo, e non si sa come influenzer\u00e0 la rete.<\/p>\n<p>Per non aspettare che i fornitori di rete creino il VLAN e non dover configurare ogni servizio su ciascun nodo della rete, le persone hanno inventato l'uso di overlay \u2014 reti sovrapposte \u2014 di cui esiste una grande variet\u00e0: GRE, IPinIP, MPLS, MPLS L2\/L3VPN, VXLAN, GENEVE, MPLSoverUDP, MPLSoverGRE, ecc.<\/p>\n<p>La loro attrattiva risiede in due semplici aspetti:<\/p>\n<ul>\n<li>Si configurano solo i nodi finali \u2014 non \u00e8 necessario toccare i nodi di transito. Questo accelera notevolmente il processo e, talvolta, consente addirittura di escludere il reparto infrastruttura di rete dal processo di introduzione di nuovi servizi.<\/li>\n<li>Il carico \u00e8 nascosto in profondit\u00e0 all'interno delle intestazioni \u2014 i nodi di transito non devono sapere nulla su di esso, sull'indirizzamento degli host, sui percorsi della rete sovrapposta. Ci\u00f2 significa che \u00e8 necessario memorizzare meno informazioni nelle tabelle, il che consente di utilizzare dispositivi pi\u00f9 semplici\/meno costosi.<\/li>\n<\/ul>\n<p>\nIn questa edizione non del tutto completa, non intendo analizzare tutte le tecnologie possibili, ma piuttosto descrivere il framework di funzionamento delle reti overlay nel data center.<\/p>\n<p>L'intera serie descriver\u00e0 un data center composto da file di rack identici, all'interno dei quali \u00e8 installato lo stesso hardware server. <\/p>\n<p>Su questo hardware vengono eseguite macchine virtuali\/container\/serverless che implementano i servizi.<\/p>\n<p><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/a6863eb2804a298304d1e93daecf90d9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1>Terminologia<\/h1>\n<p>\nNel ciclo <b>server<\/b> chiamer\u00f2 il programma che implementa il lato server della comunicazione client-server.<\/p>\n<p>Le macchine fisiche nei rack verranno chiamate server <b>non<\/b> .<\/p>\n<p><b>La macchina fisica<\/b> \u00e8 un computer x86 installato in un rack. Il termine pi\u00f9 comunemente usato \u00e8 <b>host<\/b>. Lo chiameremo &#171;<b>macchina<\/b>&#187; o <b>host<\/b>.<\/p>\n<p><b>Ipervisore<\/b> \u00e8 un'applicazione eseguita su una macchina fisica che emula le risorse fisiche su cui vengono eseguite le Macchine Virtuali. A volte nella letteratura e in rete il termine \u00abipervisore\u00bb viene usato come sinonimo di \u00abhost\u00bb.<\/p>\n<p><b>Macchina virtuale<\/b> \u2014 un sistema operativo eseguito su una macchina fisica sopra un hypervisor. Per noi, nel contesto di questo ciclo, non importa molto se si tratta veramente di una macchina virtuale o semplicemente di un container. Chiameremo questo &#171;<b>VM<\/b>\u00ab<\/p>\n<p><b>Tenant<\/b> \u00e8 un concetto ampio che io definir\u00f2 in questo articolo come un servizio separato o un cliente separato.<\/p>\n<p><b>Multitenancy<\/b> o multi-tenant \u00e8 l'utilizzo della stessa applicazione da parte di diversi clienti\/servizi. In questo caso, l'isolamento dei clienti l'uno dall'altro \u00e8 ottenuto grazie all'architettura dell'applicazione e non a istanze separate eseguite.<\/p>\n<p><b>ToR \u2014 Top of the Rack switch<\/b> \u2014 switch montato in rack al quale sono collegate tutte le macchine fisiche.<\/p>\n<blockquote><p> Oltre alla topologia ToR, diversi fornitori praticano EoR (End of Row) o MoR (Middle of Row), anche se quest'ultima \u00e8 una rarit\u00e0 poco considerata.\n<\/p><\/blockquote>\n<p> <b>Rete Underlay<\/b> o rete sottostante \u2014 infrastruttura fisica della rete: switch, router, cavi.<\/p>\n<p><b>Rete Overlay<\/b> o rete sovrapposta \u2014 rete virtuale di tunnel che funziona sopra quella fisica.<\/p>\n<p><b>L3-fabbrica o fabbrica IP<\/b> \u2014 una straordinaria invenzione dell'umanit\u00e0 che consente di non ripetere STP e di non studiare TRILL durante le interviste. Una concezione in cui tutta la rete fino al livello di accesso \u00e8 esclusivamente L3, senza VLAN e quindi con enormi domini di broadcast allungati. Spiegheremo il termine \"fabbrica\" nella parte successiva.<\/p>\n<p><b>SDN<\/b> \u2014 Software Defined Network. Difatti non ha bisogno di presentazioni. Un approccio alla gestione della rete in cui le modifiche vengono effettuate non da una persona, ma da un programma. Di solito significa spostare il Control Plane al di fuori degli apparati di rete finali verso un controller.<\/p>\n<p><b>NFV<\/b> \u2014 Network Function Virtualization \u2014 virtualizzazione degli apparati di rete, che prevede che alcune funzioni di rete possano essere eseguite come macchine virtuali o contenitori per accelerare l'implementazione di nuovi servizi, gestire il Service Chaining e semplificare la scalabilit\u00e0 orizzontale.<\/p>\n<p><b>VNF<\/b> \u2014 Funzione di Rete Virtuale. Un dispositivo virtuale specifico: router, switch, firewall, NAT, IPS\/IDS, ecc.<\/p>\n<p><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/971b6a28a9caab5f3a7067ce4d25749c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p> Attualmente sto deliberatamente semplificando la descrizione a una realizzazione specifica per non confondere eccessivamente il lettore. Per una lettura pi\u00f9 approfondita rimando alla sezione <noindex><a rel=\"nofollow\" href=\"#LINKS\">Link<\/a><\/noindex>. Inoltre, Roma Gorge, che criticher\u00e0 questo articolo per le imprecisioni, promette di scrivere un capitolo separato sulle tecnologie di virtualizzazione dei server e delle reti, pi\u00f9 approfondito e attento ai dettagli.<\/p><\/blockquote>\n<p>La maggior parte delle reti oggi pu\u00f2 essere chiaramente suddivisa in due parti: <\/p>\n<p><b>Underlay<\/b> \u2014 rete fisica con configurazione stabile.<br \/>\n<b>Overlay<\/b> \u2014 astrazione sopra l'Underlay per l'isolamento dei tenant. <\/p>\n<p>Questo \u00e8 vero sia per il caso del DC (Data Center) che analizzeremo in questo articolo, sia per gli ISP (che non discuteremo poich\u00e9 gi\u00e0 trattati in <noindex><a rel=\"nofollow\" href=\"https:\/\/linkmeup.ru\/sdsm\">SDN<\/a><\/noindex>). Con le reti enterprise, ovviamente, la situazione \u00e8 un po' diversa. <\/p>\n<p>Immagine con focus sulla rete:<\/p>\n<p><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/7b7dabc6d9f3b87c598346bf9195d568.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1>Underlay<\/h1>\n<p>\nL'Underlay \u00e8 una rete fisica: switch hardware e cavi. I dispositivi nell'underlay sanno come raggiungere le macchine fisiche.<\/p>\n<p><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/776a77a3821fe79a7323947e0bdf67e8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi basa su protocolli e tecnologie standard. Non da ultimo perch\u00e9 i dispositivi hardware funzionano ancora con software proprietario, che non consente n\u00e9 la programmazione del chip n\u00e9 l'implementazione dei propri protocolli, pertanto \u00e8 necessaria la compatibilit\u00e0 con altri fornitori e la standardizzazione.<\/p>\n<blockquote><p>Ma qualcuno come Google pu\u00f2 permettersi di sviluppare i propri switch e rinunciare ai protocolli comunemente accettati. Ma il LAN_DC non \u00e8 Google.\n<\/p><\/blockquote>\n<p> L'Underlay cambia relativamente raramente, poich\u00e9 il suo compito \u00e8 fornire connettivit\u00e0 IP di base tra le macchine fisiche. L'underlay non sa nulla dei servizi, clienti o tenant avviati sopra di esso: deve solo consegnare i pacchetti da una macchina all'altra.<br \/>\nL'Underlay pu\u00f2 essere ad esempio cos\u00ec: <\/p>\n<ul>\n<li>IPv4+OSPF<\/li>\n<li>IPv6+ISIS+BGP+L3VPN<\/li>\n<li>L2+TRILL<\/li>\n<li>L2+STP<\/li>\n<\/ul>\n<p>\nLa rete Underlay si configura in modo classico: CLI\/GU\/UI\/NETCONF.<\/p>\n<p>Manualmente, tramite script, strumenti proprietari.<\/p>\n<p>Un articolo del ciclo successivo sar\u00e0 dedicato all'underlay in modo pi\u00f9 dettagliato.<\/p>\n<p><\/p>\n<h1>Overlay<\/h1>\n<p>\nL'Overlay \u00e8 una rete virtuale di tunnel, tirata sopra l'Underlay, che consente alle VM di un cliente di comunicare tra loro, garantendo al contempo isolamento dagli altri clienti.<\/p>\n<p>I dati del cliente vengono incapsulati in intestazioni di tunneling per la trasmissione attraverso la rete comune.<\/p>\n<p><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/3060bc4913c55c21b785083fbe0b603b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn questo modo, le VM di un cliente (di un servizio) possono comunicare tra loro attraverso l'Overlay, senza nemmeno sospettare quale sia effettivamente il percorso del pacchetto. <\/p>\n<p>L'Overlay pu\u00f2 essere ad esempio cos\u00ec, come ho gi\u00e0 accennato sopra:<\/p>\n<ul>\n<li>Tunnel GRE<\/li>\n<li>VXLAN<\/li>\n<li>EVPN<\/li>\n<li>L3VPN<\/li>\n<li>GENEVE<\/li>\n<\/ul>\n<p>\nLa rete Overlay viene solitamente configurata e gestita tramite un controller centrale. Da esso, la configurazione, il Control Plane e il Data Plane vengono inviati ai dispositivi che si occupano del routing e dell'incapsulamento del traffico client. Un po' <noindex><a rel=\"nofollow\" href=\"#TF\">di seguito<\/a><\/noindex> approfondiremo questo con esempi.<\/p>\n<p><b>S\u00ec, questo \u00e8 SDN nella sua forma pi\u00f9 pura. <\/b><\/p>\n<p>Ci sono due approcci fondamentalmente diversi per l'organizzazione di una rete Overlay:<\/p>\n<ol>\n<li>Overlay del ToR<\/li>\n<li>Overlay da host<\/li>\n<\/ol>\n<h2>Overlay del ToR<\/h2>\n<p>\nL'Overlay pu\u00f2 iniziare su uno switch di accesso (ToR), situato nell'armadio, come accade, ad esempio, nel caso di una fabbrica VXLAN. <\/p>\n<p>Questo \u00e8 un meccanismo collaudato nelle reti ISP e tutti i fornitori di apparecchiature di rete lo supportano.<\/p>\n<p>Tuttavia, in questo caso, lo switch ToR deve essere in grado di separare i diversi servizi, di conseguenza, l'amministratore di rete deve collaborare in certa misura con gli amministratori delle macchine virtuali e apportare modifiche (anche se automaticamente) alla configurazione dei dispositivi.<\/p>\n<p><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/9a5fe4d4a0cbb7e5c3bbac82527c6a6a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQui rimando il lettore all'articolo su <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/344326\/\">VxLAN su Habr<\/a><\/noindex> del nostro vecchio amico <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/bormoglotx\/\">@bormoglotx<\/a><\/noindex>.<br \/>\nIn questo <noindex><a rel=\"nofollow\" href=\"https:\/\/www.enog.org\/wp-content\/uploads\/presentations\/enog-16\/18-Scaleway-P14-fabric-ENOG16.pdf\">presentazione con ENOG<\/a><\/noindex> dove vengono descritte dettagliatamente le tecniche per costruire una rete DC con un fabric EVPN VXLAN. <\/p>\n<p>E per un'immersione pi\u00f9 completa nella realt\u00e0, si pu\u00f2 leggere il libro di Cisco <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cisco.com\/c\/dam\/en\/us\/td\/docs\/switches\/datacenter\/nexus9000\/sw\/vxlan_evpn\/VXLAN_EVPN.pdf\">A Modern, Open, and Scalable Fabric: VXLAN EVPN<\/a><\/noindex>.<\/p>\n<blockquote><p> Nota che VXLAN \u00e8 solo un metodo di incapsulamento e la terminazione dei tunnel pu\u00f2 avvenire non sul ToR, ma sull'host, come avviene nel caso di OpenStack, ad esempio.<\/p>\n<p>Tuttavia, una fabbrica VXLAN dove l'overlay inizia sul ToR \u00e8 uno dei design consolidati delle reti overlay.\n<\/p><\/blockquote>\n<p><\/p>\n<h2>Overlay da host<\/h2>\n<p>\nUn altro approccio \u00e8 iniziare e terminare i tunnel sugli host finali.<br \/>\nIn questo caso, la rete (Underlay) rimane il pi\u00f9 semplice e statica possibile.<br \/>\nE l'host stesso si occupa di tutte le necessarie incapsulazioni.<\/p>\n<p><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/c9c2971369d1b3e5f026d6844afeb67f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPer fare ci\u00f2, sar\u00e0 senza dubbio necessario eseguire un'applicazione speciale sugli host, ma ne vale la pena. <\/p>\n<p>Innanzitutto, avviare un client su una macchina Linux \u00e8 pi\u00f9 semplice o, diciamo, - del tutto possibile - mentre sullo switch, probabilmente, si dovr\u00e0 comunque fare riferimento a soluzioni SDN proprietarie, il che uccide l'idea di multivendor.<\/p>\n<p>In secondo luogo, in questo caso, lo switch ToR pu\u00f2 essere lasciato il pi\u00f9 semplice possibile, sia dal punto di vista del Control Plane che del Data Plane. Infatti, con un controller SDN, non ha bisogno di comunicare, e non \u00e8 necessario memorizzare reti\/ARP di tutti i clienti connessi: \u00e8 sufficiente conoscere l'indirizzo IP della macchina fisica, il che semplifica notevolmente le tabelle di commutazione\/routing.<\/p>\n<p>\nNella serie ADSM, scelgo l'approccio dell'overlay dall'host - da ora in avanti parleremo solo di questo e non torneremo pi\u00f9 al fabric VXLAN.<\/p>\n<p>\n\u00c8 pi\u00f9 facile esaminare con esempi. E come soggetto utilizzeremo la piattaforma SDN OpenSource OpenContrail, attualmente nota come <noindex><a rel=\"nofollow\" href=\"https:\/\/tungsten.io\">Tungsten Fabric<\/a><\/noindex>.<\/p>\n<blockquote><p> Alla fine dell'articolo, presenter\u00f2 alcune riflessioni sull'analogia con OpenFlow e OpenvSwitch.\n<\/p><\/blockquote>\n<p><\/p>\n<h2>Per esempio Tungsten Fabric<\/h2>\n<p>\nSu ogni macchina fisica c'\u00e8 <b>vRouter<\/b> \u2014 un router virtuale che conosce le reti a cui \u00e8 collegato e quali client appartengono a quelle reti \u2014 essenzialmente un router PE. Per ogni cliente, mantiene una tabella di routing isolata (leggi VRF). E proprio il vRouter effettua il tunneling Overlay.<\/p>\n<p>Un po' pi\u00f9 dettagli sul vRouter \u2014 alla fine dell'articolo.<\/p>\n<p>Ogni VM posizionata sull'hypervisor si connette al vRouter di questa macchina tramite <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/TUN\/TAP\">un'interfaccia TAP<\/a><\/noindex>.<\/p>\n<p><b>TAP<\/b> \u2014 Terminal Access Point \u2014 un'interfaccia virtuale nel kernel Linux che permette l'interazione di rete.<\/p>\n<p><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/a6fa1b4370ba4e787303ae647a28f5ed.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSe dietro il vRouter ci sono pi\u00f9 reti, per ciascuna di esse viene creata un'interfaccia virtuale a cui viene assegnato un indirizzo IP \u2014 questo sar\u00e0 l'indirizzo del gateway predefinito.<br \/>\nTutte le reti di un cliente vengono collocate in un <b>VRF<\/b> (una tabella), quelle di clienti diversi \u2014 in tabelle separate.<br \/>\n<i>Faccio qui una precisazione, che non \u00e8 tutto cos\u00ec semplice, e rimando il lettore curioso alla fine dell'articolo.<\/i>.<\/p>\n<p>Affinch\u00e9 i vRouter possano comunicare tra loro, e quindi anche le VM che si trovano dietro di loro, scambiano informazioni di routing tramite <b>un controller SDN.<\/b>.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/sdn-controller.png\"><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/8b133e10582dbde9c0670ad98c1840de.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Per uscire nel mondo esterno, esiste un punto di uscita dalla matrice \u2014 il gateway della rete virtuale <b>VNGW<\/b> \u2014 Virtual Network GateWay (<i>il mio termine<\/i>).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/vngw.png\"><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/9ac4d084d9b58b7ed1bc2c0ed6d06059.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>\nOra consideriamo esempi di comunicazione \u2014 e sar\u00e0 tutto chiaro.<\/p>\n<p><\/p>\n<h3>Comunicazione all'interno di una stessa macchina fisica<\/h3>\n<p>\nLa VM0 vuole inviare un pacchetto a VM2. Supponiamo per ora che queste siano VM dello stesso cliente.<\/p>\n<h4>Data Plane<\/h4>\n<p><\/p>\n<ol>\n<li>La VM-0 ha una route predefinita sulla sua interfaccia eth0. Il pacchetto viene inviato l\u00ec.<br \/>\n Questa interfaccia eth0 \u00e8 in realt\u00e0 collegata virtualmente al router virtuale vRouter tramite l'interfaccia TAP tap0.<\/li>\n<li>Il vRouter analizza su quale interfaccia \u00e8 arrivato il pacchetto, cio\u00e8 a quale cliente (VRF) appartiene, confronta l'indirizzo del destinatario con la tabella di routing di quel cliente.<\/li>\n<li>Scoprendo che il destinatario si trova sulla stessa macchina su un'altra porta, il vRouter invia semplicemente il pacchetto a lui senza alcuna intestazione aggiuntiva \u2014 a tale scopo, sul vRouter \u00e8 gi\u00e0 presente una registrazione ARP. <\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/a42da3f48a3f538eb92c1908d9d66921.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl pacchetto in questo caso non entra nella rete fisica \u2014 \u00e8 instradato all'interno del vRouter.<\/p>\n<p><\/p>\n<h4>Control Plane<\/h4>\n<p>\nL'hypervisor, al momento dell'avvio della macchina virtuale, le comunica:<\/p>\n<ul>\n<li>Il proprio indirizzo IP.<\/li>\n<li>Il percorso predefinito \u2014 attraverso l'indirizzo IP del vRouter in questa rete.<\/li>\n<\/ul>\n<p>\nAl vRouter il hypervisor comunica attraverso una speciale API:<\/p>\n<ul>\n<li>Che deve essere creato un'interfaccia virtuale.<\/li>\n<li>Quale Virtual Network deve creare (la VM).<\/li>\n<li>A quale VRF legare il suo (VN).<\/li>\n<li>La registrazione ARP statica per questa VM indica quale interfaccia ha il suo indirizzo IP e a quale indirizzo MAC \u00e8 associato.<\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p> Ancora una volta, la procedura reale di interazione \u00e8 semplificata a favore della comprensione del concetto.\n<\/p><\/blockquote>\n<p> <img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/593d7ad41782e882a88732b475bf91cb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn questo modo, tutte le VM di un cliente su questa macchina vRouter vengono viste come reti direttamente collegate e possono instradare autonomamente tra di esse.<\/p>\n<p>\nLe VM0 e VM1 appartengono a clienti diversi, quindi si trovano in tabelle diverse del vRouter.<\/p>\n<p>Se possono comunicare direttamente dipende dalle impostazioni del vRouter e dal design della rete.<br \/>\nAd esempio, se le VM di entrambi i clienti utilizzano indirizzi pubblici, o se il NAT avviene sullo stesso vRouter, si pu\u00f2 effettuare un instradamento diretto al vRouter.<\/p>\n<p>In una situazione diversa, pu\u00f2 esserci un sovrapposizione degli spazi indirizzi: sar\u00e0 necessario passare attraverso un server NAT per ottenere l'indirizzo pubblico, il che assomiglia a un'uscita verso reti esterne, di cui parleremo pi\u00f9 avanti.<\/p>\n<h3>Comunicazione tra VM dislocate su macchine fisiche diverse<\/h3>\n<p><\/p>\n<h4>Data Plane<\/h4>\n<p><\/p>\n<ol>\n<li>L'inizio \u00e8 esattamente lo stesso: VM-0 invia un pacchetto a VM-7 (172.17.3.2) secondo il suo default.<\/li>\n<li>Il vRouter lo riceve e questa volta vede che il destinatario si trova su un'altra macchina ed \u00e8 accessibile tramite il tunnel Tunnel0.<\/li>\n<li>Per prima cosa, applica un'etichetta MPLS che identifica l'interfaccia remota, in modo che sul lato opposto il vRouter possa determinare dove collocare questo pacchetto senza ulteriori complicazioni.\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/inter-hv-dp.png\"><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/1e159049376e2bf458b8c6cb5878cc17.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex>\n <\/li>\n<li>Per Tunnel0, la sorgente \u00e8 10.0.0.2 e il destinatario \u00e8 10.0.1.2.<br \/>\n Il vRouter aggiunge intestazioni GRE (o UDP) e un nuovo IP al pacchetto sorgente.<\/li>\n<li>Nella tabella di routing del vRouter esiste una rotta di default verso l'indirizzo ToR1 10.0.0.1. Il pacchetto viene inviato l\u00e0.\n<p> <img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/8cb98a8ec43d202259acf6a1fcaeb3ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n \n <\/li>\n<li>ToR1, come partecipante della rete Underlay, sa (ad esempio tramite OSPF) come raggiungere 10.0.1.2 e invia il pacchetto lungo il percorso. Si noti che qui entra in gioco l'ECMP. Nella rappresentazione ci sono due next hop e i flussi diversi si distribuiscono in essi in base all'hash. In una vera fabbrica, ci sarebbero probabilmente 4 next hop.\n<p>Inoltre, non \u00e8 necessario sapere cosa si trova sotto l'intestazione IP esterna. In altre parole, sotto l'IP potrebbe trovarsi un sandwich di IPv6 over MPLS over Ethernet over MPLS over GRE over over over GRE.<\/li>\n<li>Di conseguenza, sul lato ricevente, il vRouter rimuove il GRE e comprende, grazie all'etichetta MPLS, a quale interfaccia deve essere trasmesso questo pacchetto, lo decompone e lo invia nel formato originale al destinatario.<\/li>\n<\/ol>\n<h4>Control Plane<\/h4>\n<p>\nQuando la macchina viene avviata, avviene esattamente la stessa cosa che \u00e8 stata descritta sopra.<\/p>\n<p>E in aggiunta anche quanto segue:<\/p>\n<ul>\n<li>Per ogni cliente, vRouter assegna un'etichetta MPLS. Questa \u00e8 un'etichetta di servizio L3VPN, sulla quale i clienti verranno separati all'interno di una singola macchina fisica.<br \/>\n<blockquote><p> In realt\u00e0, il tag MPLS \u00e8 sempre assegnato dal vRouter \u2014 poich\u00e9 non si sa in anticipo che la macchina interagir\u00e0 solo con altre macchine dietro lo stesso vRouter, e probabilmente non sar\u00e0 nemmeno cos\u00ec. \n <\/p><\/blockquote>\n<\/li>\n<li>Il vRouter stabilisce una connessione con il controller SDN attraverso il protocollo BGP (o un protocollo simile \u2014 nel caso di TF \u00e8 XMPP 0_o).<\/li>\n<li>Attraverso questa sessione, il vRouter informa il controller SDN sulle rotte verso le reti connesse:\n<ul>\n<li>Indirizzo di rete<\/li>\n<li>Metodo di incapsulamento (MPLSoGRE, MPLSoUDP, VXLAN)<\/li>\n<li>Etichetta MPLS del cliente<\/li>\n<li>Il proprio indirizzo IP come nexthop<\/li>\n<\/ul>\n<p>\n <\/li>\n<li>Il controller SDN riceve queste rotte da tutti i vRouter connessi e le riflette ad altri. Quindi funge da Route Reflector.<\/li>\n<\/ul>\n<p>\nLo stesso processo avviene anche in direzione opposta.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/inter-hv-cp.png\"><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/feef9181133f3a50a5cb21aa7ba16dc0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>L'Overlay pu\u00f2 cambiare anche ogni minuto. Questo \u00e8 all'incirca come avviene nei cloud pubblici, quando i clienti avviano e spengono regolarmente le loro macchine virtuali.<\/p>\n<p>Il controller centrale si occupa di tutte le complicazioni nella manutenzione della configurazione e nel controllo delle tabelle di commutazione\/routing sui vRouter.<\/p>\n<p>Parlare in modo semplice, il controller stabilisce connessioni con tutti i vRouter tramite BGP (o un protocollo simile) e trasmette semplicemente le informazioni di instradamento. BGP, ad esempio, ha gi\u00e0 un Address-Family per trasmettere il metodo di incapsulamento <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc4023\">MPLS-in-GRE<\/a><\/noindex> o <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc7510\">MPLS-in-UDP<\/a><\/noindex>.<\/p>\n<p>In questo modo non cambia in alcun modo la configurazione della rete Underlay, che, tra l'altro, \u00e8 decisamente pi\u00f9 difficile da automatizzare, mentre \u00e8 pi\u00f9 facile romperla con un movimento maldestro.<\/p>\n<h3>Uscita verso il mondo esterno<\/h3>\n<p>\nDa qualche parte la simulazione deve finire ed \u00e8 necessario uscire dal mondo virtuale per entrare in quello reale. E serve un gateway telefonico.<\/p>\n<p>Vengono praticati due approcci:<\/p>\n<ol>\n<li>Si installa un router hardware.<\/li>\n<li>Si avvia qualche appliance che realizza le funzioni di un router (s\u00ec, s\u00ec, dopo SDN ci siamo imbattuti anche in VNF). Chiamiamolo gateway virtuale.<\/li>\n<\/ol>\n<p><\/p>\n<blockquote><p> Il vantaggio del secondo approccio \u00e8 nella scalabilit\u00e0 orizzontale economica: se manca potenza, si avvia un'altra macchina virtuale con un gateway. Su qualsiasi macchina fisica, senza dover cercare rack, unit\u00e0, alimentazione, acquistare l'hardware, trasportarlo, installarlo, cablarlo, configurarlo e poi anche sostituire i componenti difettosi.<\/p>\n<p>Gli svantaggi del gateway virtuale sono che l'unit\u00e0 fisica del router \u00e8 comunque molto pi\u00f9 potente di una virtual machine multi-core, e il suo software, adattato alla sua infrastruttura hardware, funziona in modo significativamente pi\u00f9 stabile (<i>no<\/i>). \u00c8 difficile negare anche il fatto che il complesso software-hardware semplicemente funziona, richiedendo solo configurazioni, mentre l'avvio e la manutenzione del gateway virtuale \u00e8 un compito per ingegneri esperti.\n<\/p><\/blockquote>\n<p> Con una gamba, il gateway guarda nella rete virtuale Overlay, come una normale Virtual Machine, e pu\u00f2 interagire con tutte le altre VM. Inoltre, pu\u00f2 terminare le reti di tutti i clienti e, di conseguenza, effettuare il routing tra di esse.<\/p>\n<p>Con l'altra gamba, il gateway guarda gi\u00e0 nella rete backbone e sa come uscire su Internet.<\/p>\n<p><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/552fa0428ff8dd3aed76091a86a72109.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h4>Data Plane<\/h4>\n<p>\nQuindi il processo appare cos\u00ec: <\/p>\n<ol>\n<li>La VM-0, avendo il default tutto nello stesso vRouter, invia un pacchetto con destinatario nel mondo esterno (185.147.83.177) all'interfaccia eth0.<\/li>\n<li>Il vRouter riceve questo pacchetto e fa un lookup dell'indirizzo di destinazione nella tabella di routing, trovando il percorso di default attraverso il gateway VNGW1 tramite il Tunnel 1. <br \/>\n Vede anche che questo \u00e8 un tunnel GRE con SIP 10.0.0.2 e DIP 10.0.255.2, e deve prima applicare il tag MPLS di questo cliente, che VNGW1 si aspetta.\n <\/li>\n<li>Il vRouter impacchetta il pacchetto originale negli header MPLS, GRE e nuovo IP e lo invia all'indirizzo ToR1 10.0.0.1 per default.<\/li>\n<li>La rete underlay consegna il pacchetto al gateway VNGW1.<\/li>\n<li>Il gateway VNGW1 rimuove gli header di tunneling GRE e MPLS, vede l'indirizzo di destinazione, consulta la sua tabella di routing e comprende che \u00e8 diretto su Internet, quindi attraverso Full View o Default. Se necessario, esegue la traduzione NAT.<\/li>\n<li>Tra VNGW e il border potrebbe esserci una normale rete IP, il che \u00e8 poco probabile.<br \/>\n Potrebbe esserci una rete MPLS classica (IGP+LDP\/RSVP TE), potrebbe esserci una fabbrica inversa con BGP LU o un tunnel GRE da VNGW al border attraverso una rete IP.<br \/>\n In ogni caso, VNGW1 esegue le necessarie incapsulazioni e invia il pacchetto originale verso il border.<\/li>\n<\/ol>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/outside-dp.png\"><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/a66e490c75f8220349398af814d4ebf2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Il traffico nella direzione opposta segue gli stessi passaggi nell'ordine opposto. <\/p>\n<ol>\n<li>Il border consegna il pacchetto a VNGW1<\/li>\n<li>Questi lo disimballa, guarda l'indirizzo del destinatario e vede che \u00e8 accessibile attraverso il tunnel Tunnel1 (MPLSoGRE o MPLSoUDP).<\/li>\n<li>Di conseguenza, applica il tag MPLS, l'header GRE\/UDP e un nuovo IP e invia al suo ToR3 10.0.255.1.<br \/>\n L'indirizzo di destinazione del tunnel \u2014 l'indirizzo IP del vRouter, dietro al quale si trova la VM di destinazione \u2014 10.0.0.2.<\/li>\n<li>La rete sottostante consegna il pacchetto al vRouter corretto. <\/li>\n<li>Il vRouter di destinazione rimuove GRE\/UDP, determina l'interfaccia tramite il tag MPLS e invia un pacchetto IP nudo alla sua interfaccia TAP, collegata a eth0 della VM.<\/li>\n<\/ol>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/outside-dp-reverse.png\"><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/ba6748694a822fc04f4e872658d1fbbb.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<h4>Control Plane<\/h4>\n<p>\nVNGW1 stabilisce una vicinanza BGP con il controller SDN, dal quale riceve tutte le informazioni di instradamento sui clienti: quale cliente si trova dietro quale indirizzo IP (vRouter), e con quale tag MPLS \u00e8 identificato.<\/p>\n<p>Analogamente, comunica al controller SDN il percorso predefinito con il tag di quel cliente, indicando se stesso come nexthop. E da l\u00ec, questo predefinito arriva ai vRouter.<\/p>\n<p>Su VNGW avviene solitamente l'aggregazione delle rotte o la traduzione NAT.<\/p>\n<p>E nella direzione opposta, nella sessione con i border o i Route Reflector, restituisce proprio questo percorso aggregato. E da loro riceve il percorso predefinito o Full-View, o qualcos'altro.<\/p>\n<p>In termini di incapsulamento e scambio di traffico, VNGW non si differenzia da un vRouter. <br \/>\nSe si amplia leggermente l'ambito, si possono aggiungere altri dispositivi di rete a VNGW e ai vRouter, come firewall, farm di pulizia o arricchimento del traffico, IPS e cos\u00ec via.<\/p>\n<p>E attraverso la creazione sequenziale di VRF e l'annuncio corretto dei percorsi, \u00e8 possibile forzare il traffico a percorrere il percorso desiderato, il che \u00e8 noto come Service Chaining.<\/p>\n<p>Quindi anche qui il controller SDN agisce come Route Reflector tra VNGW, vRouter e altri dispositivi di rete.<\/p>\n<p>Ma, in effetti, il controller trasmette anche informazioni su ACL e PBR (Policy Based Routing), costringendo flussi di traffico specifici a muoversi in modo diverso da quanto indicato dalla rotta.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/outside-cp.png\"><img decoding=\"async\" alt=\"Automazione Per I Pi\u00f9 Piccoli. Parte prima (quella dopo la zero). Virtualizzazione della rete\" src=\"\/wp-content\/uploads\/2019\/07\/dbba5a93d64edf56dc9c2b82311c5a11.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h1>FAQ<\/h1>\n<p><b>Perch\u00e9 fai sempre questa osservazione su GRE\/UDP?<\/b><\/p>\n<p>Beh, in realt\u00e0, si pu\u00f2 dire che questo sia specifico per Tungsten Fabric \u2014 si pu\u00f2 anche non prendere in considerazione.<\/p>\n<p>Ma se si parla di TF, gi\u00e0 quando era OpenContrail supportava entrambe le incapsulazioni: MPLS in GRE e MPLS in UDP. <\/p>\n<p>UDP \u00e8 vantaggioso poich\u00e9 nella porta sorgente nel suo intestazione \u00e8 molto semplice codificare una funzione hash degli IP+Proto+Port iniziali, il che permetter\u00e0 di effettuare un bilanciamento. <\/p>\n<p>Nel caso di GRE, purtroppo, ci sono solo intestazioni esterne IP e GRE, che sono identiche per tutto il traffico incapsulato e il bilanciamento non \u00e8 fattibile \u2014 pochi possono guardare cos\u00ec in profondit\u00e0 all'interno del pacchetto.<\/p>\n<p>Fino a un certo punto, i router, sebbene sapessero gestire tunnel dinamici, lo facevano solo con MPLSoGRE e solo di recente hanno appreso a farlo con MPLSoUDP. Pertanto, \u00e8 necessario fare sempre un'osservazione sulla possibilit\u00e0 di due diverse incapsulazioni.<\/p>\n<p>A onor del vero, vale la pena notare che TF supporta perfettamente anche la connessione L2 tramite VXLAN.<\/p>\n<p>\n<b>Hai promesso di tracciare delle parallele con OpenFlow.<\/b><br \/>\nIn effetti si suggeriscono. vSwitch nello stesso OpenStack svolge funzioni molto simili, utilizzando VXLAN, che, per inciso, ha anche un'intestazione UDP.<\/p>\n<p>Nel Data Plane funzionano in modo abbastanza simile, ma il Control Plane differisce notevolmente. Tungsten Fabric utilizza XMPP per la distribuzione delle informazioni sulle route al vRouter, mentre in OpenStack funziona Openflow.<\/p>\n<p>\n<b>Potresti dirci qualcosa in pi\u00f9 sul vRouter?<\/b><br \/>\nEsso \u00e8 diviso in due parti: vRouter Agent e vRouter Forwarder.<\/p>\n<p>Il primo si avvia nello User Space del sistema operativo host e comunica con il controller SDN, scambiando informazioni su rotte, VRF e ACL.<\/p>\n<p>Il secondo implementa il Data Plane \u2014 di solito nello spazio del kernel, ma pu\u00f2 essere eseguito anche su SmartNIC \u2014 schede di rete con CPU e un chip di commutazione programmabile separato, il che permette di alleggerire il carico dalla CPU della macchina host, rendendo la rete pi\u00f9 veloce e prevedibile. <\/p>\n<p>\u00c8 possibile anche uno scenario in cui il vRouter \u00e8 un'applicazione DPDK nello User Space. <\/p>\n<p>Il vRouter Agent trasmette le impostazioni al vRouter Forwarder.<\/p>\n<p>\n<b>Che cos'\u00e8 una Virtual Network?<\/b><br \/>\nHo accennato all'inizio dell'articolo al VRF, specificando che ogni tenant \u00e8 associato al proprio VRF. E se per una comprensione superficiale del funzionamento della rete overlay questo fosse sufficiente, gi\u00e0 nella prossima iterazione \u00e8 necessario fornire ulteriori dettagli.<\/p>\n<p>Di solito, nei meccanismi di virtualizzazione, l'entit\u00e0 Virtual Network (che si pu\u00f2 considerare un nome proprio) \u00e8 introdotta separatamente dai clienti\/tenant\/macchine virtuali \u2014 \u00e8 un'entit\u00e0 completamente autonoma. Questo Virtual Network pu\u00f2 poi essere collegato tramite interfacce a un tenant, a un altro, a due, o ovunque. Cos\u00ec, ad esempio, si realizza il Service Chaining, quando il traffico deve passare attraverso determinati nodi in una sequenza specifica, semplicemente creando e unendo le Virtual Network nella giusta sequenza.<\/p>\n<p>Pertanto, non c'\u00e8 una corrispondenza diretta tra Virtual Network e tenant.<\/p>\n<h1>Conclusione<\/h1>\n<p>\nQuesta \u00e8 una descrizione piuttosto superficiale del funzionamento di una rete virtuale con overlay da host e controller SDN. Ma qualunque piattaforma di virtualizzazione si prenda oggi, funzioner\u00e0 in modo simile, sia essa VMWare, ACI, OpenStack, CloudStack, Tungsten Fabric o Juniper Contrail. Esse differiranno per i tipi di incapsulamenti e intestazioni, per i protocolli di consegna delle informazioni ai dispositivi di rete finali, ma il principio della rete overlay programmabile, che funziona sopra una rete underlay relativamente semplice e statica, rimarr\u00e0 lo stesso.<br \/>\nSi pu\u00f2 dire che nel campo della creazione di cloud privati oggi il SDN basato su rete overlay ha prevalso. Tuttavia, ci\u00f2 non significa che Openflow non abbia un posto nel mondo moderno: \u00e8 utilizzato in OpenStack e nel medesimo VMWare NSX, e quanto ne so, \u00e8 utilizzato da Google per configurare la rete underlay.<\/p>\n<p>Un po' pi\u00f9 in basso ho fornito dei link a materiali pi\u00f9 dettagliati, se si desidera approfondire l'argomento. <\/p>\n<p>E che dire della nostra Underlay? <\/p>\n<p>In realt\u00e0, niente di che. \u00c8 rimasto invariato per tutto il tempo. Tutto ci\u00f2 che deve fare in caso di overlay dall'host \u2014 \u00e8 aggiornare le route e gli ARP man mano che i vRouter\/VNGW appaiono e scompaiono e trasportare pacchetti tra di essi.<\/p>\n<p>Formuliamo un elenco di requisiti per la rete Underlay.<\/p>\n<ol>\n<li>Essere in grado di gestire un qualche protocollo di routing, nella nostra situazione - BGP.<\/li>\n<li>Avere una larga larghezza di banda, idealmente senza over-subscription, per evitare la perdita di pacchetti a causa di sovraccarichi.<\/li>\n<li>Supportare ECMP - parte integrante della fabric.<\/li>\n<li>Essere in grado di garantire QoS, comprese cose complicate come ECN.<\/li>\n<li>Supportare NETCONF - un investimento per il futuro.<\/li>\n<\/ol>\n<p>\nHo dedicato pochissimo tempo al funzionamento stesso della rete Underlay. Questo perch\u00e9 nei prossimi articoli mi concentrer\u00f2 proprio su di essa, mentre l'Overlay lo toccheremo solo di sfuggita.<\/p>\n<p>\u00c8 evidente che sto limitando molto tutti noi, usando come esempio una rete DC costruita su fabric Clos con routing IP puro e overlay da host.<\/p>\n<p>Tuttavia, sono certo che qualsiasi rete con un design pu\u00f2 essere descritta in termini formali e automatizzata. Sto semplicemente cercando di capire gli approcci all'automazione, non di confondere tutti risolvendo il problema in generale.<\/p>\n<p>Nell'ambito dell'ADSM, io e Roman Gorge pianifichiamo di pubblicare un numero separato sulla virtualizzazione delle risorse computazionali e il suo interfacciamento con la virtualizzazione della rete. Rimanete in contatto.<\/p>\n<p><\/p>\n<h1>Link utili<\/h1>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tungstenfabric.github.io\/website\/\">Architettura di Tungsten Fabric<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/Kr6WIYPts8I?t=3157\">about:cloud<\/a><\/noindex>. 6 ore su Yandex.Cloud, che tratta anche della rete virtuale su TF.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.openvswitch.org\/en\/latest\/intro\/what-is-ovs\/\">Cos'\u00e8 Open vSwitch?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/344326\/\">Introduzione a VxLAN<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc7348\">RFC 7348. Virtual eXtensible Local Area Network (VXLAN): Un Framework per sovrapporre reti virtualizzate di livello 2 su reti di livello 3.<br \/>\n <\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.enog.org\/wp-content\/uploads\/presentations\/enog-16\/18-Scaleway-P14-fabric-ENOG16.pdf\">Approccio di Scaleway a VXLAN EVPN Fabric<\/a><\/noindex>. Qui si parla dell'intera rete del data center, inclusi Underlay, Overlay, approcci al multi-homing e gestione.<\/li>\n<\/ul>\n<p><\/p>\n<h5>Grazie a<\/h5>\n<p><\/p>\n<ul>\n<li><noindex>Roman Gorg\u00e9<\/noindex> \u2014 ex conduttore del podcast linkmeup, ora esperto nel campo delle piattaforme cloud. Grazie per i commenti e le correzioni. Aspettiamo anche un suo articolo pi\u00f9 approfondito sulla virtualizzazione.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.alexander-shalimov.com\">Alexander Shalimov<\/a><\/noindex> \u2014 mio collega ed esperto nello sviluppo di reti virtuali. Grazie per i commenti e le correzioni.<\/li>\n<li><noindex>Valentin Sinytsyn<\/noindex> \u2014 mio collega ed esperto nel campo di Tungsten Fabric. Grazie per i commenti e le correzioni.<\/li>\n<li><noindex>Artem Chernoby<\/noindex> \u2014 illustratore di linkmeup. Grazie per il KDPV.<\/li>\n<li>Alexander Limonov. Grazie per il meme 'automato'.<\/li>\n<\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458622\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u043e \u043e\u0442\u0437\u044b\u0432\u0430\u043c \u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043b\u044e\u0434\u0435\u0439 \u0434\u0430\u0436\u0435 \u044d\u0442\u043e\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435 \u0443\u0436\u0435 \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u043b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043f\u043e \u043f\u043e\u043b\u043e\u0447\u043a\u0430\u043c. \u0418 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u0435\u043d\u044f \u0440\u0430\u0434\u0443\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0430\u0448\u0430 \u0446\u0435\u043b\u044c \u0432 \u0446\u0438\u043a\u043b\u0435 \u2014 \u043d\u0435 \u043e\u0431\u043c\u0430\u0437\u0430\u0442\u044c \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u043c\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438 \u0430\u043d\u0437\u0438\u0431\u043b\u044c, \u0430 \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u042d\u0442\u043e\u0442 \u0436\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0437\u0430\u0434\u0430\u0451\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26892,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35973","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0414\u043b\u044f \u0421\u0430\u043c\u044b\u0445 \u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f (\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0441\u043b\u0435 \u043d\u0443\u043b\u0435\u0432\u043e\u0439). \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:08:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:08:54+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Automazione per i pi\u00f9 piccoli. Parte prima (che segue la zero). Virtualizzazione della rete | ProHoster","description":"Nell'episodio precedente ho descritto il framework di automazione della rete.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0414\u043b\u044f \u0421\u0430\u043c\u044b\u0445 \u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445. \u0427\u0430\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u0430\u044f (\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0441\u043b\u0435 \u043d\u0443\u043b\u0435\u0432\u043e\u0439). \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0438 | ProHoster","og:description":"\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:08:54+00:00","article:modified_time":"2019-10-31T19:08:54+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35973","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 01:28:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:53:30","updated":"2026-01-22 01:28:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/35973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=35973"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/35973\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/26892"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=35973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=35973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=35973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}