Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Dans dans la précédente édition j'ai décrit le cadre d'automatisation réseau. D'aprÚs les retours, pour certaines personnes, cette premiÚre approche du problÚme a déjà clarifié certaines questions. Et cela me réjouit beaucoup, car notre objectif dans ce cycle n'est pas d'enrober Ansible de scripts Python, mais de construire un systÚme.

Ce mĂȘme cadre Ă©tablit l'ordre dans lequel nous allons aborder la question.
Et la virtualisation rĂ©seau, Ă  laquelle cet Ă©pisode est consacrĂ©, ne s'intĂšgre pas vraiment dans la thĂ©matique de l'ADSM, oĂč nous traitons l'automatisation.

Mais examinons cela sous un autre angle.

Depuis longtemps, de nombreux services utilisent un mĂȘme rĂ©seau. Dans le cas d'un opĂ©rateur de tĂ©lĂ©communications, cela comprend 2G, 3G, LTE, ADSL et B2B, par exemple. Dans le cas d'un centre de donnĂ©es : connectivitĂ© pour diffĂ©rents clients, Internet, stockage en bloc, stockage d'objets.

Et tous les services nécessitent une isolation mutuelle. C'est ainsi que sont apparus les réseaux overlay.

Et aucun service ne veut attendre qu'une personne les configure manuellement. C'est ainsi que sont nés les orchestrateurs et le SDN.

La premiĂšre approche de l'automatisation systĂ©matique du rĂ©seau, ou plutĂŽt d'une partie de celui-ci, a Ă©tĂ© entreprise depuis longtemps et a Ă©tĂ© mise en Ɠuvre dans de nombreux endroits : VMWare, OpenStack, Google Compute Cloud, AWS, Facebook.

C'est ce que nous allons explorer aujourd'hui.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Contenu

  • Raisons
  • Terminologie
  • Underlay — rĂ©seau physique
  • Overlay — rĂ©seau virtuel
    • Overlay depuis ToR
    • Overlay depuis l'hĂŽte
    • À l'exemple de Tungsten Fabric
      • Communication au sein d'une seule machine physique
      • Communication entre des VM situĂ©es sur diffĂ©rentes machines physiques
      • Sortie vers le monde extĂ©rieur

  • FAQ
  • Conclusion
  • Liens utiles

Raisons

Et puisque nous en parlons, il convient de mentionner les prérequis à la virtualisation réseau. En réalité, ce processus a commencé depuis longtemps.

Vous avez probablement entendu dire que le rĂ©seau a toujours Ă©tĂ© la partie la plus inerte de tout systĂšme. Et c'est vrai Ă  tous Ă©gards. Le rĂ©seau est la base sur laquelle tout repose, et apporter des modifications Ă  celui-ci est relativement complexe : les services ne supportent pas que le rĂ©seau soit hors service. Souvent, la mise hors service d'un seul nƓud peut affecter une grande partie des applications et toucher de nombreux clients. En partie pour cette raison, l'Ă©quipe rĂ©seau peut s'opposer Ă  tout changement — car actuellement, cela fonctionne d'une certaine maniĂšre (nous ne savons peut-ĂȘtre mĂȘme pas comment), et il faut maintenant configurer quelque chose de nouveau, sans savoir comment cela affectera le rĂ©seau.

Pour ne pas attendre que les techniciens rĂ©seau Ă©tendent le VLAN et pour Ă©viter de configurer chaque service sur chaque nƓud du rĂ©seau, les gens ont inventĂ© l'utilisation de superpositions — rĂ©seaux superposĂ©s — qui se dĂ©clinent en une grande variĂ©tĂ© : GRE, IPinIP, MPLS, MPLS L2/L3VPN, VXLAN, GENEVE, MPLSoverUDP, MPLSoverGRE, etc.

Leur attrait réside dans deux choses simples :

  • Seuls les nƓuds finaux sont configurĂ©s — il n'est pas nĂ©cessaire de toucher aux nƓuds de transit. Cela accĂ©lĂšre considĂ©rablement le processus et permet parfois d'exclure complĂštement le dĂ©partement des infrastructures rĂ©seau lors de l'introduction de nouveaux services.
  • La charge est dissimulĂ©e au sein des en-tĂȘtes — les nƓuds de transit n'ont pas besoin d'en connaĂźtre la nature, l'adressage sur les hĂŽtes, les routes du rĂ©seau superposĂ©. Cela signifie qu'il est nĂ©cessaire de stocker moins d'informations dans les tables, ce qui permet d'utiliser un Ă©quipement plus simple et moins coĂ»teux.

Dans ce numéro pas tout à fait complet, je ne prévois pas d'explorer toutes les technologies possibles, mais plutÎt de décrire le cadre de fonctionnement des réseaux superposés dans un datacenter.

Toute la série décrira un datacenter composé de rangées de racks identiques, dans lesquels sont installés des équipements serveur identiques.

Sur cet équipement, des machines virtuelles/conteneurs/serveurs sans serveur fonctionnent, réalisant les services.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Terminologie

Dans ce cycle, serveur je dĂ©signerai le programme qui met en Ɠuvre la partie serveur de la communication client-serveur.

Les machines physiques dans les racks seront appelées serveurs ne comme nous le ferons.

La machine physique est un ordinateur x86 installé dans un rack. Le terme le plus couramment utilisé est hÎte. Nous l'appellerons «machine» ou hÎte.

Hyperviseur une application fonctionnant sur une machine physique, émulant les ressources physiques sur lesquelles fonctionnent les Machines Virtuelles. Parfois, dans la littérature et sur Internet, le mot « hyperviseur » est utilisé comme synonyme de « hÎte ».

Machine virtuelle est un systÚme d'exploitation fonctionnant sur une machine physique au-dessus de l'hyperviseur. Pour nous, dans le cadre de ce cycle, il n'est pas si important de savoir s'il s'agit réellement d'une machine virtuelle ou simplement d'un conteneur. Nous allons appeler cela «VM«

Tenant est un terme large que je définirai dans cet article comme un service distinct ou un client distinct.

La multi-location ou multi-tenant est l'utilisation de la mĂȘme application par diffĂ©rents clients/services. L'isolement des clients les uns des autres est rĂ©alisĂ© grĂące Ă  l'architecture de l'application, et non Ă  des instances sĂ©parĂ©ment exĂ©cutĂ©es.

ToR — commutateur au sommet du rack — un commutateur installĂ© dans un rack auquel toutes les machines physiques sont connectĂ©es.

Outre la topologie ToR, différents fournisseurs pratiquent le modÚle End of Row (EoR) ou Middle of Row (bien que ce dernier soit rarement utilisé et que je n'ai jamais rencontré l'abréviation MoR).

RĂ©seau sous-jacent ou rĂ©seau sous-jacent — infrastructure rĂ©seau physique : commutateurs, routeurs, cĂąbles.

RĂ©seau superposĂ© ou rĂ©seau superposĂ© — rĂ©seau virtuel de tunnels fonctionnant au-dessus du physique.

Fabric L3 ou Fabric IP — une invention incroyable qui permet d'Ă©viter de rĂ©pĂ©ter STP lors des discussions et d'apprendre TRILL. Un concept oĂč l'ensemble du rĂ©seau jusqu'au niveau d'accĂšs est exclusivement L3, sans VLAN et, par consĂ©quent, d'Ă©normes domaines de diffusion Ă©tendus. Nous expliquerons d'oĂč vient le mot « fabric » dans la prochaine section.

SDN — RĂ©seau dĂ©fini par logiciel. Cela ne nĂ©cessite guĂšre de prĂ©sentation. Une approche de gestion rĂ©seau oĂč les modifications du rĂ©seau sont effectuĂ©es non par un humain, mais par un programme. Cela signifie gĂ©nĂ©ralement dĂ©placer le Control Plane hors des appareils rĂ©seau finaux vers un contrĂŽleur.

NFV — Virtualisation des fonctions rĂ©seau — une virtualisation des dispositifs rĂ©seau, suggĂ©rant que certaines fonctions rĂ©seau peuvent ĂȘtre exĂ©cutĂ©es sous forme de machines virtuelles ou de conteneurs pour accĂ©lĂ©rer le dĂ©ploiement de nouveaux services, organiser le Service Chaining et simplifier la mise Ă  l'Ă©chelle horizontale.

VNF — Fonction rĂ©seau virtuelle. Un dispositif virtuel spĂ©cifique : routeur, commutateur, pare-feu, NAT, IPS/IDS, etc.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Je simplifie actuellement la description à une réalisation concrÚte pour ne pas trop embrouiller le lecteur. Pour une lecture plus approfondie, je le renvoie à la section Liens. De plus, Roma Gorge, qui critique cet article pour des inexactitudes, promet d'écrire une édition séparée sur les technologies de virtualisation des serveurs et des réseaux, plus approfondie et attentive aux détails.

La plupart des rĂ©seaux aujourd'hui peuvent ĂȘtre clairement divisĂ©s en deux parties :

Sous-jacent — un rĂ©seau physique avec une configuration stable.
SuperposĂ© — une abstraction au-dessus de l'Underlay pour isoler les locataires.

C'est vrai, tant pour le cas des centres de données (que nous examinerons dans cet article) que pour les FAI (que nous ne traiterons pas, car cela a déjà été traité dans SDN). Avec les réseaux d'entreprise, bien sûr, la situation est quelque peu différente.

Une image mettant l'accent sur le réseau :

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Sous-jacent

L'Underlay est un réseau physique : des commutateurs matériels et des cùbles. Les dispositifs dans l'underlay savent comment accéder aux machines physiques.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Il repose sur des protocoles et des technologies standards. Pas en dernier lieu parce que les appareils matĂ©riels fonctionnent toujours sur des logiciels propriĂ©taires qui n'autorisent ni la programmation de la puce ni la mise en Ɠuvre de leurs propres protocoles, d'oĂč la nĂ©cessitĂ© de compatibilitĂ© avec d'autres fournisseurs et de normalisation.

Mais une entreprise comme Google peut se permettre de développer ses propres commutateurs et de renoncer aux protocoles conventionnels. Cependant, LAN_DC n'est pas Google.

L'underlay change relativement rarement, car sa tĂąche est d'assurer la connectivitĂ© IP de base entre les machines physiques. L'underlay ne sait rien des services, clients ou locataires fonctionnant au-dessus de lui — il doit simplement livrer un paquet d'une machine Ă  une autre.
Un exemple d'underlay peut ĂȘtre le suivant :

  • IPv4+OSPF
  • IPv6+ISIS+BGP+L3VPN
  • L2+TRILL
  • L2+STP

Le réseau underlay est configuré de maniÚre classique : CLI/GUI/NETCONF.

Manuellement, avec des scripts, des utilitaires propriétaires.

L'underlay sera abordé en détail dans l'article suivant de la série.

Superposé

L'Overlay est un réseau virtuel de tunnels, tendu au-dessus de l'underlay, permettant aux VM d'un client de communiquer entre elles, tout en assurant l'isolation des autres clients.

Les donnĂ©es du client sont encapsulĂ©es dans des en-tĂȘtes de tunneling pour ĂȘtre transmises Ă  travers le rĂ©seau partagĂ©.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Ainsi, les VM d'un client (d'un service) peuvent communiquer entre elles via l'Overlay, sans mĂȘme savoir quel chemin emprunte rĂ©ellement le paquet.

Un exemple d'Overlay peut ĂȘtre le suivant, comme je l'ai dĂ©jĂ  mentionnĂ© :

  • Tunnel GRE
  • VXLAN
  • EVPN
  • L3VPN
  • GENEVE

Le réseau overlay est généralement configuré et maintenu via un contrÎleur central. De là, la configuration, le Control Plane et le Data Plane sont transmis aux appareils qui s'occupent du routage et de l'encapsulation du trafic client. Un peu ci-dessous découvrons cela à travers des exemples.

Oui, c'est le SDN dans sa forme pure.

Il existe deux approches fondamentalement différentes pour organiser un réseau overlay :

  1. Overlay depuis ToR
  2. Overlay depuis l'hĂŽte

Overlay depuis ToR

L'Overlay peut commencer sur un commutateur d'accÚs (ToR) installé dans un rack, comme cela se produit, par exemple, dans le cas d'une usine VXLAN.

C'est un mécanisme éprouvé dans les réseaux ISP et tous les fournisseurs de matériel réseau le soutiennent.

Cependant, dans ce cas, le commutateur ToR doit ĂȘtre capable de sĂ©parer les diffĂ©rents services, et l'administrateur rĂ©seau doit collaborer dans une certaine mesure avec les administrateurs des machines virtuelles et apporter des modifications (mĂȘme automatiquement) Ă  la configuration des dispositifs.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Je renverrai ici le lecteur à l'article sur VxLAN sur Habré notre ancien ami @bormoglotx.
Dans cet article, présentation de l'ENOG qui décrit en détail les approches de la construction d'un réseau de centre de données avec une usine EVPN VXLAN.

Et pour une immersion plus complÚte dans la réalité, on peut lire le livre de Cisco A Modern, Open, and Scalable Fabric: VXLAN EVPN.

Je souligne que VXLAN est juste une méthode d'encapsulation et que la terminaison des tunnels peut se faire non pas sur le ToR, mais sur l'hÎte, comme c'est le cas avec OpenStack, par exemple.

Cependant, une usine VXLAN oĂč le superposition commence sur le ToR est l'un des designs bien Ă©tablis des rĂ©seaux en superposition.

Overlay depuis l'hĂŽte

Une autre approche consiste Ă  commencer et Ă  terminer les tunnels sur les hĂŽtes finaux.
Dans ce cas, le réseau (Underlay) reste aussi simple et statique que possible.
Et l'hÎte effectue toutes les encapsulations nécessaires.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Pour cela, il faudra, sans aucun doute, exécuter une application spéciale sur les hÎtes, mais cela en vaut la peine.

Tout d'abord, exĂ©cuter le client sur une machine Linux est plus simple ou, disons, est mĂȘme possible - alors que sur un commutateur, il faudra probablement encore se tourner vers des solutions SDN propriĂ©taires, ce qui dĂ©truit l'idĂ©e de multi-fournisseur.

DeuxiÚmement, dans ce cas, le commutateur ToR peut rester aussi simple que possible, tant du point de vue du plan de contrÎle que du plan de données. En effet, avec un contrÎleur SDN, il n'a pas besoin de communiquer, et il n'est pas nécessaire de stocker les réseaux / ARP de tous les clients connectés - il suffit de connaßtre l'adresse IP de la machine physique, ce qui simplifie beaucoup les tables de commutation / routage.

Dans la série ADSM, je choisis l'approche de la superposition à partir de l'hÎte - nous ne parlerons plus que de cela et nous ne retournerons pas à l'usine VXLAN.

Il est le plus facile d'examiner cela par des exemples. Et comme cobaye, nous allons prendre la plateforme SDN OpenSource OpenContrail, maintenant connue sous le nom de Tungsten Fabric.

À la fin de l'article, je fournirai quelques rĂ©flexions sur l'analogie avec OpenFlow et OpenvSwitch.

À l'exemple de Tungsten Fabric

Sur chaque machine physique, il y a vRouter — un routeur virtuel qui connaĂźt les rĂ©seaux connectĂ©s et Ă  quels clients ils appartiennent — en substance — un routeur PE. Pour chaque client, il maintient une table de routage isolĂ©e (lisez VRF). Et le vRouter rĂ©alise le tunneling en mode Overlay.

Un peu plus sur le vRouter — à la fin de l'article.

Chaque VM située sur l'hyperviseur se connecte au vRouter de cette machine via l'interface TAP.

TAP — Terminal Access Point — une interface virtuelle dans le noyau Linux, qui permet d'assurer des interactions rĂ©seau.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

S'il y a plusieurs rĂ©seaux derriĂšre le vRouter, une interface virtuelle est créée pour chacun d'eux, Ă  laquelle une adresse IP est assignĂ©e — elle servira d'adresse de passerelle par dĂ©faut.
Tous les rĂ©seaux d'un mĂȘme client sont placĂ©s dans une VRF (une table), ceux d'autres clients dans des tables diffĂ©rentes.
Je ferai ici une réserve, car ce n'est pas si simple, et je renverrai le lecteur curieux à la fin de l'article..

Pour que les vRouter puissent communiquer entre eux, et donc que les VM qui se trouvent derriÚre, elles aussi, échangent des informations de routage via le contrÎleur SDN..

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Pour sortir dans le monde extĂ©rieur, il existe un point de sortie de la matrice — la passerelle du rĂ©seau virtuel. VNGW — Virtual Network Gateway (terme que j'utilise)).

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Regardons maintenant des exemples de communications — cela Ă©claircira les choses.

Communication au sein d'une seule machine physique

VM0 veut envoyer un paquet Ă  VM2. Supposons pour l'instant que ce sont des VM d'un mĂȘme client.

le Data Plane

  1. VM-0 a une route par défaut vers son interface eth0. Le paquet y est envoyé.
    Cette interface eth0 est en réalité connectée virtuellement au routeur virtuel vRouter via l'interface TAP tap0.
  2. Le vRouter analyse sur quelle interface le paquet est arrivé, c'est-à-dire à quel client (VRF) il appartient, puis compare l'adresse du destinataire avec la table de routage de ce client.
  3. Constatant que le destinataire est sur cette mĂȘme machine par un autre port, le vRouter envoie simplement le paquet vers lui sans en-tĂȘtes supplĂ©mentaires — pour ce cas, il y a dĂ©jĂ  une entrĂ©e ARP sur le vRouter.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Le paquet, dans ce cas, ne passe pas par le rĂ©seau physique — il est routĂ© Ă  l'intĂ©rieur du vRouter.

Control Plane

L'hyperviseur, lors du démarrage de la machine virtuelle, lui signale :

  • Son propre IP.
  • La route par dĂ©faut — via l'adresse IP du vRouter dans ce rĂ©seau.

Le vRouter est informé par un API spécial de l'hyperviseur :

  • Qu'il faut crĂ©er une interface virtuelle.
  • Quelle Virtual Network il doit crĂ©er (pour la VM).
  • À quel VRF son (VN) doit ĂȘtre liĂ©.
  • L'enregistrement ARP statique pour cette VM — quelle interface a son adresse IP et Ă  quel adresse MAC elle est liĂ©e.

Encore une fois, la procédure réelle d'interaction est simplifiée pour faciliter la compréhension du concept.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Ainsi, toutes les VM d'un client sur cette machine vRouter sont vues comme des rĂ©seaux directement connectĂ©s et peuvent elles-mĂȘmes router entre eux.

Cependant, VM0 et VM1 appartiennent à des clients différents et se trouvent donc dans des tables vRouter différentes.

Leur capacité à communiquer directement dépend des paramÚtres du vRouter et de la conception du réseau.
Par exemple, si les VM des deux clients utilisent des adresses publiques, ou si le NAT se produit sur le vRouter lui-mĂȘme, une routage direct via le vRouter est possible.

Dans le cas contraire, il peut y avoir un chevauchement des espaces d'adressage — il est nĂ©cessaire de passer par un serveur NAT pour obtenir une adresse publique — ce qui ressemble Ă  un accĂšs Ă  des rĂ©seaux externes, comme mentionnĂ© ci-dessous.

Communication entre des VM situées sur différentes machines physiques

le Data Plane

  1. Le dĂ©but est exactement le mĂȘme : VM-0 envoie un paquet Ă  l'adresse VM-7 (172.17.3.2) par dĂ©faut.
  2. Le vRouter le reçoit et cette fois-ci voit que le destinataire se trouve sur une autre machine et est accessible via le tunnel Tunnel0.
  3. D'abord, il ajoute une Ă©tiquette MPLS, identifiant l'interface distante, afin que de l'autre cĂŽtĂ© le vRouter puisse dĂ©terminer oĂč placer ce paquet sans boucles supplĂ©mentaires.

    Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

  4. Pour Tunnel0, l'origine est 10.0.0.2, et le destinataire : 10.0.1.2.
    Le vRouter ajoute des en-tĂȘtes GRE (ou UDP) et une nouvelle IP au paquet d'origine.
  5. Dans la table de routage, le vRouter a une route par défaut via l'adresse ToR1 10.0.0.1. C'est là qu'il envoie le paquet.

    Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

  6. ToR1, en tant que membre du réseau Underlay, sait (par exemple, via OSPF) comment atteindre 10.0.1.2 et envoie le paquet par la route. Notez que l'ECMP est ici impliqué. Sur l'illustration, il y a deux next-hops, et différents flux seront répartis entre eux en fonction du hachage. Dans une vraie fabrique, il y aurait plutÎt 4 next-hops.

    Il n'a pas besoin de savoir ce qui se trouve sous l'en-tĂȘte IP externe. En fait, sous IP, il peut y avoir un empilement de IPv6 over MPLS over Ethernet over MPLS over GRE over over over GRE.

  7. Ainsi, du cĂŽtĂ© rĂ©cepteur, le vRouter retire le GRE et, grĂące Ă  l'Ă©tiquette MPLS, sait Ă  quel interface ce paquet doit ĂȘtre transmis, le restituant Ă  son Ă©tat initial pour l'envoyer au destinataire.

Control Plane

Lors du démarrage de la machine, tout se passe comme décrit ci-dessus.

Et en plus, ce qui suit :

  • Pour chaque client, le vRouter attribue une Ă©tiquette MPLS. Il s'agit d'une Ă©tiquette de service L3VPN, selon laquelle les clients seront sĂ©parĂ©s au sein d'une seule machine physique.

    En rĂ©alitĂ©, l'Ă©tiquette MPLS est systĂ©matiquement attribuĂ©e par le vRouter — car on ne sait pas Ă  l'avance que la machine interagira uniquement avec d'autres machines derriĂšre le mĂȘme vRouter, et c'est probablement mĂȘme rarement le cas.

  • Le vRouter Ă©tablit une connexion avec le contrĂŽleur SDN via le protocole BGP (ou un protocole similaire — dans le cas de TF, c'est XMPP 0_o).
  • Au cours de cette session, le vRouter informe le contrĂŽleur SDN des itinĂ©raires vers les rĂ©seaux connectĂ©s :
    • Adresse du rĂ©seau
    • MĂ©thode d'encapsulation (MPLSoGRE, MPLSoUDP, VXLAN)
    • L'Ă©tiquette MPLS du client
    • Son adresse IP comme nexthop

  • Le contrĂŽleur SDN reçoit ces itinĂ©raires de tous les vRouters connectĂ©s et les reflĂšte Ă  d'autres. C'est-Ă -dire qu'il agit en tant que Route Reflector.

La mĂȘme chose se produit dans l'autre sens.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

L'Overlay peut changer chaque minute. C'est ainsi que cela se passe dans les nuages publics, oĂč les clients dĂ©marrent et arrĂȘtent rĂ©guliĂšrement leurs machines virtuelles.

Le contrÎleur central prend en charge toutes les complexités liées au maintien de la configuration et au contrÎle des tables de commutation/routage sur le vRouter.

GrossiÚrement parlant, le contrÎleur se connecte à tous les vRouters via BGP (ou un protocole similaire) et se contente de transmettre des informations de routage. BGP, par exemple, possÚde déjà un Address-Family pour transmettre la méthode d'encapsulation. MPLS-in-GRE ou MPLS-in-UDP.

Cela ne modifie en rien la configuration du réseau Underlay, qui, soit dit en passant, est beaucoup plus difficile à automatiser, et il est plus facile de détruire cette configuration par un mouvement maladroit.

Sortie vers le monde extérieur

À un moment donnĂ©, la simulation doit prendre fin, et il est nĂ©cessaire de sortir du monde virtuel pour entrer dans le rĂ©el. Et il faut un passerelle de tĂ©lĂ©phonie.

Deux approches sont pratiquées :

  1. Un routeur matériel est installé.
  2. Une appliance qui réalise les fonctions d'un routeur est lancée (oui, oui, aprÚs le SDN, nous avons également rencontré le VNF). Appelons cela une passerelle virtuelle.

L'avantage de la seconde approche rĂ©side dans la possibilitĂ© d'une Ă©volutivitĂ© horizontale Ă  bas coĂ»t — si la puissance est insuffisante, une autre machine virtuelle avec passerelle est lancĂ©e. Sur n'importe quelle machine physique, sans besoin de chercher des racks libres, des unitĂ©s d'alimentation, d'acheter le matĂ©riel, de le transporter, de l'installer, de le cĂąbler, de le configurer, puis de devoir remplacer des composants dĂ©fectueux.

Les dĂ©savantages d'une passerelle virtuelle rĂ©sident dans le fait qu'une unitĂ© physique de routeur est de loin plus puissante qu'une machine virtuelle multicƓur, et que son logiciel, adaptĂ© Ă  sa propre base matĂ©rielle, fonctionne de maniĂšre beaucoup plus stable (non). Il est difficile de nier le fait que le complexe logiciel-matĂ©riel fonctionne simplement, nĂ©cessitant seulement une configuration, tandis que le lancement et l'entretien d'une passerelle virtuelle nĂ©cessitent des ingĂ©nieurs compĂ©tents.

D'une de ses pattes, la passerelle se connecte à un réseau virtuel Overlay, tout comme une machine virtuelle ordinaire, et peut interagir avec toutes les autres VM. Elle peut ainsi terminer tous les réseaux des clients et donc effectuer le routage entre eux.

De l'autre cÎté, la passerelle se connecte au réseau backbone et sait comment accéder à Internet.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

le Data Plane

Le processus se déroule donc ainsi :

  1. La VM-0, ayant pour défaut tous les paramÚtres vers le vRouter, envoie un paquet à l'adresse d'un destinataire dans le monde extérieur (185.147.83.177) via l'interface eth0.
  2. Le vRouter reçoit ce paquet et effectue une recherche de l'adresse de destination dans la table de routage — il trouve la route par dĂ©faut via la passerelle VNGW1 Ă  travers le Tunnel 1.
    Il voit également que c'est un tunnel GRE avec SIP 10.0.0.2 et DIP 10.0.255.2, et il faut d'abord ajouter l'étiquette MPLS de ce client que VNGW1 attend.
  3. Le vRouter encapsule le paquet initial dans les en-tĂȘtes MPLS, GRE et nouvel IP, puis l'envoie Ă  l'adresse ToR1 10.0.0.1 par dĂ©faut.
  4. Le réseau souterrain livre le paquet à la passerelle VNGW1.
  5. La passerelle VNGW1 retire les en-tĂȘtes de tunnel GRE et MPLS, voit l'adresse de destination, consulte sa table de routage et comprend que l'adresse est destinĂ©e Ă  Internet — donc via Full View ou Default. Elle effectue la traduction NAT si nĂ©cessaire.
  6. Entre VNGW et la bordure, il peut y avoir un réseau IP standard, ce qui semble peu probable.
    Cela peut ĂȘtre un rĂ©seau MPLS classique (IGP+LDP/Rsvp TE) ou une usine inverse avec BGP LU ou un tunnel GRE de VNGW Ă  la bordure via un rĂ©seau IP.
    Quoi qu'il en soit, VNGW1 effectue les encapsulations nécessaires et envoie le paquet initial vers la bordure.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Le trafic dans le sens inverse suit les mĂȘmes Ă©tapes dans l'ordre inverse.

  1. La bordure envoie le paquet Ă  VNGW1.
  2. Cette derniÚre le décapsule, regarde l'adresse du destinataire et voit qu'elle est accessible via le tunnel Tunnel1 (MPLSoGRE ou MPLSoUDP).
  3. En consĂ©quence, elle ajoute l'Ă©tiquette MPLS, l'en-tĂȘte GRE/UDP et un nouvel IP, puis l'envoie Ă  son ToR3 10.0.255.1.
    L'adresse de destination du tunnel est l'adresse IP du vRouter derriùre lequel se trouve la VM cible — 10.0.0.2.
  4. Le réseau de canalisation livre le paquet au vRouter ciblé.
  5. Le vRouter cible extrait le GRE/UDP, détermine l'interface en fonction du label MPLS, et envoie le paquet IP brut vers son interface TAP associée à eth0 de la VM.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

Control Plane

VNGW1 établit un voisinage BGP avec le contrÎleur SDN, à partir duquel il reçoit toutes les informations de routage sur les clients : quel client est derriÚre quelle adresse IP (vRouter) et avec quel label MPLS il est identifié.

De la mĂȘme maniĂšre, il informe le contrĂŽleur SDN de la route par dĂ©faut avec le label de ce client, se dĂ©signant comme nexthop. Cette route par dĂ©faut arrive ensuite aux vRouters.

Sur VNGW, il y a généralement agrégation des routes ou traduction NAT.

Et dans l'autre sens, lors de la session avec les frontiÚres ou les Route Reflectors, il remet exactement cette route agrégée. Et de ces derniers, il reçoit la route par défaut, ou un Full-View, ou autre chose.

Du point de vue de l'encapsulation et de l'échange de trafic, VNGW ne diffÚre en rien du vRouter.
Si l'on élargit un peu le champ, on peut ajouter d'autres dispositifs réseau, tels que des pare-feux, des fermes de nettoyage ou d'enrichissement de trafic, des IPS, etc., aux VNGW et vRouters.

Et grùce à la création séquentielle de VRF et à l'annonce correcte des routes, il est possible de faire circuler le trafic comme vous le souhaitez, ce qu'on appelle le Service Chaining.

Ici, le contrÎleur SDN joue également le rÎle de Route Reflector entre VNGW, vRouters et d'autres dispositifs réseau.

Mais en réalité, le contrÎleur transmet également des informations sur l'ACL et le PBR (Policy Based Routing), obligeant certains flux de trafic à emprunter des chemins différents de ceux dictés par la route.

Automatisation Pour Les Plus Petits. Partie une (qui suit la zéro). Virtualisation réseau

FAQ

Pourquoi fais-tu toujours la remarque sur GRE/UDP ?

Eh bien, en fait, on peut dire que c'est spĂ©cifique Ă  Tungsten Fabric — on peut tout Ă  fait ne pas en tenir compte.

Mais si l'on prend cela en compte, TF, alors qu'il était encore OpenContrail, supportait les deux encapsulations : MPLS dans GRE et MPLS dans UDP.

L'UDP est avantageux car il est trĂšs facile d'encoder une fonction de hachage dĂ©rivĂ©e des IP+Proto+Port d'origine dans le champ Source Port de son en-tĂȘte, ce qui permet d'assurer un Ă©quilibrage.

Dans le cas de GRE, hĂ©las, il n'y a que les en-tĂȘtes IP et GRE externes, qui sont identiques pour tout le trafic encapsulĂ©, et il n'est donc pas question d'Ă©quilibrage — peu de personnes peuvent regarder si profondĂ©ment Ă  l'intĂ©rieur du paquet.

Jusqu'à récemment, les routeurs savaient gérer les tunnels dynamiques uniquement avec MPLSoGRE, et ce n'est que tout récemment qu'ils ont appris à gérer MPLSoUDP. Il est donc toujours nécessaire de noter la possibilité de deux encapsulations différentes.

Pour ĂȘtre juste, il convient de mentionner que TF prend Ă©galement en charge la connectivitĂ© L2 via VXLAN.

Tu as promis de faire des parallĂšles avec OpenFlow.
Ils se prĂ©sentent effectivement. Le vSwitch dans OpenStack fait des choses trĂšs similaires en utilisant VXLAN, qui, soit dit en passant, a Ă©galement un en-tĂȘte UDP.

Dans le Data Plane, ils fonctionnent Ă  peu prĂšs de la mĂȘme maniĂšre, mais le Control Plane varie considĂ©rablement. Tungsten Fabric utilise XMPP pour la livraison des informations de routage sur le vRouter, tandis qu'OpenStack utilise OpenFlow.

Peut-on en savoir un peu plus sur le vRouter?
Il se divise en deux parties: vRouter Agent et vRouter Forwarder.

Le premier s'exécute dans l'espace utilisateur du systÚme d'exploitation hÎte et communique avec le contrÎleur SDN, échangeant des informations sur les routes, les VRF et les ACL.

Le second implĂ©mente le Data Plane — gĂ©nĂ©ralement dans le Kernel Space, mais peut Ă©galement s'exĂ©cuter sur des SmartNIC, des cartes rĂ©seau avec CPU et un chip de commutation programmable sĂ©parĂ©, ce qui permet de rĂ©duire la charge sur le CPU de la machine hĂŽte, rendant le rĂ©seau plus rapide et plus prĂ©visible.

Il est également possible que le vRouter soit une application DPDK dans l'espace utilisateur.

Le vRouter Agent déploie les configurations sur le vRouter Forwarder.

Qu'est-ce que le Réseau Virtuel?
J'ai mentionnĂ© au dĂ©but de l'article le VRF, soulignant que chaque locataire est liĂ© Ă  son propre VRF. Et si cela suffisait pour une comprĂ©hension superficielle du fonctionnement du rĂ©seau overlay, des clarifications doivent ĂȘtre apportĂ©es lors de la prochaine itĂ©ration.

GĂ©nĂ©ralement, dans les mĂ©canismes de virtualisation, l'entitĂ© RĂ©seau Virtuel (que l'on peut considĂ©rer comme un nom propre) est introduite sĂ©parĂ©ment des clients/locataires/machines virtuelles — une chose tout Ă  fait autonome. Ce RĂ©seau Virtuel peut ensuite ĂȘtre connectĂ© Ă  un locataire, Ă  un autre, Ă  deux, ou mĂȘme Ă  plus. Ainsi, par exemple, le Service Chaining est rĂ©alisĂ© lorsque le trafic doit passer par certains nƓuds dans un ordre spĂ©cifique, crĂ©ant et liant simplement des RĂ©seaux Virtuels dans le bon ordre.

Il n'existe donc pas de correspondance directe entre le Réseau Virtuel et le locataire.

Conclusion

Ceci est une description plutĂŽt superficielle du fonctionnement d'un rĂ©seau virtuel avec overlay sur un hĂŽte et un contrĂŽleur SDN. Peu importe la plateforme de virtualisation que vous choisissez aujourd'hui, elle fonctionnera de maniĂšre similaire, que ce soit VMWare, ACI, OpenStack, CloudStack, Tungsten Fabric ou Juniper Contrail. Ils diffĂ©reront par les types d'encapsulations et d'en-tĂȘtes, ainsi que par les protocoles de livraison d'informations aux dispositifs rĂ©seaux finaux, mais le principe d'un rĂ©seau overlay programmable, fonctionnant sur un rĂ©seau underlay relativement simple et statique, restera le mĂȘme.
On peut dire qu'aujourd'hui, dans le domaine de la crĂ©ation de cloud privĂ©, le SDN basĂ© sur le rĂ©seau overlay a triomphĂ©. Cependant, cela ne signifie pas qu'Openflow n'a plus sa place dans le monde moderne — il est utilisĂ© dans OpenStack et dans VMware NSX, et, autant que je sache, Google l'utilise pour configurer le rĂ©seau underlay.

Un peu plus bas, j'ai fourni des liens vers des documents plus détaillés, si vous souhaitez approfondir la question.

Et qu'en est-il de notre Underlay ?

Eh bien, en fait, rien. Il n'a pas changé depuis le début. Tout ce qu'il doit faire en cas d'overlay sur un hÎte, c'est mettre à jour les routes et les ARP au fur et à mesure que vRouter/VNGW apparaissent et disparaissent et faire passer les paquets entre eux.

Formulons la liste des exigences pour le réseau Underlay.

  1. Être capable de comprendre un certain protocole de routage, dans notre cas — BGP.
  2. Avoir une large bande, de préférence sans sursouscription, afin d'éviter la perte de paquets due à une surcharge.
  3. Supporter l'ECMP — une partie essentielle de l'usine.
  4. Être capable d'assurer la QoS, y compris des choses subtiles, comme l'ECN.
  5. Supporter NETCONF — un investissement pour l'avenir.

J'ai consacrĂ© trĂšs peu de temps au fonctionnement mĂȘme du rĂ©seau Underlay ici. C'est parce qu'ensuite dans la sĂ©rie, je me concentrerai prĂ©cisĂ©ment sur elle, tandis que l'Overlay ne sera abordĂ© qu'en passant.

Il est évident que je me limite énormément en utilisant comme exemple un réseau de centre de données construit sur une usine Closa avec un routage IP pur et un overlay sur un hÎte.

Cependant, je suis convaincu que tout rĂ©seau ayant un design peut ĂȘtre dĂ©crit en termes formels et automatisĂ©. Mon objectif ici est de comprendre les approches d'automatisation, sans compliquer les choses en essayant de rĂ©soudre le problĂšme de maniĂšre gĂ©nĂ©rale.

Dans le cadre de l'ADSM, Roman Gorge et moi prévoyons de publier un numéro séparé sur la virtualisation des ressources de calcul et son interaction avec la virtualisation du réseau. Restez connectés.

Liens utiles

Merci

  • Roman Gorge — ancien animateur du podcast linkmeup, et dĂ©sormais expert en plateformes cloud. Merci pour les commentaires et les corrections. Nous attendons Ă©galement dans un futur proche son article plus approfondi sur la virtualisation.
  • Alexandre Shalimov — mon collĂšgue et expert en dĂ©veloppement de rĂ©seaux virtuels. Merci pour les commentaires et les corrections.
  • Valentin Sinitsyn — mon collĂšgue et expert en Tungsten Fabric. Merci pour les commentaires et les corrections.
  • Artem Tchernobay — illustrateur linkmeup. Merci pour la KDPV.
  • Alexandre Limonov. Merci pour le mĂšme « automato ».

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster