{"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\/pt\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti","title":{"rendered":"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Em <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/453516\/\">no epis\u00f3dio anterior<\/a><\/noindex> eu descrevi a estrutura de automa\u00e7\u00e3o de rede. Segundo o feedback de alguns, at\u00e9 mesmo essa primeira abordagem ao problema j\u00e1 esclareceu algumas quest\u00f5es. E isso me deixa muito feliz, porque nosso objetivo neste ciclo n\u00e3o \u00e9 rechear o Ansible com scripts em Python, mas construir um sistema.<\/p>\n<p>Essa mesma estrutura define a ordem em que lidaremos com a quest\u00e3o.<br \/>\nE a virtualiza\u00e7\u00e3o da rede, que se concentra neste epis\u00f3dio, n\u00e3o se encaixa muito na tem\u00e1tica do ADSM, onde analisamos automa\u00e7\u00e3o. <\/p>\n<p>Mas vamos olh\u00e1-la sob uma nova perspectiva.<\/p>\n<p>J\u00e1 h\u00e1 muito tempo que uma \u00fanica rede \u00e9 utilizada por v\u00e1rios servi\u00e7os. No caso de um operador de telecomunica\u00e7\u00f5es, isso inclui 2G, 3G, LTE, banda larga e B2B, por exemplo. No caso de um data center: conectividade para diferentes clientes, Internet, armazenamento em bloco, armazenamento de objetos.<\/p>\n<p>E todos os servi\u00e7os exigem isolamento uns dos outros. Assim surgiram as redes sobrepostas.<\/p>\n<p>E todos os servi\u00e7os n\u00e3o querem esperar que uma pessoa os configure manualmente. Assim surgiram os orquestradores e SDN.<\/p>\n<p>A primeira abordagem para automa\u00e7\u00e3o sistem\u00e1tica da rede, ou melhor, de sua parte, j\u00e1 foi tentada h\u00e1 muito tempo e implementada em diversos lugares: VMWare, OpenStack, Google Compute Cloud, AWS, Facebook.<\/p>\n<p>\u00c9 com isso que vamos trabalhar hoje. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/kdpv.jpg\"><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" 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>Conte\u00fado<\/h1>\n<p><\/p>\n<ul>\n<li><b>Raz\u00f5es<\/b><\/li>\n<li><b>Terminologia<\/b><\/li>\n<li><b>Underlay \u2014 rede f\u00edsica<\/b><\/li>\n<li><b>Overlay \u2014 rede virtual<\/b>\n<ul>\n<li>Overlay com ToR'a<\/li>\n<li>Overlay com o host<\/li>\n<li>Tomando como exemplo o Tungsten Fabric\n<ul>\n<li>Comunica\u00e7\u00e3o dentro de uma \u00fanica m\u00e1quina f\u00edsica<\/li>\n<li>Comunica\u00e7\u00e3o entre VMs localizadas em diferentes m\u00e1quinas f\u00edsicas<\/li>\n<li>Sa\u00edda para o mundo exterior<\/li>\n<\/ul>\n<p>\n <\/li>\n<\/ul>\n<p>\n <\/li>\n<li><b>FAQ<\/b><\/li>\n<li><b>Conclus\u00e3o<\/b><\/li>\n<li><b>Links \u00dateis<\/b><\/li>\n<\/ul>\n<p><\/p>\n<h1>Raz\u00f5es<\/h1>\n<p>\nE j\u00e1 que estamos falando sobre isso, vale a pena mencionar as premissas para a virtualiza\u00e7\u00e3o da rede. Na verdade, esse processo n\u00e3o come\u00e7ou ontem. <\/p>\n<p>Provavelmente, voc\u00ea j\u00e1 ouviu v\u00e1rias vezes que a rede sempre foi a parte mais inerte de qualquer sistema. E isso \u00e9 verdade em todos os sentidos. A rede \u00e9 a base sobre a qual tudo se apoia, e realizar altera\u00e7\u00f5es nela \u00e9 bastante dif\u00edcil \u2014 os servi\u00e7os n\u00e3o toleram quando a rede cai. Muitas vezes, a retirada de um \u00fanico n\u00f3 pode derrubar muitas aplica\u00e7\u00f5es e afetar muitos clientes. Em parte, \u00e9 por isso que a equipe de rede pode resistir a quaisquer mudan\u00e7as \u2014 porque agora funciona de alguma forma (<i>podemos at\u00e9 n\u00e3o saber como<\/i>), mas agora precisamos configurar algo novo, e n\u00e3o se sabe como isso afetar\u00e1 a rede.<\/p>\n<p>Para n\u00e3o esperar que os provedores de rede configurem o VLAN e para n\u00e3o precisar definir todos os servi\u00e7os em cada n\u00f3 da rede, as pessoas inventaram o uso de sobreposi\u00e7\u00f5es \u2014 redes sobrepostas \u2014 das quais existe uma grande variedade: GRE, IPinIP, MPLS, MPLS L2\/L3VPN, VXLAN, GENEVE, MPLSoverUDP, MPLSoverGRE, etc.<\/p>\n<p>Sua atratividade reside em duas coisas simples:<\/p>\n<ul>\n<li>Ajustam-se apenas os n\u00f3s finais \u2014 os n\u00f3s de tr\u00e2nsito n\u00e3o precisam ser tocados. Isso acelera significativamente o processo e, \u00e0s vezes, permite at\u00e9 mesmo excluir o departamento de infraestrutura de rede do processo de introdu\u00e7\u00e3o de novos servi\u00e7os.<\/li>\n<li>A carga est\u00e1 oculta profundamente dentro dos cabe\u00e7alhos \u2014 os n\u00f3s de tr\u00e2nsito n\u00e3o precisam saber nada sobre ela, sobre a endere\u00e7amento nos hosts, as rotas da rede sobreposta. Isso significa que \u00e9 necess\u00e1rio armazenar menos informa\u00e7\u00f5es nas tabelas, o que permite o uso de dispositivos mais simples e baratos.<\/li>\n<\/ul>\n<p>\nNeste n\u00famero n\u00e3o t\u00e3o completo, n\u00e3o pretendo discutir todas as tecnologias poss\u00edveis, mas sim descrever a estrutura do funcionamento das redes sobrepostas em Data Centers.<\/p>\n<p>Toda a s\u00e9rie descrever\u00e1 um data center composto por fileiras de racks id\u00eanticos, nos quais est\u00e1 instalado o mesmo equipamento de servidor. <\/p>\n<p>Nesses equipamentos, s\u00e3o iniciadas m\u00e1quinas virtuais \/ cont\u00eaineres \/ serverless que implementam servi\u00e7os.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/a6863eb2804a298304d1e93daecf90d9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1>Terminologia<\/h1>\n<p>\nNo ciclo <b>servidor<\/b> eu chamarei de programa que implementa a parte do servidor da comunica\u00e7\u00e3o cliente-servidor.<\/p>\n<p>As m\u00e1quinas f\u00edsicas nos racks chamaremos de servidores <b>n\u00e3o<\/b> .<\/p>\n<p><b>A m\u00e1quina f\u00edsica<\/b> \u00e9 um computador x86 instalado em um rack. O termo mais comumente utilizado \u00e9 <b>host<\/b>. Assim vamos cham\u00e1-la de &#171;<b>m\u00e1quina<\/b>&#187; ou <b>host<\/b>.<\/p>\n<p><b>Hipervisor<\/b> \u00e9 um aplicativo executado em uma m\u00e1quina f\u00edsica que emula os recursos f\u00edsicos nos quais as M\u00e1quinas Virtuais s\u00e3o iniciadas. \u00c0s vezes, na literatura e na rede, a palavra \"hipervisor\" \u00e9 usada como sin\u00f4nimo de \"host\".<\/p>\n<p><b>M\u00e1quina virtual<\/b> \u2014 um sistema operacional executado em uma m\u00e1quina f\u00edsica sobre um hipervisor. Para n\u00f3s, dentro deste ciclo, n\u00e3o \u00e9 t\u00e3o importante se \u00e9 realmente uma m\u00e1quina virtual ou apenas um cont\u00eainer. Vamos chamar isso de &#171;<b>MV<\/b>\u00ab<\/p>\n<p><b>Inquilino<\/b> \u00e9 um conceito amplo que eu definirei neste artigo como um servi\u00e7o separado ou um cliente separado.<\/p>\n<p><b>Multi-inquilino<\/b> ou multi-tenant \u2014 o uso do mesmo aplicativo por diferentes clientes \/ servi\u00e7os. Nesse caso, a segrega\u00e7\u00e3o dos clientes entre si \u00e9 alcan\u00e7ada gra\u00e7as \u00e0 arquitetura do aplicativo, e n\u00e3o a inst\u00e2ncias separadamente executadas.<\/p>\n<p><b>ToR \u2014 Switch Top of the Rack<\/b> \u2014 switch instalado no rack, ao qual est\u00e3o conectadas todas as m\u00e1quinas f\u00edsicas.<\/p>\n<blockquote><p> Al\u00e9m da topologia ToR, diferentes provedores praticam End of Row (EoR) ou Middle of Row (embora este \u00faltimo seja uma raridade desprez\u00edvel e nunca encontrei as siglas MoR).\n<\/p><\/blockquote>\n<p> <b>Rede subjacente<\/b> ou rede subjacente ou underlay \u2014 infraestrutura f\u00edsica de rede: switches, roteadores, cabos.<\/p>\n<p><b>Rede sobreposta<\/b> ou rede sobreposta ou overlay \u2014 rede virtual de t\u00faneis que opera sobre a f\u00edsica.<\/p>\n<p><b>F\u00e1brica L3 ou F\u00e1brica IP<\/b> \u2014 uma inven\u00e7\u00e3o impressionante da humanidade, permitindo que nas entrevistas n\u00e3o se repita STP e n\u00e3o se aprenda TRILL. Um conceito no qual toda a rede at\u00e9 o n\u00edvel de acesso \u00e9 exclusivamente L3, sem VLAN e, portanto, enormes dom\u00ednios de broadcast estendidos. O porqu\u00ea do termo \"f\u00e1brica\" ser\u00e1 esclarecido na pr\u00f3xima parte.<\/p>\n<p><b>SDN<\/b> \u2014 Rede Definida por Software. Dificilmente precisa de apresenta\u00e7\u00e3o. Uma abordagem para gerenciar a rede em que as altera\u00e7\u00f5es na rede s\u00e3o feitas n\u00e3o por uma pessoa, mas por um programa. Geralmente significa deslocar o Control Plane para fora dos dispositivos de rede finais para um controlador.<\/p>\n<p><b>NFV<\/b> \u2014 Virtualiza\u00e7\u00e3o de Fun\u00e7\u00f5es de Rede \u2014 virtualiza\u00e7\u00e3o de dispositivos de rede, sugerindo que parte das fun\u00e7\u00f5es da rede pode ser executada na forma de m\u00e1quinas virtuais ou cont\u00eaineres para acelerar a implementa\u00e7\u00e3o de novos servi\u00e7os, organiza\u00e7\u00e3o de Service Chaining e escalabilidade horizontal mais simples.<\/p>\n<p><b>VNF<\/b> \u2014 Fun\u00e7\u00e3o Virtual de Rede. Um dispositivo virtual espec\u00edfico: roteador, switch, firewall, NAT, IPS\/IDS, etc.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/971b6a28a9caab5f3a7067ce4d25749c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<blockquote><p> Estou intencionalmente simplificando a descri\u00e7\u00e3o para uma implementa\u00e7\u00e3o espec\u00edfica, para n\u00e3o confundir muito o leitor. Para uma leitura mais ponderada, remeto \u00e0 se\u00e7\u00e3o <noindex><a rel=\"nofollow\" href=\"#LINKS\">Links<\/a><\/noindex>. Al\u00e9m disso, Roma Gorge, que critica este artigo por imprecis\u00f5es, promete escrever uma edi\u00e7\u00e3o separada sobre as tecnologias de virtualiza\u00e7\u00e3o de servidores e redes, mais aprofundada e atenta aos detalhes.<\/p><\/blockquote>\n<p>A maioria das redes hoje pode ser claramente dividida em duas partes: <\/p>\n<p><b>Underlay<\/b> \u2014 rede f\u00edsica com configura\u00e7\u00e3o est\u00e1vel.<br \/>\n<b>Overlay<\/b> \u2014 abstra\u00e7\u00e3o sobre o Underlay para isolamento de locat\u00e1rios. <\/p>\n<p>Isso \u00e9 verdade tanto para o caso de DC (que iremos abordar neste artigo), quanto para ISP (que n\u00e3o iremos abordar, pois j\u00e1 foi mencionado em <noindex><a rel=\"nofollow\" href=\"https:\/\/linkmeup.ru\/sdsm\">SDN<\/a><\/noindex>). Com redes corporativas, \u00e9 claro que a situa\u00e7\u00e3o \u00e9 um pouco diferente. <\/p>\n<p>Imagem com foco na rede:<\/p>\n<p><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/7b7dabc6d9f3b87c598346bf9195d568.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h1>Underlay<\/h1>\n<p>\nUnderlay \u00e9 uma rede f\u00edsica: switches de hardware e cabos. Os dispositivos no underlay sabem como chegar \u00e0s m\u00e1quinas f\u00edsicas.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/776a77a3821fe79a7323947e0bdf67e8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBaseia-se em protocolos e tecnologias padr\u00e3o. N\u00e3o menos importante, porque dispositivos de hardware ainda operam com software propriet\u00e1rio, o que impede a programa\u00e7\u00e3o de chips e a implementa\u00e7\u00e3o de seus pr\u00f3prios protocolos, necessitando assim da compatibilidade com outros fornecedores e da padroniza\u00e7\u00e3o.<\/p>\n<blockquote><p>J\u00e1 uma empresa como o Google pode se permitir desenvolver seus pr\u00f3prios switches e se afastar dos protocolos comuns. Mas a LAN_DC n\u00e3o \u00e9 o Google.\n<\/p><\/blockquote>\n<p> Underlay muda relativamente pouco, pois sua fun\u00e7\u00e3o \u00e9 fornecer conectividade IP b\u00e1sica entre m\u00e1quinas f\u00edsicas. O underlay nada sabe sobre os servi\u00e7os, clientes ou inquilinos que s\u00e3o executados sobre ele \u2014 ele apenas precisa entregar pacotes de uma m\u00e1quina para outra.<br \/>\nUm exemplo de Underlay pode 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>\nA rede Underlay \u00e9 configurada de forma cl\u00e1ssica: CLI\/GUUI\/NETCONF.<\/p>\n<p>Manual, por scripts, ferramentas propriet\u00e1rias.<\/p>\n<p>Mais detalhes sobre o underlay ser\u00e3o abordados no pr\u00f3ximo artigo da s\u00e9rie.<\/p>\n<p><\/p>\n<h1>Overlay<\/h1>\n<p>\nOverlay \u00e9 uma rede virtual de t\u00faneis estendida sobre o underlay, permitindo que VMs de um \u00fanico cliente se comuniquem entre si, ao mesmo tempo que garantem isolamento de outros clientes.<\/p>\n<p>Os dados do cliente s\u00e3o encapsulados em cabe\u00e7alhos de tunelamento para transmiss\u00e3o atrav\u00e9s da rede compartilhada.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/3060bc4913c55c21b785083fbe0b603b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAssim, VMs de um cliente (de um \u00fanico servi\u00e7o) podem se comunicar entre si via Overlay, mesmo sem perceber o caminho real que o pacote percorre. <\/p>\n<p>Um exemplo de Overlay pode ser, como mencionei 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>\nA rede Overlay \u00e9 geralmente configurada e mantida atrav\u00e9s de um controlador central. \u00c9 dele que a configura\u00e7\u00e3o, Control Plane e Data Plane s\u00e3o entregues aos dispositivos respons\u00e1veis pela rotea\u00e7\u00e3o e encapsulamento do tr\u00e1fego dos clientes. Um pouco <noindex><a rel=\"nofollow\" href=\"#TF\">mais abaixo<\/a><\/noindex> vamos entender isso atrav\u00e9s de exemplos.<\/p>\n<p><b>Sim, isso \u00e9 SDN em sua ess\u00eancia. <\/b><\/p>\n<p>Existem duas abordagens fundamentalmente diferentes para a organiza\u00e7\u00e3o de uma rede Overlay:<\/p>\n<ol>\n<li>Overlay com ToR'a<\/li>\n<li>Overlay com o host<\/li>\n<\/ol>\n<h2>Overlay com ToR'a<\/h2>\n<p>\nOverlay pode come\u00e7ar no switch de acesso (ToR), que est\u00e1 no rack, como ocorre, por exemplo, no caso de uma f\u00e1brica VXLAN. <\/p>\n<p>Este \u00e9 um mecanismo testado ao longo do tempo em redes de ISP e todos os fornecedores de equipamentos de rede o suportam.<\/p>\n<p>No entanto, nesse caso, o switch ToR deve ser capaz de separar diferentes servi\u00e7os, e o administrador de rede deve, de certa forma, colaborar com os administradores de m\u00e1quinas virtuais e fazer altera\u00e7\u00f5es (mesmo que automaticamente) na configura\u00e7\u00e3o dos dispositivos.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/9a5fe4d4a0cbb7e5c3bbac82527c6a6a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAqui vou direcionar o leitor para o artigo sobre <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/344326\/\">VxLAN no Habr<\/a><\/noindex> nosso velho amigo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/bormoglotx\/\">@bormoglotx<\/a><\/noindex>.<br \/>\nNesta <noindex><a rel=\"nofollow\" href=\"https:\/\/www.enog.org\/wp-content\/uploads\/presentations\/enog-16\/18-Scaleway-P14-fabric-ENOG16.pdf\">apresenta\u00e7\u00e3o com a ENOG<\/a><\/noindex> s\u00e3o descritas detalhadamente as abordagens para a constru\u00e7\u00e3o de uma rede de DC com uma f\u00e1brica EVPN VXLAN. <\/p>\n<p>E para uma imers\u00e3o mais completa na realidade, voc\u00ea pode ler o livro da 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> Devo observar que VXLAN \u00e9 apenas um m\u00e9todo de encapsulamento e a termina\u00e7\u00e3o dos t\u00faneis pode ocorrer n\u00e3o no ToR, mas no host, como acontece no caso do OpenStack, por exemplo.<\/p>\n<p>No entanto, a fabric VXLAN, onde o overlay come\u00e7a no ToR, \u00e9 um dos designs consolidados de redes overlay.\n<\/p><\/blockquote>\n<p><\/p>\n<h2>Overlay com o host<\/h2>\n<p>\nOutra abordagem \u00e9 iniciar e terminar t\u00faneis nos hosts finais.<br \/>\nNeste caso, a rede (Underlay) permanece o mais simples e est\u00e1tica poss\u00edvel.<br \/>\nE o host realiza todas as encapsula\u00e7\u00f5es necess\u00e1rias.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/c9c2971369d1b3e5f026d6844afeb67f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPara isso, \u00e9 imprescind\u00edvel executar um aplicativo especial nos hosts, mas vale a pena. <\/p>\n<p>Primeiro, iniciar um cliente em uma m\u00e1quina Linux \u00e9 mais f\u00e1cil ou, digamos, \u2014 totalmente poss\u00edvel \u2014 enquanto no switch, \u00e9 prov\u00e1vel que voc\u00ea tenha que recorrer a solu\u00e7\u00f5es SDN propriet\u00e1rias, o que vai contra a ideia de multi-vendor.<\/p>\n<p>Em segundo lugar, o switch ToR pode ser mantido o mais simples poss\u00edvel, tanto do ponto de vista do Control Plane quanto do Data Plane. De fato \u2014 com o controlador SDN, ele n\u00e3o precisa se comunicar e armazenar redes\/ARP de todos os clientes conectados \u2014 basta saber o endere\u00e7o IP da m\u00e1quina f\u00edsica, o que facilita a tabela de comuta\u00e7\u00e3o\/roteamento.<\/p>\n<p>\nNa s\u00e9rie ADSM, escolho a abordagem de overlay a partir do host \u2014 a partir de agora, falaremos apenas sobre isso e n\u00e3o voltaremos \u00e0 f\u00e1brica VXLAN.<\/p>\n<p>\n\u00c9 mais f\u00e1cil considerar isso com exemplos. E como exemplo, vamos pegar a plataforma SDN OpenSource OpenContrail, atualmente conhecida como <noindex><a rel=\"nofollow\" href=\"https:\/\/tungsten.io\">Tungsten Fabric<\/a><\/noindex>.<\/p>\n<blockquote><p> No final do artigo, apresentarei algumas reflex\u00f5es sobre a analogia com OpenFlow e OpenvSwitch.\n<\/p><\/blockquote>\n<p><\/p>\n<h2>Tomando como exemplo o Tungsten Fabric<\/h2>\n<p>\nEm cada m\u00e1quina f\u00edsica, existe <b>vRouter<\/b> \u2014 um roteador virtual que conhece as redes conectadas a ele e a quais clientes elas pertencem \u2014 na ess\u00eancia \u2014 um roteador PE. Para cada cliente, ele mant\u00e9m uma tabela de roteamento isolada (leia-se VRF). E o pr\u00f3prio vRouter realiza o tunelamento Overlay.<\/p>\n<p>Um pouco mais sobre o vRouter \u2014 no final do artigo.<\/p>\n<p>Cada VM, localizada no hipervisor, se conecta ao vRouter daquela m\u00e1quina atrav\u00e9s de <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/TUN\/TAP\">interface TAP<\/a><\/noindex>.<\/p>\n<p><b>TAP<\/b> \u2014 Terminal Access Point \u2014 uma interface virtual no n\u00facleo do Linux, que permite intera\u00e7\u00f5es de rede.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/a6fa1b4370ba4e787303ae647a28f5ed.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSe houver v\u00e1rias redes atr\u00e1s do vRouter, para cada uma delas \u00e9 criado uma interface virtual, \u00e0 qual \u00e9 atribu\u00eddo um endere\u00e7o IP \u2014 que ser\u00e1 o endere\u00e7o do gateway padr\u00e3o.<br \/>\nTodas as redes de um cliente s\u00e3o colocadas em um <b>VRF<\/b> (uma tabela), as diferentes \u2014 em tabelas distintas.<br \/>\n<i>Fa\u00e7o aqui uma ressalva de que nem tudo \u00e9 t\u00e3o simples, e encaminho o leitor curioso para o final do artigo.<\/i>.<\/p>\n<p>Para que os vRouters possam se comunicar entre si, e consequentemente, as VMs localizadas atr\u00e1s deles, eles trocam informa\u00e7\u00f5es de rota atrav\u00e9s de <b>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=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/8b133e10582dbde9c0670ad98c1840de.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Para sair para o mundo externo, existe um ponto de sa\u00edda da matriz \u2014 o gateway da rede virtual <b>VNGW<\/b> \u2014 Virtual Network GateWay (<i>termo meu<\/i>).<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/vngw.png\"><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/9ac4d084d9b58b7ed1bc2c0ed6d06059.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>\nAgora vejamos exemplos de comunica\u00e7\u00f5es \u2014 e ficar\u00e1 claro.<\/p>\n<p><\/p>\n<h3>Comunica\u00e7\u00e3o dentro de uma \u00fanica m\u00e1quina f\u00edsica<\/h3>\n<p>\nVM0 deseja enviar um pacote para a VM2. Suponhamos por enquanto que estas sejam VMs de um \u00fanico cliente.<\/p>\n<h4>Data Plane<\/h4>\n<p><\/p>\n<ol>\n<li>A VM-0 possui uma rota padr\u00e3o para sua interface eth0. O pacote \u00e9 enviado para l\u00e1.<br \/>\n Esta interface eth0 est\u00e1, na verdade, conectada virtualmente ao roteador virtual vRouter atrav\u00e9s da interface TAP tap0.<\/li>\n<li>O vRouter analisa em qual interface o pacote chegou, ou seja, a qual cliente (VRF) ele pertence, e compara o endere\u00e7o do destinat\u00e1rio com a tabela de roteamento desse cliente.<\/li>\n<li>Ao descobrir que o destinat\u00e1rio est\u00e1 na mesma m\u00e1quina em outra porta, o vRouter simplesmente envia o pacote para ele sem cabe\u00e7alhos adicionais \u2014 para isso, j\u00e1 existe uma entrada ARP no vRouter. <\/li>\n<\/ol>\n<p>\n<img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/a42da3f48a3f538eb92c1908d9d66921.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nO pacote, neste caso, n\u00e3o entra na rede f\u00edsica \u2014 ele \u00e9 direcionado internamente dentro do vRouter.<\/p>\n<p><\/p>\n<h4>Control Plane<\/h4>\n<p>\nO hipervisor, ao iniciar uma m\u00e1quina virtual, informa a ela:<\/p>\n<ul>\n<li>Seu pr\u00f3prio endere\u00e7o IP.<\/li>\n<li>A rota padr\u00e3o \u00e9 atrav\u00e9s do endere\u00e7o IP do vRouter nesta rede.<\/li>\n<\/ul>\n<p>\nO vRouter \u00e9 informado atrav\u00e9s de uma API especial pelo hipervisor:<\/p>\n<ul>\n<li>Que \u00e9 necess\u00e1rio criar uma interface virtual.<\/li>\n<li>Qual Virtual Network ela (a VM) precisa criar.<\/li>\n<li>A qual VRF vincular sua (VN).<\/li>\n<li>O registro ARP est\u00e1tico para esta VM \u2014 qual interface possui seu endere\u00e7o IP e a qual endere\u00e7o MAC ele est\u00e1 associado.<\/li>\n<\/ul>\n<p><\/p>\n<blockquote><p> E mais uma vez, o procedimento real de intera\u00e7\u00e3o \u00e9 simplificado em prol da compreens\u00e3o do conceito.\n<\/p><\/blockquote>\n<p> <img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/593d7ad41782e882a88732b475bf91cb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAssim, todas as VMs de um cliente nesta m\u00e1quina vRouter s\u00e3o vistas como redes diretamente conectadas e podem rote\u00e1-las entre si.<\/p>\n<p>\nAs VMs VM0 e VM1 pertencem a clientes diferentes e, consequentemente, est\u00e3o em tabelas diferentes do vRouter.<\/p>\n<p>Se poder\u00e3o se comunicar diretamente depende das configura\u00e7\u00f5es do vRouter e do design da rede.<br \/>\nPor exemplo, se ambas as VMs dos clientes usam endere\u00e7os p\u00fablicos, ou se o NAT ocorre no pr\u00f3prio vRouter, \u00e9 poss\u00edvel fazer uma roteamento direto para o vRouter.<\/p>\n<p>Na situa\u00e7\u00e3o oposta, \u00e9 poss\u00edvel a sobreposi\u00e7\u00e3o de espa\u00e7os de endere\u00e7o \u2014 \u00e9 necess\u00e1rio passar por um servidor NAT para obter um endere\u00e7o p\u00fablico \u2014 isso se assemelha \u00e0 sa\u00edda para redes externas, conforme mencionado abaixo.<\/p>\n<h3>Comunica\u00e7\u00e3o entre VMs localizadas em diferentes m\u00e1quinas f\u00edsicas<\/h3>\n<p><\/p>\n<h4>Data Plane<\/h4>\n<p><\/p>\n<ol>\n<li>O in\u00edcio \u00e9 exatamente o mesmo: VM-0 envia um pacote para o destinat\u00e1rio VM-7 (172.17.3.2) usando seu padr\u00e3o.<\/li>\n<li>O vRouter o recebe e, desta vez, v\u00ea que o destinat\u00e1rio est\u00e1 em outra m\u00e1quina e acess\u00edvel atrav\u00e9s do t\u00fanel Tunnel0.<\/li>\n<li>Primeiro, ele adiciona uma etiqueta MPLS, identificando a interface remota, para que do outro lado o vRouter possa determinar onde colocar este pacote sem ciclos adicionais.\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/inter-hv-dp.png\"><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/1e159049376e2bf458b8c6cb5878cc17.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex>\n <\/li>\n<li>O Tunnel0 tem origem 10.0.0.2 e destinat\u00e1rio: 10.0.1.2.<br \/>\n O vRouter adiciona cabe\u00e7alhos GRE (ou UDP) e um novo IP ao pacote original.<\/li>\n<li>Na tabela de roteamento, o vRouter tem uma rota padr\u00e3o atrav\u00e9s do endere\u00e7o ToR1 10.0.0.1. E \u00e9 para l\u00e1 que ele o envia.\n<p> <img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/8cb98a8ec43d202259acf6a1fcaeb3ee.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n \n <\/li>\n<li>ToR1, como parte da rede Underlay, sabe (por exemplo, atrav\u00e9s do OSPF) como chegar a 10.0.1.2 e envia o pacote pela rota. Observe que aqui ocorre ECMP. Na ilustra\u00e7\u00e3o, h\u00e1 dois next hops, e diferentes fluxos ser\u00e3o alocados a eles com base no hash. Em uma verdadeira f\u00e1brica, pode haver mais de 4 next hops.\n<p>Nesse processo, n\u00e3o \u00e9 necess\u00e1rio saber o que est\u00e1 sob o cabe\u00e7alho IP externo. Ou seja, na verdade, sob o IP pode haver um empilhamento de IPv6 sobre MPLS sobre Ethernet sobre MPLS sobre GRE e assim por diante.<\/li>\n<li>Assim, do lado receptor, o vRouter remove o GRE e pelo r\u00f3tulo MPLS entende para qual interface este pacote deve ser enviado, desembrulha-o e o envia em sua forma original ao destinat\u00e1rio.<\/li>\n<\/ol>\n<h4>Control Plane<\/h4>\n<p>\nAo iniciar a m\u00e1quina, tudo o que foi descrito acima ocorre.<\/p>\n<p>E mais o seguinte:<\/p>\n<ul>\n<li>Para cada cliente, o vRouter atribui uma etiqueta MPLS. Esta \u00e9 uma etiqueta de servi\u00e7o L3VPN, pela qual os clientes ser\u00e3o separados dentro de uma \u00fanica m\u00e1quina f\u00edsica.<br \/>\n<blockquote><p> Na verdade, a etiqueta MPLS \u00e9 sempre atribu\u00edda pelo vRouter \u2014 pois n\u00e3o se sabe antecipadamente que a m\u00e1quina ir\u00e1 interagir apenas com outras m\u00e1quinas por tr\u00e1s do mesmo vRouter e isso provavelmente n\u00e3o \u00e9 o caso. \n <\/p><\/blockquote>\n<\/li>\n<li>O vRouter estabelece uma conex\u00e3o com o controlador SDN atrav\u00e9s do protocolo BGP (ou um semelhante \u2014 no caso do TF, \u00e9 XMPP 0_o).<\/li>\n<li>Atrav\u00e9s dessa sess\u00e3o, o vRouter informa ao controlador SDN as rotas para as redes conectadas:\n<ul>\n<li>Endere\u00e7o da rede<\/li>\n<li>M\u00e9todo de encapsula\u00e7\u00e3o (MPLSoGRE, MPLSoUDP, VXLAN)<\/li>\n<li>Etiqueta MPLS do cliente<\/li>\n<li>Seu endere\u00e7o IP como nexthop<\/li>\n<\/ul>\n<p>\n <\/li>\n<li>O controlador SDN recebe essas rotas de todos os vRouters conectados e as reflete para outros. Ou seja, ele atua como Route Reflector.<\/li>\n<\/ul>\n<p>\nO mesmo acontece na dire\u00e7\u00e3o oposta.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/inter-hv-cp.png\"><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/feef9181133f3a50a5cb21aa7ba16dc0.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>A Overlay pode mudar a qualquer minuto. \u00c9 assim que isso acontece em nuvens p\u00fablicas, quando os clientes frequentemente ligam e desligam suas m\u00e1quinas virtuais.<\/p>\n<p>O controlador central assume todas as complexidades de manter a configura\u00e7\u00e3o e controlar as tabelas de comuta\u00e7\u00e3o\/roteamento no vRouter.<\/p>\n<p>Em termos simples, o controlador se conecta a todos os vRouters via BGP (ou um protocolo semelhante) e simplesmente transmite informa\u00e7\u00f5es de rota. O BGP, por exemplo, j\u00e1 possui uma Address-Family para transmitir o m\u00e9todo de encapsulamento. <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc4023\">MPLS-in-GRE<\/a><\/noindex> ou <noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc7510\">MPLS-in-UDP<\/a><\/noindex>.<\/p>\n<p>Nesse processo, a configura\u00e7\u00e3o da rede Underlay n\u00e3o muda de forma alguma, que por sinal \u00e9 muito mais dif\u00edcil de automatizar, e \u00e9 mais f\u00e1cil quebr\u00e1-la com um movimento desajeitado.<\/p>\n<h3>Sa\u00edda para o mundo exterior<\/h3>\n<p>\nEm algum momento, a simula\u00e7\u00e3o deve terminar, e \u00e9 necess\u00e1rio sair do mundo virtual para o real. E \u00e9 necess\u00e1rio um gateway de telefone.<\/p>\n<p>Existem duas abordagens:<\/p>\n<ol>\n<li>Um roteador de hardware \u00e9 instalado.<\/li>\n<li>Um appliance que realiza fun\u00e7\u00f5es de roteador \u00e9 iniciado (sim, ap\u00f3s o SDN, tamb\u00e9m encontramos o VNF). Vamos cham\u00e1-lo de gateway virtual.<\/li>\n<\/ol>\n<p><\/p>\n<blockquote><p> A vantagem da segunda abordagem \u00e9 a escalabilidade horizontal barata \u2014 se falta pot\u00eancia, inicia-se outra m\u00e1quina virtual com um gateway. Em qualquer m\u00e1quina f\u00edsica, sem a necessidade de procurar por racks livres, unidades, fornecimento de energia, comprar o hardware, transport\u00e1-lo, instal\u00e1-lo, conectar, configurar e depois ainda ter que trocar componentes com falhas.<\/p>\n<p>No entanto, as desvantagens do gateway virtual s\u00e3o que a unidade do roteador f\u00edsico \u00e9, sem d\u00favida, muito mais poderosa do que uma virtual com m\u00faltiplos n\u00facleos, e seu software, ajustado \u00e0 sua pr\u00f3pria base de hardware, funciona de maneira significativamente mais est\u00e1vel (<i>n\u00e3o<\/i>). \u00c9 dif\u00edcil negar o fato de que o complexo de hardware e software simplesmente funciona, exigindo apenas configura\u00e7\u00e3o, enquanto a inicializa\u00e7\u00e3o e manuten\u00e7\u00e3o do gateway virtual exigem engenheiros experientes.\n<\/p><\/blockquote>\n<p> De uma perna, o gateway olha para a rede virtual Overlay, como uma M\u00e1quina Virtual comum, e pode interagir com todas as outras VMs. Ao mesmo tempo, pode terminar redes de todos os clientes e, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, realizar o roteamento entre elas.<\/p>\n<p>Com a outra perna, o gateway observa a rede troncal e sabe como acessar a Internet.<\/p>\n<p><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/552fa0428ff8dd3aed76091a86a72109.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h4>Data Plane<\/h4>\n<p>\nOu seja, o processo \u00e9 assim: <\/p>\n<ol>\n<li>VM-0, tendo o padr\u00e3o ainda no vRouter, envia um pacote com um destinat\u00e1rio no mundo externo (185.147.83.177) para a interface eth0.<\/li>\n<li>vRouter recebe esse pacote e faz uma busca do endere\u00e7o de destino na tabela de roteamento \u2014 encontra a rota padr\u00e3o pelo gateway VNGW1 atrav\u00e9s do Tunnel 1. <br \/>\n Ele tamb\u00e9m v\u00ea que este \u00e9 um t\u00fanel GRE com SIP 10.0.0.2 e DIP 10.0.255.2, e al\u00e9m disso, primeiro precisa anexar o r\u00f3tulo MPLS deste cliente, que o VNGW1 espera.\n <\/li>\n<li>vRouter empacota o pacote original nos cabe\u00e7alhos MPLS, GRE e um novo IP e o envia para o endere\u00e7o ToR1 10.0.0.1 por padr\u00e3o.<\/li>\n<li>A rede subjacente entrega o pacote ao gateway VNGW1.<\/li>\n<li>O gateway VNGW1 remove os cabe\u00e7alhos de tunelamento GRE e MPLS, v\u00ea o endere\u00e7o de destino, consulta sua tabela de roteamento e percebe que est\u00e1 indo para a Internet \u2014 ou seja, atrav\u00e9s do Full View ou Default. Realiza a tradu\u00e7\u00e3o NAT, se necess\u00e1rio.<\/li>\n<li>Do VNGW at\u00e9 o border pode haver uma rede IP comum, o que \u00e9 pouco prov\u00e1vel.<br \/>\n Pode ser uma rede MPLS cl\u00e1ssica (IGP+LDP\/R RSVP TE), pode ser a f\u00e1brica reversa com BGP LU ou um t\u00fanel GRE do VNGW at\u00e9 o border atrav\u00e9s da rede IP.<br \/>\n De qualquer forma, VNGW1 realiza as encapsula\u00e7\u00f5es necess\u00e1rias e envia o pacote original em dire\u00e7\u00e3o ao border.<\/li>\n<\/ol>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/outside-dp.png\"><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/a66e490c75f8220349398af814d4ebf2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>O tr\u00e1fego na dire\u00e7\u00e3o oposta passa pelos mesmos passos na ordem inversa. <\/p>\n<ol>\n<li>O border entrega o pacote at\u00e9 o VNGW1<\/li>\n<li>Esse o desarma, observa o endere\u00e7o do destinat\u00e1rio e v\u00ea que este est\u00e1 acess\u00edvel atrav\u00e9s do t\u00fanel Tunnel1 (MPLSoGRE ou MPLSoUDP).<\/li>\n<li>Consequentemente, anexa um r\u00f3tulo MPLS, um cabe\u00e7alho GRE\/UDP e um novo IP e envia para seu ToR3 10.0.255.1.<br \/>\n O endere\u00e7o de destino do t\u00fanel \u00e9 o endere\u00e7o IP do vRouter, que est\u00e1 associado \u00e0 VM de destino \u2014 10.0.0.2.<\/li>\n<li>A rede subjacente entrega o pacote ao vRouter correto. <\/li>\n<li>O vRouter alvo remove GRE\/UDP, determina a interface pela etiqueta MPLS e envia o pacote IP puro para sua interface TAP, vinculada ao eth0 da 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=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" 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>\nO VNGW1 estabelece uma vizinhan\u00e7a BGP com o controlador SDN, do qual recebe todas as informa\u00e7\u00f5es de rota sobre os clientes: qual cliente est\u00e1 associado a qual IP (vRouter) e com qual etiqueta MPLS ele \u00e9 identificado.<\/p>\n<p>Da mesma forma, ele informa ao controlador SDN a rota padr\u00e3o com a etiqueta deste cliente, indicando-se como nexthop. E ent\u00e3o, essa rota padr\u00e3o segue para os vRouters.<\/p>\n<p>No VNGW, normalmente ocorre a agrega\u00e7\u00e3o de rotas ou a tradu\u00e7\u00e3o NAT.<\/p>\n<p>Na outra dire\u00e7\u00e3o, para a sess\u00e3o com as bordas ou Route Reflectors, ele fornece exatamente essa rota agregada. E deles recebe a rota padr\u00e3o ou Full-View, ou algo mais.<\/p>\n<p>No que diz respeito \u00e0 encapsula\u00e7\u00e3o e troca de tr\u00e1fego, o VNGW n\u00e3o se difere do vRouter. <br \/>\nSe expandirmos um pouco o escopo, podemos adicionar outros dispositivos de rede, como firewalls, fazendas de limpeza ou enriquecimento de tr\u00e1fego, IPS e assim por diante, ao VNGW e aos vRouters.<\/p>\n<p>E atrav\u00e9s da cria\u00e7\u00e3o sequencial de VRFs e do an\u00fancio adequado das rotas, \u00e9 poss\u00edvel fazer o tr\u00e1fego circular como voc\u00ea desejar, o que \u00e9 chamado de Service Chaining.<\/p>\n<p>Portanto, aqui o controlador SDN tamb\u00e9m atua como Route-Reflector entre o VNGW, os vRouters e outros dispositivos de rede.<\/p>\n<p>Mas, de fato, o controlador ainda fornece informa\u00e7\u00f5es sobre ACL e PBR (Policy Based Routing), for\u00e7ando fluxos de tr\u00e1fego individuais a seguir caminhos diferentes do que o roteiro determina.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/fs.linkmeup.ru\/images\/adsm\/1\/outside-cp.png\"><img decoding=\"async\" alt=\"Automatiza\u00e7\u00e3o Para os Menores. Parte um (que vem depois da zero). Virtualiza\u00e7\u00e3o da rede\" src=\"\/wp-content\/uploads\/2019\/07\/dbba5a93d64edf56dc9c2b82311c5a11.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<h1>FAQ<\/h1>\n<p><b>Por que voc\u00ea sempre faz a observa\u00e7\u00e3o GRE\/UDP?<\/b><\/p>\n<p>Bem, na verdade, isso pode ser considerado espec\u00edfico para o Tungsten Fabric \u2014 pode-se completamente ignorar.<\/p>\n<p>Mas se for para considerar, o pr\u00f3prio TF, quando ainda era OpenContrail, suportava ambas as encapsula\u00e7\u00f5es: MPLS em GRE e MPLS em UDP. <\/p>\n<p>O UDP \u00e9 bom porque no Port de Origem no seu cabe\u00e7alho \u00e9 muito f\u00e1cil codificar uma fun\u00e7\u00e3o hash a partir dos IP+Proto+Port iniciais, permitindo balanceamento. <\/p>\n<p>No caso do GRE, infelizmente, existem apenas os cabe\u00e7alhos IP e GRE externos, que s\u00e3o iguais para todo o tr\u00e1fego encapsulado e n\u00e3o se fala em balanceamento \u2014 poucos podem olhar t\u00e3o profundamente dentro do pacote.<\/p>\n<p>At\u00e9 algum tempo atr\u00e1s, os roteadores, se conseguiam criar t\u00faneis din\u00e2micos, era apenas em MPLSoGRE, e s\u00f3 recentemente aprenderam a fazer isso em MPLSoUDP. Portanto, \u00e9 necess\u00e1rio sempre fazer uma observa\u00e7\u00e3o sobre a possibilidade de duas encapsula\u00e7\u00f5es diferentes.<\/p>\n<p>Para ser justo, vale ressaltar que o TF suporta plenamente a conectividade L2 por meio de VXLAN.<\/p>\n<p>\n<b>Voc\u00ea prometeu tra\u00e7ar paralelos com o OpenFlow.<\/b><br \/>\nEles realmente se imp\u00f5em. O vSwitch no mesmo OpenStack faz coisas muito semelhantes, utilizando VXLAN, que, ali\u00e1s, tamb\u00e9m possui cabe\u00e7alho UDP.<\/p>\n<p>No Data Plane, eles funcionam de maneira semelhante, mas o Control Plane \u00e9 bem diferente. O Tungsten Fabric utiliza XMPP para entregar informa\u00e7\u00f5es sobre rotas ao vRouter, enquanto no OpenStack utiliza-se OpenFlow.<\/p>\n<p>\n<b>Voc\u00ea poderia falar um pouco mais sobre o vRouter?<\/b><br \/>\nEle se divide em duas partes: vRouter Agent e vRouter Forwarder.<\/p>\n<p>O primeiro \u00e9 iniciado no espa\u00e7o do usu\u00e1rio do sistema operacional host e se comunica com o controlador SDN, trocando informa\u00e7\u00f5es sobre rotas, VRF e ACL.<\/p>\n<p>O segundo realiza o Data Plane \u2014 geralmente no Kernel Space, mas pode ser executado tamb\u00e9m em SmartNICs \u2014 placas de rede com CPU e um chip program\u00e1vel de comuta\u00e7\u00e3o separado, o que alivia a carga da CPU da m\u00e1quina host, tornando a rede mais r\u00e1pida e previs\u00edvel. <\/p>\n<p>Outro cen\u00e1rio poss\u00edvel \u00e9 que o vRouter seja um aplicativo DPDK no espa\u00e7o do usu\u00e1rio. <\/p>\n<p>O vRouter Agent aplica as configura\u00e7\u00f5es no vRouter Forwarder.<\/p>\n<p>\n<b>O que \u00e9 uma Rede Virtual?<\/b><br \/>\nMencionei no in\u00edcio do artigo sobre VRF, que cada inquilino est\u00e1 vinculado ao seu pr\u00f3prio VRF. E se isso foi suficiente para uma compreens\u00e3o superficial do funcionamento da rede overlay, na pr\u00f3xima itera\u00e7\u00e3o, \u00e9 necess\u00e1rio fazer esclarecimentos.<\/p>\n<p>Normalmente, nos mecanismos de virtualiza\u00e7\u00e3o, a entidade Virtual Network (podemos considerar isso um nome pr\u00f3prio) \u00e9 introduzida separadamente dos clientes\/tenants\/m\u00e1quinas virtuais \u2014 uma coisa bem aut\u00f4noma. E essa Virtual Network pode ser conectada atrav\u00e9s de interfaces a um tenant, a outro, a dois, ou a onde quiser. Assim, por exemplo, implementa-se o Service Chaining, quando o tr\u00e1fego precisa passar por determinados n\u00f3s em uma sequ\u00eancia espec\u00edfica, simplesmente criando e vinculando as Virtual Networks na ordem correta.<\/p>\n<p>Portanto, n\u00e3o h\u00e1 um correspondente direto entre a Rede Virtual e o tenant.<\/p>\n<h1>Conclus\u00e3o<\/h1>\n<p>\nEsta \u00e9 uma descri\u00e7\u00e3o bastante superficial do funcionamento de uma rede virtual com overlay a partir do host e do controlador SDN. Mas qualquer que seja a plataforma de virtualiza\u00e7\u00e3o que voc\u00ea escolher hoje, ela funcionar\u00e1 de forma semelhante, seja VMWare, ACI, OpenStack, CloudStack, Tungsten Fabric ou Juniper Contrail. Elas diferem em tipos de encapsulamento e cabe\u00e7alhos, protocolos de entrega de informa\u00e7\u00f5es aos dispositivos de rede finais, mas o princ\u00edpio da rede overlay program\u00e1vel, que opera sobre uma rede subjacente relativamente simples e est\u00e1tica, permanece o mesmo.<br \/>\nPode-se dizer que, atualmente, o SDN baseado em rede overlay venceu na \u00e1rea de cria\u00e7\u00e3o de nuvens privadas. No entanto, isso n\u00e3o significa que o OpenFlow n\u00e3o tenha espa\u00e7o no mundo moderno \u2014 ele \u00e9 usado no OpenStack e no mesmo VMWare NSX, e, pelo que sei, \u00e9 utilizado pelo Google para configurar a rede subjacente.<\/p>\n<p>Um pouco abaixo, forneci links para materiais mais detalhados, caso queira estudar o assunto mais a fundo. <\/p>\n<p>E quanto ao nosso Underlay? <\/p>\n<p>E, na verdade, nada. Ele n\u00e3o mudou durante todo o tempo. Tudo o que precisa fazer no caso de overlay a partir do host \u00e9 atualizar rotas e ARPs \u00e0 medida que vRouter\/VNGW aparecem e desaparecem e gerenciar pacotes entre eles.<\/p>\n<p>Vamos formular uma lista de requisitos para a rede Underlay.<\/p>\n<ol>\n<li>Deve ser capaz de usar algum protocolo de roteamento, no nosso caso \u2014 BGP.<\/li>\n<li>Deve ter banda larga, preferencialmente sem sobrecarga, para que pacotes n\u00e3o sejam perdidos devido a congestionamentos.<\/li>\n<li>Suportar ECMP \u2014 uma parte essencial da f\u00e1brica.<\/li>\n<li>Ser capaz de garantir QoS, incluindo coisas complexas, como ECN.<\/li>\n<li>Suportar NETCONF \u2014 uma prepara\u00e7\u00e3o para o futuro.<\/li>\n<\/ol>\n<p>\nDediquei muito pouco tempo ao funcionamento da pr\u00f3pria rede Underlay aqui. Isso porque, nos pr\u00f3ximos cap\u00edtulos, ser\u00e1 nela que nos concentraremos, enquanto o Overlay ser\u00e1 tratado apenas de passagem.<\/p>\n<p>\u00c9 evidente que estou limitando a todos n\u00f3s gravemente, usando como exemplo uma rede de DC constru\u00edda sobre a f\u00e1brica de Clouza com roteamento IP puro e um overlay a partir do host.<\/p>\n<p>No entanto, estou certo de que qualquer rede que tenha um design pode ser descrita em termos formais e automatizada. Eu s\u00f3 busco entender as abordagens de automa\u00e7\u00e3o, e n\u00e3o confundir a todos resolvendo a tarefa de forma geral.<\/p>\n<p>Dentro do ADMS, Rom\u00e1n Gorge e eu planejamos publicar uma edi\u00e7\u00e3o separada sobre a virtualiza\u00e7\u00e3o de capacidades computacionais e sua intera\u00e7\u00e3o com a virtualiza\u00e7\u00e3o de rede. Fique conectado.<\/p>\n<p><\/p>\n<h1>Links \u00dateis<\/h1>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tungstenfabric.github.io\/website\/\">Arquitetura Tungsten Fabric<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/Kr6WIYPts8I?t=3157\">sobre:cloud<\/a><\/noindex>. 6 horas sobre Yandex.Cloud, que tamb\u00e9m aborda a rede virtual no TF.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/docs.openvswitch.org\/en\/latest\/intro\/what-is-ovs\/\">O que \u00e9 Open vSwitch?<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/344326\/\">Introdu\u00e7\u00e3o ao VxLAN<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tools.ietf.org\/html\/rfc7348\">RFC 7348. Rede Local Virtual eXtens\u00edvel (VXLAN): Um Framework para Sobrepor Redes Virtualizadas de Camada 2 sobre Redes de Camada 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\">Abordagem Scaleway para a Fabrica VXLAN EVPN<\/a><\/noindex>. Aqui, falamos sobre toda a rede do datacenter, incluindo Underlay, Overlay, abordagens de multi-homing e gerenciamento.<\/li>\n<\/ul>\n<p><\/p>\n<h5>Obrigado<\/h5>\n<p><\/p>\n<ul>\n<li><noindex>Roman Gorge<\/noindex> \u2014 ex-apresentador do podcast linkmeup, e agora especialista em plataformas de nuvem. Agradecimentos pelos coment\u00e1rios e corre\u00e7\u00f5es. E esperamos em breve seu artigo mais profundo sobre virtualiza\u00e7\u00e3o.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.alexander-shalimov.com\">Alexander Shalimov<\/a><\/noindex> \u2014 meu colega e especialista em desenvolvimento de redes virtuais. Agradecimentos pelos coment\u00e1rios e corre\u00e7\u00f5es.<\/li>\n<li><noindex>Valentin Sinitsyn<\/noindex> \u2014 meu colega e especialista em Tungsten Fabric. Agradecimentos pelos coment\u00e1rios e corre\u00e7\u00f5es.<\/li>\n<li><noindex>Artem Chernobay<\/noindex> \u2014 ilustrador do linkmeup. Agradecimentos pela contribui\u00e7\u00e3o.<\/li>\n<li>Alexander Limonov. Pela meme \"automato\".<\/li>\n<\/ul>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458622\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0432\u044b\u043f\u0443\u0441\u043a\u0435 \u044f \u043e\u043f\u0438\u0441\u0430\u043b \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438. \u041f\u043e \u043e\u0442\u0437\u044b\u0432\u0430\u043c \u0443 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043b\u044e\u0434\u0435\u0439 \u0434\u0430\u0436\u0435 \u044d\u0442\u043e\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0435 \u0443\u0436\u0435 \u0440\u0430\u0437\u043b\u043e\u0436\u0438\u043b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043f\u043e \u043f\u043e\u043b\u043e\u0447\u043a\u0430\u043c. \u0418 \u044d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u0435\u043d\u044f \u0440\u0430\u0434\u0443\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0430\u0448\u0430 \u0446\u0435\u043b\u044c \u0432 \u0446\u0438\u043a\u043b\u0435 \u2014 \u043d\u0435 \u043e\u0431\u043c\u0430\u0437\u0430\u0442\u044c \u043f\u0438\u0442\u043e\u043d\u043e\u0432\u0441\u043a\u0438\u043c\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438 \u0430\u043d\u0437\u0438\u0431\u043b\u044c, \u0430 \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u042d\u0442\u043e\u0442 \u0436\u0435 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0437\u0430\u0434\u0430\u0451\u0442 \u043f\u043e\u0440\u044f\u0434\u043e\u043a, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26892,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35973","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - 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\/pt\/blog\/administrirovanie\/avtomatizatsiya-dlya-samyh-malenkih-chast-pervaya-kotoraya-posle-nulevoj-virtualizatsiya-seti\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Automatiza\u00e7\u00e3o Para Os Menores. Parte um (que vem ap\u00f3s a zero). Virtualiza\u00e7\u00e3o de rede | ProHoster","description":"Na edi\u00e7\u00e3o anterior, descrevi o framework de automa\u00e7\u00e3o de rede.","canonical_url":"https:\/\/prohoster.info\/pt\/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":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/35973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=35973"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/35973\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/26892"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=35973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=35973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=35973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}