Redes wireless: Calculando a potência de transmissão e de recepção

 Redes, Wireless  Comentários desativados em Redes wireless: Calculando a potência de transmissão e de recepção
jul 192012
 

Introdução

Assim como em outras tecnologias de transmissão via rádio, a distância que o sinal é capaz de percorrer em uma rede Wi-Fi depende não apenas da potência do ponto de acesso, mas também do ganho da antena e de fatores ambientais, tais como obstáculos e interferência eletromagnética. Este é um guia de como calcular a potência efetiva de transmissão do ponto de acesso e como obter a potência necessária para atingir a distância desejada ao criar um link de longa distância.

A potência total da transmissão é medida em dBm (decibel milliwatt), enquanto o ganho da antena é medido em dBi (decibel isotrópico). Em ambos os casos, é usado o decibel como unidade de medida, mas o parâmetro de comparação é diferente, daí o uso de duas siglas distintas.

No caso da potência de transmissão, o parâmetro de comparação é um sinal de 1 milliwatt. Dentro da escala, um sinal de 1 milliwatt corresponde a 0 dBm. A partir daí, cada vez que é dobrada a potência do sinal, são somados aproximadamente 3 decibéis, já que, dentro da escala, um aumento de 3 decibéis corresponde a um sinal duas vezes mais forte, da mesma forma que temos com o som:

00 dBm = 1 milliwatt
03 dBm = 2 milliwatts
06 dBm = 4 milliwatts
09 dBm = 7.9 milliwatts
12 dBm = 15.8 milliwatts
15 dBm = 31.6 milliwatts
18 dBm = 61.1 milliwatts
21 dBm = 125.9 milliwatts
24 dBm = 251.2 milliwatts
27 dBm = 501.2 milliwatts
30 dBm = 1000 milliwatts
60 dBm = 1000000 milliwatts

O ganho da antena, por sua vez, é medido em relação a um radiador isotrópico, um modelo teórico de antena, onde o sinal seria transmitido igualmente em todas as direções. Um radiador isotrópico seria uma esfera perfeita, sem diferença alguma de polarização em toda a superfície. Ele é impossível de construir na prática (já que a presença do conector já tornaria a esfera imperfeita) e não seria muito útil de qualquer forma, pois mandaria muito sinal para o céu e para a terra e menos sinal para os clientes que devem recebê-lo.

Todas as antenas concentram o sinal em determinadas direções, sendo que quanto mais concentrado é o sinal, maior é o ganho. Uma antena de 3 dBi, por exemplo, irradia o sinal com o dobro de potência que um radiador isotrópico, porém irradia em um ângulo duas vezes menor. Uma antena de 6 dBi oferece um sinal quatro vezes mais concentrado, porém para um ângulo 4 vezes mais estreito, e assim por diante. De uma forma geral, quanto maior é o ganho desejado, maior precisa ser a antena; justamente por isso as antenas ominidirecionais e yagi de alto ganho são muito maiores que as antenas padrão de 2.2 dBi dos pontos de acesso.

Continuando, a potência total de saída é obtida convertendo a potência do transmissor, de milliwatts para dBm e, em seguida, somando o ganho da antena (em dBi). Duas calculadoras que oferecem a opção são:

http://www.radiolabs.com/stations/wifi_calc.html
http://store.freenet-antennas.com/linkbudget.php

Como comentei, a maioria dos modelos domésticos de pontos de acesso trabalham com 17.5 dBm (56 milliwatts) ou 18 dBm (63 milliwatts) de potência, mas existem modelos com apenas 15 dBm (31.6 milliwatts) e, no outro extremo, alguns modelos com até 400 milliwatts (26 dBm), como o Senao ECB-3220 e o OVISLINK WL-5460:

É importante notar que, em muito casos, a potência anunciada pelo fabricante inclui o ganho da antena, de forma que um ponto de acesso com sinal de 20 dBm pode ser, na verdade, um ponto de acesso com transmissor de 18 dBm e uma antena de 2 dBi. Nesse caso, você obteria 24 dBm ao substituir a antena padrão por uma antena de 6 dBi e não 26 dBm (20+6) como poderia pensar à primeira vista. Uma diferença de 2 dBm pode parecer pequena, mas na verdade equivale a um aumento de 66% na potência do sinal, daí a importância de checar as especificações com atenção.

A lógica é simples: Nenhuma antena irradia o sinal igualmente em todas as direções. Mesmo as antenas ominidirecionais irradiam mais sinal na horizontal que na vertical. Isso significa que o sinal é concentrado dentro da área de transmissão da antena, tornando-se mais forte. Como vimos, quanto maior o ganho da antena, mais concentrado e forte é o sinal, fazendo com que ele seja capaz de percorrer distâncias maiores e superar mais obstáculos. Se a potência de transmissão nominal é de 400 mW, o uso de uma antena de 2.2 dBi faria com que, na prática, tivéssemos uma potência de transmissão de 880 mW (29.4 dBm).

Se a antena padrão fosse substituída por uma antena yagi com ganho de 18 dBi, a potência de transmissão subiria para 44 dBm e, se a antena tivesse 24 dBi, subiria para impressionantes 50 dBm. Na prática, os valores seriam um pouco mais baixos, devido à perda introduzida pelo cabo e pelos conectores, mas ainda assim os números seriam impressionantes.

Mesmo um ponto de acesso mais simples, com um transmissor de 56 milliwatts (17.5 dBm), pode atingir uma boa potência de transmissão se combinado com uma antena de bom ganho. Mesmo usando uma antena setorial de 12 dBi, a potência total de transmissão já seria de 29.5 dBm, o que equivale a 891 milliwatts. A principal diferença é que nesse caso o sinal seria concentrado em uma área muito menor, tornando-o utilizável para um link de longa distância, mas não para uma rede doméstica, onde o sinal precisa ficar disponível em todo o ambiente.

Em se tratando de links de longa distância, é preciso ter em mente que a potência de transmissão do ponto de acesso não está necessariamente relacionada à sua sensibilidade de recepção, e a falha em captar o sinal do cliente também leva à perda da conexão. Ou seja, para obter um ganho tangível, é necessário usar produtos com uma maior potência de transmissão dos dois lados do link.

Uma antena de alto ganho (corretamente focalizada), por outro lado, aumenta tanto a potência de transmissão quanto a sensibilidade de recepção, já que é capaz de concentrar o sinal em ambas as direções. É por isso que instalar uma antena yagi na placa do seu notebook permite que ele consiga se conectar a redes tão distantes, mesmo sem modificações nos respectivos pontos de acesso.

Continuando, o sinal transmitido pelo ponto de acesso é espalhado por uma grande área, de forma que apenas uma pequena quantidade da energia irradiada é efetivamente captada pela antena receptora. Vamos então a uma outra tabela, dessa vez com a perda teórica em um ambiente livre de obstáculos:

500 metros: -94.4 dB
1 km: -100.4 dB
2 km: -106.4 dB
4 km: -112.4 dB

Como disse, estes números são puramente teóricos, a começar pelo fato de que não temos (pelo menos não dentro da atmosfera do nosso planeta) um ambiente completamente livre de obstáculos, já que a própria umidade do ar atenua o sinal em certa intensidade.

Em um ambiente real, você poderia calcular uma perda de 117 dB para uma distância de 2 km em campo aberto, com um acréscimo de 6 a 9 dB cada vez que a distância dobra.

A margem é necessária, pois em uma situação real você raramente consegue obter um alinhamento perfeito das antenas e fatores ambientais, como o vento e a chuva podem balançá-las (tirando-as da posição ideal). Além disso, variações da umidade afetam o sinal, de forma que o sinal é mais atenuado em dias chuvosos, o que é um dos grandes problemas dos provedores que oferecem acesso wireless. Sem uma boa margem de tolerância, sua rede poderá funcionar bem nos dias de tempo bom, mas ficar instável nos dias nublados ou durante as chuvas.

Subtraindo a perda da potência inicial do sinal, obtemos o valor que chega até o cliente. Se a potência inicial (incluindo o ganho da antena) é de 19 dBm e a perda causada pelo percurso (incluindo os obstáculos) é de 117 dB, por exemplo, significa que o cliente receberá um sinal de apenas -98 dBm. Se a potência de transmissão fosse aumentada para 26 dBm, ele receberia -91 dBm e assim por diante.

Veja que aqui estamos falando em valores negativos, que consistem em apenas uma pequena fração de milliwatt. Como vimos, um sinal de 1 milliwatt equivale a 0 dBm e precisamos dobrar a potência do sinal para cada 3 dBm adicionais. Da mesma forma, cada vez que dividimos a potência do sinal pela metade, subtraímos 3 dBm, de forma que -3 dBm equivalem a 0.5 milliwatt, -6 dBm correspondem a 0.25 e assim por diante. Se você fizer a conta, vai ver que -98 dBm corresponde a um valor realmente muito baixo.

Ao receber o sinal, o cliente precisa amplificá-lo, de forma que ele possa ser processado. Entra em cena então outra especificação importante, que é a sensibilidade de recepção (receive sensitivity), que corresponde ao nível mínimo de sinal que o cliente precisa para receber os dados, com um volume aceitável de erros de recepção.

Ao criar um link de longa distância, é importante usar pontos de acesso e placas com a maior sensibilidade possível. Tenha em mente que uma diferença de apenas 6 dB na recepção permite obter o dobro do alcance, utilizando as mesmas antenas. Este acaba sendo o principal diferencial entre placas de diferentes fabricantes, mesmo quando elas são baseadas no mesmo chipset.

Uma dica é que os pontos de acesso e placas 802.11g atuais oferecem em geral uma recepção melhor do que produtos antigos, baseados no padrão 802.11b (mesmo se utilizadas as mesmas antenas), devido a melhorias nos chipsets.

Os aparelhos baseados no 802.11n oferecem uma taxa de transferência muito maior a curtas distâncias, devido ao uso do MIMO, mas esta característica é praticamente inútil em links de longa distância, onde normalmente utilizamos uma única antena. O 802.11n oferece algumas melhorias adicionais no sistema de correção de erros e na transmissão do sinal, que reduzem o overhead da transmissão em relação ao 802.11g, resultando em um certo ganho na taxa de transmissão (mesmo com uma única antena), mas não espere muito. Note também que um grande número de pontos de acesso 802.11n utilizam antenas fixas, o que os tira da lista de opções.

Você encontra a relação entre o nível mínimo de sinal para cada taxa de transferência nas especificações da placa ou do ponto de acesso. A maioria dos dispositivos trabalha com um valor mínimo de -92 dBm e alguns chegam a -95 dBm (note que a sensibilidade de recepção não está necessariamente relacionada à potência de transmissão). Entretanto, esse valor corresponde à taxa de transmissão mínima, a 1 megabit. Para que a rede possa trabalhar a velocidades mais altas, é necessário um sinal mais forte. Aqui vai uma tabela de referência para que você possa ter uma ideia. Os valores podem variar em até 6 dBm, de acordo com a marca e o modelo da placa:

1 mbps: -92 dBm
2 mbps: -91 dBm
5.5 mbps: -90 dBm
9 mbps: -88 dBm
12 mbps: -87 dBm
18 mbps: -86 dBm
24 mbps: -83 dBm
36 mbps: -80 dBm
48 mbps: -74 dBm
54 mbps: -72 dBm

Pela tabela podemos ver que um sinal de -98 dBm é muito baixo, mesmo para criar um link de apenas 1 megabit. Para cada redução de 3 dB no sinal, temos uma redução de 50% na potência, de forma que -98 dBi corresponde a apenas um quarto de -92 dBi, que seria o mínimo para estabelecer a conexão, dentro das especificações da tabela.

Como citei anteriormente, o ganho da antena afeta também a habilidade de recepção do cliente, de forma que seria possível estabelecer a conexão com sucesso usando uma antena de maior ganho no cliente, que permitisse elevar o sinal de -98 dBm até o nível mínimo necessário.

Uma simples antena setorial ou yagi com 8 dBi de ganho, devidamente apontada para a antena do ponto de acesso remoto, seria suficiente para elevar o sinal ao nível mínimo (a 1 megabit), mas seria necessário usar uma antena com pelo menos 26 dBi para ter uma chance de efetuar a conexão na velocidade máxima, a 54 megabits.

Uma antena de 26 dBi de ganho seria muito cara e volumosa, e a instalação seria difícil, já que tanto ganho resulta em um sinal muito focalizado. Nesse caso, seria muito mais simples usar uma antena de maior ganho no ponto de acesso, mantendo o cliente com uma antena de 8 ou 12 dBi.

No exemplo, estamos emitindo um sinal de 19 dBi, o que corresponde à potência inicial do ponto de acesso, usando a antena padrão, de 2 dBi. Se a substituíssemos por uma antena de 16 dBi a potência do sinal já subiria de 19 (17+2) para 33 dBi (17+16). Descontada a atenuação, o cliente recebia (em teoria) um sinal de -84 dBi, o que reduziria e muito o ganho necessário para chegar nos -72 dBi necessários para efetuar a conexão a 54 megabits.

A fórmula para calcular o sinal que chega efetivamente ao receptor é:

Potência de transmissão + ganho da antena - perda de sinal + ganho da antena receptora

Na prática, temos mais duas variáveis, que são as perdas introduzidas pelos cabos (quanto mais longo é o comprimento e menor for a qualidade do cabo, maior é a perda) e também o volume de ruído de fundo (a combinação de todos os outros sinais de rádio na mesma frequência) presente no ambiente.

Cabos curtos e de boa qualidade normalmente resultam em uma perda inferior a 1 dB, mas cabos muito longos ou mal construídos podem facilmente introduzir uma perda de 3 dB ou mais.

A menos que você consiga instalar a antena diretamente no conector da placa (o que é impossível com uma antena de alto ganho), você vai precisar usar dois cabos, um no emissor e outro no cliente, de forma que a perda do cabo torna-se uma questão crítica. Se cada cabo causar uma perda de 3dB, a perda total subiria para 6 dBi, suficiente para fazer com que a velocidade da conexão caísse de 54 para 36 megabits, ou de 36 para 18 megabits.

A perda de sinal causada pelo cabo é também o motivo de algumas antenas baratas, de 4 ou 5 dBi, muitas vezes oferecerem uma recepção pior do que a antena padrão do ponto de acesso. Se o cabo for ruim ou houverem falhas nas soldas, a perda pode acabar sendo maior do que a diferença de ganho da antena.

Em seguida, temos a questão do ruído de fundo, que dificulta a recepção do sinal pelo cliente. A relação entre o sinal e o ruído de fundo é chamada de “signal to noise ratio” e é informada por programas de diagnóstico (executados no cliente), como o Wavemon (no Linux) ou o Netstumbler (no Windows), como veremos em detalhes a seguir.

Se o sinal for mais fraco que a interferência, o cliente não consegue captá-lo e se o sinal for mais forte, mas a diferença for pequena, haverá um grande volume de pacotes perdidos e a conexão será instável. Para manter uma conexão minimamente estável, é necessário que o signal to noise ratio seja de pelo menos +5 dB, ou seja, que o sinal seja 5 dB mais forte que o ruído de fundo ou interferência.

Em zonas rurais ou pouco povoadas, o ruído de fundo raramente é um problema, já que o volume de transmissões é pequeno, mas nas grandes cidades ele pode atrapalhar bastante, obrigando-o a usar antenas de maior ganho.

Uma observação é que a antena no cliente capta tanto o sinal quanto o ruído de fundo, amplificando ambos igualmente. Ou seja, ela permite captar um sinal mais fraco, mas não faz nada para melhorar o signal to noise ou seja, a relação sinal/ruído. Devido a isso, em ambientes com muito ruído, aumentar o ganho da antena transmissora acaba sendo mais efetivo do que aumentar o ganho da antena receptora.

Usando amplificadores e antenas de alto ganho, é relativamente fácil criar links de longa distância. Basta calcular que um amplificador de 1 watt gera um sinal de 30 dBm. Adicionando uma antena parabólica de 32 dBi, chegamos a 62 dBm. Usando o mesmo conjunto de amplificador bidirecional e antena do outro lado, poderíamos facilmente criar um link de 32 km ou mais.

O problema é que um sinal tão forte criaria um forte interferência em toda a faixa de sinal da antena, derrubando ou reduzindo a taxa de transmissão de todas as redes pelo caminho.

Para ter uma ideia, o recorde de distância atual com uma rede Wi-Fi, obtido em junho de 2007 por uma equipe de técnicos da Venezuela é de 382 km e existem outros exemplos de links com mais de 200 km (faça uma pesquisa por “wireless long-distance link record” no Google), como um link de 304, km obtido por uma empresa Italiana:

http://blog.wired.com/gadgets/2007/06/w_wifi_record_2.html
http://www.ubnt.com/company_press_07.php4.

Link Wi-Fi experimental de 304 km, criado pela Ubiquiti, na Itália

Em ambos os casos, os links foram criados em áreas pouco povoadas e obtidos usando antenas de altíssimo ganho, que resultam em um feixe extremamente estreito, limitando, assim, o nível de interferência com outras redes. Entretanto, tentativas similares em áreas densamente povoadas, poderiam criar sérios problemas. Com certeza você não iria gostar se o seu vizinho da frente jogasse um sinal de 62 dBm bem em direção à sua janela.

Para prevenir extremos como esses, existem normas regulatórias, que variam de país para país. Nos EUA, é permitido o uso de uma potência EIRP de até 4000 milliwatts (36 dBm) utilizando uma antena de 6 dBi ou mais, ou de até 1000 milliwatts (30 dBm) ao utilizar uma antena de menor ganho.

O valor EIRP (equivalent isotropically radiated power) corresponde à potência efetiva da transmissão, obtida somando a potência do transmissor e o ganho da antena (descontando perdas causadas pelos cabos e outros fatores). Ou seja, ao usar um ponto de acesso com transmissor com 250 mW e um cabo com perda de 3 dB, seria permitido usar uma antena de até 21 dBi, e assim por diante.

Em muitos países da Europa, vigora uma norma muito mais restritiva, que limita as transmissões a apenas 100 milliwatts (20 dBm), o que equivale à potência nominal da maioria dos pontos de acesso, sem modificações na antena ou uso de amplificadores.

No Brasil, vigora uma norma de 2004 da Anatel (resolução 365, artigo 39) que limita a potência EIRP do sinal a um máximo de 400 milliwatts (26 dBm) em cidades com mais de 500 habitantes. Acima disso, é necessário obter uma licença (fornecida apenas a empresas), desembolsando R$ 1450 por ponto, mais uma taxa de renovação anual.

A melhor opção para criar links de longa distância sem violar a legislação, nem precisar pagar a licença é reduzir a potência de transmissão do ponto de acesso (a maioria dos modelos oferecem esta opção nas configurações) e utilizar antenas de maior ganho dos dois lados do link. Assim, ao invés de usar 63 milliwatts (18 dBm) e antenas de 9 dBi, você usaria 31.6 milliwatts (15 dBm) e antenas de 12 dBi, por exemplo (a diferença de 1 dBm no exemplo corresponde à perda do cabo).

A lógica é que uma antena de maior ganho melhora tanto o envio quanto a recepção, enquanto uma maior potência melhora apenas a transmissão. Seguindo essa dica, é possível criar links de 2, ou até mesmo 4 km sem violar a norma da Anatel. Calcule que emitindo um sinal de 26 dBm, e usando uma antena de 12 dBi no cliente, ele ainda receberia um sinal de -79 dBm depois de uma perda de 117 dB (26 -117 + 12).

Outra restrição importante com relação à legislação Brasileira é que para vender serviços de acesso (como no caso de um provedor de acesso) é necessário obter uma licença SCM, que além das taxas e da burocracia é concedida apenas a empresas do ramo de telecomunicações. Sem a licença, você pode apenas criar links para uso interno (como ao interligar dois escritórios de uma mesma empresa, por exemplo), sem vender acesso à web.

Transparently Bridge two Networks

 Linux, Redes, Wireless  Comentários desativados em Transparently Bridge two Networks
jul 192012
 

Remote networks can be easily bridged using WDS feature of MikroTik RouterOS™. We will show it for the case when the networks are connected through Atheros wireless interface. Using EoIP, this can be extended to any other type of interfaces, like PPTP and CISCO/Aironet. WDS works only on Prism and Atheros based cards.

Let us assume the following network setup:

Bridge.jpg

^^Please ignore the AP; Wlan; LAN ip, all of them is not been use in this setup, photo just for reference.^^
Follow the steps below to create transparent bridge using WDS:

1. Create a bridge interface on AP and add ether1 interface to the bridge in WinBox

Transparently Bridge 1.jpg

Transparently Bridge 2.jpg

or in console

[admin@AP]> interface bridge add name=wds-bridge
[admin@AP]> interface bridge port add interface=ether1 bridge=wds-bridge

Do the same on the Station, and add ether1, wlan1 interfaces to the bridge in Winbox

Transparently Bridge 3.jpg

or in console

[admin@Station]> interface bridge add name=wds-bridge
[admin@Station]> interface bridge port add interface=ether1 bridge=wds-bridge
[admin@Station]> interface bridge port add interface=wlan1 bridge=wds-bridge

2. Make sure you have communication between MikroTik routers, i.e., one router is configured as server (AP), the other one as client (station). Configure wireless interface wlan1 on AP in WinBox

Transparently Bridge 4.jpg

or in conslole

[admin@AP]> interface wireless set wlan1 ssid=MikroTik frequency=5805 mode=bridge disabled=no

Do the same configuration on Client wireless interface (wlan1) in Winbox

Transparently Bridge 6.jpg

or in console

[admin@Station] interface wireless set wlan1 mode=station-wds ssid=MikroTik  disabled=no

3. Create wds interface on AP and add the interface to the bridge in WinBox

Transparently Bridge 5.jpg

or in console

[admin@AP] interface wireless set wlan1 wds-mode=dynamic wds-default-bridge=wds-bridge

4. Check whether the WDS link is established in WinBox

Transparently Bridge 7.jpg

or in console

[admin@AP] interface wireless wds> print
Flags: X - disabled, R - running, D - dynamic
0  RD name="wds1" mtu=1500 mac-address=00:0B:6B:30:B4:A4 arp=enabled
      disable-running-check=yes master-interface=wlan1
      wds-address=00:0B:6B:35:E5:5C

4. Add IP address on AP in WinBox

Transparently Bridge 8.jpg

or in console

[admin@AP]> ip address add address=10.1.0.215/24 interface=wds-bridge

And on Station:

[admin@Station]> ip address add address=10.1.0.216/24 interface=wds-bridge

5. Test the bridge by pinging from 10.0.0.215 to 10.0.0.216. Note, that the bridge needs 10…30s to learn addresses and start passing through traffic.

NOTE: If not using NAT/MANGLE nor anything doing with conntrack, remember to turn of it at both link ends.

In the console:

[admin@xx]> ip firewall connection tracking set enabled=no

This will help you get the full bandwidth the wireless link can achive freeing the CPU load.

Arquitetura de Core Centralizada x Core Distribuída

 Clusterweb, Linux, Redes  Comentários desativados em Arquitetura de Core Centralizada x Core Distribuída
jul 182012
 

Tradicionalmente, as redes ethernet (tanto para Data Center como para campus LAN), respeitam um modelo hierárquico de arquitetura chamado “three tier layer”, onde há uma camada de core (núcleo), distribution (distribuição) e access (acesso). Cada uma dessas camadas define uma função específica.

Via de regra, a camada de acesso é utilizada para prover a conexão dos dispositivos de rede dos usuários finais (desktops, laptops, impressoras, pontos de acesso wireless, etc.) à rede propriamente dita.

A camada de distribuição, é utilizada no sentido de prover o roteamento e a agregração entre as VLANs dos usuários nas camadas de acesso. É nesse camada onde se definem listas de acesso, regras de segurança, políticas de roteamento entre VLANs, etc.

Por fim, a camada de núcleo (core) é a cada responsável por agregar tudo isso e fazer o “hand off” da rede para o mundo externo. Via de regra, nessa camada se conectam os roteadores, firewalls e todos os dispositivos responsáveis pela interconexão do mundo LAN para o mundo WAN (ou outras redes fora de uma determinada rede LAN). A figura abaixo, ilustra o conceito da arquitetura “three tier”:

Notem que por uma questão de redundância e alta disponibilidade da rede, todos os switches (ilustrados pelos quadrados) possuem duas conexões para a camada vizinha: se uma conexão falhar, a outra pode assumir todo o tráfego sem problemas.

Além da arquitetura “three tier”, há uma adaptação desse desenho, chamado de “two tier”. A idéia é similar à da primeira. Porém justifica-se utilizá-la em redes menores (até 500 pontos na camada de acesso). Nesse caso, a camada de core e distribution serão “colapsadas” em uma única camada. Assim:

Mesmo nesse desenho, a idéia da redundância para alta disponibilidade continua presente: tenho dois links para a camada de cima. Se um falhar, o outro assume o tráfego.

Alguém nessa altura do texto (espero que sim) poderia se perguntar: se a idéia é prover redundância de conectividade, porque não aumentar o número de links entre as camadas? Porque manter só dois links entre um elemento de uma camada e o outro de outra, sendo que eu poderia fazer 3, 4, ou 5 links?

Antes de responder o porquê, vale uma observação: mesmo que não houvesse restrição tecnológica para usarmos mais de dois links, valeria a pena financeiramente falando? Em redes de data Center, estou certo que sim. Em redes campus LAN (para usuário final), a resposta pode não ser tão óbvia…

Mas, voltando à tecnologia: lembram-se do Spanning Tree Protocol? O protocolo que limitava a utilização dos meus links entre as camadas da rede hierárquica, com o intuito de evitar as “broadcast storms”? A resposta do porquê não fazer mais de dois links entre as camadas está aí.

Lembrem-se que o Spanning Tree é um protocolo que deixava um link habilitado (funcionando) e o outro em “stand by” (aguardando uma possível falha no primeiro). Essa é uma limitação do protocolo. Dessa forma, um switch que está na camada de acesso conectado por dois links a dois switches de distribuição (ou core) distintos, estará de fato utilizando apenas um link. O outro está esperando a falha do primeiro para entrar em ação. Na figura abaixo, a linha inteira representa o link ativo. A linha pontilhada, o link bloqueado. A mesma idéia se multiplica por todos os “n” dispositivos conectados às camadas da rede (não importa qual).

Se fizéssemos 3, 4 ou 5 links, a mesma coisa aconteceria: apenas um link estaria ativo. Todos os outros ficariam parados. Dessa forma, não faria sentido adicionar tantos links quanto fossem possíveis, já que você só continuaria utilizando apenas um de fato.

Até aqui falamos do desenho tradicional de redes Ethernet hierárquicas (em três em duas camadas). Em resumo, podemos relacionar algumas das suas características principais:

  • Links entre as camadas sempre feito em dois uplinks: um ativo, um bloqueado (em stand by, aguardando a falha do primeiro link).
  • Protocolo Spanning Tree presente: previne os loops de broadcast na rede, porém reduz sua capacidade instalada de utilização simultânea de uplinks (em fibra óptica ou pares metálicos)  em 50%. Além disso, num ambiente com múltiplos domínios de broadcast (VLANs), configurar spanning tree pode ser algo desafiador… (usa-se nesse caso o PVSTP – per VLAN Spanning Tree Protocol)
  • Switches de core e/ou distribuição do tipo “chassis”: dada a necessidade de alta concentração de portas nessas camadas, switches de configuração de portas fixas podem não oferecer um número de portas suficientes para conectar todo mundo que está logo abaixo. Além disso, essas equipamentos oferecem um nível de redundância intrínseca à sua própria arquitetura de hardware. Via de regra, é possível configurá-los com duas placas de processamento (Supervisor como gostam de chamar os Cisco Guys, Management Module como gostam de chamar os Brocade Guys, Route Engine como gostam de chamar os Juniper Guys…), várias fontes de energia redundantes, coolers redundantes e por aí vai…

Mas… e se fosse criado um protocolo que endereçasse todas as ineficiências do Spanning Tree protocol. Onde fosse possível fazer plena utilização dos meus recursos de uplink (inclusive se eu quisesse utilizar mais de dois), tudo funcionando na camada 2 (Ethernet mesmo) sem ter que apelar para uma segmentação através de endereçamento IP (o que pode ser trabalhoso também) e sem correr o risco de ver minha rede com loops infinitos de broadcast “comendo” os meus uplinks e processadores dos switches?

A boa notícia: esse protocolo já existe! Trata-se do TRILL – Transparent Interconnect of Lots of Links. Esse protocolo permite o conceito de core distribuído (onde é possível colocarmos mais de dois switches na camada de core com utilização de todos os uplinks entre as camadas que compõe a rede).

O TRILL reúne em um único protocolo as vantagens da comutação (feita em camada 2) com as vantagens do roteamento (feito em camada 3). Além disso, para evitar eventuais loops de broadcast, utiliza um conceito extremamente simples que já é utilizado hoje pelo protocolo IP – o conceito de hop count – cada vez que um quadro de dados passa por um switch, um campo de hop count é decrementado. Quando esse valor chega a zero, o switch descarta o pacote (no IP esse campo é chamado de TTL – time to live)

Por conta de incorporar conceitos de comutação e roteamento em um único dispositivo, os switches são comumente referenciados como RBridges (Route-Bridges) na terminologia do protocolo TRILL.

E já que estamos falando em terminologia, nas redes de core distribuído as camadas são chamadas de camadas de SPIN e LEAF.

Além disso, o TRILL utiliza um protocolo do tipo “link state” para fazer o roteamento entre os nós da rede. Trata- se do IS-IS (Intermediate System to Intemediate System). Porém, ao invés de roteamento de endereços IP, ele faz o roteamento de endereços físicos, ou seja: roteamento de MAC ADDRESS!!!

Portanto, podemos dizer que o TRILL é um protocolo da camada 2,5: ele opera na camada 2, porém utiliza recursos de camada 3 para funcionar!

Além disso, o TRILL possibilita o que era impensável em redes hierárquicas tradicionais usando Spanning Tree protocol – a utilização do conceito de ECPM – Equal Cost Multi Path – que nada mais é do poder encaminhar as informações entre as camadas e nós através de diversos links simultaneamente  – fazendo assim, load balance entre os diversos links que interligam as camadas da topologia.

Em resumo, com TRILL, é possível criar redes com topologias assim:

Note que cada switch da camda de leaf (a de baixo), possui uma conexão para cada elemento da camada de spin (a de cima). Isso cria o conceito da rede ethernet full fabric. E note que, se eventualmente um dos switches da camada de spin falhar, os demais continuam suportando o tráfego que vem dos equipamentos da camada de leaf, sem comprometer o funcionamento da rede. Além disso, todos os links estão em pleno funcionamento: sem bloqueios!

Em resumo, nas redes TRILL encontraremos as seguintes características:

  • utilização plena de todos os recursos de links entre as camadas de SPIN e LEAF
  • pode-se utilizar switches “mais simples” no que diz respeito ao nível de redundância de hardware – já que todos os switches participam no processo de composição do core distribuído, restam vários outros que podem assumir a função daquele que falhar.
  • interoperabilidade com as redes hierárquicas legadas (que ainda estão rodando Spanning Tree).

O assunto é extenso e há muitos outros detalhes envolvidos. A idéia aqui é mostrar como está evoluindo o desenho de soluções de rede Ethernet e quais são as alternativas aos desenhos tradicionais. Há ainda muitos paradigmas a serem quebrados (principalmente quando falamos em aposentar os grandes switches chassis de rede, que passam uma sensação de segurança muito grande dada a sua alta redundância de hardware). Mas, definitivamente, é uma tendência para os próximos Data Centers que vem por aí.

Switch

 Leitura Recomendada, Redes  Comentários desativados em Switch
jul 182012
 

Um switch, que pode ser traduzido como comutador, é um dispositivo utilizado em redes de computadores para reencaminhar quadros (ou tramas em Portugal, e frames em inglês) entre os diversos nós. Possuem diversas portas, assim como os concentradores (hubs) e a principal diferença entre o comutador e o concentrador é que o comutador segmenta a rede internamente, sendo que a cada porta corresponde um segmento diferente, o que significa que não haverá colisões entre pacotes de segmentos diferentes — ao contrário dos concentradores, cujas portas partilham o mesmo domínio de colisão.

Funcionamento
Os comutadores operam semelhantemente a um sistema telefônico com linhas privadas. Nesse sistema, quando uma pessoa liga para outra a central telefônica as conectará em uma linha dedicada, possibilitando um maior número de conversações simultâneas.
Os comutadores não propagam domínios de colisão (isto é não difundem os PDUs para todas as interfaces), mas propagam broadcasts ao contrário dos roteadores.

Um comutador pode comutar em várias camadas, e os mais usuais operam nas camadas 1, 2, 3 e 4 do modelo OSI de referência, mas existem outros Switches que trabalham nas camadas acima 5, 6 e 7.
Camada 1 representa a camada fisica representando os padrões de cabeamento e conectividade, com isso todos os Switches operam nesta camada.
Camada 2 (camada de enlace) encaminha os pacotes de acordo com o endereço MAC de destino, e é destinado a redes locais para segmentação.
Camada 3 (camada de rede) herda algumas propriedades dos roteadores (routers), roteando os pacotes entre redes ou sub-bredes diferentes.
Camada 4 (camada de transporte) é responsável por pegar os pacotes recebidos da camada de Rede e remontar o dado original para enviá-lo à camada 5(camada de sessão), ou seja, é parte central de toda a hierarquia de protocolos. Sua tarefa é prover o transporte econômico e confiável de dados, independente da rede física ou das redes atualmente em uso.

Podemos classificar os switches da seguinte forma:

Switch CORE
Esta categoria engloba os switches que irão concentrar grandes redes (acima de 1000 pontos), podendo se conectar diretamente aos switches de Distribuição ou até mesmo aos switches de Acesso.
Normalmente suas principais portas são Gigabit e 10Gigabits.

Switch de Distribuição
Esta categoria engloba os switches de alta performance, gerenciáveis e empilháveis, que normalmente segmentam a rede criando uma interligação entre o switch CORE e os switches de Acesso. Podem também trabalhar como switch CORE agregando servidores em redes de pequeno e médio porte (acima de 100 pontos).

Switch SMB
Esta categoria engloba switches de 16 até 48 portas com recursos de gerenciamento e opções para links em fibra óptica, ideal para uso geral em pequenas e médias empresas, podendo também ser utilizado como switch de Acesso para grandes empresas, normalmente no padrão em Rack 19”.

Switch SOHO
Esta categoria engloba pequenos switches com 5 e 8 portas gerenciáveis ou não e Switches de 16 e 24 portas não gerenciáveis, para pequenos grupos de trabalho, pequenas empresas e até pequenos departamentos de grandes empresas, podendo ser instalado em cima de mesas ou rack.

Alta disponibilidade e alta performance com PostgreSQL 9.0 + Pgpool-II

 Banco de Dados  Comentários desativados em Alta disponibilidade e alta performance com PostgreSQL 9.0 + Pgpool-II
jul 132012
 

Com o novo modelo de replicação do PostgreSQL, torna-se viável a utilização de balanceamento de carga nas operações de leitura, uma vez que os servidores de contingência permanecem em modo read-only (Hot Standby). Até a versão 8.4, o balanceamento de carga só era possível se utilizado juntamente com ferramentas de replicação de terceiros, por exemplo Slony.

Apesar de ser uma replicação Master/Slave assíncrona, a funcionalidade Streaming Replication do PostgreSQL 9.0 garante uma replicação consistente e com atraso praticamente imperceptível para o usuário final. Este comportamento viabiliza a utilização dos servidores de contingência, denominados slaves, como fonte de dados atualizada, reduzindo a carga de leitura sobre o servidor master.

A ferramenta Pgpool-II possui a funcionalidade de balanceamento de carga, que visa distribuir operações de leitura entre os servidores envolvidos. Pensando na popularidade da replicação do PostgreSQL 9.0, o grupo de desenvolvedores do Pgpool-II acrescentou algumas funcionalidades específicas de integração com a nova versão do PostgreSQL, lançando a versão 3.0 do Pgpool-II.

A seguir um cenário possível envolvendo PostgreSQL 9.0 e Pgpool-II 3.0:

Pgpool-II é um software intermediário(middleware) entre a aplicação(frontend) e o servidor PostgreSQL(backend). Age de forma transparente e suporta até 128 nós de replicação. Pode-se considerar as seguintes funcionalidades principais:

Pooling de conexões (Aglomerador de conexões)

  • Mantém conexões abertas com o servidor PostgreSQL, reutilizando-as para novas conexões com as mesmas propriedades.
  • Reduz o overhead causado pela abertura de novos processos (fork) no servidor PostgreSQL.

Fonte: Pgpool Global Development Group

As conexões são fechadas entre o usuário e o Pgpool-II. O usuário devolve a conexão ao pool, mas as mesmas persistem no servidor de banco de dados para reutilização:

Fonte: Pgpool Global Development Group

Replicação

Permite o envio de todas as operações para todos os servidores PostgreSQL envolvidos.

Balanceamento de carga

Distribui consultas de forma aleatória entre os servidores PostgreSQL envolvidos.

Fonte: Pgpool Global Development Group

Consultas paralelas

Particiona tabelas entre os servidores envolvidos, possibilitando a execução de consultas ao mesmo tempo sobre conjuntos diferentes de dados.A funcionalidade de replicação do Pgpool-II não oferece a consistência necessária para a maioria das aplicações. O modelo de replicação é conhecido como Dual-master, sendo baseado em comandos. Desta forma os comandos são executados em cada servidor, tornando possível a existência de bases de dados com informações diferentes quando utilizadas funções que retiram informações do servidor. Por exemplo: now() e random().

A paralelização de consultas não é o foco deste artigo, mais informações sobre estas funcionalidades estão disponíveis no site do projeto http://pgpool.projects.postgresql.org/.

Para o ambiente em questão utiliza-se apenas as füncionalidades de pool de conexões e balanceamento de carga.

A versão 3.0 do Pgpool-II provê a este ambiente, as seguintes características:

  • Failover automático através da detecção de falha no processo monitor do Pgpool-II e execução de comando definido no parâmetro failover_command;
  • Modo de balanceamento Master/Slave específico para Streaming Replication;
  • Interpretação de comandos (parser) para distinguir comandos de alteração e consultas;
  • Verificação do atraso do servidor slave em relação ao master. Caso o atraso exceda o valor definido no parâmetro delay_threshold, as consultas só serão enviadas ao servidor master;
  • Possibilidade de adição de servidores slaves sem reiniciar o serviço do Pgpool.

Para que o próprio servidor do Pgpool-II não seja um ponto único de falha, pode-se configurar uma réplica do servidor. O script pgpool-HA é um recurso do software Heartbeat que pode garantir o serviço do Pgpool-II sempre ativo independente do servidor.

A ferramenta web Pgpooladmin pode auxiliar na administração das funcionalidades do Pgpool-II. Instalada no próprio servidor do Pgpool-II ela facilita tarefas de monitoramento, administração do processo e alterações na configuração. Estas ferramentas auxiliares estão disponíveis no site do projeto http://pgfoundry.org/projects/pgpool/.

A análise de ferramentas de alta disponilidade e desempenho para servidores PostgreSQL é o foco do Treinamento PostgreSQL Alta disponibilidade, promovido pela Dextra Sistemas. Este e outros ambientes são configurados pelos próprios alunos durante treinamento, visando capacitar o aluno na escolha e implantação da tecnologia adequada em ambientes corporativos.