Redes de Virtualização por Sobreposição VXLAN, NVGRE e STT Guilherme S. Sengès Igor D. Alvarenga Julio C. E. Moreira 1. Redes nos Data Centers • • • Infraestrutura de servidores custa caro o Aluguel de máquinas virtuais é uma boa alternativa Expansão do mercado consumidor o Do pequeno ao grande Centenas de milhares de inquilinos Imagem: http://gunnertech.com/2011/12/what-is-aws-amazon-web-services/ a. Limitações do STP • Garantia de não existência de ciclos inutiliza vários caminhos existentes em uma rede o • Operadores de Data Centers criticam o desperdício Impossibilidade de múltiplos caminhos o Saturação dos links b. Limitações da VLAN • Campo de identificação de uma VLAN de apenas 12 bits o • 4096 VLANs é insuficiente Cada inquilino utiliza várias VMs através de um ID VLAN 2. Propostas Gerais para Solução • Questões cobertas pelos protocolos o Gerência de endereços sobrepostos entre diversos inquilinos. o Desacoplamento entre rede virtual e rede física o Mobilidade da máquina virtual o Suporte a um número "ilimitado" de redes virtuais o Endereçamento das redes virtuais é isolado da rede física Tamanho das tabelas é reduzido 3. Os Protocolos a. VXLAN Disponível em: http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9902/white_paper_c11-685115.html a. VXLAN - VTEP • VTEP - VXLAN Tunnel Endpoint (extremidade do túnel VXLAN) • VNI - VXLAN Network Identifier (Identificador de Rede VXLAN) Disponível em: http://codingrelic.geekhold.com/2011/09/care-and-feeding-of-vxlan.html Quadro VXLAN Disponível em: http://www.borgcube.com/blogs/2011/11/vxlan-primer-part-1/ Cabeçalho Ethernet • Outer Destination MAC Address o Local - MAC do VTEP de destino o Outra rede L3 - dispositivo do próximo salto, geralmente um roteador. • VLAN - Opcional. EtherType de 0x8100, associado a etiqueta VLAN ID. • Ethertype - Definido por 0x0800 - IPv4. Não inclui implementação IPv6. Quadro VXLAN Cabeçalho IP Protocol (Protocolo) - Definido como 0x11- pacote UDP. Outer Source Address (IP de origem) - Endereço IP do VTEP de origem. Outer Destination Adress (IP de destino) - Endereço IP do VTEP de destino. Se não conhecido, realizar processo de detecção: o IP de destino é substituído pelo grupo de IP multicast da VNI da VM de origem. o Todos os VTEPs recebem o quadro e desencapsulam, obtendo o mapeamento do MAC da VM de origem e o host VTEP. o Host VTEP da VM de destino envia respostas das máquinas virtuais ao VTEP de origem usando o endereço IP. o VTEP de origem acrescenta em suas tabelas o mapeamento do VTEP até o MAC da VM. • • • Quadro VXLAN Cabeçalho UDP Source Port (Porta de Origem) - Definido pelo VTEP transmissor. VXLAN Port (Porta VXLAN) - IANA - Internet Assigned Numbers Authority (Autoridade para Atribuição de Números da Internet) - atribuído à porta VXLAN. Ainda não definido. UDP Checksum (Soma de Verificação UDP) - Definido como 0x0000. VTEP receptor deve verificar o checksum e, se não estiver correto, o quadro deve ser descartado. • • • Cabeçalho VXLAN VNI - Campo de 24 bits - identificador da Rede VXLAN. Reserved (Reservado) - 24 bits e 8 bits reservados e definidos como zero. • • Exemplo VXLAN Disponível em: http://www.borgcube.com/blogs/2011/11/vxlan-primer-part-1/ b. NVGRE • • • • • • Proposto por Microsoft, Arista Networks, Intel, Dell, HewlettPackard, Broadcom e Emulex; Tunelamento através do protocolo GRE (RFC2784 e RFC2890); Introdução de um identificador de sub-rede virtual (VSID) de 24 bits e um opcional de fluxo (FlowID) de 8 bits; Usa multicast IP sobre a rede física para prover broadcast e multicast para rede virtual; Prevê a extensão de de sub-redes entre diferentes instalações através do uso de VPN; Ainda não especifica o tratameto de fragmentação (ponto futuro). b. NVGRE b. NVGRE – Quadro b. NVGRE – Quadro GRE Original GRE para NVGRE b. NVGRE – Quadro Não deve haver VLAN b. NVGRE – VPN c. STT • Elo virtual Ethernet ponto-a-ponto o • Exemplificado por Switches virtuais Semelhanças com TCP/IP o Não há estado da conexão c. STT c. STT • • Encapsulamento da carga o Carga pode conter outro cabeçalho TCP TSO (TCP Segmentation Offload) o Diferencial na segmentação o Presentes em muitas placas de rede c. STT Até 64 KB c. STT Apresenta diferenças ! Até 64 KB c. STT • Cabeçalho de quadro STT c. STT • Versão do protocolo STT o Versão 0 c. STT • Flags o Características dos dados encapsulados Integridade verificada Não utilizados Integridade cabeçalhos TCP e IP Versão do IP Encapsulado é um pacote TCP c. STT • L4 Offset o Distância entre cabeçalho STT e cabeçalho encapsulado TCP ou UDP o Rapidez para leitura da carga c. STT • Reserved o Ignorado pelo receptor Bits em zero c. STT • Tamanho máximo de segmento o Tamanho de segmento TCP Usado por uma terminação do túnel para envio em outra rede c. STT • PCP o Prioridade deste pacote no envio para outra rede c. STT • Validade dos campos PCP e VLAN ID c. STT • VLAN ID o Identificação da VLAN de destino aplicada pela terminação de túnel c. STT • Context ID o Contexto pode possuir diferentes atribuições Inquilino VM c. STT • Cabeçalho TCP o Diferentes interpretações c. STT • Número de Sequência o Primeiros 16 bits Tamanho do quadro STT o Últimos 16 bits Deslocamento do segmento STT c. STT • Número de confirmação (ACK) o Identificador para fragmentação Mesma identificação para um quadro STT c. STT • Perda de pacotes o Não há controle de correção o Cabeçalho TCP encapsulado pelo STT será responsável c. STT • Segurança o Mecanismos de segurança para datagramas IP Necessário ajustes no firewall para o aceite de pacotes STT o Sem estado de da conexão não há ataques por enchente de SYNs Imagem retirada de: http://pt.kioskea.net/faq/12083-o-que-e-um-firewall-como-funciona 4. Considerações Finais • • Muitas semelhanças entre os protocolos Representam interesses de empresas distintas 5. Perguntas 1) Quais são as duas principais limitações empregadas pelo uso do STP (Spanning Tree Protocol) na camada 2 da rede em sistemas com diversos inquilinos? 5. Perguntas Resposta Em sistemas com diversos inquilinos, o corte alguns possíveis caminhos para evitar ciclos acarreta o desperdício de links que custam dinheiro e subutilizam a capacidade real da rede. Outra limitação expressiva é a incapacidade do uso de múltiplos caminhos para atingir um mesmo destino, assim não há como realizar o balanceamento de carga. 5. Perguntas 2) Qual o motivo principal para o surgimento de protocolos como o VXLAN, o NVGRE e o STT em relação ao VLAN para sistemas com muitos inquilinos? 5. Perguntas Resposta A ocorrência de centenas de milhares de inquilinos torna insuficiente o número de identificações disponíveis para segmentos de redes virtuais - destinados a um inquilino - em uma VLAN. 5. Perguntas 3) Qual o objetivo principal de uma VXLAN? 5. Perguntas Resposta Conectar duas ou mais redes de camada 3 fazendo com que elas operem como se estivessem conectadas em uma rede da camada 2, ou seja, cada uma faz parte da sua própria rede, mas “dentro” do mesmo domínio. 5. Perguntas 4) Por qual motivo o protocolo STT defende a idéia de que seu desempenho é melhor do que os demais existentes? 5. Perguntas Resposta O motivo principal do ganho em desempenho do STT está no uso do TSO (TCP Segmentation Offload) implementado por várias NICs (Network Interface Cards). Essa tecnologia permite a entrega de extensos quadros STT a placa de interface de rede, realizando a segmentação de acordo com o MSS (Maximum Segment Size) especificado pelos metadados do cabeçalho STT. 5. Perguntas 5) Como é proposta a realização de multicast e broadcast na rede virtual pelo protocolo NVGRE? 5. Perguntas Resposta É feita a associação de cada VSID com um endereço multicast de escopo administrativo. Desta forma, todo tráfego multicast e broadcast será encaminhado por uma rede multicast na qual estarão inscritos todos os NVEs que possuam CAs associadas à sub-rede correspondente. 6. Referências • • • • • [1] M. Mahalingam, D. Dutt, K. Duda, Arista, P. Agarwal, Broadcom, L. Kreeger, Cisco, T. Sridhar, VMware, M. Bursell, Citrix, C. Wright, RedHat. VXLAN: A framework for overlaying virtualized layer 2 networks over layer 3 networks. Internet-Drafts, 2012. [2] M. Sridharan, A. Greenberg, N. Venkataramiah, Y. Wang, Microsoft, K. Duda, Arista Networks, I. Ganga, Intel, G. Lin, Dell, M. Pearson, HewlettPackard, P. Thaler, Broadcom, C. Tumuluri, Emulex. Nvgre: Network virtualization using generic routing encapsulation. Internet-Drafts, 2012. [3] B. Davie, J. Gross, VMware. A stateless transport tunneling protocol for network virtualization. Internet-Drafts, 2012. [4] L. Yong, X. Xu, Huawei. NVGRE and VXLAN Encapsulation for L3VPN Extension. Internet-Drafts, 2012. [5] Balaji Venkat Venkataswami , Bhargav Bhikkaji , DELL-Force10. VM to VTEP maps topology discovery in VXLAN based data centers. InternetDrafts, 2012. 6. Referências • • • • • [6] T. Nadeau, J. Drake, Juniper Networks, B. Schlisser James Uttaro, Y. Rekhter, ATT, Ravi Shekhar, Juniper Networks, Wim Hendrix, Nabil Bitar, Alcatel-Lucent, Verizon, Aldrin Isaac, Bloomberg. A Control Plane for Network Virtualized Overlays. Internet-Drafts, 2012. [7] G. Van de Velde, K. Patel, D. Rao, Cisco Systems, R. Raszuk, NTT MCL, R. Bush, Internet Initiative Japan. BGP Remote-Next-Hop. InternetDrafts, 2012. [8] Samer Salam, Clarence Filsfils, Juniper Networks, Nabil Bitar, Verizon, Jim Uttaro, AT&T, Aldrin Isaac, Bloomberg, Wim Henderickx, AlcatelLucent.Requirements for Ethernet VPN (E-VPN). Internet-Drafts, 2012. [9] Ali Sajassi, Samer Salam, Keyur Patel, Cisco, Nabil Bitar, Verizon, Wim Henderickx, Alcatel-Lucent. A Network Virtualization Overlay Solution using E-VPN. Internet-Drafts, 2012. [10] D. Farinacci, T. Li, S. Hanks, D. Meyer, P. Traina. RFC 2784 - Generic Routing Encapsulation (GRE). IETF, 2000. 6. Referências • • [11] G. Dommety. RFC 2890 - Key and Sequence Number Extensions to GRE. IETF, 2000. [12] C. Perkins. RFC 2003 - IP Encapsulation within IP. IETF, 1996.