{"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\/es\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti","title":{"rendered":"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>En <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/453516\/\">versi\u00f3n anterior,<\/a><\/noindex> He descrito un marco de automatizaci\u00f3n de redes. Seg\u00fan los comentarios, para algunas personas, incluso este primer enfoque al problema ya ha aclarado algunas cuestiones. Y esto me alegra mucho, porque nuestro objetivo en este ciclo no es cubrir Ansible con scripts de Python, sino construir un sistema.<\/p>\n<p>Este mismo marco establece el orden en el que abordaremos la cuesti\u00f3n.<br \/>\nLa virtualizaci\u00f3n de redes, que se aborda en esta edici\u00f3n, no encaja especialmente en la tem\u00e1tica de ADSM, donde tratamos la automatizaci\u00f3n. <\/p>\n<p>Pero veamos esto desde otra perspectiva.<\/p>\n<p>Desde hace tiempo, muchos servicios utilizan la misma red. En el caso de un operador de telecomunicaciones, esto incluye 2G, 3G, LTE, banda ancha y B2B, por ejemplo. En el caso de un centro de datos: conectividad para diferentes clientes, Internet, almacenamiento en bloque, almacenamiento de objetos.<\/p>\n<p>Y todos los servicios requieren aislamiento entre s\u00ed. As\u00ed surgieron las redes overlay.<\/p>\n<p>Y todos los servicios no quieren esperar a que una persona los configure manualmente. As\u00ed surgieron los orquestadores y SDN.<\/p>\n<p>El primer enfoque hacia la automatizaci\u00f3n sistem\u00e1tica de redes, m\u00e1s precisamente de su parte, se ha intentado desde hace tiempo y se ha implementado en muchos lugares: VMWare, OpenStack, Google Compute Cloud, AWS, Facebook.<\/p>\n<p>Hoy vamos a profundizar en ello. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/kdpv.jpg\"><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" 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>Contenido<\/h1>\n<p><\/p>\n<ul>\n<li><b>Causas<\/b><\/li>\n<li><b>Terminolog\u00eda<\/b><\/li>\n<li><b>Underlay \u2014 red f\u00edsica<\/b><\/li>\n<li><b>Overlay \u2014 red virtual<\/b>\n<ul>\n<li>Capa con ToR<\/li>\n<li>Overlay desde el host<\/li>\n<li>Ejemplo de Tungsten Fabric\n<ul>\n<li>Comunicaci\u00f3n dentro de una m\u00e1quina f\u00edsica<\/li>\n<li>Comunicaci\u00f3n entre m\u00e1quinas virtuales ubicadas en diferentes m\u00e1quinas f\u00edsicas<\/li>\n<li>Salida al mundo exterior<\/li>\n<\/ul>\n<p>\n <\/li>\n<\/ul>\n<p>\n <\/li>\n<li><b>Preguntas Frecuentes<\/b><\/li>\n<li><b>Conclusi\u00f3n<\/b><\/li>\n<li><b>Enlaces \u00fatiles<\/b><\/li>\n<\/ul>\n<p><\/p>\n<h1>Causas<\/h1>\n<p>\nY ya que hemos mencionado este tema, vale la pena hablar de los antecedentes de la virtualizaci\u00f3n de redes. En realidad, este proceso no comenz\u00f3 ayer. <\/p>\n<p>Probablemente, hayas escuchado que la red siempre ha sido la parte m\u00e1s inercial de cualquier sistema. Y esto es cierto en todos los sentidos. La red es la base sobre la que se apoya todo, y hacer cambios en ella es bastante complicado: los servicios no toleran que la red est\u00e9 ca\u00edda. A menudo, la desactivaci\u00f3n de un \u00fanico nodo puede afectar a gran parte de las aplicaciones y tener un impacto en muchos clientes. En parte, por esta raz\u00f3n, el equipo de redes puede resistirse a cualquier cambio, porque ahora funciona de alguna manera (<i>quiz\u00e1s ni siquiera sabemos c\u00f3mo<\/i>), y aqu\u00ed hay que configurar algo nuevo, y no se sabe c\u00f3mo afectar\u00e1 a la red.<\/p>\n<p>Para no tener que esperar a que los administradores de red implementen VLAN y no tener que configurar servicios en cada nodo de la red, se idearon las superposiciones: redes superpuestas, de las cuales hay una gran variedad: GRE, IPinIP, MPLS, MPLS L2\/L3VPN, VXLAN, GENEVE, MPLSoverUDP, MPLSoverGRE, etc.<\/p>\n<p>Su atractivo radica en dos cosas simples:<\/p>\n<ul>\n<li>Solo se configuran los nodos finales: los nodos de tr\u00e1nsito no necesitan ser tocados. Esto acelera significativamente el proceso, y a veces incluso permite excluir al departamento de infraestructura de red del proceso de implementaci\u00f3n de nuevos servicios.<\/li>\n<li>La carga est\u00e1 oculta profundamente dentro de los encabezados: los nodos de tr\u00e1nsito no necesitan saber nada sobre ella, sobre la direccionamiento en los hosts, las rutas de la red superpuesta. Esto significa que se necesita almacenar menos informaci\u00f3n en las tablas, por lo que se puede optar por dispositivos m\u00e1s simples y econ\u00f3micos.<\/li>\n<\/ul>\n<p>\nEn esta entrega no tan completa, no planeo revisar todas las tecnolog\u00edas posibles, sino m\u00e1s bien describir el marco de trabajo de las redes de superposici\u00f3n en el centro de datos.<\/p>\n<p>Toda la serie describir\u00e1 un centro de datos compuesto por filas de racks homog\u00e9neos, en los que se instala el mismo equipo de servidores. <\/p>\n<p>En este equipo se ejecutan m\u00e1quinas virtuales\/contenedores\/servidores sin servidor que implementan servicios.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/a6863eb2804a298304d1e93daecf90d9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1>Terminolog\u00eda<\/h1>\n<p>\nEn el ciclo <b>el servidor<\/b> llamar\u00e9 programa a la parte del servidor de la comunicaci\u00f3n cliente-servidor.<\/p>\n<p>Las m\u00e1quinas f\u00edsicas en los racks las llamaremos servidores <b>no<\/b> .<\/p>\n<p><b>Una m\u00e1quina f\u00edsica<\/b> es un ordenador x86 instalado en un rack. El t\u00e9rmino m\u00e1s com\u00fanmente utilizado es <b>host<\/b>. As\u00ed es como la llamaremos &#171;<b>m\u00e1quina<\/b>&#187; o <b>host<\/b>.<\/p>\n<p><b>Hipervisor<\/b> es una aplicaci\u00f3n que se ejecuta en una m\u00e1quina f\u00edsica, emulando los recursos f\u00edsicos donde se ejecutan las M\u00e1quinas Virtuales. A veces, en la literatura y en la red, se usa la palabra \u00abhipervisor\u00bb como sin\u00f3nimo de \u00abhost\u00bb.<\/p>\n<p><b>M\u00e1quina virtual<\/b> \u2014 un sistema operativo que se ejecuta en una m\u00e1quina f\u00edsica sobre un hipervisor. Para nosotros, en el contexto de este ciclo, no es tan importante si realmente se trata de una m\u00e1quina virtual o simplemente de un contenedor. Lo llamaremos &#171;<b>VM<\/b>&#171;<\/p>\n<p><b>Inquilino<\/b> es un concepto amplio que en este art\u00edculo definir\u00e9 como un servicio separado o un cliente separado.<\/p>\n<p><b>Multi-inquilino<\/b> o multiarrendamiento es la utilizaci\u00f3n de una misma aplicaci\u00f3n por diferentes clientes\/servicios. En este caso, la aislamiento de los clientes entre s\u00ed se logra gracias a la arquitectura de la aplicaci\u00f3n y no a instancias separadas en ejecuci\u00f3n.<\/p>\n<p><b>ToR \u2014 Switch ubicado en la parte superior del rack<\/b> \u2014 un conmutador instalado en un rack al que se conectan todas las m\u00e1quinas f\u00edsicas.<\/p>\n<blockquote><p> Adem\u00e1s de la topolog\u00eda ToR, diferentes proveedores practican End of Row (EoR) o Middle of Row (aunque esta \u00faltima es bastante rara y no he encontrado las abreviaturas MoR).\n<\/p><\/blockquote>\n<p> <b>Red subyacente<\/b> o red subyacente o underlay \u2014 infraestructura de red f\u00edsica: conmutadores, enrutadores, cables.<\/p>\n<p><b>Red de superposici\u00f3n<\/b> o red de superposici\u00f3n o overlay \u2014 red virtual de t\u00faneles que opera sobre la f\u00edsica.<\/p>\n<p><b>F\u00e1brica L3 o f\u00e1brica IP<\/b> \u2014 un incre\u00edble invento de la humanidad que permite no repetir STP en las entrevistas y no aprender TRILL. Una conceptualizaci\u00f3n en la que toda la red hasta el nivel de acceso es exclusivamente L3, sin VLAN y, por lo tanto, enormes dominios de difusi\u00f3n extendidos. En la pr\u00f3xima parte veremos de d\u00f3nde proviene la palabra \"f\u00e1brica\".<\/p>\n<p><b>SDN<\/b> \u2014 Red Definida por Software. Apenas necesita presentaci\u00f3n. Un enfoque para la gesti\u00f3n de redes en el que los cambios en la red son realizados no por una persona, sino por un programa. Generalmente significa llevar el Control Plane fuera de los dispositivos de red finales a un controlador.<\/p>\n<p><b>NFV<\/b> \u2014 Virtualizaci\u00f3n de Funciones de Red \u2014 la virtualizaci\u00f3n de dispositivos de red que propone que algunas funciones de la red se puedan ejecutar como m\u00e1quinas virtuales o contenedores para acelerar la implementaci\u00f3n de nuevos servicios, organizar la Cadena de Servicios y permitir una escalabilidad horizontal m\u00e1s sencilla.<\/p>\n<p><b>VNF<\/b> \u2014 Funci\u00f3n de Red Virtual. Dispositivo virtual espec\u00edfico: enrutador, conmutador, firewall, NAT, IPS\/IDS, etc.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/971b6a28a9caab5f3a7067ce4d25749c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p> Ahora estoy simplificando intencionadamente la descripci\u00f3n a una implementaci\u00f3n concreta para no confundir demasiado al lector. Para una lectura m\u00e1s reflexiva, lo remito a la secci\u00f3n <noindex><a rel=\"nofollow\" href=\"#LINKS\">Enlaces<\/a><\/noindex>. Adem\u00e1s, Roma Gorge, quien critica este art\u00edculo por inexactitudes, promete escribir una edici\u00f3n separada sobre tecnolog\u00edas de virtualizaci\u00f3n de servidores y redes, m\u00e1s profunda y detallada.<\/p><\/blockquote>\n<p>La mayor\u00eda de las redes hoy en d\u00eda se pueden dividir claramente en dos partes: <\/p>\n<p><b>Subyacente<\/b> \u2014 red f\u00edsica con configuraci\u00f3n estable.<br \/>\n<b>Superposici\u00f3n<\/b> \u2014 abstracci\u00f3n sobre la red subyacente para la aislamiento de inquilinos. <\/p>\n<p>Esto es cierto tanto para el caso de los centros de datos (que abordaremos en este art\u00edculo), como para los ISP (que no vamos a discutir, ya que ya fue tratado en <noindex><a rel=\"nofollow\" href=\"https:\/\/linkmeup.ru\/sdsm\">SDN<\/a><\/noindex>). Con las redes empresariales, por supuesto, la situaci\u00f3n es algo diferente. <\/p>\n<p>Imagen centrada en la red:<\/p>\n<p><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/7b7dabc6d9f3b87c598346bf9195d568.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1>Subyacente<\/h1>\n<p>\nUnderlay es una red f\u00edsica: conmutadores de hardware y cables. Los dispositivos en el underlay saben c\u00f3mo llegar a las m\u00e1quinas f\u00edsicas.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/776a77a3821fe79a7323947e0bdf67e8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSe basa en protocolos y tecnolog\u00edas est\u00e1ndar. No menos importante, porque los dispositivos de hardware todav\u00eda funcionan con software propietario que no permite la programaci\u00f3n de chips ni la implementaci\u00f3n de sus propios protocolos, por lo tanto, se necesita compatibilidad con otros proveedores y estandarizaci\u00f3n.<\/p>\n<blockquote><p>Pero alguien como Google puede permitirse desarrollar sus propios conmutadores y renunciar a los protocolos convencionales. Pero LAN_DC no es Google.\n<\/p><\/blockquote>\n<p> El underlay cambia relativamente poco, ya que su tarea es proporcionar conectividad IP b\u00e1sica entre m\u00e1quinas f\u00edsicas. El underlay no sabe nada sobre los servicios, clientes o tenantes que se ejecutan sobre \u00e9l, solo necesita entregar un paquete de una m\u00e1quina a otra.<br \/>\nUn ejemplo de underlay podr\u00eda ser: <\/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 red subyacente se configura de forma cl\u00e1sica: CLI\/GUI\/NETCONF.<\/p>\n<p>Manualmente, mediante scripts o herramientas propietarias.<\/p>\n<p>Un art\u00edculo posterior de la serie se dedicar\u00e1 a explicar con m\u00e1s detalle el underlay.<\/p>\n<p><\/p>\n<h1>Superposici\u00f3n<\/h1>\n<p>\nOverlay es una red virtual de t\u00faneles que se extiende sobre el underlay, permite que las m\u00e1quinas virtuales de un cliente se comuniquen entre s\u00ed, garantizando la separaci\u00f3n de otros clientes.<\/p>\n<p>Los datos del cliente se encapsulan en encabezados de t\u00fanel para su transmisi\u00f3n a trav\u00e9s de la red compartida.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/3060bc4913c55c21b785083fbe0b603b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAs\u00ed, las m\u00e1quinas virtuales de un cliente (de un servicio) pueden comunicarse entre s\u00ed a trav\u00e9s del overlay, sin saber realmente qu\u00e9 camino sigue el paquete. <\/p>\n<p>Un ejemplo de overlay podr\u00eda ser, como mencion\u00e9 anteriormente:<\/p>\n<ul>\n<li>t\u00fanel GRE<\/li>\n<li>VXLAN<\/li>\n<li>EVPN<\/li>\n<li>L3VPN<\/li>\n<li>GENEVE<\/li>\n<\/ul>\n<p>\nLa red superpuesta generalmente se configura y mantiene a trav\u00e9s de un controlador central. Desde all\u00ed, la configuraci\u00f3n, el Control Plane y el Data Plane se env\u00edan a los dispositivos responsables de la ruta y encapsulaci\u00f3n del tr\u00e1fico del cliente. Un poco <noindex><a rel=\"nofollow\" href=\"#TF\">abajo<\/a><\/noindex> lo desglosaremos con ejemplos.<\/p>\n<p><b>S\u00ed, es SDN en su forma m\u00e1s pura. <\/b><\/p>\n<p>Existen dos enfoques fundamentalmente diferentes para organizar una red overlay:<\/p>\n<ol>\n<li>Capa con ToR<\/li>\n<li>Overlay desde el host<\/li>\n<\/ol>\n<h2>Capa con ToR<\/h2>\n<p>\nEl overlay puede comenzar en el conmutador de acceso (ToR) que est\u00e1 en el rack, como ocurre, por ejemplo, en el caso de una f\u00e1brica de VXLAN. <\/p>\n<p>Este es un mecanismo probado en redes ISP y todos los proveedores de equipos de red lo apoyan.<\/p>\n<p>Sin embargo, en este caso, el conmutador ToR debe ser capaz de separar los diferentes servicios, y el administrador de red debe colaborar hasta cierto punto con los administradores de m\u00e1quinas virtuales y hacer cambios (aunque sea de manera autom\u00e1tica) en la configuraci\u00f3n de los dispositivos.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/9a5fe4d4a0cbb7e5c3bbac82527c6a6a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAqu\u00ed remito al lector al art\u00edculo sobre <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/344326\/\">VxLAN en Habr<\/a><\/noindex> nuestro viejo amigo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/bormoglotx\/\">@bormoglotx<\/a><\/noindex>.<br \/>\nEn este <noindex><a rel=\"nofollow\" href=\"https:\/\/www.enog.org\/wp-content\/uploads\/presentations\/enog-16\/18-Scaleway-P14-fabric-ENOG16.pdf\">la presentaci\u00f3n en ENOG<\/a><\/noindex> se describen detalladamente los enfoques para construir una red de centro de datos con una f\u00e1brica EVPN VXLAN. <\/p>\n<p>Y para una inmersi\u00f3n m\u00e1s completa en la realidad, se puede leer el libro de 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> Cabe se\u00f1alar que VXLAN es solo un m\u00e9todo de encapsulaci\u00f3n y la terminaci\u00f3n de t\u00faneles puede no ocurrir en el ToR, sino en el host, como sucede en el caso de OpenStack, por ejemplo.<\/p>\n<p>Sin embargo, una f\u00e1brica VXLAN donde la superpuesta comienza en el ToR es uno de los dise\u00f1os establecidos de redes superpuestas.\n<\/p><\/blockquote>\n<p><\/p>\n<h2>Overlay desde el host<\/h2>\n<p>\nOtro enfoque es comenzar y terminar los t\u00faneles en los hosts finales.<br \/>\nEn este caso, la red (Underlay) permanece lo m\u00e1s simple y est\u00e1tica posible.<br \/>\nY el host se encarga de realizar todas las encapsulaciones necesarias.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/c9c2971369d1b3e5f026d6844afeb67f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPara ello, sin duda, se requerir\u00e1 ejecutar una aplicaci\u00f3n especial en los hosts, pero vale la pena. <\/p>\n<p>En primer lugar, es m\u00e1s f\u00e1cil ejecutar un cliente en una m\u00e1quina Linux o, digamos, es posible, mientras que en el conmutador probablemente tendr\u00e1 que recurrir a soluciones SDN propietarias, lo que mata la idea de la multi-vendibilidad.<\/p>\n<p>En segundo lugar, el conmutador ToR en este caso puede mantenerse lo m\u00e1s simple posible, tanto desde el punto de vista del Control Plane como del Data Plane. De hecho, con el controlador SDN no necesita comunicarse, y almacenar las redes\/ARP de todos los clientes conectados tampoco es necesario; solo hay que saber la direcci\u00f3n IP de la m\u00e1quina f\u00edsica, lo que facilita enormemente las tablas de conmutaci\u00f3n\/ruteo.<\/p>\n<p>\nEn la serie ADS de M, elijo el enfoque de overlay desde el host; a partir de ahora solo hablaremos de eso y no volveremos a la f\u00e1brica VXLAN.<\/p>\n<p>\nEs m\u00e1s f\u00e1cil verlo con ejemplos. Como sujeto de prueba, tomaremos la plataforma SDN de c\u00f3digo abierto OpenContrail, ahora conocida como <noindex><a rel=\"nofollow\" href=\"https:\/\/tungsten.io\">Tungsten Fabric<\/a><\/noindex>.<\/p>\n<blockquote><p> Al final del art\u00edculo, presentar\u00e9 algunas reflexiones sobre la analog\u00eda con OpenFlow y OpenvSwitch.\n<\/p><\/blockquote>\n<p><\/p>\n<h2>Ejemplo de Tungsten Fabric<\/h2>\n<p>\nEn cada m\u00e1quina f\u00edsica hay <b>vRouter<\/b> \u2014 un enrutador virtual que tiene conocimiento de las redes conectadas a \u00e9l y a qu\u00e9 clientes pertenecen \u2014 en esencia \u2014 un enrutador PE. Para cada cliente, mantiene una tabla de enrutamiento aislada (es decir, VRF). Y, de hecho, el vRouter realiza el t\u00fanel superpuesto.<\/p>\n<p>Un poco m\u00e1s sobre vRouter \u2014 al final del art\u00edculo.<\/p>\n<p>Cada VM ubicada en el hipervisor se conecta al vRouter de esa m\u00e1quina a trav\u00e9s de <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/TUN\/TAP\">interfaz TAP<\/a><\/noindex>.<\/p>\n<p><b>TAP<\/b> \u2014 Terminal Access Point \u2014 una interfaz virtual en el n\u00facleo de Linux que permite la interacci\u00f3n de redes.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/a6fa1b4370ba4e787303ae647a28f5ed.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi hay varias redes detr\u00e1s del vRouter, se crea una interfaz virtual para cada una, a la que se le asigna una direcci\u00f3n IP, que ser\u00e1 la direcci\u00f3n del gateway por defecto.<br \/>\nTodas las redes de un cliente se colocan en una <b>VRF<\/b> (una tabla), y las de diferentes clientes, en tablas distintas.<br \/>\n<i>Har\u00e9 aqu\u00ed una salvedad, que no todo es tan simple, y enviar\u00e9 al curioso lector al final del art\u00edculo.<\/i>.<\/p>\n<p>Para que los vRouters puedan comunicarse entre s\u00ed, y por lo tanto tambi\u00e9n las VMs que est\u00e1n detr\u00e1s de ellos, intercambian informaci\u00f3n de enrutamiento a trav\u00e9s de <b>un controlador SDN<\/b>.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/sdn-controller.png\"><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/8b133e10582dbde9c0670ad98c1840de.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Para salir al mundo exterior, existe un punto de salida de la matriz \u2014 el gateway de la red virtual <b>VNGW<\/b> \u2014 Virtual Network GateWay (<i>t\u00e9rmino m\u00edo<\/i>).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/vngw.png\"><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/9ac4d084d9b58b7ed1bc2c0ed6d06059.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>\nAhora veamos ejemplos de comunicaciones \u2014 y quedar\u00e1 claro.<\/p>\n<p><\/p>\n<h3>Comunicaci\u00f3n dentro de una m\u00e1quina f\u00edsica<\/h3>\n<p>\nVM0 quiere enviar un paquete a VM2. Supongamos por ahora que son VM de un mismo cliente.<\/p>\n<h4>Data Plane<\/h4>\n<p><\/p>\n<ol>\n<li>VM-0 tiene una ruta por defecto a su interfaz eth0. El paquete se env\u00eda all\u00ed.<br \/>\n Esta interfaz eth0 est\u00e1 en realidad conectada virtualmente con el enrutador virtual vRouter a trav\u00e9s de la interfaz TAP tap0.<\/li>\n<li>vRouter analiza en qu\u00e9 interfaz lleg\u00f3 el paquete, es decir, a qu\u00e9 cliente (VRF) corresponde, verifica la direcci\u00f3n del receptor con la tabla de enrutamiento de ese cliente.<\/li>\n<li>Al descubrir que el receptor est\u00e1 en la misma m\u00e1quina detr\u00e1s de otro puerto, el vRouter simplemente env\u00eda el paquete a \u00e9l sin ning\u00fan encabezado adicional; para este caso, ya hay una entrada ARP en el vRouter. <\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/a42da3f48a3f538eb92c1908d9d66921.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEl paquete en este caso no entra en la red f\u00edsica: se ha enrouted dentro del vRouter.<\/p>\n<p><\/p>\n<h4>Control Plane<\/h4>\n<p>\nEl hipervisor, al iniciar una m\u00e1quina virtual, le informa:<\/p>\n<ul>\n<li>Su propia direcci\u00f3n IP.<\/li>\n<li>La ruta predeterminada es a trav\u00e9s de la direcci\u00f3n IP del vRouter en esta red.<\/li>\n<\/ul>\n<p>\nEl vRouter recibe informes a trav\u00e9s de una API especial del hipervisor:<\/p>\n<ul>\n<li>Que necesita crear una interfaz virtual.<\/li>\n<li>Qu\u00e9 Virtual Network necesita crear (VM).<\/li>\n<li>A qu\u00e9 VRF vincularlo (VN).<\/li>\n<li>La entrada ARP est\u00e1tica para esta VM muestra qu\u00e9 interfaz tiene su direcci\u00f3n IP y a qu\u00e9 direcci\u00f3n MAC est\u00e1 asociada.<\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p> Una vez m\u00e1s, el procedimiento real de interacci\u00f3n se ha simplificado para facilitar la comprensi\u00f3n del concepto.\n<\/p><\/blockquote>\n<p> <img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/593d7ad41782e882a88732b475bf91cb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAs\u00ed, todas las VMs de un cliente en esta m\u00e1quina vRouter las ve como redes directamente conectadas y puede enrutar entre ellas.<\/p>\n<p>\nVM0 y VM1 pertenecen a diferentes clientes y, por lo tanto, est\u00e1n en diferentes tablas del vRouter.<\/p>\n<p>Si pueden comunicarse directamente entre s\u00ed depende de la configuraci\u00f3n del vRouter y del dise\u00f1o de la red.<br \/>\nPor ejemplo, si ambas VMs de los clientes utilizan direcciones p\u00fablicas, o si la NAT ocurre en el propio vRouter, se puede implementar un enrutamiento directo a trav\u00e9s del vRouter.<\/p>\n<p>En la otra situaci\u00f3n, puede haber una superposici\u00f3n de espacios de direcciones; se necesita pasar por un servidor NAT para obtener una direcci\u00f3n p\u00fablica, lo que es similar a salir a redes externas, como se describir\u00e1 m\u00e1s adelante.<\/p>\n<h3>Comunicaci\u00f3n entre m\u00e1quinas virtuales ubicadas en diferentes m\u00e1quinas f\u00edsicas<\/h3>\n<p><\/p>\n<h4>Data Plane<\/h4>\n<p><\/p>\n<ol>\n<li>El inicio es igual: VM-0 env\u00eda un paquete destinado a VM-7 (172.17.3.2) a su destino predeterminado.<\/li>\n<li>El vRouter lo recibe y esta vez ve que el destinatario est\u00e1 en otra m\u00e1quina y es accesible a trav\u00e9s del t\u00fanel Tunnel0.<\/li>\n<li>Primero, coloca una etiqueta MPLS que identifica la interfaz remota, para que del otro lado el vRouter pueda determinar a d\u00f3nde debe colocar este paquete sin bucles adicionales.\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/inter-hv-dp.png\"><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/1e159049376e2bf458b8c6cb5878cc17.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex>\n <\/li>\n<li>Tunnel0 tiene como origen 10.0.0.2 y como destinatario 10.0.1.2.<br \/>\n El vRouter a\u00f1ade encabezados GRE (o UDP) y una nueva IP al paquete original.<\/li>\n<li>En la tabla de enrutamiento del vRouter hay una ruta por defecto a trav\u00e9s de la direcci\u00f3n ToR1 10.0.0.1. Env\u00eda all\u00ed.\n<p> <img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/8cb98a8ec43d202259acf6a1fcaeb3ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n \n <\/li>\n<li>ToR1, como parte de la red Underlay, sabe (por ejemplo, a trav\u00e9s de OSPF) c\u00f3mo llegar a 10.0.1.2 y env\u00eda el paquete a lo largo de esa ruta. Tenga en cuenta que aqu\u00ed se incluye ECMP. En la ilustraci\u00f3n, hay dos next hops y diferentes flujos se distribuir\u00e1n entre ellos mediante un hash. En un verdadero centro de datos, habr\u00eda m\u00e1s como 4 next hops.\n<p>Sin embargo, no necesita saber qu\u00e9 hay bajo el encabezado IP externo. Es decir, en realidad, bajo IP podr\u00eda haber un s\u00e1ndwich de IPv6 sobre MPLS sobre Ethernet sobre MPLS sobre GRE.<\/li>\n<li>Por lo tanto, en el lado receptor, el vRouter elimina el GRE y, seg\u00fan la etiqueta MPLS, entiende a qu\u00e9 interfaz debe entregar este paquete, lo desenreda y lo env\u00eda a su destinatario original.<\/li>\n<\/ol>\n<h4>Control Plane<\/h4>\n<p>\nAl iniciar la m\u00e1quina, ocurre todo lo que se describi\u00f3 anteriormente.<\/p>\n<p>Y adem\u00e1s lo siguiente:<\/p>\n<ul>\n<li>Para cada cliente, el vRouter asigna una etiqueta MPLS. Esta es una etiqueta de servicio L3VPN, a trav\u00e9s de la cual los clientes se segmentar\u00e1n dentro de una misma m\u00e1quina f\u00edsica.<br \/>\n<blockquote><p> De hecho, la etiqueta MPLS es asignada por el vRouter siempre, ya que no se sabe de antemano si la m\u00e1quina solo interactuar\u00e1 con otras m\u00e1quinas detr\u00e1s del mismo vRouter, y es m\u00e1s probable que esto no sea as\u00ed. \n <\/p><\/blockquote>\n<\/li>\n<li>El vRouter establece una conexi\u00f3n con el controlador SDN mediante el protocolo BGP (o uno similar; en el caso de TF, es XMPP 0_o).<\/li>\n<li>A trav\u00e9s de esta sesi\u00f3n, el vRouter informa al controlador SDN sobre las rutas a las redes conectadas:\n<ul>\n<li>Direcci\u00f3n de la red<\/li>\n<li>M\u00e9todo de encapsulaci\u00f3n (MPLSoGRE, MPLSoUDP, VXLAN)<\/li>\n<li>Etiqueta MPLS del cliente<\/li>\n<li>Su direcci\u00f3n IP como nexthop<\/li>\n<\/ul>\n<p>\n <\/li>\n<li>El controlador SDN recibe tales rutas de todos los vRouters conectados y las refleja a otros. Es decir, act\u00faa como un Route Reflector.<\/li>\n<\/ul>\n<p>\nLo mismo ocurre en direcci\u00f3n opuesta.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/inter-hv-cp.png\"><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/feef9181133f3a50a5cb21aa7ba16dc0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>El overlay puede cambiar cada minuto. As\u00ed es como sucede en las nubes p\u00fablicas, cuando los clientes inician y detienen regularmente sus m\u00e1quinas virtuales.<\/p>\n<p>El controlador central asume todas las complejidades del mantenimiento de la configuraci\u00f3n y el control de las tablas de conmutaci\u00f3n\/ruteo en el vRouter.<\/p>\n<p>En t\u00e9rminos simples, el controlador se conecta a todos los vRouters a trav\u00e9s de BGP (o un protocolo similar) y simplemente transmite la informaci\u00f3n de enrutamiento. BGP, por ejemplo, ya tiene una familia de direcciones para la transmisi\u00f3n del m\u00e9todo de encapsulaci\u00f3n. <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>De este modo, la configuraci\u00f3n de la red Underlay no se modifica de ninguna manera, que, por cierto, es mucho m\u00e1s compleja de automatizar, y es m\u00e1s f\u00e1cil romperla con un movimiento torpe.<\/p>\n<h3>Salida al mundo exterior<\/h3>\n<p>\nEn alg\u00fan momento, la simulaci\u00f3n debe terminar, y se necesita salir del mundo virtual hacia el real. Y se requiere un gateway telef\u00f3nico.<\/p>\n<p>Se practican dos enfoques:<\/p>\n<ol>\n<li>Se instala un router de hardware.<\/li>\n<li>Se ejecuta alg\u00fan appliance que implementa las funciones de un router (s\u00ed, despu\u00e9s de SDN, tambi\u00e9n nos encontramos con VNF). Llam\u00e9moslo gateway virtual.<\/li>\n<\/ol>\n<p><\/p>\n<blockquote><p> La ventaja del segundo enfoque es la escalabilidad horizontal econ\u00f3mica: si no hay suficiente potencia, se puede iniciar otra m\u00e1quina virtual con el gateway. En cualquier m\u00e1quina f\u00edsica, sin necesidad de buscar racks disponibles, unidades, suministro de energ\u00eda, comprar el hardware, transportarlo, instalarlo, conectarlo, configurarlo y luego reemplazar los componentes defectuosos.<\/p>\n<p>Las desventajas de un gateway virtual son que una unidad f\u00edsica de router es significativamente m\u00e1s potente que una m\u00e1quina virtual multicore, y su software, ajustado a su propia base de hardware, funciona de manera mucho m\u00e1s estable (<i>no<\/i>). No se puede negar el hecho de que el complejo de hardware y software simplemente funciona, requiriendo solo configuraci\u00f3n, mientras que el lanzamiento y mantenimiento de un gateway virtual es tarea para ingenieros capacitados.\n<\/p><\/blockquote>\n<p> Con una de sus patas, el gateway observa la red virtual Overlay, como una M\u00e1quina Virtual normal, y puede interactuar con todas las otras VM. Al mismo tiempo, puede terminar las redes de todos los clientes y, en consecuencia, llevar a cabo la ruta entre ellas.<\/p>\n<p>Con la otra pata, el gateway observa la red troncal y sabe c\u00f3mo llegar a Internet.<\/p>\n<p><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/552fa0428ff8dd3aed76091a86a72109.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h4>Data Plane<\/h4>\n<p>\nEs decir, el proceso se ve as\u00ed: <\/p>\n<ol>\n<li>VM-0, teniendo por defecto el mismo vRouter, env\u00eda un paquete con un destinatario en el mundo exterior (185.147.83.177) a la interfaz eth0.<\/li>\n<li>El vRouter recibe este paquete y hace una consulta de la direcci\u00f3n de destino en la tabla de rutas, encontrando la ruta predeterminada a trav\u00e9s del gateway VNGW1 a trav\u00e9s del Tunnel 1. <br \/>\n Tambi\u00e9n ve que este es un t\u00fanel GRE con SIP 10.0.0.2 y DIP 10.0.255.2, y adem\u00e1s es necesario primero agregar la etiqueta MPLS de este cliente, que espera VNGW1.\n <\/li>\n<li>El vRouter empaqueta el paquete original en encabezados MPLS, GRE y una nueva IP, y lo env\u00eda a la direcci\u00f3n ToR1 10.0.0.1 por defecto.<\/li>\n<li>La red subyacente entrega el paquete al gateway VNGW1.<\/li>\n<li>El gateway VNGW1 quita los encabezados de t\u00fanel GRE y MPLS, ve la direcci\u00f3n de destino, consulta su tabla de enrutamiento y comprende que est\u00e1 destinado a Internet, por lo que va a trav\u00e9s de Full View o Default. Realiza NAT si es necesario.<\/li>\n<li>Desde VNGW hasta la frontera puede haber una red IP normal, lo cual es poco probable.<br \/>\n Puede haber una red MPLS cl\u00e1sica (IGP+LDP\/RSPV TE), puede ser una f\u00e1brica inversa con BGP LU o un t\u00fanel GRE desde VNGW hasta la frontera a trav\u00e9s de una red IP.<br \/>\n De cualquier manera, VNGW1 realiza las encapsulaciones necesarias y env\u00eda el paquete original hacia la frontera.<\/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=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/a66e490c75f8220349398af814d4ebf2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>El tr\u00e1fico en la direcci\u00f3n inversa pasa por los mismos pasos en orden contrario. <\/p>\n<ol>\n<li>La frontera entrega el paquete a VNGW1.<\/li>\n<li>Este lo desmantela, observa la direcci\u00f3n del destinatario y ve que est\u00e1 disponible a trav\u00e9s del t\u00fanel Tunnel1 (MPLSoGRE o MPLSoUDP).<\/li>\n<li>En consecuencia, a\u00f1ade la etiqueta MPLS, el encabezado GRE\/UDP y una nueva IP, y env\u00eda a su ToR3 10.0.255.1.<br \/>\n La direcci\u00f3n de destino del t\u00fanel es la direcci\u00f3n IP del vRouter detr\u00e1s del cual se encuentra la VM objetivo: 10.0.0.2.<\/li>\n<li>La red subyacente entrega el paquete al vRouter correcto. <\/li>\n<li>El vRouter objetivo extrae GRE\/UDP, determina la interfaz seg\u00fan la etiqueta MPLS y env\u00eda el paquete IP puro a su interfaz TAP, vinculada con eth0 de la 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=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" 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 establece una relaci\u00f3n de vecindad BGP con el controlador SDN, del cual recibe toda la informaci\u00f3n de enrutamiento sobre los clientes: qu\u00e9 cliente est\u00e1 detr\u00e1s de qu\u00e9 direcci\u00f3n IP (vRouter) y con qu\u00e9 etiqueta MPLS se lo identifica.<\/p>\n<p>De manera similar, le informa al controlador SDN de la ruta por defecto con la etiqueta de este cliente, identific\u00e1ndose a s\u00ed mismo como el nexthop. Luego, esta ruta por defecto llega a los vRouters.<\/p>\n<p>En VNGW, generalmente se realiza la agregaci\u00f3n de rutas o la traducci\u00f3n NAT.<\/p>\n<p>Y en la otra direcci\u00f3n, en la sesi\u00f3n con los bordes o Route Reflectors, proporciona exactamente esta ruta agregada. Y de ellos recibe la ruta por defecto o Full-View, o algo m\u00e1s.<\/p>\n<p>En t\u00e9rminos de encapsulaci\u00f3n y intercambio de tr\u00e1fico, VNGW no se diferencia del vRouter. <br \/>\nSi ampliamos un poco el \u00e1rea, podemos a\u00f1adir otros dispositivos de red, como firewalls, granjas de limpieza o enriquecimiento de tr\u00e1fico, IPS, etc., al VNGW y a los vRouters.<\/p>\n<p>Y mediante la creaci\u00f3n secuencial de VRF y el anuncio correcto de las rutas, se puede hacer que el tr\u00e1fico circule como desee, lo que se llama Service Chaining.<\/p>\n<p>Es decir, aqu\u00ed tambi\u00e9n, el controlador SDN act\u00faa como Route Reflector entre VNGW, vRouters y otros dispositivos de red.<\/p>\n<p>Pero de hecho, el controlador tambi\u00e9n env\u00eda informaci\u00f3n sobre ACL y PBR (Routing Basado en Pol\u00edticas), forzando a flujos de tr\u00e1fico individuales a no seguir lo que indica la ruta.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/outside-cp.png\"><img decoding=\"async\" alt=\"Automatizaci\u00f3n Para Los M\u00e1s Peque\u00f1os. Parte uno (la que sigue a la cero). Virtualizaci\u00f3n de red\" src=\"\/wp-content\/uploads\/2019\/07\/dbba5a93d64edf56dc9c2b82311c5a11.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h1>Preguntas Frecuentes<\/h1>\n<p><b>\u00bfPor qu\u00e9 siempre mencionas GRE\/UDP?<\/b><\/p>\n<p>Bueno, en realidad, se podr\u00eda decir que es espec\u00edfico de Tungsten Fabric; se puede ignorar por completo.<\/p>\n<p>Pero si se considera, el propio TF, incluso siendo OpenContrail, soportaba ambas encapsulaciones: MPLS en GRE y MPLS en UDP. <\/p>\n<p>UDP es bueno porque en el Puerto de Origen de su encabezado se puede codificar f\u00e1cilmente una funci\u00f3n hash de las direcciones IP+Proto+Port originales, lo que permite hacer balanceo. <\/p>\n<p>En el caso de GRE, desafortunadamente, solo hay encabezados externos IP y GRE que son id\u00e9nticos para todo el tr\u00e1fico encapsulado, y no se puede hablar de balanceo, ya que pocos pueden mirar tan profundamente dentro del paquete.<\/p>\n<p>Durante un tiempo, los enrutadores, si sab\u00edan hacer t\u00faneles din\u00e1micos, solo pod\u00edan hacerlo en MPLSoGRE, y reci\u00e9n hace poco aprendieron a hacerlo en MPLSoUDP. Por lo tanto, siempre es necesario hacer una menci\u00f3n sobre la posibilidad de dos diferentes encapsulaciones.<\/p>\n<p>A modo de justicia, vale la pena mencionar que TF tambi\u00e9n soporta conectividad L2 mediante VXLAN.<\/p>\n<p>\n<b>Prometiste establecer paralelismos con OpenFlow.<\/b><br \/>\nRealmente se imponen. El vSwitch en el mismo OpenStack hace cosas bastante similares, utilizando VXLAN, el cual, por cierto, tambi\u00e9n tiene un encabezado UDP.<\/p>\n<p>En el Data Plane funcionan de manera bastante similar, pero el Control Plane difiere de manera significativa. Tungsten Fabric utiliza XMPP para la entrega de informaci\u00f3n sobre rutas al vRouter, mientras que en OpenStack se utiliza Openflow.<\/p>\n<p>\n<b>\u00bfPuedes contarme un poco m\u00e1s sobre vRouter?<\/b><br \/>\nSe divide en dos partes: vRouter Agent y vRouter Forwarder.<\/p>\n<p>El primero se ejecuta en el User Space del sistema operativo anfitri\u00f3n y se comunica con el controlador SDN, intercambiando informaci\u00f3n sobre rutas, VRF y ACL.<\/p>\n<p>El segundo implementa el Data Plane, generalmente en Kernel Space, pero tambi\u00e9n puede ejecutarse en SmartNICs, tarjetas de red con CPU y un chip de conmutaci\u00f3n programable separado, lo que permite descargar la carga del CPU de la m\u00e1quina host, haciendo que la red sea m\u00e1s r\u00e1pida y predecible. <\/p>\n<p>Tambi\u00e9n es posible un escenario donde vRouter sea una aplicaci\u00f3n DPDK en User Space. <\/p>\n<p>vRouter Agent transfiere configuraciones al vRouter Forwarder.<\/p>\n<p>\n<b>\u00bfQu\u00e9 es la Red Virtual?<\/b><br \/>\nMencion\u00e9 al principio del art\u00edculo sobre VRF, que cada inquilino se asocia a su VRF. Y aunque esto fue suficiente para una comprensi\u00f3n superficial del funcionamiento de la red de superposici\u00f3n, a la siguiente iteraci\u00f3n ya es necesario hacer aclaraciones.<\/p>\n<p>Generalmente, en los mecanismos de virtualizaci\u00f3n, la entidad Virtual Network (se puede considerar esto un nombre propio) se introduce por separado de los clientes\/tenants\/m\u00e1quinas virtuales, siendo una cosa completamente independiente. Y esta Virtual Network, a trav\u00e9s de interfaces, se puede conectar a un tenant, a otro, a dos, o a donde sea. As\u00ed es como se implementa, por ejemplo, el Service Chaining, cuando se necesita pasar el tr\u00e1fico a trav\u00e9s de ciertos nodos en el orden correcto, simplemente creando y vinculando las Virtual Networks en la secuencia correcta.<\/p>\n<p>Por lo tanto, no hay una correspondencia directa entre la Red Virtual y el inquilino.<\/p>\n<h1>Conclusi\u00f3n<\/h1>\n<p>\nEsta es una descripci\u00f3n bastante superficial del funcionamiento de la red virtual con un overlay desde el host y el controlador SDN. Pero cualquier plataforma de virtualizaci\u00f3n que tomes hoy funcionar\u00e1 de manera similar, ya sea VMWare, ACI, OpenStack, CloudStack, Tungsten Fabric o Juniper Contrail. Variar\u00e1n en los tipos de encapsulaciones y encabezados, as\u00ed como en los protocolos de entrega de informaci\u00f3n a los dispositivos de red finales, pero el principio de la red overlay programable que opera sobre una red subyacente relativamente simple y est\u00e1tica seguir\u00e1 siendo el mismo.<br \/>\nSe puede decir que en el \u00e1mbito de la creaci\u00f3n de nubes privadas, el SDN basado en redes overlay ha ganado en la actualidad. Sin embargo, esto no significa que Openflow no tenga un lugar en el mundo moderno\u2014se utiliza en OpenStack y en el mismo VMWare NSX, y, hasta donde s\u00e9, Google lo utiliza para configurar la red subyacente.<\/p>\n<p>M\u00e1s abajo he proporcionado enlaces a materiales m\u00e1s detallados si deseas investigar el tema m\u00e1s a fondo. <\/p>\n<p>\u00bfY qu\u00e9 pasa con nuestro Underlay? <\/p>\n<p>En general, no cambia nada. Ha permanecido igual todo el tiempo. Todo lo que necesita hacer en caso de un overlay desde el host es actualizar rutas y ARPs a medida que vRouter\/VNGW aparece y desaparece, y transferir paquetes entre ellos.<\/p>\n<p>Formulemos una lista de requisitos para la red Underlay.<\/p>\n<ol>\n<li>Ser compatible con alg\u00fan protocolo de enrutamiento, en nuestro caso\u2014BGP.<\/li>\n<li>Tener un ancho de banda amplio, preferiblemente sin sobre-suscripci\u00f3n, para no perder paquetes debido a la congesti\u00f3n.<\/li>\n<li>Soporte para ECMP\u2014una parte integral de la f\u00e1brica.<\/li>\n<li>Capacidad para garantizar QoS, incluyendo cosas complejas como ECN.<\/li>\n<li>Soporte para NETCONF\u2014una preparaci\u00f3n para el futuro.<\/li>\n<\/ol>\n<p>\nHe dedicado muy poco tiempo al funcionamiento de la red Underlay aqu\u00ed. Esto se debe a que en el resto de la serie me centrar\u00e9 precisamente en ella, mientras que el Overlay solo lo tocaremos de manera superficial.<\/p>\n<p>Obviamente, me estoy limitando al usar como ejemplo una red de centro de datos construida sobre la f\u00e1brica de ClouZ con enrutamiento IP puro y un overlay desde el host.<\/p>\n<p>Sin embargo, estoy seguro de que cualquier red que tenga un dise\u00f1o puede describirse en t\u00e9rminos formales y automatizarse. Simplemente, aqu\u00ed estoy persiguiendo el objetivo de entender los enfoques para la automatizaci\u00f3n, y no complicar las cosas al resolver el problema en un sentido general.<\/p>\n<p>Dentro del ADSM, Roman Gorge y yo planeamos publicar una edici\u00f3n separada sobre la virtualizaci\u00f3n de potencias de c\u00e1lculo y su interacci\u00f3n con la virtualizaci\u00f3n de la red. Mantente en contacto.<\/p>\n<p><\/p>\n<h1>Enlaces \u00fatiles<\/h1>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tungstenfabric.github.io\/website\/\">Arquitectura de Tungsten Fabric<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/Kr6WIYPts8I?t=3157\">acerca:cloud<\/a><\/noindex>. 6 horas sobre Yandex.Cloud, donde tambi\u00e9n se aborda la red virtual en TF.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.openvswitch.org\/en\/latest\/intro\/what-is-ovs\/\">\u00bfQu\u00e9 es Open vSwitch?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/344326\/\">Introducci\u00f3n a VxLAN<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc7348\">RFC 7348. Red Local Virtual eXtensible (VXLAN): Un marco para superponer redes virtualizadas de Capa 2 sobre redes de Capa 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\">Enfoque de Scaleway para la infraestructura VXLAN EVPN<\/a><\/noindex>. Aqu\u00ed se describe toda la red del centro de datos, incluyendo Underlay, Overlay, enfoques de multi-homing y gesti\u00f3n.<\/li>\n<\/ul>\n<p><\/p>\n<h5>Gracias<\/h5>\n<p><\/p>\n<ul>\n<li><noindex>Roman Gorg\u00e9<\/noindex> \u2014 ex presentador del podcast linkmeup, y ahora experto en plataformas en la nube. Por sus comentarios y correcciones. Adem\u00e1s, esperamos pronto su art\u00edculo m\u00e1s profundo sobre virtualizaci\u00f3n.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.alexander-shalimov.com\">Alexander Shalimov<\/a><\/noindex> \u2014 mi colega y experto en el desarrollo de redes virtuales. Por sus comentarios y correcciones.<\/li>\n<li><noindex>Valentin Sinitsin<\/noindex> \u2014 mi colega y experto en Tungsten Fabric. Por sus comentarios y correcciones.<\/li>\n<li><noindex>Artyom Chernobay<\/noindex> \u2014 ilustrador de linkmeup. Por su KDPV.<\/li>\n<li>Alexander Limonov. Por el meme \u00abautomato\u00bb.<\/li>\n<\/ul>\n<p>Fuente: <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.2 - 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\/es\/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.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\udd47Automatizaci\u00f3n para los M\u00e1s Peque\u00f1os. Parte uno (que sigue a la cero). Virtualizaci\u00f3n de red | ProHoster","description":"En el episodio anterior describ\u00ed el marco de automatizaci\u00f3n de redes.","canonical_url":"https:\/\/prohoster.info\/es\/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":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/35973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=35973"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/35973\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/26892"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=35973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=35973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=35973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}