A virtualização nas redes de computadores

A primeira vez que vi algo relacionado a virtualização, foi em 2006. Pela primeira vez em minha vida observei um Windows Server 2003 a rodar em cima dum outro sistema operacional com VMWare. De lá para cá, as tecnologias de virtualização não param de acontecer, muito em parte por causa do advento (hype??) do cloud computing. É que na minha opinião, hoje se temos cloud, devemos agradecer as tecnologias de virtualização. A tempos para me ‘desenferrujar’ fiz um curso de database genérico, e para aulas práticas bem podia ter baixado e instalado um Oracle 9i/10i/Xi da vida no meu computador. Em vez disso fiz uma inscrição no excelente Amazon S3, criei uma instância via browser, loguei com o cliente e já está. Esta facilidade de criar uma database ‘la do outro lado do mundo, como se estivesse desse lado’, não seria possível sem a tecnologia de virtualização. É uma diminuição brutal de custos, consequente aumento de produtividade, eficiência e de segurança (com criação de snapshots).

De olho nesse nicho, os gigantes de equipamentos e tecnologias de redes não perderam tempo e começaram a lançar também eles, produtos virtualizados. A Cisco por exemplo, a muito que possui tecnologias de virtualização, a saber VLAN’s, VSS, VSAN, VRF, StackWise, etc, para citar apenas alguns exemplos. No entanto ela não tinha ainda uma gama ‘seria’ de appliances que pudessem despertar a atenção do mercado. Bom, isso já não constitui preocupação com a existência de maravilhas como o Virtual Router CSR 1000V, onde é possível ter (não simular ter) varias instâncias dum ‘roteador’ (‘roteadores’ virtuais) físico. Isso na minha opinião é mais do que viável financeiramente para instituições que são operacionalmente escaláveis.

Imagem

Eu sinto que ainda tenho algumas duvidas quanto a essa matéria de encaminhadores (‘roteadores’) virtuais. No entanto deixo dois documentos com vocês. O primeiro [1] é da cisco e fala exactamente do Cisco CSR 1000V e o segundo [2] é da ‘insuspeita’ Brocade que também apresenta uma solução de Virtual Router o Vyatta que segundo eles é superior ao VMWare Virtual Switch.

[1] – http://www.cisco.com/en/US/prod/collateral/routers/ps12558/ps12559/csr_1000v_3.pdf

[2] – http://www.brocade.com/downloads/documents/white_papers/segmenting-virtual-networks-wp.pdf

Implementando Vlans em um Roteador com subinterfaces

Existem 2 formas conhecidas de se implementar comunicacao entre vlans diferentes: Com um switch de camada 3 ou com um roteador.

O cenario mais economico e’ implementando em router com subinterfaces por causa da falta de interfaces fisicas. O nosso exemplo e’ um cenario de exemplo basico com 2 vlans 10 e 20 (gestao e administracao) que necessitam de se comunicar entre si. Por questoes de seguranca trocou-se a interface vlan de gestao para uma diferente da 1 no nosso caso a 90.

Um exemplo similar a este saiu numa empresa onde ja testei. Como foi testado no Packet Tracer 5.3 o exemplo tem por base o mesmo.

Para download deste cenario criado em Packet Tracer 5.3, siga este link.

VTP: Vlan Trunking Protocol III

Na segunda parte deste artigo detalhamos alguns componentes do cabeçalho VTP. Resta-nos analisar o VTP Message Type. Ele é composto pelos seguintes campos:

Summary Advertisement – Quando o comutador recebe um SA ele verifica se o domain name corresponde ao seu. Se nao corresponde o pacote é ignorado. Se corresponder o configuration revision number é analisado. Se o revision number for maior que o do pacote recebido o pacote é descartado. Se for menor um Advertisement request é enviado. O formato deste elemento do cabeçalho é o seguinte:

– O campo Followers indica que o pacote é seguido por um pacote Subset Advertisement.
Updater Identity é o endereço IP do ultimo comutador que terá incrementado o configuration revision number.
Update Timestamp é a data e a hora do ultimo incremento do configuration revision number.
Message Digest 5 (MD5) transporta a password VTP se o algoritmo MD5 foi escolhido para autenticar a origem duma actualização VTP.

Subset advertisement – Contem uma lista com informações sobre VLANs. Na verdade quando um comutador no estado Server adiciona, modifica ou apaga uma VLAN o configuration revision number é incrementado e um Summary Advertisement é enviado. O seu formato corresponde ao seguinte:

Como se pode ver acima o vlan info field é dinamico e contem informações sobre as vlans tal que as vlans com id mais mais baixo sao tratadas primeiro. O VLAN info field tem o seguinte formato:

A maior parte destes campos sao de fácil entendimento, no entanto…

– O Code para um pacote subset advertisement é 0x02.
– O Sequence number é um numero de sequencia que serve para identificar um pacote. A sequencia inicia com 1.

Advertisement requests – Um comutador necessita deste pedido na situação em que ou o comutador foi resetado ou o domain name foi trocado ou recebeu um Summary Advertisement com um configuration revision number maior do que o seu. Depois disso o comutador envia um Summary Advertisement e uma ou mais Subset advertisements. O se formato:

– O Code para um advertisement request é 0x03.
– O Start-Value é usado em situações em que existem diversas subset advertisements. Se a primeira (n) foi recebida e a seguinte (n+1) nao foi recebida o comutador apenas envia um requests advertisements para o (n+1).

VTP Join Message – Serve para anunciar aos comutadores VTP em estado server a entrada dum novo VTP em estado client na rede.

No proximo artigo daremos atenção a configuração do VTP numa rede.

Fontes:
http://www.cisco.com/en/US/tech/tk389/tk689/technologies_tech_note09186a0080094c52.shtml
http://www.javvin.com/protocolVTP.html
http://www.firewall.cx/vlans-vtp-analysis.php

VTP: Vlan Trunking Protocol II

Na primeira parte deste artigo deu-se uma introdução básica sobre o protocolo VTP. Importa perguntar: Como o protocolo VTP funciona? Este protocolo funciona por meio do trunking, e se funciona por meio do trunking logo exige que seja encapsulado por meio dum protocolo de trunking seja ele ISL ou Dot1Q. Aqui nos baseamos no ultimo. Depois de encapsulado as informações de VTP num cabeçalho Dot1Q, teremos o seguinte formato:


Cabe aqui referenciar alguns elementos deste cabeçalho:

DA – Destination Address – O VTP usa o endereço multicast 01-00-0c-cc-cc-cc.
LLC – Contem o Destination Service Access Point (DSAP) ou o Source Service Access Point (SSAP) para o valor do AA.
SNAP – Contem um OUI composto pelos valores AAAA e o PID (type) igual a 2003.

VTP Header
– Tendo em conta que o cabeçalho VTP é dinamico o seu conteudo pode mudar, mas nao varia muito dos seguintes itens:

Domain Name – Identifica o dominio administrativo.
Domain Name Length – Tamanho do dominio administrativo.
Version – Pode ser VTP1, VTP2 ou VTP3. O comutador 2960 apenas suporta VTP1 e VTP2.
Configuration Revision Number – Identifica a Revision Number em uso no comutador.

VTP Message Type – Dependendo do tipo de mensagem ele pode variar e conter os seguintes campos:

No proximo artigo analisaremos em detalhe os campos VTP Message Type.

VLANs. Introdução

Nos priomordios das redes semgmentadas a separação lógica dos usuarios na rede dependia muito também da separação física da mesma. Uma rede com diversas divisões físicas tinha bastantes problemas em ligar seus departamentos. Imagine que você tinha 3 departamentos: 1, 2 e 3. O 1 ficava no andar 1, o 2 no andar 2 e o 3 no andar 3. Tudo bem. Mas acontece que um usuario do andar 1 precisa ir agora ficar umas tarde no andar 3 e necessita de todos os recursos de rede que tinha no andar 1. O do andar 2 precisa ir ao 3 ou ao andar 1 e vice-versa; Solução: Esticar cabos de andar a andar. Como pode-se notar nao é uma boa solução principalmente em redes complexas.

Bom alguem pensou nisso e criou as VLANs. Com as VLANs a segmentação nao é realizada fisicamente mas logicamente, neste contexo podem ser criadas diversas LANs independentemente da sua localização. Neste contexto a situação acima pode ser facilmente resolvida. Ele pode sair de um andar ao outro e ligar seus dispositivos finais sem necessidade de se preocupar com limitações físicas ou geograficas:

Na fig acima note que a VLAN 4 tanto está no Switch 1 como no Switch 2. Quer dizer que um usuario pode estar ir de posição geografica a posição geografica sem se preocupar com a perca dos seus recursos de rede. A comunição entre diferentes VLAns é realizada através de protocolos de trunking como ISL ou 802.1q.

A mão na massa

Pegue o pacotão:

Entre em CCNA3 -> Trunking with 802.1q -> CCNA3_lab_9_1_5b_en.doc.

Pronto pratique. está tudo muito bem explicado lá, mas eu dou uma chega. Existem apenas alguns passos básicos para se criar vlans:

Você precisa definir na sua empresa que é que, Comece a atribuir numeros de vlans a areas ou departamentos. Por exemplo, conforme no pacotão:

VLAN 1 – Nativa (Nao mexa nessa vem activada por default em todos Switch)

VLAN 10 – Contabilidade

VLAN 20 – Marketing

VLAN 30 – Engenharia

Resta reservas as portas (interfaces) de acesso e de trunking. As de acesso sao usadas pelos dispositivos finais (computadores etc). As de trunking representam a fiação switch a switch na camada de distribuição. Segundo o exemplo do pacotão:

VLAN 10 – Contabilidade – fa0/4 – fa 0/6

VLAN 20 – Marketing        – fa0/7 – fa 0/9

VLAN 30 – Engenharia      – fa0/10 – fa 0/12

A seguir é necessario criar as VLANs nos Switchs. Faça isso nos 3 Switchs:

Switch#vlan database
Switch(vlan)#vlan 10 name Accounting
Switch(vlan)#vlan 20 name Marketing
Switch(vlan)#vlan 30 name Engineering
Switch(vlan)#exit

Atribuir as portas de acesso aos switchs. Para VLAN 1o repetir processo nos 2 Switchs:

Switch#configure terminal
Switch(config)#interface fastethernet 0/4
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10
Switch(config-if)#interface fastethernet 0/5
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10
Switch(config-if)#interface fastethernet 0/6
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10
Switch(config-if)#end

Para VLAN 2o repetir processo nos 2 Switchs:

Switch#configure terminal
Switch(config)#interface fastethernet 0/7
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
Switch(config-if)#interface fastethernet 0/8
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
Switch(config-if)#interface fastethernet 0/9
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 20
Switch(config-if)#end

OBS: repetir o mesmo exemplo para vlan 30 conforme especificado no pacotao.

Trunking para comunicação entre Switchs:

Conforme exemplo do pacotão nos 2 switchs se as suas interfaces sao ambas fastethernet 0/1:

Switch(config)#interface fastethernet 0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#end

Pronto. Voltaremos a carga com mais materias sobre este assunto.

Switch_A#vlan database

Switch_A(vlan)#vlan 10 name Accounting

Switch_A(vlan)#vlan 20 name Marketing

Switch_A(vlan)#vlan 30 name Engineering

Switch_A(vlan)#exit

Segurança em VLANs, uma alerta aos administradores de redes.

É sempre bom estar a par daquilo que vai sendo lançado na Defcon. Desta vez por exemplo fiquei surpreendido com a palestra VLANs Layer 2 Attacks: Their Relevance and their Kryptonite de Kevin Figueroa, Marco Figueroa e Anthony L. Williams onde eles mostram a fragilidade de protocolos como VTP (VLAN Trunking Protocol) que da forma como funcionam (com envio de pacotes VTP) permitem a um atacante na rede adicionar, apagar uma ou todas VLANs. Existem uma outra serie de fragilidades uns nao tao conhecidos como outros como ARP poisoning, overflow em tabelas CAM, ataques ao protocolo Spanning Tree etc, mas que com certeza sao de leitura obrigatoria para administradores de médias redes a redes de campus.