terça-feira, 23 de setembro de 2008

Linux: Configurando a rede manualmente

Introdução

Este documento tem a finalidade de mostrar como configurar a rede no Debian e em distribuições derivadas dele como Ubuntu, Kurumin, Kalango e etc.

Ao contrário do que muitos imaginam a configuração da rede em si em Linux não é complicada, o que ocorre é que muitas vezes as pessoas que tentam fazer essa configuração em Linux não tem o mínimo de conhecimento de redes e por isso troca a ordem de fazer as coisas, esquece de algum detalhe ou coisas do gênero. Veremos neste tutorial como configurar IP, Gateway e DNS, fixo ou dinâmico, veremos também como se conectar na internet usando conexão PPPOE (ADSL).

Em uma rede típica, tenha em mente que precisamos configurar 3 coisas para que uma determinada máquina possa se comunicar com a rede interna e externa (internet). Essas três coisas são: IP, Gateway e DNS. O ideal é que decoremos nesta ordem, pois tem uma certa lógica se consideramos que ao configurar um IP em nossa máquina já teremos acesso aos outros micros da rede (mas não à internet). Ao configurarmos o gateway estamos dizendo para a nossa máquina qual o equipamento que nos fornece conexão com a internet e a partir daí já podemos nos comunicar com a internet, porém só por endereço de IP como 200.204.0.1, se tentarmos acessar www.guiadohardware.net já não teremos êxito pois para conseguir acessar sites através de nomes precisamos configurar o DNS, configurando-o já teremos acesso tanto à rede interna como à internet.

Um pré requisito para se trabalhar com redes em Linux é entender como as placas de redes são representadas no sistema. O nomes das placas de redes em Linux sempre começam com eth seguido de um número à partir de 0. Normalmente temos no minimo uma placa de rede que é onboard, neste caso esta seria a primeira placa, portanto seria representada como eth0. Se tivermos outra placa de rede esta será eth1 e assim sucessivamente. Para visualizar as configurações atuais das placas usamos o comando ifconfig que veremos à seguir.

Isso tudo no que se refere à rede, para conexão direta à internet via modem ADSL com autenticação PPPoE utilizaremos um aplicativo chamado pppoeconf, mas isso no final do capítulo.



Usando o ifconfig


Para verificar as placas detectadas e ativas no momento utilize o comando ifconfig sem parâmetro nenhum:


# ifconfig


eth0 Link encap:Ethernet Endereço de HW 00:1b:24:0b:6e:f9
inet end.: 192.168.0.3 Bcast:192.168.0.255 Masc:255.255.255.0
endereço inet6: fe80::21b:24ff:fe0b:6ef9/64 Escopo:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1
pacotes RX:82307 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:69351 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:1000
RX bytes:77572745 (73.9 MB) TX bytes:10467746 (9.9 MB)
IRQ:17 Endereço de E/S:0xa000


lo Link encap:Loopback Local
inet end.: 127.0.0.1 Masc:255.0.0.0
endereço inet6: ::1/128 Escopo:Máquina
UP LOOPBACK RUNNING MTU:16436 Métrica:1
pacotes RX:628 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:628 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:0
RX bytes:31400 (30.6 KB) TX bytes:31400 (30.6 KB)

Algumas vezes por um motivo ou outro temos placas que foram detectadas pelo sistema mas não estão ativas, para ter certeza de quais são todas as placas detectadas utilize o parâmetro -a.


# ifconfig -a

Caso exista uma placa que foi reconhecida mas está desativada você pode ativa-la usando o parâmetro up do ifconfig, mas neste caso você precisa do nome da interface (que o parâmetro -a lhe informará), considerando que seja eth1 faríamos o seguinte:


# ifconfig eth1 up

E para desativa-la:


# ifconfig eth1 down


Atenção: A partir do momento que você executa um down na placa ela não aparece mais no resultado do comando ifconfig sozinho, apenas com o parâmetro -a.

Nós normalmente desativamos uma interface de rede quando não vamos utiliza-la para evitar qualquer tipo de problema ou confusão na hora da configuração.

Além de mostrar informações, ativar e desativar interfaces de rede o ifconfig também é usado para atribuir IP, Máscara de Rede e Endereço de Broadcast, como este documento não tem como foco a parte teórica sobre redes, vamos apenas aprender a aplicar cada um destes itens sem nos estendermos sobre a parte teórica de cada um. Repararam que a configuração do gateway e DNS ficaram de fora? Para esta duas configurações não utilizamos o ifconfig como veremos a seguir.

Como exemplo vamos considerar que estamos na rede 192.168.0 e que a máscara seja 255.255.255.0, diante deste cenário vamos atribuir o IP 192.168.0.2 para a interface eth0.


# ifconfig eth0 192.168.0.2
# ifconfig eth0


eth0 Link encap:Ethernet Endereço de HW 00:1b:24:0b:6e:f9
inet end.: 192.168.0.2 Bcast:192.168.0.255 Masc:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Métrica:1
pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0
Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0
colisões:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
IRQ:18 Endereço de E/S:0x4000


Perceba no item inet end.: que agora a interface eth0 tem o número de IP 192.168.0.2, fique atento também para perceber que apesar de não termos atribuído nenhuma máscara ou endereço de Broadcast o sistema atribuiu automaticamente os valores 255.255.255.0 e 192.168.0.255 respectivamente, isso porque essa é uma configuração típica, ou seja, uma rede de classe C utilizando o último endereço IP para Broadcast. Mas se fosse o caso poderíamos ter passado essas informações para o ifconfig usando a seguinte sintaxe:


# ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255

Depois de atribuir um número de IP, caso já tenha outro micro na rede (Linux ou não) devidamente configurado você pode testar a comunicação com ele usando o comando ping:


# ping -c5 192.168.0.1


PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=0.053 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.047 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=0.047 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=0.048 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=0.052 ms


--- 192.168.0.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3997ms
rtt min/avg/max/mdev = 0.047/0.049/0.053/0.006 ms

Se o resultado for algo parecido com o que está acima, ótimo, caso contrário você precisa verificar o que pode estar errado antes de prosseguir. As hipóteses para não haver comunicação são inúmeras, no entanto procure verificar se o cabo está conectado exatamente na interface que você configurou; se o outro micro está ligado; se o Hub ou Switch (caso exista) está funcionando e assim por diante, enfim, verifique tanto a parte física (hardware) quanto a parte lógica (software).

Tendo sucesso na comunicação com os demais micros da rede podemos seguir e configurar o Gateway, ou seja, dizer para a nossa máquina qual é o micro ou equipamento na rede que está compartilhando a internet, para isso vamos utilizar o comando route, consideremos que o roteador (gateway) seja 192.168.0.1:


# route add default gw 192.168.0.1


route é o comando em si;
add é porque estamos adicionando uma rota;
default porque esta rota será a padrão;
gw porque oque estamos adicionando se trata de um roteador (ou um computador fazendo esta função)

Para verificar se a rota foi incluída com sucesso use:


# route -n

O número 192.168.0.1 (no nosso caso) tem que estar disponível na lista, caso contrário execute o comando novamente e verifique mais uma vez.

Se tudo estiver Ok você já deve ter acesso à internet, portanto vamos tentar pingar um número de IP externo para ver se temos resposta:


# ping -c5 200.204.0.10


PING 200.204.0.10 (200.204.0.10) 56(84) bytes of data.
64 bytes from 200.204.0.10: icmp_seq=1 ttl=64 time=0.058 ms
64 bytes from 200.204.0.10: icmp_seq=2 ttl=64 time=0.049 ms
64 bytes from 200.204.0.10: icmp_seq=3 ttl=64 time=0.057 ms
64 bytes from 200.204.0.10: icmp_seq=4 ttl=64 time=0.055 ms
64 bytes from 200.204.0.10: icmp_seq=5 ttl=64 time=0.049 ms


--- 200.204.0.10 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 0.049/0.053/0.058/0.008 ms

Se conseguimos pingar um número de IP então vamos tentar pingar algum site:


# ping -c5 marcelo-anderson.blogspot.com

Funcionou? Provavelmente não, porque nossa máquina “não sabe” quem é www.guiadohardware.net precisamos configurar o servidor de nomes, o famoso DNS, ele é a última coisa que falta para concluirmos nosso exemplo, para configurar o DNS você precisa editar o arquivo /etc/resolv.conf e colocar algo como o conteúdo abaixo:


nameserver 200.204.0.10
nameserver 200.204.0.138

Estes servidores DNS são da telefônica, você pode colocar qualquer servidor válido, mas dê preferência para o servidor que seu provedor te fornecer, assim evita problemas. Perceba que fora o endereço do servidor (que vão te fornecer) a única regra para o arquivo é a linha começar com a palavra nameserver. É comum configurarmos dois servidores DNS, pois se um falhar na resolução do nome, ou estiver fora do ar, o outro assume automaticamente.

Agora sim:


# ping -c5 marcelo-anderson.blogspot.com


PING www.guiadohardware.net (204.189.40.11) 56(84) bytes of data.
64 bytes from www.guiadohardware.net (204.189.40.11): icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from www.guiadohardware.net (204.189.40.11): icmp_seq=2 ttl=64 time=0.048 ms
64 bytes from www.guiadohardware.net (204.189.40.11): icmp_seq=3 ttl=64 time=0.047 ms
64 bytes from www.guiadohardware.net (204.189.40.11): icmp_seq=4 ttl=64 time=0.049 ms
64 bytes from www.guiadohardware.net (204.189.40.11): icmp_seq=5 ttl=64 time=0.047 ms


--- marcelo-anderson.blogspot.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 0.047/0.048/0.049/0.000 ms

Ufa, conseguimos.

Mas agora, bem....não vá ficar bravo hein? Tenho uma notícia para dar: Tudo isso que fizemos será perdido ao reiniciarmos o sistema! Com exceção da configuração do DNS, pelo menos isso né?

Acontece o seguinte, essas ferramentas que usamos normalmente são usadas para você ir testando as configurações de rede em tempo real sem perder tempo com outras coisas, mas elas não são definitivas, a idéia é que você faça a configuração dessa forma e se funcionar ai sim deixe esta configuração fixa no arquivo /etc/network/interfaces. Basta seguirmos a sintaxe mostrada abaixo substituindo as informações (obviamente) e a configuração da rede será fixada, lembrando, antes de mexer neste arquivos você tem que ter todas as informações abaixo em mãos:


Nome da Interface de Rede
Endereço IP
Máscara de Sub-rede
Endereço de Broadcast
Endereço do Gateway

Como já temos todas as informações em mãos e sabemos que no nosso exemplo a interface a ser configurada é eth0, ao abrirmos o arquivo vamos remover qualquer linha que faça referência à eth0 e depois acrescentar o seguinte conteúdo:


auto eth0
iface eth0 inet static
network 192.168.0.0
address 192.168.0.2
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

Pronto, fique atento para não errar nenhuma palavra chaves, qualquer erro neste arquivo fará com que a rede não funcione.

Vamos explicar cada linha:


auto eth0 indica para o sistema que essa interface de rede deve ser configurada no boot
iface eth0 inet static indica que a configuração da interface vai ser estática, ou seja, nós vamos definir as configurações. No lugar da palavra static poderíamos colocar a palavra dhcp, assim a configuração da rede seria obtida via DHCP caso você tenha um servidor deste tipo na rede, mas isso é outra história.
network é a rede em que você está, no geral é o mesmo número de IP da sua máquina só que no final ao invés do seu número coloque um 0 (zero).
address é o seu número de IP.
netmask é a máscara de sub-rede.
broadcast é o endereço de broadcast da rede.
gateway é o endereço IP do equipamento que está compartilhando a internet.

Depois de configurar e salvar este arquivo você tem duas opções para saber se configurou corretamente e a rede continua funcionando, a primeira opção é reiniciar o computador, assim o serviço de rede será reiniciado e as configurações entrarão em vigor, a segunda é reiniciar o serviço de rede manualmente e já poder testar as configurações na hora:


# /etc/init.d/networking restart

Ao executar o comando acima o arquivo /etc/network/interfaces que configuramos será lido para que a configuração de rede entre em vigor, se as informações contidas nele estiverem corretas a rede deve estar funcionando, vamos testar com o ping:


# ping -c5 marcelo-anderson.blogspot.com

Caso contrário teremos que abrir o arquivo novamente, descobrir onde está o erro e reiniciar o serviço de novo para ver se a mudança corrigiu o problema.



Configuração via DHCP

Hoje em dia é meio raro configurar a rede máquina por máquina para que elas tenham comunicação como fizemos acima, costuma-se utilizar um servidor DHCP que fornece essas informações automaticamente para a máquina que solicitar. Esta solicitação costuma ser feita a cada boot, portanto, não precisamos nos preocupar com quase nada, apenas dizer para o sistema que a configuração deve ocorrer de forma automática.

Tenha em mente que esta parte do capítulo não depende de nenhuma configuração que fizemos quando definimos um IP fixo, na verdade você terá que optar por IP fixo ou dinâmico (via DHCP).

Atualmente o aplicativo cliente de DHCP, ou seja, o programa que vai solicitar os dados da rede ao servidor e configurar a rede com estes dados recebidos é o dhclient, que no Debian faz parte do pacote dhcp3-client. Sua utilização é bem simples, ao chamar o comando sem parâmetro nenhum, como em:


# dhclient

Ele irá tentar buscar as configurações por DHCP em todas as placas de redes detectadas, se por outro lado você quiser ser mais específico e forçar o dhclient a buscar as configurações direto usando uma determinada placa você pode especificar o dispositivo como parâmetro, exemplo:


# dhclient eth0

Caso tenha um servidor DHCP na mesma rede as configurações serão obtidas e você pode testar o funcionando utilizando o ping em algum site:


# ping -c5 marcelo-anderson.blogspot.com

Não tem muito o que dar errado ao se utilizar o dhclient, em caso de problema você terá que se certificar de que o servidor não está off-line e que toda a parte física da rede como cabos, hubs ou switchs estão operando normalmente, além é claro de verificar com o ifconfig se sua placa de rede foi reconhecida.

Assim como a configuração do IP fixo, você precisa configurar o arquivo /etc/network/interfaces para que a cada boot ele busque as configurações via dhcp, para isso abra o arquivo, remova qualquer referência a interface que você deseja configurar (eth0 por exemplo) e deixe as configurações da interface da seguinte forma:


auto eth0
iface eth0 inet dhcp

Somente isso, nada além. Bem mais simples do que a configuração do IP fixo. Só lembre que eth0 é um exemplo, no seu caso pode ser eth1, eth2 ou algum outro nome, fique atento.

CIDR: Uma Receita Para a Diminuição do Espaço de Endereçamento

Artigo originalmente publicado em Linux Journal, edição de dezembro de 1998.
Explica o conceito do CIDR e mostra como você pode implementá-lo na sua rede.


Introdução

CIDR, Classless Inter-Domain Routing, ou Roteamento Inter-Domínios Sem-Classe, permite o uso maximizado do limitado espaço de endereçamento na atual implementação do Internet Protocol versão 4 (IPv4). Após ler este artigo, mesmo se você nunca configurou um computador para comunicação em rede antes, você passará a ter um bom embasamento destas referências sobre redes de computadores.


Histórico

O CIDR é a tendência atual em roteamento e tem sido por mais de três anos. Este conceito foi apresentado em 1993 para retardar o encolhimento da quantidade de endereços Internet Protocol (IP) até a chegada da próxima geração do IP (IP versão 6, também conhecido como IPng ou IP next generation).

Atualmente em testes, o IPng expandirá significativamente o espaço de endereçamento IP em várias ordens de magnitude. O IPng também terá suas próprias características avançadas de segurança. Os que desejarem participar do futuro hoje podem ter a oportunidade de fazê-lo, uma vez que o Linux possui suporte para IPng em seu kernel. Até que o IPng esteja disseminado em larga escala, fazendo o melhor uso possível do que temos disponível, o CIDR é tudo com o que podemos contar.

Para ajudar a entender por que precisamos do CIDR, vamos voltar ao início da década de 90. O IPv4, o protocolo usado pelos computadores para se comunicar em uma rede estava então em uso, mas não havia muitas conexões com a Internet ou máquinas que precisassem de conexões esta rede. Na verdade, um grande número de sistemas ainda dependiam do UUCP, o UNIX to UNIX Copy Protocol, onde as máquinas faziam "chamadas" umas para as outras em horários programados e faziam trocas de mensagens de correio eletrônico. Naquele tempo, a quantidade de endereços IP parecia ilimitada. Esta foi mais ou menos a época em que surgiu o Mosaic, o primeiro navegador (browser) Web.


IP básico

Aqueles que se considerarem bem versados em roteamento classful, podem desejar pular para a próxima seção. Computadores compreendem números na base 2 (uns e zeros), e humanos compreendem na base 10 (0 a 9); então os engenheiros desenvolveram uma forma de dar números (de identificação) para os computadores mas com facilidade de uso por humanos. Todos os computadores na Internet têm um único endereço IP que pode ser representado por uma cadeia (string) de zeros e uns. Se a cadeia é dividida em quatro grupos de oito bits (octetos), temos quatro números entre 0 (oito zeros) a 255 (oito uns), que são representados no formato XXX.XXX.XXX.XXX. Esta representação é chamada "notação decimal separada por pontos" (dotted decimal notation) e torna um pouco mais fácil a compreensão de cada número IP único pelos humanos. Estes endereços foram então subdivididos em classes "A" a "D". Observando a primeira metade do primeiro octeto:

Classe A = 0-127 (0000)
Classe B = 128-191 (1000)
Classe C = 192-223 (1100)
Classe D = o resto (1110)

As posições começando a partir da esquerda representam 128, 64, 32 e 16 - veja a Tabela 1.

0 = 00000000
128 = 10000000
192 = 11000000
224 = 11100000
240 = 11110000
248 = 11111000
252 = 11111100
254 = 11111110
255 = 11111111

Tabela 1 - Equivalência entre números Decimais e Binários

Além disso, a Classe A usa somente o primeiro número como número da rede, por exemplo, 10.XXX.XXX.XXX; a Classe B usa os dois primeiros números como o número da rede, por exemplo, 172.32.XXX.XXX; a Classe C usa três números como número da rede, por exemplo, 192.168.1.XXX e a Classe D é reservada para testes. Pode-se pensar em um endereço como tendo uma parte rede e uma parte host, representadas por números e XXXs, respectivamente. Para um endereço Classe C, a porção da rede consiste dos três primeiros octetos sendo o último octeto o que representa a porção de hosts.

Os seguintes conceitos relativos a redes de computadores precisam ser compreendidos. Note que as "definições" apresentadas são com a finalidade de ajudar a compreensão dos conceitos básicos usados neste artigo e não são as suas reais definições.

· endereço de host (host address): Um endereço único designado a um dispositivo de comunicações em um computador. Se um computador tem vários dispositivos de comunicação (p.ex., interface Ethernet ou modem), cada um destes dispositivos terá seu próprio número único. Isso significa que um host (computador ou roteador) pode ser multi-homed, p.ex., ter múltiplos endereços IP. Isto pode ser feito artificialmente designando diferentes endereços IP a um mesmo dispositivo (técnica conhecida como "IP falso" ou "apelido IP").

· endereço de rede (network address): O endereço base (mais baixo) designado a um segmento de rede, dependendo da sua máscara. Este é o primeiro número IP em uma subrede. Por exemplo, na rede Classe C que vai de 192.168.1.0 a 192.168.1.255, o endereço de rede seria 192.168.1.0.

· endereço de broadcast (broadcast address): O endereço mais alto designado a um segmento de rede. No exemplo acima, este endereço seria 192.168.1.255.

· máscara de rede (netmask): Uma máscara consistindo da porção do endereço IP onde todos os maiores bits são uns (na base 2) e todos os bits mais baixos são zeros - em outras palavras, os uns representam a porção da rede do endereço e os zeros representam a porção host. No exemplo acima, a máscara de rede seria 255.255.255.0.

Feita esta introdução a endereçamento IP e lembrando que uma década atrás quase nenhum PC participava desta rede, é fácil ver porque durante os anos 80 o IPv4 pareceu ter um suprimento inesgotável de endereços, embora nem todos os endereços possam ser designados. Teoricamente, se você pudesse usar todos os endereços IP válidos disponíveis, teria um valor máximo aproximado de 500 milhões de endereços; porém mesmo 100 milhões é extremamente otimista e insuficiente para os dias atuais.

Antes de finalizar esta seção, gostaria de descrever uma experiência. Esta experiência não funcionará adequadamente se for feita em um ambiente composto apenas por máquinas usando somente a pilha IP do Microsoft Windows, uma vez que esta implementação é falha, ou pelo menos não segue as regras pelas quais todo o resto do mundo joga. Então, você vai precisar estar usando uma máquina UNIX ou Linux com outras máquinas UNIX ou Linux na sua rede. Digite o seguinte comando:

ping -c 1 broadcast da sua rede>

O que você verá em resposta é cada máquina UNIX respondendo com o seu endereço IP e cada resposta seguinte à primeira terá (DUP!) ao lado, indicando que é uma resposta duplicada. O argumento -c 1 diz ao ping para enviar somente 1 pacote ping. O número de respostas recebidas dependerá de quantas máquinas (não-Microsoft) você tiver na sua rede. Se isso for feito a partir de uma máquina rodando MS Windows (9x ou NT), você receberá somente respostas da máquina local. Qual é o objetivo deste pequeno experimento? Se você mudar a máscara de rede de uma máquina, digamos, de 255.255.255.0 para 255.255.0.0 através disso mudando seus endereços de rede e de broadcast, mesmo que nada mais tenha mudado (p.ex., ainda esteja com o mesmo IP configurado e ainda esteja conectada à rede da mesma forma) a máquina irá parar de se comunicar com seus vizinhos pela rede. Em outras palavras, esta máquina agora está em outra rede e vai precisar de um gateway para se comunicar com as outras máquinas na rede local (todas as apostas estão fora para as máquinas com Windows).



CIDR

Enquanto as classificações IP de A a D ainda estão em uso no mundo das redes, estes termos estão obsoletos. Com o intuito de manter as coisas claras, continuarei a usar estes termos para explicar como o CIDR funciona e como você pode implementá-lo. Junto com o CIDR vem o conceito de máscara de subrede com comprimento variável (variable lenght subnet masking - VLSM).



Note que, uma vez que estamos lidando com 32 números, podemos contar o número de bits com valor igual a 1 a partir da esquerda e usar isto como uma abreviação para endereçamento:
255.255.0.0 = /16 255.255.128.0 = /17 255.255.255.0 = /24 255.255.255.128 = /25 255.255.255.192 = /26 255.255.255.224 = /27 255.255.255.240 = /28


Um diagrama para traduções CIDR:

máscara A B C # redes .0 /8 /16 /24 1 0 .128 /9 /17 /25 2 0-128 .192 /10 /18 /26 4 0-64-128-192 .224 /11 /19 /27 8 0-32-64-96-128-160-192-224 .240 /12 /20 /28 16 0-16-32-48-64-80-96-112-128-144-160-\ 176-192-208-224-240 .248 /13 /21 /29 32 0-8-16-24-32-40-48-56-64-72-80-88-96-\ 104-112-120-128-136-144-152-160-168-\ 176-184-192-199-208-216-224-232-240-248 .252 /14 /22 /30 64 0-4-8-12-16-20-24-28-32-36-40-44-48-\ 52-56-60-64-72-76-80-84-88-92-96-100-\ 104-108-112-116-120-124-128-132-136-\ 140-144-148-152-156-160-164-168-172-\ 176-180-184-188-192-196-200-204-208-\ 216-220-224-228-232-236-240-244-248-252 .254 /15 /23 N/A 128 .255 N/A N/A /32

O número em máscara refere-se ao primeiro número
!=255


A, B e C referem-se à posição da máscara

A = segundo octeto B = terceito octeto C = octeto final

#= diferença do número de redes para os endereços classful
redes= endereços de rede a serem usados nos 2º, 3º ou 4º octetos. Para obter o endereço de broadcast de uma rede, vá até o próximo número de rede maior e subtraia 1, p.ex.:

netmask = 255.240.0.0 network = 10.16.0.0 (10.16/12) broadcast = 10.31.255.255


Basicamente, com um endereço de "Classe", você tem uma máscara de sub-rede padrão. Para um endereço Classe C, esta sub-rede padrão tem comprimento de 24 bits, então colocando uns em todos os primeiros 24 bits e zeros nos restantes, temos 255.255.255.0. Para as Classes A e B, seria 255.0.0.0 e 255.255.0.0, respectivamente. Isto basicamente designa a qualquer que tenha recebido um endereço Classe C completo, 256 endereços únicos, dos quais 2 são reservados, cada para endereços de rede e de broadcast. Usando endereços "classless", podemos fazer sub-redes com esses endereços de forma simples. Como afirmado acima, a porção rede do endereço equivale à porção do endereço IP, correspondente em base 2, a todos os bits com valor 1 e o endereço de host ao todos os bits com valor 0. Isso significa que um endereço Classe C se parece com:

11111111.11111111.11111111.00000000 = 255.255.255.0

(128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 nas primeiras 3 posições e 0 na última). Novamente, note que isto é 24 números 1 e oito zeros, totalizando 32 posições.

Digamos que temos um endereço Classe C (192.168.0.1) disponível para uso, mas temos 2 escritórios com aproximadamente 75 hosts em cada, um em Nova Iorque e outro em Nova Jérsei. Enquanto poderíamos estar usando simplesmente o endereço Classe A em cada site com cada escritório usando números únicos, não podemos conectá-los porque as máquinas em Nova Jérsei não conseguem encontrar as de Nova Iorque e vice-versa. A razão pela qual estas redes não podem encontrar uma à outra é porque um computador, para encontrar outro em uma rede, assume que um endereço em sua rede local (a porção host, onde todos os números são zeros) está diretamente conectado a ela, e que outra rede é alcançável somente através de um gateway. Um gateway é uma máquina (computador ou roteador) que possui dois ou mais endereços de rede, pelo menos um na rede local e um ou mais em outras redes. Um gateway envia qualquer comunicação que não seja para a rede local através de seus outros dispositivos de comunicações, dependendo da informação armazenada em sua tabela de roteamento. Sob roteamento classful, precisaríamos de 2 endereços Classe C usados pela metade para cada escritório, o que seria um grande desperdício dos escassos endereços IP.

Com CIDR, podemos dividir um endereço Classe C em duas redes diferentes. Para fazer isso, vamos estender nossa máscara de rede em mais um bit, o que vai nos fornecer 2 redes separadas, onde antes só havia uma. Isso muda nossa máscara de rede de 255.255.255.0 ou 24 números 1 (daqui pra frente referidos como /24) para uma rede /25, ou 255.255.255.128. Ambas as nossas novas redes possuirão a mesma máscara de rede; todas as outras regras permanecem as mesmas. Agora temos uma rede com o endereço de rede 192.168.1.0 e um endereço de broadcast 192.168.1.127. A outra rede irá usar o endereço de rede 192.168.1.128 e o endereço de broadcast 192.168.1.255.
Da mesma maneira, podemos continuar partindo nossa rede em 4, 8, 16, 32, ..., redes. Na verdade, iniciando em /8, podemos partir até alcançarmos /30. Uma vez que temo 32 números para trabalhar, um /32 representa apenas 1 endereço, e neste caso em especial, não há necessidade para endereços de rede ou broadcast. Isso também significa que um /31 representa 2 endereços, mas uma vez que um seria o endereço de rede e ou outro o endereço de broadcast, ficaríamos sem endereços para hosts - uma situação quase certamente indesejável.

Neste esquema, o primeiro octeto da máscara de rede permaneceria 255, mas depois disso poderíamos mudar qualquer dos outros números. Ao invés de ficar restritos a 255 e 0, podemos nos encontrar trocando o primeiro zero na nossa máscara de rede por qualquer número dos seguintes: 128, 192, 224, 240, 248, 252 ou 254, exceto no último octeto como observado acima. Os endereços de rede e broadcast unificariam cada subede (veja a Tabela 2 para maiores detalhes). Agora, qualquer rede pode ser referenciada pela sua máscara de subrede de comprimento variável, ou o número de bits com valor igual a 1 na porção host do endereço de /8 a /32 (exceto /31). Extrapolando, cada host pode ser referenciado diretamente pelo seu endereço IP e a notação VLSM, de forma que fique bem aparente quais são os endereços de rede, broadcast e a máscara de rede.

Por exemplo, se alguém me disser para designar para minha máquina o endereço 192.168.0.50/27, eu saberia que o endereço de rede era 192.168.0.32,o endereço de broadcast era 192.168.0.63 e a máscara de rede 255.255.255.224. Para aqueles de vocês que ainda têm problemas em como traduzir tudo isto, forneci uma tabela para ajudar (Tabela 3).
Você encontrará mais usos para endereçamento classless que este. O CIDR também pode te oferecer uma forma para isolar departamentos em grandes organizações para fornecer melhor segurança (implementando-se firewalls internos) e diminuindo o tráfego em qualquer segmento de rede, reduzindo colisões e melhorando os tempos de resposta.


Grupos de endereços privados

Outra maneira que muitas empresas podem expandir seu conjunto de endereços IP utilizáveis é tirando vantagem dos endereços IP privados separados para empresas e indivíduos que não precisam de acesso direto à Internet em todas as suas máquinas. Estes números podem ser usados como melhor lhes convier.

Usando um firewall ou servidor proxy, que faça tradução de endereços de rede (NAT - Network Address Translation), chamado de "masquerading" pela comunidade Linux, estas máquinas ainda podem ser conectadas à Internet. O lado interessante é que que você não estará roteando endereços internos da empresa para a Internet, uma vez que a maioria dos roteadores são configurados para não rotear estes endereços de rede privados. Desta forma, ninguém pode acessar diretamente seus sistemas, então perigosos Web sites espalhados em sua empresa não vão voltar para assombrar você. Para qualquer um acessar um computador interno, terá que acessar primeiro o servidor proxy e depois continuar o acesso, ou ser redirecionado pelo mesmo até a máquina destino.

A referência para os endereços que podemos usar sem coordenação prévia é a RFC 1918, "Address Allocation for Private Internets", fevereiro de 1996. Estes endereços privados são os seguintes (extraídos da RFC):

10.0.0.0 - 10.255.255.255 (prefixo 10/8) 172.16.0.0 - 172.31.255.255 (prefixo 172.16/12) 192.168.0.0 - 192.168.255.255 (prefixo 192.168/16)

Note que, sob o antigo endereçamento classful, enquanto o primeiro segmento de endereço é uma rede Classe A, o segundo seriam 16 redes Classe B e o último 256 redes Classe C. Implementando um gateway Linux e configurando algumas regras simples no ipfwadm (geralmente disponível em todas as distribuições Linux), podemos fazer masquerading ou tradução de endereços de rede (NAT), oferecendo acesso Internet completo aos computadores com endereços de rede privados a menos que uma de duas coisas aconteça. Uma seria o administrador configurar o gateway para trabalhar como servidor proxy, intermediando requisições em uma determinada porta para um computador em particular; outra seria, pela Internet, um usuário usando TELNET para acessar a máquina gateway primeiro e depois os computadores internos. Desta forma, os endereços privados continuam privados.

Estes grupos de endereços também podem ser usados em redes privativas que "pegam carona" na Internet. Usando dois endereços IP "vivos" (não-privados), um em cada máquina gateway de cada rede, podemos conectar duas redes privadas usando o IPIP do Linux, que é IP tunelado dentro de IP. Enquanto isso não oferece privacidade, a menos que os dois gateways estejam executando algum programa de criptografia como o SSH (secure shell), pode oferecer uma rede virtual.


Conclusão

Enquanto os endereços Internet válidos estão se tornando escassos, empresas e indivíduos podem maximizar o uso do seu atual espaço de endereçamento e até mesmo expandir seu espaço através do uso de endereços privados. CIDR também pode ser usado para melhorar a segurança e aumentar o tempo de resposta da rede através do uso de subredes.

Mantendo-se atualizado com as tendências em coisas como CIDR e software de rede do Linux, a maioria dos obstáculos para conectividade Internet e Intranet podem ser facilmente contornados. Como o CIDR oferece a todos uma forma de maximizar o pouco que temos, endereços privados nos permitem a flexibilidade para expandir além dos endereços fornecidos pelos nossos Provedores de Serviços Internet.


Referências bibliográficas
RFC 1918
Address Allocation for Private Internets
ftp://ftp.isi.edu/in-notes/rfc1918.txt

segunda-feira, 22 de setembro de 2008

Modelo de Referência OSI

Para satisfazer as necessidades e solicitações das novas redes de comunicação, os fabricantes de equipamentos e sistemas desenvolveram soluções proprietárias para as várias arquiteturas de sistemas. Conseqüentemente, várias redes foram criadas a partir de diferentes implementações de hardware e de software. Essas soluções passaram, então, a definir o inter-relacionamento dos sistemas com os usuários. Entretanto, muitas redes eram incompatíveis entre si, com diferentes especificações, impossibilitando a interoperabilidade e a comunicação entre elas. Essa situação levou a elaboração de um modelo que servisse como referência para que todos os fabricantes desenvolvessem soluções capazes de interagir entre si. A arquitetura RM-OSI (Reference Model for Open Systems Interconnection) foi criada pela ISO (International Standards Organization) com a finalidade de padronizar o desenvolvimento desses produtos para redes de comunicação de dados, em resposta ao crescente número de arquiteturas proprietárias. Seu objetivo é permitir a interligação de equipamentos e sistemas distintos sem problemas de compatibilidade. É uma referência que mostra sempre o que fazer, mas não como fazer.

1. Estrutura do Modelo OSI

A ISO lançou o modelo de referência OSI em 1984. Trata-se de uma descrição ou modelo de referência e não um novo padrão estabelecendo o modo como a informação deve ser transmitida entre os pontos de uma rede. Esse modelo propõe uma estrutura em camadas para o desenvolvimento de soluções que funcionem sob qualquer plataforma, independentemente do hardware ou software utilizado.

Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante que todos os dispositivos da rede usem a mesma linguagem, o mesmo protocolo. Logo, podemos definir o protocolo como sendo um conjunto de regras, ou um acordo, que determina o formato e como ocorrerá a transmissão de dados. A camada n em um computador se comunica com a camada n em outro computador.

No modelo de referência OSI, existem sete níveis numerados e cada nível representa uma função particular da rede. Essa separação das funções da rede é chamada divisão em camadas. Dividir a rede nessas sete camadas oferece uma solução para os problemas de interoperabilidade apresentados anteriormente, pois oferece como vantagens:

Decompor as comunicações de rede em partes menores e mais simples, facilitando sua análise;

Padronizar os componentes de rede, permitindo o desenvolvimento e o suporte por parte de vários fabricantes;

Possibilitar a comunicação entre tipos diferentes de hardware e de software de rede;

Evitar que as modificações em uma camada afetem as outras, possibilitando maior rapidez no seu desenvolvimento;

2. As Sete Camadas

O modelo de referência OSI (RM-OSI) está dividido em sete camadas verticais (Física, Enlace de Dados, Rede, Transporte, Sessão, Apresentação e Aplicação), cada uma com sua função específica e funcionando independente uma das outras (Figura 1). As sete camadas por sua vez, se dividem em dois grupos. As quatro camadas superiores são usadas quando a informação passa de ou para o próprio elemento de rede, enquanto as últimas três camadas são usadas quando a informação é destinada a outro elemento na rede. Esta divisão possibilita uma melhor compreensão do modelo como um todo e a otimização de cada tarefa.

Entre as camadas, a comunicação se dá apenas com a imediatamente inferior ou superior àquela que deseja estabelecer a comunicação. Para que isso ocorra são necessários, no mínimo, dois sistemas com um mesmo conjunto de camadas.



Figura 1 - Estrutura do Modelo de Referência OSI


2.1. Camada Física ou de Acesso ao Meio

A Camada Física é responsável pela interface física entre os equipamentos e os protocolos a serem seguidos para a transmissão das informações entre os diversos sistemas de informação e gerencia a transferência física da informação sobre os meios de transmissão possíveis. Com esta camada, o modelo OSI permite a flexibilidade do uso de vários meios físicos para interconexão, com procedimentos de controle diferentes.

A camada física define as características mecânicas, elétricas, funcionais e os procedimentos para ativar, manter e desativar conexões físicas para a transmissão de dados entre as entidades da camada seguinte. Ela envolve a definição de todos os aspectos relacionados com as características físicas (tipos de cabos e conectores), elétricas (níveis de tensão dos sinais, tipos de codificação etc.), funcionais e procedurais do sistema.

2.2. Enlace de Dados ou de Ligação Lógica

A Camada de Enlace gerencia a transferência da informação através do canal de transmissão. É responsável pelo controle do fluxo da informação na rede, bem como sua sincronização e garantia de entrega. Proporciona ainda, a detecção e correção de erros de transmissão.

Sua principal função é tornar o meio físico mais confiável e isento de erros para as camadas superiores, fornecendo mecanismos para ativar, manter e desativar a conexão. Para cumprir sua função, nesta camada são implementados instrumentos de controle e detecção de erros. Nesta camada, os bits de informação são agrupados em unidades chamadas "frames". O Institute of Electrical and Electronic Engineers (IEEE) divide a camada de Enlace de Dados em duas subcamadas: LLC e MAC.

A subcamada LLC é responsável por fornecer às camadas superiores um meio de transmissão que pareça livre de erros. Sua implementação independe da subcamada MAC.

Na subcamada MAC estão os métodos de acesso com os endereços de hardware de cada sistema, também conhecidos como MAC Address e o CRC. Um dos seus objetivos é ocultar das camadas superiores o tipo de meio físico que está sendo usado, assim como o método de acesso.

No processo de transmissão, esta camada acrescenta suas próprias informações de controle como o endereço de origem e de destino, o comprimento do frame, os protocolos das camadas superiores envolvidos na comunicação e um protocolo responsável pela verificação de erros conhecido como "Cyclic Redundancy Check" (CRC).

2.3. Camada de Rede

A camada de rede é responsável pelo gerenciamento do transporte das informações entre uma rede composta de múltiplos segmentos. Proporciona o encaminhamento e endereçamento da informação, quer na origem, quer no destinatário da transmissão. Na arquitetura de sistemas abertos, alguns sistemas são destinatários terminais de dados, enquanto outros funcionam apenas como nós intermediários que repassam as informações para outros sistemas.

A camada de rede tem como função favorecer uma trajetória de conexão de rede entre um par de entidades da camada de transporte, inclusive passando por nós intermediários. É o protocolo voltado para a operação da rede propriamente dita. Algoritmos de roteamento e de controle de congestionamento são agrupados nessa camada.

2.4. Camada de Transporte

Proporciona a interface entre as três camadas superiores e as três camadas inferiores, isolando o utilizador dos aspectos funcionais e físicos da rede. Garante ainda, a comunicação ponto-a-ponto, define e controla a qualidade da transmissão. A ISO conjectura que há a necessidade de controlar o transporte de dados do sistema fonte para o destino para que o serviço de transporte atinja sua totalidade. Por esse motivo há uma camada de transporte sobre a camada de rede para aliviar as entidades de camadas superiores das tarefas do transporte de dados entre elas.

O propósito principal da camada de transporte é oferecer serviço de transferência de dados de forma transparente entre as entidades da camada de sessão. O termo "transparente" refere-se ao fato de que as entidades de sessão não têm a necessidade de conhecer os detalhes da transferência dos dados. Os usuários da camada de transporte são identificados pelos seus endereços.

A Camada de Transporte fornece uma comunicação ponto a ponto confiável e transparente, através de mecanismos de seqüenciamento, controle de fluxo e confirmação / negação do recebimento de pacotes. Normalmente é usada para compensar a falta de confiabilidade das camadas inferiores.

2.5. Camada de Sessão

A Camada de Sessão fornece uma estrutura de controle para a comunicação entre aplicações. Cuida do mecanismo conhecido como "name-to-station address translation" (NAT), ou seja, a tradução de endereços para o nome de uma estação de rede específica. Gerencia a transferência organizada da informação, desde o modo como se processa o diálogo até o gerenciamento da troca de dados entre as entidades de apresentação. Para isso, a camada de sessão fornece serviços para o estabelecimento de uma conexão de sessão entre duas entidades de apresentação através do uso de uma conexão de transporte.

A camada de sessão tem como serviços a administração da sessão (login / autenticação e logoff) e o diálogo da sessão, controlando a troca de dados, delimitando e sincronizando operações entre duas entidades.

2.6. Camada de Apresentação

A Camada de Apresentação realiza a conversão do formato de dados de forma que eles sejam entendidos por todos os sistemas envolvidos na comunicação. Esta camada também faz a compressão / descompressão e criptografia / descriptografia.

A Camada de Apresentação também resolve problemas de diferenças de sintaxe entre sistemas abertos comunicantes. Através dos serviços da camada de apresentação, as aplicações no ambiente OSI podem estabelecer a comunicação sem custos excessivos oriundos de variações de interfaces, transformações ou modificações das próprias aplicações.

2.7. Camada de Aplicação

Na Camada de Aplicação está o suporte das aplicações do usuário do sistema. Sua função é definir a semântica da informação a transmitir/receber. Os serviços desta camada são usados pelos próprios usuários do ambiente OSI. Essa camada serve de "janela" entre usuários comunicantes, através da qual ocorre a troca das informações entre esses usuários. Cada usuário é representado para os demais por sua entidade de aplicação devida. É importante salientar que a totalidade de uma aplicação não se encontra nesta camada, apenas uma parte, que precisa se comunicar com entidades remotas.

É a responsável ainda pela negociação do modo como a informação a transmitir é representada (sintaxe). A camada de apresentação fornece os serviços que podem ser selecionados pela camada de aplicação para a interpretação da sintaxe dos dados trocados. Gerencia a entrada, troca, amostra e controle de dados estruturados.

Sob a responsabilidade da Camada de Aplicação estão os serviços como transferência de arquivos, gerenciamento de redes e emulação de terminais.

ROTEADORES

Como é de conhecimento dos profissionais da área de redes, os roteadores são equipamentos que controlam o encaminhamento das mensagens que trafegam através de uma rede de computadores, operando nos níveis 1, 2 e 3 do modelo RM-OSI. São, dessa forma, equipamentos que interligam e que conectam dois ou mais segmentos de rede similares, porem distintos, compondo-os em uma rede de dimensões maiores.

Tendo em vista que os roteadores operam ao nível de rede, eles utilizam os endereços contidos no cabeçalho do protocolo de rede para poder determinar para qual nó de rede um pacote deve ser encaminhado. Os roteadores são, portanto, responsáveis pelo roteamento dos pacotes entre redes locais (LAN’s) e redes de longa distância (WAN’s).


O Roteador

A aparência física mais comum de um roteador é a de um equipamento semelhante aos hubs e switches, com duas ou mais portas de interface de rede. Essas interfaces permitem a interligação com redes fisicamente próximas (como redes de departamentos distintos, mas no mesmo prédio) ou com duas ou mais redes geograficamente distantes entre si.

Juntamente com essas portas de interface de rede é comum encontrarmos uma porta serial para a conexão de outros equipamentos, normalmente com a finalidade de gerenciamento e configuração. Essa interface específica permite aos administradores de rede configurarem o roteador de uma forma segura, evitando um tráfego desnecessário de informações por toda a rede.


Os roteadores também coletam, descobrem e agregam informações sobre as rotas de comunicação que podem ser usadas pelos computadores e demais equipamentos no momento do envio dos pacotes de dados. Essa tarefa é gerenciada e executada pelos protocolos de roteamento que funcionam internamente ao roteador.

Um roteador também pode executar funções como firewall, ou seja, a filtragem de pacotes e sua eliminação, sempre baseado em regras de gerenciamento predefinidas. Por exemplo, pacotes podem ser bloqueados e eliminados se não pertencerem à faixa de números IP especificada pelo administrador da rede ou no caso de estarem direcionados para aplicações que não estão autorizadas e/ou previstas.

Funcionalidades

Os roteadores armazenam e transmitem para outros roteadores, em outras redes, informações e diagramas sobre as camadas de rede. Internamente, usam protocolos específicos através dos quais obtém informações sobre a topologia da rede, calculam rotas para outras redes e constroem tabelas de roteamento.

É claro que para que tudo funcione de forma adequada, uma série de funções é necessária para executar diversas atividades e todo esse conjunto de funcionalidades complexas requer a presença de um ou mais processadores e memória suficiente para o armazenamento de todas as informações. Existem duas atividades que são básicas para um roteador:

Determinação das melhores rotas - Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar ao seu destino de forma segura e eficiente. Para realizar esta função o roteador utiliza dois conceitos muito importantes: o conceito de métrica e o conceito de tabelas de roteamento;

Transporte dos pacotes - Transportar os pacotes pela rede é uma função relativamente simples realizada pelos roteadores. Consiste em verificar o endereço de rede para onde a mensagem está destinada, determinar se o endereço é válido, traduzir para um novo endereço físico e enviar pacote.

Métrica

Métrica é o padrão de medida usado pelos algoritmos de roteamento para determinar o melhor caminho para o percurso entre a origem e o destino da informação.

Ao utilizar uma métrica pode-se utilizar apenas um parâmetro ou vários parâmetros. A utilização de vários parâmetros permite uma melhor modelagem da métrica e uma decisão mais eficiente de qual é o melhor caminho. Alguns parâmetros muito utilizados são o tamanho do caminho, a confiabilidade, o atraso, largura de banda, carga e o custo da comunicação.

Roteamento

Roteamento é a ação realizada por um roteador e consiste em encaminhar pacotes, baseado em seus destinos, para interfaces de rede ou outros roteadores.

Todo computador conectado a uma rede, como a Internet, por exemplo, possui uma tabela de roteamento. Esta tabela consiste em uma lista de destinos com seus respectivos caminhos, sendo consultada sempre que um dado vai ser enviado através da rede. Esses caminhos podem ser interfaces de rede (isto é, redes às quais se está diretamente conectado) ou endereços de outros roteadores (que também possuirão uma tabela de roteamento para decidir qual caminho tomar).


Cada roteador da rede utiliza uma tabela de roteamento relacionando os destinos e caminhos que poderão ser seguidos pelos pacotes. As tabelas de roteamento em cada roteador são consultadas a partir da comparação de cada pacote com as regras da política de roteamento da rede. Deste modo, antes do pacote ser roteado, ele é submetido a esse conjunto de regras que determina qual tabela será usada pelo roteador para aquele pacote específico.

Tabelas de roteamento

Os roteadores constroem tabelas de roteamento para realizarem as suas tarefas. Estas tabelas de roteamento contêm entradas que relacionam um determinado destino com um enlace e uma métrica. Dependendo das implementações, podem apresentar mais dados, entretanto destino, enlace e métrica são os dados essenciais.

Existem diferentes maneiras para criar as tabelas de roteamento. Os roteadores necessitam de uma tabela interna de roteamento através da qual extraem as informações necessárias sobre a rede em que atuam. Ao estabelecer uma determinada rota, o roteador consulta essa tabela interna para determinar o encaminhamento dos pacotes. As tabelas podem ser de dois tipos: dinâmica ou estática. A tabela do tipo dinâmica se apóia em protocolos de roteamento do tipo RIP, OSPF e outros, baseados em algoritmos, para escolher a melhor rota e seguem critérios denominados de "métrica de roteamento".

Uma tabela estática é definida pelo administrador da rede que utiliza comandos para adicionar cada rota manualmente, em cada roteador da rede. Este método somente é indicado para pequenas redes, onde existe um pequeno número de roteadores, com poucas rotas e rotas que não são alteradas freqüentemente. Para redes maiores, com muitas rotas e muitos roteadores, este método é simplesmente impraticável, pois a simples adição de uma nova rota exigiria a alteração das tabelas de roteamento em todos os roteadores da rede.

Já com o uso dos protocolos de roteamento dinâmico, os roteadores trocam informações entre si, periodicamente e "aprendem" sobre a rede e sobre as rotas disponíveis, ou seja, vão "descobrindo" as rotas existentes e gravando estas rotas em suas tabelas de roteamento. Se um roteador ficar off-line, em pouco tempo os demais roteadores identificarão o estado deste roteador e atualizarão, automaticamente, suas tabelas de roteamento.

Com isso cada roteador aprende novos caminhos, já considerando a indisponibilidade do roteador com problemas, e repassam estas informações para os demais roteadores. Esta possibilidade não existe quando as tabelas são criadas manualmente, conforme descrito anteriormente.

Tipos de algoritmos de roteamento

Estático - Um algoritmo de roteamento do tipo estático não baseia as suas decisões de roteamento em medidas ou estimativas de tráfego ou em topologias correntes. As rotas são predefinidas e carregadas no roteador no processo de inicialização da rede;

Dinâmico - Um algoritmo de roteamento dinâmico tenta mudar as suas decisões de roteamento de acordo com as mudanças de tráfego e de topologia. A tabela de roteamento se modifica com o passar do tempo;

Estrutura plana - Neste tipo de algoritmo, todos os roteadores estão em um mesmo nível. As informações não são organizadas e distribuídas hierarquicamente;

Estrutura hierárquica - As informações de roteamento são organizadas hierarquicamente. Dependendo da hierarquia do roteador, a sua tabela de roteamento e a sua comunicação com outros roteadores são diferentes;

Algoritmos intra-domínios - Estes são algoritmos executados por roteadores de dentro de um determinado Sistema Autônomo. Eles permitem que sejam definidas as rotas para dentro da rede de uma determinada organização;

Algoritmos inter-domínios - Estes são algoritmos executados por roteadores que estão nos limites dos domínios. Permitem a definição das rotas que são utilizadas para a comunicação com equipamentos de fora de um determinado Sistema Autônomo.

Requisitos do roteador

Para um roteador funcionar de forma adequada dentro de uma rede é necessário que ele execute algumas tarefas. Ele deve "aprender" a topologia da sub-rede e escolher os caminhos adequados dentro da mesma. Deve cuidar para que algumas rotas não sejam sobrecarregadas enquanto outras fiquem sem uso e deve resolver os problemas que ocorrem quando a origem e o destino estão em redes diferentes.

Internamente ao roteador temos duas características importantes que influenciam sua performance em uma rede de computadores: a memória e o algoritmo de roteamento utilizado:

Memória Buffer

Roteadores usam memórias tipo "buffer" que são blocos que armazenam temporariamente os pacotes de dados até o momento em que são processados. Cada uma das interfaces de rede do roteador possui memória buffer para os pacotes de dados que entram pelo roteador e outra memória do mesmo tipo para os pacotes de dados que saem do roteador.

As memórias buffer são um ponto chave na eficiência de um roteador e essa informação pode ser usada na identificação de um bom equipamento, pois o seu tamanho é crítico e pode determinar a performance geral da rede. Por exemplo, se o tráfego de dados da rede em direção ao roteador é excessivo, ou o roteador não possui memória suficiente, as memórias buffer rapidamente se completam (se saturam) com os pacotes de dados e, considerando que a velocidade com que os mesmos são processados é inferior a velocidade com que novos pacotes chegam, os pacotes em excesso são ignorados, o que faz com que sejam retransmitidos pela rede de origem. A retransmissão desses pacotes afeta diretamente a velocidade e eficiência da rede como um todo.

Por outro lado, memória buffer em quantidade excessiva pode causar muita espera no serviço de roteamento, pois o usuário, ou o equipamento, enviará os dados ao roteador, estes serão aceitos em função da grande quantidade de memória e ficarão aguardando um tempo maior para serem processados.

Quando um pacote chega em uma porta do roteador, ele e posicionado na memória buffer de entrada para aguardar o seu processamento. Em alguns casos um pacote de dados pode ser endereçado para um equipamento localizado dentro da rede do próprio roteador, mas a grande maioria requer apenas o processamento de redirecionamento (ou retransmissão) para outras redes.

Algoritmo de roteamento

Todos os roteadores executam um algoritmo de roteamento. O algoritmo de roteamento é uma parte do programa de nível de rede responsável por decidir para qual linha um pacote deve ser enviada a fim de chegar ao seu destino. São características desejáveis para um algoritmo de roteamento:

Correção - O algoritmo deve calcular corretamente as rotas para alcançar todos os destinos. Esta característica deve ser complementada pela derivação da melhor rota. Não basta que o algoritmo descubra uma rota para um destino, é necessário que ele descubra a melhor rota possível;

Simplicidade - O algoritmo deve ser eficiente para não sobrecarregar a rede. Além disso, é importante que o administrador da rede possa entender como o ele é executado;

Estabilidade - O algoritmo deve convergir rapidamente. O termo "convergir" neste caso significa ficar em um estado correto. Por exemplo, quando ocorre alguma modificação na topologia da rede, as tabelas de roteamento de alguns roteadores apresentarão uma informação desatualizada. No momento em que todos os roteadores estiverem com suas tabelas corretas, diz-se que o algoritmo convergiu. Quanto mais rápido ocorrer este processo, melhor;

Robustez - Uma vez a rede em operação, esta deve permanecer o maior tempo possível sem que ocorram falhas no sistema. As falhas isoladas de hardware e software e mudanças na topologia da rede devem ser tratadas pelo algoritmo de roteamento que deverá ser capaz de resolver tais modificações sem requerer uma reinicialização de todo o sistema;

Consideração com o usuário e eficiência global - Um algoritmo de roteamento deve melhorar a eficiência da rede sem deixar de considerar os diversos usuários e aplicativos dessa mesma rede.

Conclusão

Para que a comunicação de uma rede local com outras redes seja possível, é necessário um equipamento que seja capaz de enviar e receber informações de / para essas redes. O roteador torna-se, dessa forma, o principal componente na interligação de redes de computadores. Todo pacote contendo informação enviado para outras redes deve, obrigatoriamente, passar pelo roteador, assim como todo pacote de informação proveniente de outras redes também deve passar por ele.

Os roteadores permitem a troca de informações entre redes locais (LAN’s) e redes locais e remotas (WAN’s), encaminhando os pacotes de mensagens pelos diversos percursos possíveis (enlaces). Como cada roteador tem uma tabela com todas as rotas conhecidas, ele recebe e encaminha os pacotes de dados em alta velocidade, escolhendo o melhor caminho para realizar essa tarefa. Tal operação é conhecida como "roteamento" e realizada entre redes diferentes.

domingo, 21 de setembro de 2008

Interconexão de Redes: Uma Visão de Projeto

Resumo

O avanço tecnológico tem permitido o desenvolvimento de novas aplicações utilizando redes de comunicação cada vez mais sofisticadas e com sistemas computacionais ainda mais complexos. O projeto de interconexão dessas novas redes exige um planejamento cuidadoso e coordenado que envolve a utilização de hardware e software de fabricantes diferentes em um único ambiente, o hardware sendo composto por uma combinação de dispositivos e acessórios com diferentes graus de complexidade e o software caracterizado por sistemas de uso geral (aplicativos de usuários) e também de uso específico (sistemas operacionais de rede). Para lidar com essa complexidade crescente e assegurar sua sobrevivência no mercado, as corporações têm investido na interligação de suas redes segundo estruturas que seguem metodologias e padrões. Este artigo tem como objetivo abordar alguns aspectos importantes na caracterização da metodologia e o modelamento da tecnologia utilizados para a elaboração e desenvolvimento de um projeto de interconexão de redes.

1. Iniciando o projeto

Seria possível desenvolver um projeto de interconexão de redes sem utilizar uma metodologia de desenvolvimento e tecnologia adequada? Em princípio, a resposta para esta questão seria que é possível sim. Entretanto, o resultado obtido, em termos de eficiência, qualidade e produtividade certamente estaria abaixo do esperado pelos usuários dessa rede. Um projeto como este pode estar condenado ao fracasso mesmo antes de ser iniciado se não resultar em vantagens e melhorias práticas para os usuários a que se destina. Afinal, os usuários da rede esperam de um projeto soluções definitivas e econômicas para seus problemas e não apenas paliativos.

A qualidade e eficiência de uma rede têm relação direta com o seu projeto, com as operações realizadas entre suas estações, com sua confiabilidade e seu custo operacional. Desta maneira, o projeto de interconexão de redes requer selecionar tecnologias e escolher as configurações que atendam tanto os aspectos técnicos quanto os requisitos de seus usuários. Para tanto, é possível abordar tal projeto de diversas formas, mas a maioria dos projetos bem sucedidos obedece algumas diretrizes fundamentais.

Para ser considerado eficiente, um projeto precisa satisfazer diversos requisitos, desde funcionalidades operacionais até a performance dos sistemas e equipamentos destinados aos usuários. Neste caso, o papel do projetista é elaborar uma estrutura eficiente, baseada em uma metodologia de trabalho e utilizando técnicas e ferramentas adequadas.

2. Definindo metas

Uma interconexão de redes pode ser definida como duas ou mais redes locais (LAN’s) interconectadas por um ou mais dispositivos da camada de rede (camada 3 do modelo OSI). Essa interconexão pode estar restrita a uma edificação, a um campus ou mesmo ter âmbito mundial (Birkner, 2003).

O primeiro passo para o projeto de interconexão é estabelecer e documentar as metas do projeto. Essas metas variam conforme a organização envolvida ou situação particular dos usuários. Entretanto, alguns requisitos básicos têm presença garantida em um bom projeto de redes:

Escalabilidade – A rede deve ser capaz de crescer junto com a organização e o projeto inicial deve garantir este crescimento, ou seja, a rede pode ser redimensionada no futuro ainda que uma expansão não seja necessária na atualidade;

Funcionalidade – A rede deve permitir aos usuários plena satisfação de suas necessidades, proporcionando uma disponibilidade de aplicação fim a fim em algum nível específico de serviço;

Adaptabilidade – A rede deve suportar as tecnologias atuais e futuras e não teve possuir nenhum componente que possa limitar a utilização de novas tecnologias disponíveis;

Gerenciamento – O projeto deve permitir facilidade de monitoramento e gerenciamento da rede para garantir a operação contínua do sistema e disponibilidade de recursos;

Custos – O retorno em benefícios proporcionado pela rede deve ser quantificado, devendo pagar ou superar o investimento feito no projeto. O custo de implementação do projeto de rede deve estar dentro do orçamento estabelecido.

Muitas vezes a razão para um retorno negativo após a conclusão de uma melhoria na rede está em uma falha ocorrida no início do projeto, no momento de se fazer três estimativas importantes: o custo para a implantação, os benefícios a serem alcançados e os recursos disponíveis.

Para que um projeto de interconexão seja viável (e econômico), ele deve prover benefícios que excedam os custos e não deve vincular custos que excedam os recursos disponíveis. Por exemplo, o custo de uma rede pode ser dividido entre o custo das estações de processamento (computadores, servidores, etc), o custo das interfaces com o meio de comunicação e o custo do próprio meio de comunicação. Do custo das conexões e interfaces dependerá muito o desempenho que se espera da rede. Redes de baixo a médio desempenho usualmente empregam poucas estações com um baixo throughput (a quantidade de dados transmitida em uma unidade de tempo). Com isso, as interfaces e conexões normalmente são de baixo custo devido as suas limitações e aplicações. Redes de alto desempenho (alto throughput) requerem interfaces e conexões de custos mais elevados devido em grande parte aos protocolos de comunicação utilizados e ao meio de comunicação que exige uma maior eficiência no controle de erros.

3. Metodologias de projeto

Podemos definir um projeto como um trabalho não repetitivo e temporário caracterizado por uma seqüência clara e lógica de eventos, tendo como finalidade produzir um bem com características próprias que o diferenciam de outros que, eventualmente, já existam, sendo conduzido por pessoas, dentro de parâmetros de tempo, custo, recursos e qualidade. Consequentemente, os procedimentos para a execução de um projeto de interconexão de redes requerem um trabalho sistematizado, a partir de uma visão estratégica e objetiva da realidade dos usuários, assim como a organização e coordenação das ações a serem desencadeadas para sua correta execução.

Utilizar uma metodologia de projeto de interconexão é estabelecer um processo sistemático de criação de redes que tem seu foco nas metas técnicas, nos trade-offs (ajustes de custos) técnicos e comerciais, nos aplicativos e na finalidade do negócio do usuário. A metodologia deve dar ênfase ao planejamento antes da execução, permitindo analisar as metas globais e depois adaptar a estrutura de rede proposta à medida que obtém mais detalhes sobre necessidades específicas dos seus usuários.

Para um projeto de interconexão de redes podemos usar uma metodologia simples que envolve inicialmente o projeto da topologia da rede e estrutura de nomes e endereçamento que serão adotados. Os passos seguintes envolvem a especificação do hardware necessário, a seleção dos protocolos de enlace, comutação e roteamento, as estratégias para monitoração, segurança e gerenciamento da rede, conforme ilustrado na Figura 1.


4. Análise de requisitos

A implantação de um tipo particular de topologia de rede para dar suporte a um dado conjunto de aplicações não é uma tarefa muito simples. Cada arquitetura possui características que afetam sua adequação a uma aplicação particular. Nenhuma solução pode ser classificada como definitiva quando analisada em um contexto geral. Muitos requisitos devem ser observados individual e cuidadosamente, o que torna qualquer comparação bastante difícil e complexa. Em muitos casos deve-se dar preferência por soluções modulares.

A modularidade de uma rede pode ser caracterizada como o grau de alteração de desempenho e funcionalidade que a rede pode sofrer com alterações no seu projeto original. Entre os benefícios que as arquiteturas modulares podem oferecer estão as facilidades para modificações das funções lógicas ou de elementos de hardware. Estes podem ser substituídos independentemente da sua relação com demais. Além disso, um sistema modular oferece a facilidade para crescimento no que diz respeito às configurações, permitindo melhorias de desempenho e funcionalidade e um baixo custo para ampliações.

Na metodologia de projeto de interconexão de redes, a análise de requisitos envolve identificar as necessidades do usuário e os requisitos técnicos da rede. Esta análise de necessidades inclui não só o negócio da corporação, como também um detalhamento dos procedimentos e custos exigidos para atualizar a rede de modo que ela atenda as necessidades de seus usuários.

Segundo Pinheiro (2003):

Uma rede bem dimensionada é caracterizada pela sua capacidade de suportar todas as aplicações para as quais foi projetada inicialmente, bem como aquelas que futuramente possam surgir. Não deve ser vulnerável à tecnologia, ou seja, seu projeto deve prever a utilização de novos recursos, sejam novas estações, novos padrões de transmissão, novas tecnologias, etc.

5. Projeto da topologia de interconexão

A próxima etapa do projeto é desenvolver a topologia da rede, o que significa, na maioria das vezes, utilizarmos um modelo hierárquico onde a rede é dividida em três camadas: núcleo (core), distribuição (distribution) e acesso (access). Cada camada tem sua própria função e descreve um conjunto de funcionalidades distintas executadas em cada uma, bem como a topologia de rede associada.


5.1. Camada de núcleo

Neste modelo, a camada de núcleo (core) fornece os enlaces remotos entre redes geograficamente distantes (WAN’s). Neste caso, os serviços (Frame Relay, ATM, MPLS, etc) são contratados de operadoras de serviços de telecomunicações.

A função da camada de núcleo é bem simples: permitir o tráfego entre as demais camadas (distribuição e acesso), preferencialmente da forma mais rápida possível. Os links nesta camada devem ser dimensionados de forma a passar todo o tráfego das camadas superiores, porém, sem gargalos. Sugere-se que os equipamentos utilizados na camada de núcleo sejam iguais ou superiores aos equipamentos posicionados na camada de distribuição.

5.2. Camada de distribuição

Na camada de distribuição temos os serviços de rede comuns a várias LAN’s dentro do ambiente de um campus. Nesta camada encontramos a rede backbone de campus baseada em protocolos como Fast Ethernet, Gigabit Ethernet, entre outros. É na camada de distribuição das redes corporativas em geral que encontramos os servidores de e-mail, proxy, firewall, DMZ, entre outros.

Nesta camada temos os equipamentos que ligam a camada de acesso ao núcleo da rede. As opções de equipamentos neste nível incluem o uso de switches, switches multilayer (L3 switch) ou roteadores. É recomendável utilizar nesta camada um switch multilayer ou roteador mais robusto do que os equipamentos presentes na camada de acesso. Densidade de portas não é um problema para os equipamentos nesta camada, bastando que cada switch apresente portas em número suficiente para garantir a conexão na camada de acesso, bem como a redundância das rotas principais.

Como a camada de distribuição também é responsável pelo roteamento (routing) entre as camadas de acesso neste modelo de projeto, é possível configurar filtros de pacotes, QoS, e outros recursos para um gerenciamento mais eficiente do tráfego da rede.

5.3. Camada de acesso

Na camada de acesso encontramos uma LAN ou grupo de LAN’s, que fornece aos usuários o acesso aos serviços disponibilizados na rede. É nesta camada onde estão concentradas as estações de trabalho e também onde temos a alta densidade de portas. Com a utilização de switches, temos a chamada micro-segmentação, onde cada porta de um switch consistirá em um domínio de colisão dedicado. Múltiplos domínios de colisão oferecem um desempenho infinitamente superior quando comparados a um único domínio de colisão. Os switches de camada de acesso devem ser projetados de acordo com o volume de tráfego, tipos de aplicação e quantidade de estações conectadas (o chamado port density).

É importante salientar que nem sempre um projeto de interconexão exige equipamentos dedicados para cada camada. Em redes menores é possível disponibilizar ou consolidar duas camadas em um único equipamento. Por exemplo, existem situações em que combinar as camadas de distribuição e núcleo em um único equipamento (ou dois equipamentos, na mesma camada) é uma solução bastante viável técnica e economicamente. De qualquer forma devem-se sempre verificar os requerimentos dos equipamentos, estimativas de tráfego por aplicação, entre outros parâmetros.

6. Modelos para endereçamento e nomenclatura da rede

A etapa seguinte do projeto de interconexão envolve a elaboração de um esquema de endereçamento por meio de atribuição de blocos de endereços para os segmentos da rede, objetivando simplificar a administração dos endereços e possibilitar uma interconexão mais escalável. Um esquema de nomes também deve ser adotado de maneira sistêmica, com prefixos comuns utilizados para nomear os componentes de uma organização. Essa convenção de nomes torna a rede mais escalável e fácil de ser gerenciada. Consequentemente, a alocação cuidadosa de nomes e endereços em um projeto hierárquico também pode resultar em tabelas de roteamento mais simples e eficazes.

7. Seleção do hardware

Esta etapa do projeto de interconexão envolve a documentação fornecida pelos fabricantes para selecionar os componentes de hardware mais adequados para a infra-estrutura da LAN e WAN. Os dispositivos de LAN incluem roteadores, comutadores, switches, sistema de cabeamento e conexão de backbone e outros mais. Já os dispositivos de WAN incluem modems, servidores de acesso remoto, concentradores, entre outros.

Este processo de seleção envolve considerações a respeito das funções e recursos disponibilizados em cada dispositivo em particular, inclusive suas capacidades de expansão e gerenciamento. Obviamente que o custo de aquisição do equipamento também deve fazer parte do processo de decisão.

8. Seleção de Protocolos

A seleção dos protocolos de comutação, roteamento e de enlace que serão utilizados no projeto de interconexão está diretamente relacionada aos aplicativos em uso pelos usuários e dispositivos encontrados na rede. Neste momento, considerações sobre os tipos de protocolos usados são críticas e compreender o funcionamento dos outros recursos que fornecem suporte para a segurança e monitoramento global dos serviços pode garantir um planejamento mais eficaz do uso das plataformas de gerenciamento da rede.

9. Estratégias de monitoração, segurança e gerenciamento

O último passo na metodologia é colocar a rede em produção, ou seja, torná-la operacional. Neste momento, um ponto muito importante que deve ser observado na interconexão de redes é a facilidade de uso e manutenção dos recursos disponibilizados, tanto para os usuários quanto para seus administradores.

A rede deve possuir um conjunto básico de componentes e ferramentas capazes de oferecer os serviços necessários com qualidade para seus usuários, mas também facilidades para viabilizar a adição de novos equipamentos e manutenção do sistema como um todo para os seus administradores. O ideal é criar um modelo de rede em um ambiente de testes para visualizar o impacto das alterações de configuração propostas antes delas serem efetuadas nas comunidades de usuários do sistema.

Outro ponto importante é a necessidade de se obter continuamente informações operacionais da rede para que o planejamento de aplicações que demandam maior largura de banda possa ocorrer sem maiores impactos. Neste caso, há uma variedade de ferramentas de SNMP e RMON disponíveis que permitem um gerenciamento de rede proativo.

10. Documentação do projeto

A etapa final de um projeto de interconexão de redes envolve a elaboração da documentação, que inclui a descrição dos requisitos dos usuários e explica como o projeto atende a esses requisitos. Também se documentam a rede existente, a estrutura lógica e física, o orçamento e despesas associadas com o projeto.

A criação de uma rede bem documentada também oferece um formulário de referência que o cliente poderá usar em treinamento, solução de problemas e atualização da rede depois que você for embora (DiMarzio, 2001). A documentação pode abranger a execução de diagramas lógicos e topologia, plantas de arquitetura refletindo o esquema de infra-estrutura implantado, tabelas de identificação e conexão de segmentos, tabelas de caracterização de estações e/ou qualquer outro tipo de documentação técnica pertinente.

De acordo com Oppenheimer (1999):

Também é importante que um documento de projeto contenha planos para implementar a rede, medir o sucesso da implementação e desenvolver o projeto de rede à medida que surgirem novos requisitos de aplicativos. O trabalho do projetista de rede nunca termina. O processo de analisar requisitos e desenvolver soluções de projeto começa novamente assim que um projeto é implementado.

11. Conclusão

Independente do tamanho e do grau de complexidade, o objetivo básico de um projeto de interconexão de redes é garantir que todos os recursos sejam compartilhados rapidamente, com segurança e de forma confiável. Para tanto, a rede deve possuir regras básicas e mecanismos capazes de garantir o transporte seguro das informações entre os seus elementos constituintes.

Para que o projeto seja bem sucedido, o resultado do trabalho não deve apresentar apenas qualidade técnica. Os ingredientes necessários para um projeto de qualidade incluem persistência, objetivos claros sobre o que se deseja alcançar, planejamento para execução de todas as etapas envolvidas, consenso entre os participantes do projeto e um cronograma realista para a execução de todas as atividades relacionadas.

Também é importante que a metodologia de projeto selecionada não seja rígida a ponto de inibir a criatividade e a busca por novas soluções. Ela deve ser flexível, dinâmica e estar sempre aberta para acompanhar a evolução dos sistemas de informação. Entretanto, qualquer metodologia tende a se tornar ineficiente sem um bom plano de execução e manutenção que a acompanhe. Para isto, existem programas de qualidade que têm como objetivos racionalizar os processos, desenvolver padrões e direcionar a organização em busca da excelência almejada.

12. Referências Bibliográficas

Birkner, Matthew H, Projeto de Interconexão de Redes – Cisco Internetworking Design – CID; tradução de Fábio Fonseca de Melo. Pearson Education do Brasil, São Paulo, 2003.

DiMARZIO, J F, Projeto e Arquitetura de Redes: um guia de campo para profissionais de TI. Editora Campus, Rio de Janeiro, 2001.

OPPENHEIMER, PRISCILA, Projeto de Redes Top-down; tradução de Vandenberg Dantas de Souza. Editora Campus, Rio de Janeiro, 1999.

PINHEIRO, JOSÉ M S, Implantação de uma rede de computadores. Artigo disponível em: http://www.projetoderedes.com.br/artigos. Acesso em 20 ago 2003.

HDLC e PPP

Hoje veremos como configurar dois diferentes protocolos de WAN ponto a ponto, o HDLC e o PPP. Ao final de nosso artigo, você saberá como:

• Explicar o que o protocolo proprietário da Cisco é.
• Mostrar como configurar o HDLC em links WAN.
• Explicar o protocolo aberto PPP (Point-to-Point Protocol).
• Mostrar como configurar o PPP nas interfaces seriais.

Introdução

Uma rede onde dois roteadores estão conectados por interfaces seriais através de um serviço alugado de um ISP, é chamado de link ponto-a-ponto WAN. Normalmente os roteadores estão em diferentes sites conectados via link T1, uma fração de T1 como um link de 64K ou outro tipo de serviço de linha alugada.

Embora dois roteadores no mesmo rack possam ser configurados como link ponto-a-ponto, uma melhor largura de banda, e consequentemente mais eficiência haverá, será aproveitada se eles estiverem conectados a uma interface LAN.



Tipos de Encapsulação

Os dois tipos de encapsulação mais populares para roteadores Cisco, utilizando linhas alugadas, são:

• Point-to-Point Protocol (PPP)
• High-level Data Link Control (HDLC)

Na maior parte dos casos, o tipo de encapsulação que você escolher irá refletir no formato do frame utilizado em ambos os lados do link. Se PPP, os dois lados serão PPP. Se HDLC, os lados deverão ser HDLC.

Visão Geral Sobre o HDLC

O HDLC é o tipo de encapsulação padrão para cada porta serial em todos os roteadores Cisco.
Isto permite apenas comunicação entre os roteadores Cisco. Se sua WAN consite somente de roteadores Cisco, você não deve alterar o padrão HDLC.

Monitoramento de HDLC

Utilize o comando show interface para verificar o tipo de encapsulação de qualquer interface. Aqui, a interface serial 0 é examinada.

O tipo de frame configurado para este roteador é mostrado na imagem. A primeira linha da tela show interface exibe o status da interface.

Em uma interface serial, um status “up/down” usualmente indica um clock ruim ou uma encapsulação mal-feita.



Configurando a Encapsulação:

Utilize o comando encapsulation para modificar o tipo de frame em qualquer interface. Aqui, neste exemplo, encapsulation é utilizado para modificar o tipo de frame para PPP.

Partindo do princípio que HDLC é o tipo de encapsulação padrão, o comando encapsulation hdlc é utilizado somente quando você quiser voltar o tipo de frame para HDLC.



Tráfego de Entrada com Sucesso:

O comando show interface verifica que a encapsulação desta interface foi alterado para PPP.

Para esta interface torna-se operacional, o outro ponto do link deve ter sua encapsulação modificada para poder trabalhar corretamente.

Em um ambiente dial-up, o PPP oferece autenticação adicional pela camada de link que o HDLC não oferece.



Link Control Protocol

O PPP inicia um controle de link valendo-se do LCP quando uma conexão remota é estabelecida. Este procedimento garante que o PPP está configurado em cada um dos pontos do link.

Uma vez que a configuração está correta, inicia-se então uma negociação de protocolos da camada 3.

Network Control Protocols

Quando o PPP está configurado nas interfaces seriais e o LCP torna-se operacional, cada protocolo estabelece uma conexão única com o ponto remoto do link.

Este links lógicos são chamados de Network Control Protocols (NCPs).

Um NCP é uma espécie de mapa de um protocolo da camda 3, como o IP, IPX, DECnet, Vines e o AppleTalk, em um frame da camada 2, em nosso caso o PPP.




Verificação de LCP e NCP

Tanto o LCP e os NCPs podem ser visualizados na tela do comando show interface. Aqui, vemos que o LCP foi configurado e que os NCPs estão lá para o IP, IPX e AppleTalk.

O LCP é um resultado de ambos os pontos estarem com o PPP como tipo de encapsulação. Cada NCP é ativado por uma configuração própria do protocolo nas interfaces seriais.




Ambiente Muilti-hardware

Agora imagine que você não tenta a sorte de possuir uma infra totalmente Cisco. Longe de ser um desafortunado, é comum você encontrar redes WAN na qual os roteadores podem ser de diferentes marcas, como 3COM, Alcatel, Thomson, entre outros.

Nestes casos uma encapsulação não proprietária deve ser utilizada.O PPP é baseado em padrões abertos e é suportado por qualquer roteador.

quarta-feira, 17 de setembro de 2008

Urnas eletrônicas terão Linux e biometria em 2008

As urnas eletrônicas que serão usadas no pleito de 2008, que escolhe os novos prefeitos e vereadores de todo o Brasil, inauguram o uso de sistema operacional Linux e, em três municípios escolhidos para teste, também o recurso da biometria para identificação do eleitor.

As iniciativas fazem parte da estratégia do Tribunal Superior Eleitoral (TSE) de "melhorar a segurança e a transparência do processo", segundo Giuseppe Dutra Janino, secretário de tecnologia da informação do TSE.

Segundo Janino, em entrevista à Reuters, "há várias campanhas no sentido de macular esse processo", mas, nos 12 anos em que o Brasil se utiliza de urnas eletrônicas, "nenhuma fraude foi comprovada", afirmou.

A decisão de substituir os sistemas operacionais VirtuOS e Windows CE pelo Linux em 100 por cento das 480 mil urnas do país terá três vantagens, de acordo com o secretário.

"Uma delas é a economia", segundo ele, já que o órgão de governo não terá mais de comprar licenças dos antigos sistemas proprietários.

Ele reconhece que foi preciso desenvolver todos os softwares novamente para a troca ao sistema Linux, mas ressalta que "o custo do desenvolvimento se paga na medida em que não se pagará mais pelos sistemas nas próximas contratações".

O ciclo de contratação de novas urnas é de dois anos, de acordo com o crescimento demográfico. O Brasil tem atualmente 130 milhões de eleitores, número que cresce em média 6 por cento a cada dois anos, segundo o executivo.

Outra vantagem da escolha do Linux, segundo Janino, "é a transparência do processo". Segundo ele, com os antigos sistemas proprietários, o TSE tinha dificuldade em abrir os códigos de programação das urnas a entidades como Ordem dos Advogados do Brasil (OAB) e mesmo aos partidos políticos.

A 180 dias de cada pleito, o TSE abre todas as linhas de códigos para esses órgãos para que atestem sua legitimidade, antes das urnas serem lacradas digitalmente.

A terceira vantagem, de acordo com o secretário, é a segurança. "O software (Linux) é robusto e reconhecidamente seguro", afirmou Janino.

Outra inovação tecnológica do processo eleitoral deste ano será a presença de uma auditoria externa. Em toda eleição, uma comissão capitaneada pelo juiz eleitoral sorteia algumas urnas para acompanhar seu desempenho no dia da eleição.

Neste ano, entretanto, o processo, que já conta com câmeras que filmam a operação da urna, também terá a presença da auditoria Moreira e Associados, selecionada para acompanhar o processo.

O Brasil tem 27 regionais e, em cada uma delas, quatro urnas são sorteadas para a auditoria, como explicou Janino.


IMPRESSÃO DIGITAL


Em outra iniciativa para garantir a segurança do processo, o TSE vai implantar a identificação biométrica do eleitor em três municípios, como parte de um teste piloto.

"Na medida em que eliminamos a intervenção humana, ampliamos a credibilidade do processo", afirmou Janino.

A biometria se caracteriza por identificar o usuário através de alguma característica única de seu corpo. O TSE fará, neste piloto, identificação pela impressão digital, mas está apto também a identificar os eleitores pela face.

Neste ano, as cidades de Fátima do Sul (MS), São João Batista (SC) e Colorado do Oeste (RO), que juntas concentram em torno de 45 mil eleitores, serão as primeiras a adotar a identificação pelas digitais.

"Eliminamos a possibilidade de um eleitor votar pelo outro", destacou Janino, além de ressaltar que, nessas cidades, o processo de identificação fica a cargo do próprio eleitor, e não mais do mesário.

As cidades foram escolhidas por já disporem de urnas equipadas com scanner de digitais e por serem localidades que fariam o recadastramento eleitoral. No processo de recadastramento, os eleitores já colheram suas digitais e foram fotografados para garantir a identificação biométrica.

Janino explica que mesários e eleitores já passaram por simulados nessas regiões. "A cultura digital já se disseminou nessas três cidades", disse ele.

O secretário explica que, desde 2006, todas as urnas adquiridas são equipadas para permitir a identificação biométrica. Por isso, de acordo com o ritmo de renovação do parque de equipamentos, ele estima que "em um período de cinco a dez anos" o recurso seja estendido para todo o país.

O TSE já firmou "acordos de cooperação" com vários países, como Paraguai, Argentina, México, Venezuela e Honduras para o empréstimo das urnas brasileiras, mas não tem planos, segundo Janino, de "vender a tecnologia ou o equipamento".

A idéia, segundo ele, é apenas "transferir conhecimento de uma solução bem sucedida". Ele acredita que a imagem do país se beneficia. "Nossa imagem é bem destacada no âmbito internacional", afirmou.