Académique Documents
Professionnel Documents
Culture Documents
TCP-IP
Avançado
V.2.0
abril de 2004
AVISO IMPORTANTE
Esta apostila é parte integrante do Curso de TCP-IP Avançado,
desenvolvido pela TopMaster para a Embratel.
O objetivo deste documento é apresentar uma versão textual
do conteúdo do curso online para a conveniência do aluno.
Sua leitura não substitui o estudo online, pois este oferece interações e
animações que não podem ser representadas no formato impresso.
1.1. O Conceito de AS
A definição clássica de um Autonomous System é um conjunto de roteadores sob uma única
administração técnica que usam um mesmo IGP (Interior Gateway Protocol) e métricas comuns
para efetuar o roteamento dos pacotes dentro do AS, além de utilizarem um EGP (Exterior
Gateway Protocol) para rotear os pacotes aos outros ASs. No entanto, desde que esta definição
clássica foi desenvolvida, tornou-se comum um único AS usar vários IGP's e até diversas
métricas para a troca de informações de roteamento internas ao AS.
Com isso, uma definição mais apropriada para o termo Autonomous System deve considerar que,
mesmo quando existem múltiplos IGPs e métricas, um AS aparece para outros ASs como um
conjunto coerente de redes que possui uma única e clara política de roteamento totalmente 'invisível'
para os outros ASs, e que permite que estes alcancem as redes internas do AS através do uso dos
EGPs, que são executados nos roteadores que fazem a interface entre os Autonomous Systems.
Os valores de AS variam de 0 a 65535 para o BGP (Border Gateway Protocol), que vem a ser o
EGP usado para roteamento entre ASs na Internet, sendo que os valores de 64512 a 65535 são
destinados a ASs privativos usados em redes internas e não propagados externamente.
Como regra geral, recomenda-se colocar o maior número de blocos de endereçamento IP dentro
de um mesmo AS, respeitando a premissa de que todos devem estar em conformidade com a
mesma política de roteamento.
Tipos de AS
AS Trânsito São ASs usados como passagem de tráfego entre ASs.
Stub AS São ASs como um único ponto de entrada/saída. Não há tráfego de outros ASs
passando por um Stub AS.
O EGP foi o protocolo de roteamento externo mais utilizado para interligação dos diversos ASs
da Internet até o início dos anos 90, quando o principal backbone da grande rede pertencia à
National Science Foundation, instituição de pesquisa vinculada ao governo dos EUA.
Essas três categorias ou tipos de mensagens podem ser divididas em nove subtipos definidos pelo
protocolo EGP para sua execução.
Version
Identifica a versão do EGP usada pelo remetente. O roteador que recebe a mensagem verifica se a versão
do EGP que se está usando é compatível.
Type
Identifica o tipo de mensagem.
Code
Identifica o subtipo para cada tipo de mensagem.
Status
Informa o status. Os valores diferem dependendo do tipo de mensagem.
Checksum
Verifica a integridade da mensagem.
Autonomous System Number (ASN)
Identifica o AS ao qual pertence o roteador remetente.
Sequence Number
Número usado para identificar mensagens enviadas e suas respostas. Quando dois roteadores tornam-se
neighbors, cada um determina um número seqüencial inicial para suas mensagens. Cada mensagem é
enviada com o seqüencial e as respostas a essas mensagens contêm o mesmo número de seqüência.
Além dos campos comuns a todas as mensagens EGP, dois campos são específicos das
mensagens de Neighbor Acquisition: Hello Interval e Poll Interval.
Code (0 a 4)
Subtipos das Mensagens de Neighbor Acquisition (Type 3)
Code 0: Acquisition Request
Code 1: Acquisition Confirm
Code 2: Acquisition Refuse
Code 3: Cease Request
Code 4: Cease Confirm
Hello Interval - Especifica o intervalo de tempo que deverá ser usado entre os neighbors para a
verificação de estado de seus pares (se Up ou Down).
O formato das mensagens de Hello e sua resposta I Heard You consiste no cabeçalho padrão do
EGP com campo de tipo igual a 5 e dois subtipos (códigos) iguais a 0 e 1, significando Hello e I
Heard You, respectivamente.
Code (0 a 1)
Subtipos das Mensagens de Neighbor Reachability (Type 5)
Code 0: Hello
Code 1: I Heard You
É importante observar que as listas internas e externas NÃO são incluídas na mesma
mensagem; elas são sempre anunciadas em mensagens distintas.
As distâncias são medidas em hop counts, isto é, pela quantidade de roteadores que são
transpassados entre a Source Network e as redes contidas no bloco de mesma distância
(Distance 1, Distance 2,..., Distance n).
Algumas das limitações do EGP que lhe conferem um baixo grau de escalabilidade, são:
- Toda a conectividade é perdida em caso de falha dos roteadores conectados
diretamente ao backbone principal (core system routers);
- O EGP somente permite o anúncio de 1 caminho para cada rede;
- Não permite balanceamento de carga entre ASs mesmo que existam múltiplos
roteadores fazendo a conexão entre eles;
- O EGP não se adequa à arquitetura de redes com múltiplos backbones.
A seção sobre o protocolo BGP mostra, entre outros assuntos, como o BGP trata estas limitações.
O BGP é um protocolo bastante robusto e escalável, evidenciado pelo fato de que o BGP é
amplamente empregado no backbone da Internet nos dias de hoje.
O BGP necessita estabelecer uma sessão TCP para que a troca de informações possa acontecer. O
TCP atende às exigências de transporte do BGP e é suportado por praticamente todos os
roteadores e hosts comerciais. O BGP usa a porta TCP/179 em suas conexões.
Estima-se que as tabelas de rotas BGP da Internet somam atualmente mais de 90.000 entradas.
Para conseguir uma escalabilidade nesse patamar, o BGP usa atributos para definir políticas de
distribuição de rotas e manter um ambiente de roteamento estável.
Exemplo:
Suponha que um ISP tenha recebido o bloco 195.10.x.x do espaço de endereçamento da classe C. Este
bloco consiste em 256 redes classe C: de 195.10.0.x até 195.10.255.x. Consideremos então que o ISP
ceda um bloco de rede classe C a cada um de seus clientes. Sem CIDR, o ISP anunciaria 256 entradas de
rede classe C a seus pares BGP. Com CIDR, é possível fazer o supernetting desse bloco, anunciando
somente uma rota para os outros roteadores, o que significa somente uma entrada na tabela de
roteamento: 195.10.x.x. Ou seja, o BGP desconsidera as distinções tradicionais de classes de
endereçamento (A, B e C) graças ao suporte ao CIDR, permitindo uma redução significativa em suas
tabelas de rotas.
Outra característica importante do BGP consiste no fato de que os roteadores somente trocam as
tabelas de rotas completas quando a conexão TCP entre os pares (peers) ou neighbors BGP é
estabelecida inicialmente. A partir daí, apenas as alterações são enviadas. Além disso, os roteadores
BGP não emitem updates periódicos de suas tabelas de roteamento e sim utilizam o método de
Triggered Updates onde as atualizações de rotas são enviadas somente quando algum evento pré-
definido dispara o processo de emissão de informações. Dessa forma, o uso da banda dos circuitos
de longa distância que comumente conectam os pares BGP (BGP peers) é otimizado.
iBGP e eBGP
iBGP ou Internal BGP é usado para troca de informações de roteamento entre roteadores dentro
do mesmo AS. Para que as mensagens iBGP possam ser trocadas, é preciso que exista a conexão
entre todos os roteadores do AS constituindo uma topologia lógica de Full-Mesh. eBGP ou
External BGP é usado para troca de informações de roteamento entre diferentes ASs. É preciso
que seja apenas estabelecida a sessão entre os Neighbors BGP diretamente conectados entre si.
Mensagens BGP
Cabeçalho comum
Antes de entrarmos na análise dos detalhes de cada tipo de mensagem, apresentaremos os campos
do cabeçalho BGP comuns a todos os tipos de mensagem.
Marker
Serve para verificar a autenticidade da mensagem recebida e se houve perda de sincronização entre os
roteadores vizinhos BGP. Pode ter dois formatos: caso a mensagem seja do tipo OPEN (abrir), ou se a
mensagem tipo OPEN não possuir informação de autenticação, o campo deve estar todo preenchido com
números um (1); caso contrário, o campo terá o seu conteúdo baseado em parte do mecanismo de
autenticação usado.
Length
Indica o tamanho total da mensagem BGP, incluindo o cabeçalho.
Type
Tipo da mensagem que está sendo enviada. São 4 os tipos de mensagens utilizadas pelo BGP em seus
processos de roteamento:
Valor do campo Type 1: Mensagem OPEN
Valor do campo Type 2: Mensagem UPDATE
Valor do campo Type 3: Mensagem NOTIFICATION
Valor do campo Type 4: Mensagem KEEPALIVE
Version
Indica a versão do BGP. Este campo permite que os BGP peers negociem a maior versão comum a ambas
as partes. Quando, por exemplo, um peer recebe uma mensagem indicando que a outra parte executa a
versão 4 e ele suporta uma versão inferior. O recipiente envia uma mensagem de erro e o remetente
solicita uma nova sessão com os parâmetros usados pela versão inferior.
My Autonomous System
ASN do roteador que envia a mensagem de OPEN.
Hold Time
Tempo máximo que os peers esperam antes de considerar a conexão terminada. O valor mínimo permitido
para este parâmetro é de 3 segundos.
BGP Identifier
Pela especificação do BGP, o identificador é um valor randômico e único escolhido pelo roteador no
momento do envio da mensagem OPEN. As implementações práticas usam o endereço IP da interface em
saída da mensagem ou, se definido, o endereço de loopback.
Optional Parameters Length
Indica o tamanho do campo de parâmetros opcionais (Optional Parameters).
Optional Parameters
Parâmetros opcionais incluídos na mensagem BGP OPEN.
Atributos BGP
Conforme visto, as mensagens UPDATE incluem o campo PATH Attributes que carrega
as informações dos atributos BGP para as rotas anunciadas no campo NLRI. Os Path
Attributes podem ser considerados como métricas usadas pelo BGP que passam pelos
routers para seus peers.
Categorias de atributos
Além dos atributos Well-Known, existem os opcionais, que podem ser transitivos ou não
e que não são obrigatoriamente suportados por todas as implementações do BGP.
Atributos transitivos são repassados nas mensagem de UPDATE para os peers seguintes.
• Optional Transitive
Se determinada implementação do BGP não reconhecer um atributo opcional ao
receber uma mensagem UPDATE, ela verificará se a flag Transitive está ativada
ou não para aquele atributo. Caso esteja, esse atributo é repassado nas mensagens
UPDATE seguintes, enviadas pelo roteador para seus pares.
• Optional Non-Transitive
Inverso do opcional transitivo. Se a implementação do BGP não reconhecer o
atributo opcional e não encontrar a flag transitive ativada, o atributo é ignorado e
NÃO é repassado para os vizinhos BGP nas mensagens UPDATE subseqüentes.
Tipos de atributos
Vistas as quatro categorias de atributos, vamos descrever agora os tipos de atributos
encontrados nas mensagens de UPDATE do BGP.
ORIGIN
Well-Known Mandatory
Indica a origem do anúncio de rota ou NLRI (que indica o prefixo e a máscara de
bits) em relação ao AS que o originou. Pode conter um dos seguintes valores:
Valor Descrição
0 IGP
A origem é interna ao AS originário da mensagem (indicado por um "i"
na tabela de rotas), seja ela recebida através da redistribuição das rotas do
IGP para o BGP (do mesmo AS) ou pela simples configuração do BGP
naquele roteador.
1 EGP
A origem é de um AS externo e foi recebida por um anúncio de um EGP.
É identificada por um "e" na tabela de rotas. Este tipo de entrada
dificilmente será visto nas tabelas de rotas atualmente.
2 INCOMPLETE
A NLRI é desconhecida ou aprendida por outros meios (além dos acima).
Geralmente acontece quando uma rota estática (configurada
manualmente por um operador) é redistribuída no BGP e a origem da rota
fica incompleta. É indicada por um "?" na tabela de rotas.
AS PATH
Well-Known Mandatory
É uma seqüência de ASNs que uma rota cruza para alcançar uma determinada
rede de destino. O AS que origina uma rota acrescenta seu ASN ao anunciar uma
rota sua para seus peers BGP externos. Daí em diante, cada AS que receber a rota
acrescenta seu próprio ASN no início da seqüência de ASNs e repassa a rota para
outros peers seus que irão fazer o mesmo. A lista final vai representar todos os
ASNs que uma rota atravessou com o ASN do AS de origem da rota no final da
seqüência, também conhecida como AS_Sequence.
Caso um AS receba um anúncio de rota que contenha seu próprio ASN na seqüência
inclusa no AS_PATH, este anúncio será rejeitado e descartado, garantindo assim que não
haverá loop de roteamento na tabela BGP desse AS.
NEXT HOP
Well-Known Mandatory
Este atributo contém o endereço IP da interface do próximo roteador - próximo
salto (next hop) a ser dado - para se chegar a determinado destino, ou seja, às
redes de destino incluídas na mensagem UPDATE.
MED - MULTI_EXIT_DISCRIMINATOR
Optional Non-Transitive
Este atributo tem como finalidade informar para os vizinhos BGP externos
(peers) qual o melhor caminho (path) para uma determinada rota do próprio AS,
influenciando-os, assim, em relação ao caminho a ser seguido no caso de o AS
possuir diversos pontos de entrada.
ATOMIC_AGGREGATE
Well-Known Discretionary
Este atributo é usado por um roteador que, ao ter que selecionar uma rota dentre
Outra observação importante: não é possível agregar um endereço sem ter uma
rota mais específica daquele endereço na tabela de roteamento. Por exemplo: um
roteador não pode gerar uma rota agregada para 196.0.0.0 sem possuir
previamente uma rota de 196.10.0.0 em sua tabela de roteamento.
AGGREGATOR
Optional Transitive
Este atributo pode ser incluído em mensagens UPDATE que sejam formadas por
agregação. O atributo AGGREGATOR contém o ASN do último roteador que
formou uma rota agregada, seguido de seu próprio ASN e endereço IP.
COMMUNITY
Optional Transitive
Este atributo é usado para representar um agrupamento de destinos que
compartilhem uma ou mais características que não estão restritas a um mesmo
AS, rede ou conjunto de redes. As delimitações do agrupamento são em termos
de Routing Policies (políticas de roteamento), podendo envolver mais de um AS,
inclusive. As comunidades (Communities) podem ser compostas de diversas
redes pertencentes a qualquer AS, usadas para simplificar políticas de roteamento
através da identificação de rotas por algum parâmetro lógico ao invés de prefixos
CIDR ou ASNs. Usando esses atributos, um roteador pode combiná-los com
outros para determinar para cada comunidade as rotas a serem aceitas,
descartadas, preferidas ou repassadas para outros vizinhos.
WEIGHT
Definido pela Cisco Systems, o WEIGHT não é propriamente um atributo BGP.
Ele influencia no processo de seleção da melhor rota do roteador onde for
definido e, como é um atributo local ao roteador, não é repassado e nem
propagado aos seus vizinhos nas mensagens UPDATE. O WEIGHT é um valor
decimal entre 0 e 65535, sendo o valor padrão igual a 32768, assumido para rotas
originadas pelo roteador. Outras rotas possuem o WEIGHT igual a 0 (zero), por
padrão. Havendo mais de uma possível rota para um mesmo destino, o BGP-4
seleciona a que possuir o atributo WEIGHT com maior valor.
2 Comprimento da
mensagem inválido
3 Tipo de mensagem
inválido
2 Número de AS vizinho
inválido
5 Falha na autenticação
6 Tempo de espera
inaceitável
2 Atributo Well-Known
desconhecido
5 Erro no comprimento do
atributo
7 Loop de roteamento em
AS
8 Atributo NEXT_HOP
inválido
KEEPALIVE Message
São mensagens trocadas periodicamente com o propósito de verificar se a comunicação entre os
vizinhos está ativa. A mensagem do tipo KEEPALIVE é composta apenas do cabeçalho padrão
das mensagens BGP, sem dados transmitidos após o cabeçalho. O tempo máximo permitido para
o recebimento de mensagens KEEPALIVE ou UPDATE é definido pelo hold time, como foi visto
na descrição do tipo de mensagem OPEN.
BGP Light
A Embratel oferece uma modalidade de BGP a seus clientes chamada de BGP Light.
Conforme especificado na RFC 1930, o bloco de ASNs entre 64512 e 65535 é reservado para uso
privado e estes não devem ser anunciados para o restante da Internet. Dessa forma, é possível
criar uma AS para um cliente, com os benefícios de administração, redundância dos links e
distribuição de tráfego, sem a necessidade de arcar com altos custos de roteadores de grande porte
capazes de manter a tabela inteira de BGP em sua memória.
Note que o cliente fica conectado a dois centros de roteamento diferentes, efetivamente
garantindo a redundância do link.
O EIGRP suporta os principais protocolos rateáveis em uso atualmente – IP, IPX e Appletalk –
tornando-o uma opção apropriada para redes heterogêneas.
Relações de Vizinhança
Usando mensagens de Hello, o EIGRP estabelece e mantém relações de vizinhança (Neighboring
Relationship), sendo elas responsáveis por determinar o estado da conexão entre os neighbors. Ao
ser estabelecida a relação de vizinhança, as informações de roteamento podem ser trocadas entre
os neighbors.
As mensagens de Hello são trocadas por default a cada 5 segundos em circuitos ponto a ponto
como PPP, HDLC e Frame-Relay point-to-point. Este período é chamado de Hello Interval. O
período de tempo que um roteador aguarda antes de considerar o neighbor fora de operação é
chamado Hold-Time interval e o seu valor padrão é três vezes o Hello Interval, portanto, 15
segundos.
O EIGRP baseia-se em três tabelas para seu processo de descoberta, cálculo e anúncio de rotas.
São elas:
• Tabela de neighbors: Contém as informações de todos os vizinhos, tais como
endereço IP e Hold-Time Interval.
• Tabela de topologia: Contém as informações conseguidas pelo próprio roteador,
assim como as recebidas dos neighbors sobre todos os caminhos possíveis para
um determinado destino.
• Tabela de rotas: Contém os caminhos de menor custo para os destinos
aprendidos pelo próprio roteador ou via neighbors.
Sempre que uma mensagem de Update é recebida tratando de uma alteração na rota para um
destino ou destinos existentes na tabela de rotas local ou anunciando uma nova rota para um novo
destino, o processo de recálculo de rotas é iniciado.
A seleção é feita com base no custo de cada caminho que, por sua vez, é o resultado de métricas
que consideram fatores como banda passante (bandwidth), atraso (delay), confiabilidade
(reliability) e taxa de uso do circuito (load).
• Bandwidth: A vazão ou banda passante de um circuito. O valor default é dado
baseado no tipo de interface do roteador onde o circuito conecta-se, mas deve ser
alterado manualmente pelo administrador da rede visando refletir corretamente a
banda real contratada.
• Delay: O atraso na propagação do sinal dado fundamentalmente pelo tipo de
meio de transmissão. Uma transmissão via satélite, por exemplo, terá um atraso
maior do que uma transmissão via fibra ótica se tivermos como premissa que a
distância percorrida seja a mesma.
• Reliability: A confiabilidade do circuito dada pela média de erros ou
indisponibilidade do mesmo em um período de tempo (default é de 5 minutos nos
roteadores Cisco).
• Load: A taxa média de utilização do circuito em um período de tempo (default é
de 5 minutos).
A composição de alta banda, baixo atraso, alta confiabilidade e baixa carga é o que o EIGRP
busca para escolher a rota com custo inferior. A rota de menor custo dentre as existentes na tabela
de topologia é transferida para a tabela de rotas e designada como Ativa (Active Route). As rotas
com custos superiores a ela são marcadas como Possíveis sucessoras (feasible sucessors) em caso
de falha da rota Ativa.
Obs: Na prática, os roteadores Cisco somente consideram por default Bandwith e Delay para
composição do custo, podendo-se configurar Reliability e Load manualmente caso haja interesse
do administrador.
A grande diferença é a capacidade do EIGRP em balancear circuitos com custos diferentes. Isto é
possível quando usamos o comando variance , que faz com que sejam incluídas como rotas ativas
as feasible sucessors que tenham custo menor ou igual a menor custo computado * variance.
Exemplo:
Temos 3 rotas para um mesmo destino. O menor custo é 20. Caso definamos uma variância de 2,
teríamos as rotas com custo <= 40 incluídas no rol de rotas ativas. Com isso, a rota 2 também
seria considerada ativa e colocada na tabela de rotas.
A inteligência do EIGRP faria a distribuição do tráfego na proporção de 2/1, ou seja, para cada
pacote que passasse pela Rota 2, dois passariam pela rota 1.
Intermediate System é o termo usado pela ISO para definir roteador. O IS-IS é, portanto, um
protocolo usado para comunicação entre IS’s ou, usando o termo mais familiar para nós, entre
roteadores. Utilizaremos os nomes IS e roteador para nos referirmos ao mesmo objeto de rede em
nosso curso.
Similar a outros protocolos já vistos neste curso, tais como BGP e EIGRP, o IS-IS precisa
estabelecer uma relação de vizinhança para que as informações de roteamento possam ser
trocadas.
Tipos de IS
O IS-IS usa uma estrutura hierárquica de 2 níveis em seu processo de roteamento: domínio e área,
sendo que áreas são subdivisões lógicas dos domínios.
Com base nessa estrutura hierárquica, temos dois tipos de roteadores no ambiente IS-IS:
• Nível 1: Conhecem e trocam informações sobre a topologia interna de uma área
com todos os outros IS’s da mesma área. Por outro lado, não têm qualquer
conhecimento sobre os IS’s ou redes destino de outras áreas.
• Nível 2: Conhecem todas as outras áreas de um mesmo domínio mas não têm a
visibilidade do que existe em termos de roteadores e redes dentro das áreas. Para
que um roteador de nível 1 possa comunicar-se com outra área, ele deve enviar o
pacote para um roteador de nível 2 localizado em sua área, que encaminhará o
pacote para outra através de outro roteador de nível 2 localizado na área destino.
Processo de roteamento
O processo de roteamento pode ser decomposto em 4 funções:
• Decision Process: Calcula as rotas para cada destino. Se o IS for de nível 2, há
um processo separado para cada nível. Baseia-se na tabela de Link-State para o
calculo da melhor rota.
• Update Process: Este processo monta, propaga e recebe as informações de Link-
State. Este processo também é responsável pela manutenção da tabela de link-
state.
• Forward Process: É responsável pelo processo de roteamento propriamente dito.
Faz a busca na tabela de roteamento bem como aloca buffers de recepção e envio.
• Receive Process: Responsável pelo recebimento dos pacotes. Interage com
outros processos como FP, caso o pacote recebido deva ser roteado.
As redes de hoje necessitam suportar múltiplos tipos de tráfego sobre os mesmos circuitos. Os
tipos diferentes do tráfego exigem tratamentos diferentes da rede. Assim como um passageiro da
primeira classe está disposto a pagar mais pelo melhor serviço, as empresas hoje estão dispostas a
pagar um adicional pelo tratamento preferencial de seu tráfego de rede. E da mesma forma que
não podemos ter um avião separado para cada passageiro da primeira classe, nós não podemos ter
conexões de redes separadas para cada uma das empresas. Conseqüentemente, o tráfego de
"primeira classe" e o de outras classes têm que compartilhar a mesma largura de banda disponível
(como passageiros da classe econômica compartilham o avião com os passageiros da primeira
classe).
Para definir a qualidade de serviço é preciso conhecer as métricas que, em última instância, são os
parâmetros que definem o QoS de uma determinada rede. As principais métricas são:
• Service Availability (Disponibilidade do serviço)
Confiabilidade das conexões fim-a-fim.
• Delay (Atraso)
Tempo que um pacote leva para percorrer a rede do ponto de origem ao ponto de
destino.
• Delay Jitter (Atraso irregular)
Variação no atraso encontrado pelos pacotes similares que seguem a mesma rota
através da rede. Há casos como o de tráfego de voz sobre IP, onde um atraso
constante não ocasiona problemas na conversação, porém, caso tenhamos um
atraso irregular, as sílabas soarão "emboladas" no destino. Nesse caso, o controle
dessa característica da rede é fundamental em termos de QoS para o tráfego de voz.
• Throughput (vazão)
Taxa de transmissão dos pacotes através da rede.
• Packet Loss Rate (Taxa de perda de pacotes)
Taxa que representa o número de pacotes recusados, perdidos ou corrompidos em
relação ao total de pacotes enviados na rede.
Componentes de QoS
Diversos componentes são necessários de forma a se atingir uma QoS efetiva. Observe a imagem
a seguir:
As garantias dadas por mecanismos de CoS são bastante limitadas. O CoS somente garante que os
pacotes com prioridade mais elevada tenham um melhor serviço do que pacotes com prioridade
mais baixa. Não há controle da admissão do pacote de entrada, portanto não há nenhum
mecanismo para impedir que as classes fiquem sobrecarregadas. Conseqüentemente, a qualidade
do serviço não é previsível, mas depende da quantidade de tráfego competindo pelos mesmos
recursos. É possível haver congestionamento dentro das classes, o que pode levar a delay jitter e
perda do pacote.
As classes de QoS são completamente isoladas. Tráfego de dados e tráfego real-time, por
exemplo, podem ser totalmente separados. Com isso, o tráfego de dados não causaria delay jitter
às aplicações real-time e, da mesma forma, ele não é prejudicado por uma quantidade excessiva
de tráfego real-time.
Por outro lado, com o CoS, recursos de processamento e memória não são gastos em tarefas como
gerenciamento do fluxo, scheduling do tráfego e ordenação como é feito no QoS. Assim, os
recursos exigidos aos roteadores para oferecer o CoS são inferiores aos requeridos pelo QoS.
Integrated Services
IntServ é um mecanismo de QoS orientado a fluxo. Um fluxo é definido como uma seqüência de
pacotes originados a partir de uma atividade específica do usuário, como, por exemplo, uma
sessão transferência de arquivo. Um fluxo pode ser identificado por uma variedade de
informações encontradas nos pacotes, como os endereços IP origem, IP de destino e o número da
porta TCP destino.
O IntServ requer que os recursos sejam reservados para cada fluxo, a fim de prover o QoS
solicitado. Isto pode ser feito através de um protocolo dinâmico de reserva de recursos (Dynamic
Reservation Protocol) ou de configuração manual. Ainda que o IntServ não esteja amarrado a
Limitações do IntServ
O maior problema com relação ao uso do IntServ é quanto à sua escalabilidade. Em uma rede de
grande porte, a quantidade de mensagens de controle necessárias à solicitação de reserva para um
grande número de fluxos certamente exigirá um alto volume de processamento por parte dos
dispositivos de rede.
Da mesma forma, a manutenção de tabelas de estado dos fluxos em cada nó da rede demandaria
uma grande necessidade de memória. Além disso, a classificação e programação (scheduling) do
tráfego tornaria o processo de roteamento em cada dispositivo bastante complexo. A questão da
segurança também é uma preocupação, já que o IntServ carece de um mecanismo que evite o
pedido de alocação de recursos por fontes não autorizadas.
Differenciated Services
Os Differenciated Services (DiffServ - DS) utilizam o conceito de domínios para modelar sua
estrutura de QoS. Um domínio de DiffServ é um conjunto contínuo de nós de rede que suportam
um mesmo método de provisionamento de recursos e políticas de QoS. O domínio tem uma
fronteira bem definida e há dois tipos de nós associados com um domínio do DS: border nodes
(nós de borda) e interior nodes (nós internos).
Os PHBs podem ser definidos em função da prioridade de uso de recursos (como buffers e
largura de banda) em relação a outros PHBs ou nos termos das características de tráfego
requeridas, como atraso máximo e perda de pacotes suportada para um determinado DSBA. Em
síntese, os PHBs são as bases para alocação de recursos no mecanismo de DiffServ.
O DiffServ não diferencia o tráfego por fluxo como é o caso do IntServ. Ao invés disso, há um
número pequeno de classes para as quais são oferecidos serviços diferenciados e essas classes, na
verdade, são agregações de diversos fluxos que solicitam o mesmo tipo de QoS.
No DiffServ não há classificação de pacotes nos interior nodes da rede. Já no IntServ/RSVP, cada
router interno executa a classificação do pacote, a fim fornecer diferentes níveis de serviço. No
DiffServ, a classificação do pacote é movida para a borda da rede, isto é, os border nodes
classificam e marcam pacotes apropriadamente e os interior nodes processam os pacotes
baseados nessas marcas.
Outra diferença importante entre as duas soluções é o fato de que o IntServ/RSVP explicitamente
reserva, de forma antecipada, os recursos ao longo do trajeto, enquanto o DiffServ não fornece
garantias prévias. O objetivo em DiffServ é monitorar o tráfego que entra na rede pelo border
node e verificar sua adequação a perfis de serviços pré-definidos com base em acordos de nível
de serviço (SLAs). Baseado nos SLAs, os pacotes podem ser marcados como estando dentro (IN)
ou fora (OUT) de seus perfis. Dentro da rede, os interior nodes descartam preferencialmente os
pacotes que são marcados como OUT.
Como o DiffServ move a classificação dos pacotes para a borda da rede, não trata fluxos
individuais e não possui controles para reserva antecipada de recursos, esta solução é mais
escalável que a IntServ, pois reduz o custo para o controle do QoS como banda passante no
interior da rede, memória e processamento nos interior nodes.
Unicast
O IP Unicast é o método comumente usado nas típicas comunicações cliente/servidor. Neste
contexto, cada conexão usa uma parte exclusiva da banda total disponível. Isto significa que se
um servidor de streaming de áudio/vídeo como o Windows Media Server, por exemplo,
transmitisse em Unicast para 100 clientes, 100 cópias dos mesmos dados seriam enviadas na rede.
O IP Unicast, portanto, é uma tecnologia que trabalha muito bem em comunicação ponto-a-ponto,
mas não em comunicação ponto-a-multiponto. Para esse tipo de comunicação, a transmissão em
Multicast é a forma que melhor se adequa às características deste tráfego, como veremos a seguir.
MultiCast
O princípio fundamental que permite o IP Multicast é o tratamento eficiente de comunicações
entre grupos de hosts em uma rede IP. Esta tecnologia permite o envio de uma única mensagem
(data stream) na rede e que vários hosts recebam a mesma mensagem.
Neste método, uma banda adicional não precisa ser alocada para cada nova conexão. Ao invés
disso, cada novo usuário conecta-se ao único fluxo de dados transmitido. Conseqüentemente, há
Quando IP Multicast necessita transpassar diferentes segmentos de rede via roteadores, três
requisitos precisam ser atendidos:
• Grupo de destinatários: A camada de rede deve conter um endereço que
represente um grupo de destinatários, ao invés de apenas um receptor. Isto é
realizado usando a faixa de endereçamento IP de classe D, e não endereços da
classe A, B ou C.
• Método de adesão: Deve haver um método para que os computadores dos clientes
associem-se ao grupo que recebe os pacotes de IP Multicast. Isto é realizado
usando-se protocolos como o IGMP, que gerenciam os grupos Multicast.
• Infra-estrutura de rede: A infra-estrutura da rede deve ter uma maneira de
comunicar as decisões de roteamento multicast. Alguns exemplos de protocolo de
roteamento multicast são o Distance Vector Multicast Routing Protocol e PIM
(Protocol Independent Multicast).
Endereçamento IP Multicast
Diferentemente da comunicação Unicast, onde cada endereço IP identifica um único host, no
Multicast um endereço IP representa um grupo ao qual os hosts podem associar-se para receber
pacotes referentes a uma mesma transmissão.
Os endereços da faixa de 224.0.0.0 até 224.0.0.255 são do tipo locais, isto é, não são roteados pelos
roteadores Multicast e, portanto, restritos ao uso dentro de uma mesma subrede IP. Os endereços da
faixa 224.0.1.0 à 224.0.1.255 são roteáveis e portanto podem passar através dos roteadores.
A faixa de endereços dita como endereços privativos (239.0.0.0 a 239.255.255.255) tem a função
semelhante à dos endereços privativos das classes A, B e C (10.0.0.0, 172.16.0.0 a 172.31.0.0 e
192.168.0.0), ou seja, são endereços inválidos e controlados pelo IANA, mas que podem ser
utilizados dentro da empresa para aplicações restritas.
O principal protocolo responsável pelo gerenciamento dos grupos Multicast é o IGMP (Internet
Group Management Protocol), atualmente em sua versão 2. Com a mesma funcionalidade, temos
também o protocolo proprietário da Cisco CGMP (Cisco Group Management Protocol).
Vejamos como são os principais processos envolvidos no gerenciamento dos grupos Multicast:
• Query Process - Os roteadores Multicast passam o tráfego Multicast destinado a
grupos somente para os segmentos de rede diretamente conectados a ele e que
tenham, pelo menos, um host nesses grupos. Para saber que hosts estão
associados a que grupos em um determinado segmento, os roteadores enviam
uma query (pergunta) para todos os hosts do segmento por meio do endereço
224.0.0.1. Os hosts que pertençam a grupos Multicast reportam ao roteador suas
informações. Desde que haja, pelo menos, um host em um determinado grupo, o
roteador enviará o tráfego referente a esse grupo para o segmento em questão.
Até recentemente, as possibilidades existentes para efetuar este tipo de conexão eram o uso de
linhas dedicadas ou contratação de serviços de redes comutadas, como Frame-Relay e X.25, de
operadoras internacionais. Hoje, podemos utilizar com segurança uma rede pública que oferece
maior capilaridade e menor custo entre todas as outras soluções. Esta rede é a Internet e a
tecnologia que viabiliza esta solução com segurança é a rede privativa virtual (Virtual Private
Network - VPN).
Certamente, as soluções tradicionais ainda oferecem vantagens sobre uma rede pública, como a
Internet, quanto à confiabilidade e ao desempenho; porém, essas vantagens tendem a diminuir
com as novas tecnologias de QoS. Por outro lado, manter uma estrutura baseada em circuitos
dedicados de longa distância é muito caro, e os custos aumentam em função da distância entre os
pontos conectados.
Conceitualmente, uma VPN é uma rede privativa que utiliza uma rede pública (geralmente a
Internet) para conectar localidades e usuários remotos a redes privadas. Em vez de usar um
circuito dedicado, uma VPN utiliza conexões virtuais através da Internet, ligando a rede privada
da empresa à uma localidade remota.
Tipos de VPN
Acesso Remoto
Também chamada de client-to-LAN, este tipo de conexão VPN é utilizada para ligar as estações
de trabalho, tipicamente laptops ou PDAs de funcionários que necessitam se conectar à rede da
empresa quando estão em localidades remotas, como hotéis e clientes.
Neste caso, é comum a empresa terceirizar o acesso à Internet junto à uma provedora de acesso
que ofereça números locais em diversas das principais cidades do país ou do mundo, além de
números 0800 para as cidades onde números de acesso locais não estejam disponíveis.
Após a conexão discada ter sido estabelecida, o funcionário usa um cliente VPN instalado em sua
estação para estabelecer a conexão com o servidor VPN localizado na sua empresa e passa então
a ter acesso seguro aos recursos da rede corporativa.
Consultores, equipes de venda e equipes de suporte são usuários típicos deste tipo de VPN.
Site-to-Site
Também conhecida como LAN-to-LAN, este tipo de VPN é feita por meio da conexão dedicada
de escritórios remotos à Internet. São comumente utilizados dispositivos especializados na
manutenção do circuito dedicado (roteadores), além dos dispositivos com o fim específico de
tratar os processos inerentes à conexão VPN (firewalls), como autenticação e criptografia.
Ligações entre matriz e filiais e entre a empresa com seus fornecedores são os usos mais comuns
deste modo de conexão VPN.
VPN e Criptografia
Este mecanismo envolve normalmente dois métodos de criptografia:
• Criptografia de chaves simétricas
Envolve o conhecimento de uma única chave, por ambos os lados, capaz de
criptografar e descriptografar a informação transmitida. É o método escolhido
quando a performance é o requisito fundamental.
• Criptografia de chaves públicas
Método onde as duas partes possuem duas chaves: uma privada de conhecimento
exclusivo do '"dono" da chave e uma pública que, como o nome sugere, é de
conhecimento de todos. Estas duas chaves têm a seguinte propriedade: o que é
criptografado com uma delas somente será descriptografado pela outra, isto é, o
que é criptografado com a chave privada somente pode ser descriptografado com
a chave pública e vice-versa.
Note que em virtude de sua melhor performance, graças ao menor consumo de recursos em
relação aos algoritmos de chave pública, os algoritmos de chave simétricas são preferenciais para
o processo de criptografia dos dados.
VPN e encapsulamento
As VPNs baseiam-se em encapsulamento de pacotes (tunneling) para criar uma rede privada
através da Internet. Essencialmente, tunneling é o processo de colocar um pacote inteiro (headers
e dados) dentro de um outro pacote e transmiti-lo na rede pública que liga as duas redes privadas.
O protocolo do pacote "externo" é compreendido pela rede pública e por ambos os pontos que
abrem e fecham a VPN, também designados de interfaces de tunelamento, onde o pacote é
inserido e retirado da rede pública. Existem três tipos de protocolos que compõem o mecanismo
de encapsulamento:
Pelo encapsulamento, é possível, por exemplo, colocar um pacote que use um protocolo não
suportado na Internet (como NetBEUI) dentro de um pacote IP e enviá-lo pela Internet.
Poderíamos também usar a faixa de endereços privativos (10.x.x.x, por exemplo) nas redes
privadas conectadas via Internet e colocar este pacote dentro de outro pacote cujos endereços IP
sejam válidos para transmissão via Internet.
Type
Especifica o tipo da mensagem ICMP.
Checksum
Utilizado para garantir a integridade da mensagem IGMP.
Code
Permite especificar informações adicionais sobre a mensagem ICMP.
A seguir são listados os principais tipos e uma breve explicação de algumas funcionalidades e
problemas que podem se reportados:
0 Echo Reply
3 Destination Unreachable
4 Source Quench
5 Redirect
8 Echo Request
12 Parameter Problem on a
Datagram
13 Timestamp Request
14 Timestamp Reply
Mensagens ICPM
As mensagens do tipo echo request e echo reply permitem testar uma conexão de rede, e são
utilizadas, por exemplo, no comando ping. O comando ping envia uma ou mais mensagens do
tipo echo request para um determinado host. O destino, por sua vez, responde utilizando uma
mensagem do tipo echo reply. Desta forma, é possível identificar problemas na rede.
C:\>ping www.embratel.com.br
Código Descrição
0 Network unreachable
1 Host unreachable
2 Protocol unreachable
3 Port unreachable
A mensagem time exceeded indica que o tempo de vida (Time-To-Live) do datagrama está
esgotado e deve ser descartado da rede pelo roteador.
A mensagem source quench permite implementar uma forma simples de controle de fluxo, onde o
destino pode solicitar à origem que reduza a sua taxa de transmissão, conseqüentemente evitando
ou reduzindo problemas de congestionamento e buffer overflow.
As mensagens timestamp request e timestamp reply permitem que um host solicite a hora do dia a
uma determinada máquina na rede. A partir destas mensagens é possível avaliar o atraso no
envio/recebimento de datagramas na rede.
O endereçamento multicast ou IP multicast permite que uma mesma mensagem seja enviada uma
única vez e diversos hosts possam recebê-la. Um bom exemplo de aplicação que se beneficia com
o endereçamento multicast pode ser observado em uma vídeo-conferência, onde vários
participantes devem receber as mesmas imagens. Em um ambiente unicast, para cada participante
da vídeo-conferência deve ser enviada a mesma mensagem.
Para receber as mensagens de um determinado grupo multicast, um host deve solicitar sua
inclusão no grupo. Da mesma forma, quando um host não deseja mais receber tais mensagens, ele
deve solicitar sua saída do grupo. Para que um host envie mensagens multicast não é necessário
que ele faça parte de nenhum grupo multicast.
A função do protocolo IGMP é permitir a troca de informações multicast entre hosts e roteadores
multicast, responsáveis por implementar a comunicação multicasting. Por exemplo, sempre que
um host deseja tornar-se membro de um grupo multicast, ele deverá enviar uma mensagem IGMP
especificando o endereço multicast do grupo desejado. O protocolo permite que os roteadores
multicast identifiquem quais grupos continuam ativos, enviando periodicamente uma mensagem
IGMP para todos os hosts de um determinado grupo. Os hosts que desejarem permanecer no
grupo devem responder, utilizando uma mensagem IGMP.
Protocolo RSVP
O protocolo RSVP (Resource reSerVation Protocol) tem a função de garantir a QoS (Quality of
Service) em redes do tipo Integrated Services (IntServ), como a Internet, implementando o
esquema de pré-alocação de recursos para um determinado fluxo de dados (data flow) unicast ou
multicast.
Antes de estabelecer uma conexão, a aplicação especifica os parâmetros necessários para garantir
a QoS desejada. Os roteadores responsáveis pelo encaminhamento das mensagens verificam a
possibilidade de oferecer essa QoS. Se for possível, os recursos necessários são reservados e a
conexão pode ser estabelecida. Caso contrário, informa-se à aplicação que a QoS desejada não
pode ser atendida. Nesse caso, a aplicação pode baixar seu nível de exigência ou decidir tentar
uma nova conexão posteriormente.
De forma simplificada, o RSVP estabelece o caminho dos dados entre origem/destino (data path)
e a pré-alocação de recursos em duas etapas. Inicialmente, o transmissor informa, através de uma
mensagem (PATH), o tipo de dado que será enviado (data flow). Essa mensagem percorrerá todo
o caminho até o host destino (downstream), passando a ser conhecida por todos os dispositivos
que fazem parte do data path. O host destino, depois de receber a mensagem PATH, solicita a
reserva dos recursos necessários através de uma outra mensagem (RESV). A mensagem RESV
irá percorrer o mesmo caminho que a mensagem PATH, mas no sentido contrário (upstream).
Após esse processo, o soft state criado em cada dispositivo no data path deve ser mantido por
mensagens periódicas PATH e RESV.
Cada objeto é formado por um header de 32 bits e uma seqüência variável que define as
características do objeto.
Imagine que sua empresa tenha contratado três tipos de serviço junto à ECT: serviço regular,
Sedex e Sedex 10. O primeiro não possui qualquer garantia quanto ao prazo de entrega, sendo
tratado pelos correios na base do melhor prazo possível. O segundo serviço tem a entrega
garantida no prazo de 24 horas e, por fim, o terceiro serviço contratado tem a garantia de ser
entregue até as 10 hs da manhã do dia seguinte.
Certamente o custo das soluções com garantia de entrega é maior em relação ao serviço regular e,
entre esses, maior custo para o que oferece rapidez superior. No exemplo, o Sedex 10 é o mais
caro entre todos. Com isso, uma empresa não vai enviar toda a sua correspondência pela via mais
cara, apenas aquela sensível ao prazo de entrega.
Quando um pacote de dados entra na rede MPLS, ele recebe um rótulo indicando o tratamento em
relação à qualidade de serviço que será dado ao mesmo. Com base neste rótulo, o pacote tomará o
caminho já previamente estabelecido que atende aos requisitos exigidos para os pacotes daquele
tipo. Portanto, em cada switch MPLS (similar aos postos de distribuição da ECT), será analisado
o rótulo do pacote e decidido em qual circuito de saída será colocado o pacote.
Funcionamento do MPLS
O MPLS trabalha com a idéia de fluxo de dados. Um fluxo de dados consiste no tráfego fim-a-
fim identificado e classificado, eventualmente requerendo uma mesma qualidade de serviço
Ao entrar na rede MPLS, o LER classifica o pacote como membro de um determinado FEC. Caso
este seja o primeiro pacote do fluxo, protocolos de roteamento modificados com extensões que
permitem atender às especificidades do MPLS, como BGP com Traffic Engineering (BGP-TE) ou
OSPF-TE, determinam a rota que todos os pacotes subseqüentes do mesmo fluxo deverão seguir.
Após determinar a rota do FEC, o LER insere o mesmo label em cada pacote do fluxo. Ele
consiste em um segmento de 32 bits, sendo que 20 bits destinados ao identificador do label
propriamente dito e 12 bits contendo informações de controle. O label é inserido entre o
cabeçalho da camada de enlace e o da camada de rede, como mostra a figura a seguir. O label tem
significância local, ou seja, ele somente faz sentido para os LSRs adjacentes, que são aqueles que
compartilham o mesmo link.
A fim de garantir que o fluxo (FEC) tenha as mesmas características fim a fim, o MPLS usa um
protocolo de distribuição de labels (Label Distribution Protocol ou LDP) para fazer a distribuição
dos labels nos quais os LSRs baseiam-se para direcionar o tráfego para o caminho especificado
para cada FEC. É também através deste mecanismo que se torna possível garantir a qualidade de
serviço (QoS) desde o início até o fim de um dado percurso de rede.
Após o LDP ter sido executado em cada LSR do caminho e, portanto, os labels terem sido
devidamente distribuídos, um caminho fim-a-fim é criado desde o LER de entrada até o LER de
saída. Tal caminho é definido como Label Switch Path ou simplesmente LSP e é por onde todos
os pacotes do mesmo FEC devem passar. Da mesma forma que na entrada da rede MPLS o LER
insere o label no pacote de entrada (procedimento denominado PUSH), o LER de saída retira o
label do pacote retornando o mesmo à sua forma original (procedimento chamado POP).
Graças ao uso dos labels, o MPLS calcula a rota apenas uma vez para cada fluxo na entrada da
rede. Todas as decisões de roteamento feitas dentro da rede pelos LSRs são baseadas nos labels,
não sendo necessário o cálculo de rotas em cada nó. Desta forma, o tempo necessário à análise do
caminho por onde deve seguir cada pacote de um mesmo fluxo é reduzido.
2.4. Segurança IP
IPSec
O IP Security (IPSec) é parte integrante do novo protocolo IP, conhecido como IPv6, que irá
substituir a atual versão IPv4. O IPSec é um conjunto de padrões abertos desenvolvidos pelo
IETF (Internet Engineering Task Force) que envolve diversos protocolos e algoritmos. Ao
contrário dos protocolos de segurança que atuam nas camadas de enlace e aplicação, o IPSec
trabalha na camada de rede, oferecendo autenticidade, integridade e confidencialidade em redes
públicas, como a Internet.
O IPSec pode ser utilizado em diversas soluções para a conexão segura de redes, como a ligação
de filiais à matriz, conexão de usuários remotos às aplicações internas da empresa e criação de
extranets e intranets. A utilização da rede pública para trafegar dados de forma segura gera uma
grande economia, pois não há necessidade de ligações privadas.
O modo de tunelamento oferece proteção integral para o pacote IP, incluindo o seu header. Nesse
caso, o pacote IP original pode ser totalmente criptografado e encapsulado dentro de outro pacote
Um conceito muito importante no IPSec é o de Security Association (SA), pois é utilizado pelos
headers AH e ESP. Um SA é uma relação entre origem e destino que permite identificar
unicamente uma conexão e implementar a sua segurança. Um SA é formado por três campos:
• Security Parameters Index (SPI) - Funciona como um identificador da SA e
aparece em ambos os headers;
• IP Destination Address - Endereço IP do destinatário;
• Security Protocol Identifier - Indica se o SA está associado ao header do tipo
AH ou ESP.
A criação e gerência dos SAs é função do protocolo IKE (Internet Key Exchange). O IKE
também tem a função de gerenciamento e troca de chaves criptográficas.
Protocolo AHIP
Authentication Header
O Authentication Header (AH) oferece os serviços de autenticidade e integridade de pacotes IPv4
e IPv6, mas não oferece confidencialidade (criptografia). Desta forma, é possível autenticar o
sistema que está enviando a mensagem e evitar, assim, ataques do tipo spoofing. Além disso,
também permite evitar ataques do tipo replay.
O esquema de autenticação implementado pelo AH pode ser empregado nos modos de transporte
ou tunelamento. A seguir, são apresentados os formatos dos pacotes IPv4 e IPv6 nos dois modos:
O formato do header ESP não é igual ao AH, pois o payload fica dentro do header, criando a idéia
de trailer. A seguir, são apresentados os campos do header/trailer do protocolo ESP.
O esquema de ciframento e/ou autenticação implementado pelo ESP pode ser empregado nos
modos de transporte ou tunelamento. A seguir, são apresentados os fomatos dos pacotes IPv4 e
IPv6 nos dois modos:
O GRE é normalmente implementado nos roteadores, sendo uma solução de fácil implementação,
baixo custo e bom desempenho. Túneis GRE são compulsórios, ou seja, são estabelecidos
manualmente ligando dois pontos pré-definidos, geralmente LANs. O GRE não implementa
criptografia, porém pode-se utilizar o protocolo IPSec para oferecer um túnel criptografado.
O header do pacote GRE possui alguns campos. Os mais importantes estão detalhados a seguir:
L2F
O protocolo L2F (Layer 2 Forwarding) foi desenvolvido pela Cisco Systems e implementa o
conceito de tunelamento na camada de enlace (nível 2). O L2F está em desuso, pois está sendo
substituído pelo protocolo Internet L2TP.
O L2F pode trafegar em diversos tipos de redes, como IP, X.25, Frame Relay e ATM
(Asynchronous Transfer Mode). Além disso, permite encapsular diferentes tipos de protocolos,
como SNA, IPX/SPX, NetBEUI e o próprio TCP/IP. A autenticação de usuários L2F pode ser
feita pelos mesmos protocolos disponíveis no protocolo PPP, além de suporte para TACACS+ e
RADIUS.
Packet (P) priority: Se o bit P estiver definido, indica que o pacote é prioritário e deve ser processado
antes daqueles sem bit definido.
Ver: O campo indica a versão do protocolo (001).
Sequence: Este campo está presente se o bit S estiver definido e permite ao receptor seqüenciar os
pacotes recebidos.
Multiplex ID (MID): Permite identificar uma conexão dentro do túnel.
Cliente ID (CLID): Permite auxiliar na demultiplexação de túneis.
Length: Indica o tamanho total do pacote, incluindo o header, todos os campos e o payload.
Payload Offset: Este campo está presente se o bit F estiver definido e indica onde o payload se inicia
dentro do pacote.
Key: Este campo está presente se o bit K estiver definido e é utilizado como mecanismo de autenticação,
funcionando como chave para evitar ataques do tipo spoofing.
Checksum: Checksum do pacote, incluindo header e payload.
PPTP
O protocolo PPTP (Point-to-Point Tunneling Protocol) foi proposto por um grupo de empresas,
incluindo a Microsoft, que adotou este protocolo como solução para VPNs nos seus sistemas
operacionais Windows. Apesar disso, o PPTP não é um protocolo proprietário, sendo uma
extensão do protocolo PPP (Point-to-Point Protocol) utilizado amplamente em conexões discadas
na Internet.
A autenticação de usuários remotos PPTP pode ser implementada utilizando os protocolos CHAP
(Challenge Handshake Authentication Protocol), MS-CHAP (Microsoft Challenge Handshake
Authentication Protocol), PAP (Password Authentication Protocol) e EAP (Extensible
Authentication Protocol). A criptografia é implementada utilizando o protocolo MPPE (Microsoft
Point-to-Point Encryption), que é baseado no algoritmo simétrico RSA RC4 e pode trabalhar com
chaves criptográficas de 40, 56 e 128 bits.
Um pacote L2TP também utiliza o conceito de tunneling, encapsulando o frame PPP dentro de
um datagrama UDP/IP. Apesar disso, o L2TP pode trafegar também em outros tipos de redes,
como X.25, Frame Relay e ATM. O L2TP possui um header próprio, herdado do protocolo L2F.
O header PPP permite implementar a segurança da conexão L2TP, porém, existem formas
alternativas de implementar autenticação e criptografia. A área de dados do PPP (payload)
encapsula os protocolos originais e os dados da aplicação.
A autenticação de usuários L2TP pode ser feita pelos mesmos protocolos disponíveis no
protocolo PPP, como CHAP, MS-CHAP, PAP e EAP, além de outros mecanismos de
autenticação (como RADIUS). Também é possível implementar a autenticação de computadores
utilizando o IPSec. Em geral, a criptografia é implementada utilizando o protocolo IPSec a partir
O L2TP utiliza o mesmo formato de header para mensagens de dados e controle. A seguir, é
apresentado o formato do protocolo e seus principais campos. Os campos marcados com um x
estão reservados para uso futuro.
Type (T) bit: Indica o tipo da mensagem, ou seja, dado (0) ou controle (1).
Length (L) bit: Indica se o campo Length está presente.
Sequence (S) bit: Indica que os campos Ns e Nr estão presentes.
Offset (O) bit: Indica que os campos de Offset estão presentes.
Priority (P) bit: Indica que o pacote é prioritário e deve receber um tratamento especial.
Ver: Indica a versão do protocolo L2TP (2).
Length: Indica o tamanho total do frame.
Tunnel ID: Permite identificar o túnel para o controle da conexão.
Session ID: Permite identificar uma conexão dentro do túnel.
Ns e Nr: Permitem ao receptor seqüenciar os pacotes recebidos.
Offset Size: Permite identificar onde inicia o payload dentro do pacote.
O IP não tem uma preocupação com a entrega dos pacotes no destino, além de não garantir a
seqüência na qual os pacotes são entregues. Por isso, ele é definido como sendo um serviço não
orientado à conexão, também conhecido como datagrama não-confiável.
Todas as conexões TCP são full-duplex, ou seja, a comunicação pode acontecer nos dois sentidos
simultaneamente. As conexões são ponto-a-ponto, o que significa que o TCP não suporta
endereçamento broadcast ou multicast. Por oferecer um serviço orientado à conexão, o TCP é um
protocolo complexo que implementa diversos mecanismos de controle. A seguir, veremos os mais
importantes.
Como o TCP implementa comunicação full-duplex para encerrar uma conexão, tanto a origem
quanto o destino devem solicitar o seu término. O pedido de fim de conexão é implementado
através do bit FIN no segmento TCP, que indica que não há mais dados a serem transmitidos.
Depois do reconhecimento do pedido de término de conexão, a comunicação pode ser encerrada.
Endereçamento de transporte
Além do endereçamento IP, implementado pela camada de rede, a camada de transporte também
utiliza um esquema de endereçamento, conhecido como portas TCP. Para compreendermos a
necessidade de endereços de transporte, vejamos dois exemplos práticos.
Suponha um servidor que ofereça diferentes tipos de serviços, como Web, mail e transferência de
arquivos. Como o servidor tem apenas um único IP, como seria possível diferenciar os vários
serviços de rede oferecidos? No lado do cliente, o usuário abre diversas conexões Web diferentes
utilizando o browser. Como o cliente tem apenas um IP, como seria possível para o servidor
diferenciar para qual dos browsers a resposta deveria ser enviada?
Em ambos os casos, as portas TCP são utilizadas como mecanismo para a criação de conexões
lógicas únicas que diferenciam as aplicações dentro de um mesmo endereço IP. A combinação de
um endereço IP e uma porta forma o que é chamado de socket. Uma conexão lógica é formada
por um par de sockets: um na origem e outro no destino.
A grande maioria dos sistemas operacionais oferece suporte à criação e utilização de sockets,
através de system calls e APIs (Application Program Interfaces), o que torna o desenvolvimento
de aplicações em rede bastante simplificado.
As portas TCP são números de 16 bits que variam entre 0 e 65.535. Por questões de
padronização, as portas abaixo de 1.024 são reservadas para serviços pré-definidos (well-known
ports), como apresentado na tabela a seguir. No primeiro exemplo, o servidor utilizaria uma porta
pré-definida para cada serviço oferecido. Nesse caso, utilizaria as portas 80 (Web), 25 (correio
eletrônico) e 20/21 (transferência de arquivos).
Serviço Porta
Telnet 23
Web (HTTP) 80
As portas acima de 1.023 são portas que podem ser utilizadas dinamicamente, conforme a
necessidade das aplicações. No segundo exemplo, a cada conexão aberta pelo browser seria
associado um socket diferente, contendo o mesmo IP, porém com portas diferentes.
De forma simplificada, sempre que o host origem envia uma mensagem, o host destino deve
informar através de um reconhecimento (ACK) que recebeu a mensagem.
Como não existe a garantia de que a mensagem alcançará o destino, o host origem ao enviar a
mensagem, também inicializa um temporizador. Caso um ACK não chegue no tempo previsto, a
origem retransmite a mensagem.
Se o esquema adotado pelo TCP fosse exatamente como descrito, haveria um grande desperdício
da capacidade de transmissão da rede, pois, para cada mensagem enviada, um ACK deveria ser
retornado. Na verdade, o TCP utiliza a técnica de reconhecimento cumulativo para implementar o
controle de erro de forma eficiente. Nessa técnica, o transmissor pode enviar várias mensagens
sem aguardar um ACK individual para cada mensagem. O host destino pode receber um certo
número de mensagens e reconhecer apenas a última recebida. Dessa forma, é possível reconhecer
um conjunto de mensagens, evitando o ACK individual para cada mensagem.
A animação ao lado apresenta uma seqüência de mensagens, uma janela de transmissão de quatro
posições e três ponteiros que permitem o controle da envio e reconhecimento das mensagens. O
intervalo em amarelo indica as mensagens que já foram transmitidas e reconhecidas. O intervalo
em azul indica as mensagens transmitidas, mas ainda não reconhecidas. O intervalo em verde
indica as mensagens que podem ainda ser transmitidas, sem a necessidade de recebimento de
qualquer ACK do destino. As demais mensagens no intervalo vermelho apenas poderão ser
transmitidas quando houver o deslocamento da janela.
Para cada conexão TCP existem quatro janelas. Como a conexão é full-duplex, existe uma janela
de transmissão e uma janela de recepção para cada sentido da comunicação.
Esse problema também é resolvido utilizando o esquema de sliding window, sendo que o tamanho
da janela varia em função do tempo. Nesse caso, o receptor, quando reconhece uma ou mais
Segmento TCP
Um segmento TCP é formado por um cabeçalho de 20 bytes, seguido de um número variável de
opções e finalizado por uma área de dados também opcional. Em geral, o tamanho máximo de um
segmento é limitado pelo campo de dados do datagrama IP, ou seja, 65.515 bytes (64 Kb menos
20 bytes do cabeçalho IP). O formato do segmento TCP pode ser observado na figura abaixo.
Source Port: Identifica a porta de origem. Juntamente com o IP de origem formam o socket de origem.
Destination port: Identifica a porta de destino. Juntamente com o IP de destino formam o socket de
destino.
Length: Identifica o tamanho do segmento UDP, incluindo o cabeçalho e a área de dados.
Checksum: Utilizado para garantir a integridade do segmento. A utilização deste campo é opcional.
O LDAP está na camada de aplicação, utiliza o protocolo TCP como transporte e funciona no
modelo cliente/servidor. Nesse modelo, o cliente solicita uma informação ao servidor responsável
por manter o serviço de diretório, o servidor recebe a solicitação, processa o pedido e envia a
resposta para o cliente.
Existem vários produtos que oferecem serviços de diretórios, como o Novell Directory Services
(NDS) e o Active Directory da Microsoft. É importante verificar o grau de compatibilidade com o
padrão LDAP nos produtos que oferecem esse tipo de serviço.
127.0.0.1 localhost
200.255.253.239 pop-gw.embratel.com.br
200.255.125.213 www.embratel.com.br
200.162.224.82 edu.topmaster.com.br
200.225.79.48 www.topmaster.com.br
O exemplo acima refere-se ao arquivo host utilizado na maioria dos sistemas operacionais para
criar o mapeamento estático de endereços.
O protocolo DNS (Domain Name System) foi desenvolvido com a finalidade de servir como
tradutor de nomes em grandes redes, como a Internet. Por exemplo, quando o usuário digita o
endereço da Embratel, o nome www.embratel.com.br deve ser traduzido antes para o IP
correspondente ao servidor Web (200.255.125.213). Depois de obtido o endereço IP, o acesso ao
servidor poderá ser realizado.
O serviço de nomes é implementado por servidores DNS que possuem tabelas relacionando os
nomes de hosts e seus respectivos IPs. Quando um usuário utiliza o nome www.embratel.com.br,
um servidor DNS é consultado e o IP correspondente retornado. Se o usuário souber o IP do
servidor da Embratel, o servidor DNS não será consultado.
IN NS ns.embratel.net.br.
IN NS ns2.embratel.net.br.
IN MX 100 mailhost.embratel.net.br.
ns2 IN A 200.245.255.33
ns IN A 200.255.253.241
mailhost IN A 200.255.253.239
rjo01 IN A 200.208.155.102
rjo02 IN A 200.208.155.150
news IN A 200.208.155.103
Espaço de endereçamento
O espaço de endereçamento (namespace) utilizado pelo DNS é hierárquico, semelhante ao
modelo de árvore de diretórios e subdiretórios utilizado na maioria dos sistemas operacionais. O
DNS é formado por domínios e subdomínios, sendo que o domínio raiz é conhecido como root.
Abaixo do root existem os domínios de primeiro nível (top-level) que podem representar
domínios genéricos ou países. Abaixo dos domínios de primeiro nível, estão os subdomínios que,
por sua vez, podem ser formados por outros subdomínios. Os hosts ficam nas folhas.
Para se ter acesso a um host que faça parte do esquema de domínios, basta fazer referência ao
caminho a partir da raiz. Por exemplo, o servidor Web da Embratel pode ser referenciado como
www.embratel.com.br e o servidor correio poderia ser referenciado como smtp.embratel.com.br.
nl Holanda
edu Educacional
net Provedores
O esquema de nomes hierárquico torna o DNS bastante flexível. Quando um novo subdomínio
precisa ser criado, basta apenas solicitar sua criação abaixo do domínio desejado, sem interferir
nos demais domínios. No caso do domínio de uma empresa, é possível a criação de subdomínios
apenas com a alteração do servidor DNS da própria empresa. Por exemplo, se for preciso criar o
subdomínio ead abaixo do domínio Embratel, basta que o administrador da rede registre no
servidor DNS do domínio embratel.com.br o novo domínio ead.embratel.com.br.
Busca de nomes
O DNS, além de hierárquico, também é um esquema distribuído. Devido ao grande número de
hosts na Internet, seria complicado que todos os servidores DNS fossem capazes de traduzir
qualquer nome para seu respectivo IP. No modelo distribuído, os servidores DNS mapeiam
apenas um pequeno número de hosts, formando uma zona de autoridade.
Uma zona de autoridade pode responder por um ou mais domínios, sendo esta uma decisão do
gerente da rede. Cada zona possui um servidor DNS primário, que possui o arquivo com a
configuração utilizada pelo servidor e um ou mais servidores secundários. Esses sevidores
secundários possuem uma cópia da configuração e funcionam como backup do servidor primário.
É importante ressaltar que o protocolo RTP não garante a qualidade do serviço, pois não tem
qualquer influência na pré-alocação de recursos na rede de interconexão. Para isso, devem ser
utilizados outros protocolos, como o RSVP (Resource reSerVation Protocol) e MPLS
(MultiProtocol Label Switching), apresentados anteriormente.
O protocolo RTCP (Real-time Transport Control Protocol) foi projetado para trabalhar em
conjunto com o protocolo RTP. As suas principais funções são a monitoração da qualidade do
serviço e a identificação dos participantes da transmissão. Durante uma sessão RTP, os
participantes periodicamente trocam mensagens RTCP com o objetivo de informar aos demais a
qualidade dos dados recebidos. Com isso, é possível que o emissor ajuste a sua transmissão em
função das informações recebidas.
Um cliente que deseja acessar uma determinada página deve utilizar sua respectiva URL
(Uniform Resource Locator), como, por exemplo, http://www.embratel.com.br/ index.html, sendo
que:
• http especifica o protocolo responsável pela comunicação entre o browser e o
servidor;
• www.embratel.com.br representa o domínio DNS;
• index.html é a página HTML.
Depois que a página é localizada e copiada do servidor Web para o cliente, o browser interpreta
as marcações (tags) da página e a exibe na tela.
Endereçamento de transporte
O HTTP é formado por dois tipos de mensagens: solicitações do cliente para o servidor e
respostas do servidor para o cliente. As mensagens utilizadas no HTTP são do formato texto. Nas
versões iniciais do protocolo, as mensagens de solicitações e respostas eram bastante simples
(simple-request e simple-response). O HTTP/1.1 implementa mensagens mais complexas (full-
request e full-response).
Uma mensagem de solicitação completa é formada por um método, a URL que deseja-se acessar
e a versão do protocolo HTTP que está sendo utilizada pelo cliente.
Solicitação completa:
<Método> <URL> <Versão do HTTP>
O método, na verdade, indica o comando que está sendo solicitado ao servidor. A tabela, a seguir,
apresenta os principais métodos disponíveis:
Apesar da simplicidade, uma solicitação HTTP pode conter informações adicionais a serem
enviadas ao servidor. Essas informações são descritas como uma seqüência de cabeçalhos
(request headers) que são enviados juntamente com uma solicitação.
O exemplo abaixo ilustra o que o servidor Web irá receber do browser. A primeira linha indica o
método utilizado (GET), a URL contendo o nome do arquivo desejado e a versão do HTTP, no
caso a 1.0. A segunda linha identifica o browser que está sendo usado pelo usuário, no caso o
Navigator (também conhecido como Mozilla), componente do Netscape Communicator. Essa
linha, assim como as demais, contém informações complementares ao pedido HTTP. As quatro
linhas seguintes trazem diversas informações úteis. A terceira linha, por exemplo, indica que o
browser está preparado para receber documentos texto (text/plain), documentos HTML
(text/html) e diversos tipos de imagens, como GIF (image/gif) e JPEG (image/jpeg). Essa lista é
codificada de acordo com regras MIME (Multipurpose Internet Mail Extensions), que identificam
o tipo de documento. Na terceira linha, o */* indica que o browser aceita qualquer tipo de
arquivo.
Uma mensagem de resposta completa é formada pela versão do protocolo HTTP que está sendo
utilizada pelo cliente, por um código de status e uma pequena frase explicando o código de status.
Resposta completa
<Versão do HTTP> <Status> <Frase>
Em outras palavras, o servidor Web, ao receber o pedido, procura o arquivo e verifica a sua
extensão (.html) através de uma consulta a uma grande tabela de tipos MIME que indica o código
que deverá ser usado para cada extensão existente. No caso, o tipo usado foi o text/html,
indicando que o arquivo que está sendo enviado é do tipo HTML. Após as linhas iniciais e uma
linha intermediária em branco, vem o documento propriamente dito ou alguma resposta acusando
erro ou arquivo não encontrado. Essa informação será, então, exibida pelo browser segundo o tipo
MIME informado na linha Content-type. Nesse momento, a página requisitada aparece na tela do
browser do usuário.
O FTP está na camada de aplicação e utiliza o protocolo TCP no transporte. O FTP utiliza o
modelo cliente/servidor, sendo necessário um cliente FTP e um servidor FTP. O servidor FTP
utiliza duas portas pré-definidas: 20 (dados) e 21 (controle). A porta 20 é reservada para a
transferência de dados entre cliente e servidor, enquanto a porta 21 é utilizada para a troca de
comandos.
O usuário tem acesso aos serviços de transferência de arquivo a partir do utilitário FTP, que
geralmente acompanha a maioria dos sistemas operacionais. A tabela, a seguir, descreve os
principais comandos disponíveis no utilitário:
Comando Descrição
Após o comando open, o usuário é solicitado a identificar-se através de um login e senha. Apesar
dessa facilidade, o protocolo FTP não oferece qualquer confidencialidade no envio das
informações, inclusive em relação à senha, que é enviada abertamente. Alguns servidores FTP
permitem o login anônimo, utilizando a conta anonymous.
Exemplo:
Protocolo TFTP
O protocolo TFTP (Trivial File Transfer Protocol), assim como o FTP, também permite a
transferência de arquivos, porém de forma mais simples. Um exemplo de utilização do TFTP
acontece na implementação de boot remoto em estações diskless (sem disco).
O TFTP está na camada de aplicação e utiliza o protocolo UDP no transporte, o que obriga o
TFTP a implementar seus próprios mecanismos de controle de erro. O TFTP também utiliza o
modelo cliente/servidor, sendo necessário um cliente e um servidor TFTP. O servidor TFTP
utiliza apenas a porta 69 para dados e controle.
Um email é muito semelhante a uma carta convencional, sendo formado por um envelope com
informações do destinatário, um cabeçalho com informações do remetente e o texto propriamente
dito. Inicialmente, a área de texto permitia apenas mensagens simples utilizando caracteres ASCII,
no entanto, o protocolo MIME (Multipurpose Internet Mail Extensions) foi concebido para ser uma
extensão, oferecendo suporte a outros alfabetos e mídias, como imagens, som e vídeo.
O protocolo SMTP (Simple Mail Transfer Protocol) está na camada de aplicação e utiliza o
protocolo TCP no transporte. O servidor de email recebe conexões na porta pré-definida 25. Após
estabelecida a conexão, a mensagem é armazenada na caixa postal (mailbox) do destinatário. Por
exemplo, quando enviamos um email para rbmaia@embratel.com.br, a mensagem é armazenada
na mailbox referente ao usuário rbmaia.
O protocolo IMAP (Interactive Mail Access Protocol) permite que um cliente acesse um servidor
de email, onde está sua caixa postal, e apenas consulte suas mensagens no servidor, sem copiá-las
para a máquina local. A grande vantagem do IMAP é permitir que o usuário possa ter acesso à
sua caixa postal em qualquer máquina, ou seja, ele poderá consultar seus emails em um desktop
no trabalho ou em um laptop em casa.
Aplicação
Transporte
Rede
Enlace/Físico
Firewalls deste tipo são utilizados nas bordas da rede, funcionando como um primeiro nível de
defesa, podendo ser implementado no próprio roteador que conecta a rede interna e externa.
A partir de regras previamente definidas, o firewall pode permitir ou não certos tipos de tráfego
entre a rede interna e a Internet. Por exemplo, a tabela abaixo apresenta algumas das regras que
podem ser implementadas em um firewall para a rede 192.168.1.0.
Esse tipo de firewall é conhecido como stateful inspection e atua, basicamente, no controle das
portas de origem e destino. Quando um cliente solicita uma conexão TCP, a porta origem deve
estar entre 1024 e 16384, enquanto a porta destino deverá ter um número entre 0 e 1023.
Aplicação
Transporte
Rede
Enlace/Físico
Por exemplo, uma conexão a um servidor Web utilizará, por default, a porta destino 80 e como
porta origem alguma porta disponível acima de 1023. O firewall stateful controla cada porta
origem utilizada na abertura de uma conexão externa, permitindo respostas apenas para as portas
de onde partiram as solicitações. Esta solução é mais segura que a oferecida por firewalls de rede,
que permitem a entrada de qualquer porta acima de 1023.
Além disso, o firewall stateful reconstrói os pacotes fragmentados e analisa o conteúdo por
completo, impedindo que um conjunto de pacotes aparentemente inócuos se transforme em um
ataque.
Aplicação
Transporte
Rede
Enlace/Físico
Proxy
Como proxy, atua na camada de aplicação e pode desempenhar diversas funções. O proxy pode
ser utilizado como um filtro de protocolos de alto nível, como SMTP e HTTP, pode verificar o
conteúdo de emails e páginas Web, além de decidir se o acesso será permitido ou não. Por
exemplo, se um email contém palavras que não estejam de acordo com as regras de segurança da
empresa, o proxy pode barrar a entrada ou saída de emails que contenham tais palavras. Além
disso, pode impedir a entrada de arquivos anexados e verificar a existência de vírus. Um processo
semelhante pode ser implementado também no tratamento do conteúdo de páginas Web,
impedindo a entrada de páginas que contenham certas palavras, componentes Active X, Applets
Java e código JavaScript.
Enquanto os firewalls de rede podem autenticar as conexões utilizando apenas IPs e portas, que
podem ser facilmente forjadas (IP spoofing), os proxies permitem implementar diversos
mecanismos de autenticação, como login e senha, token e biométrica. Por exemplo, para que os
usuários da rede interna possam ter acesso à Internet, eles devem ser autenticados primeiro no
proxy.
O proxy também pode funcionar como cache de páginas Web. Quando um usuário realiza um
acesso a uma determinada página na Internet, o conteúdo da página é copiado para o proxy e
repassado ao usuário. Quando um outro usuário acessar a mesma página, não será preciso buscá-
la novamente, pois a página estará localizada no cache do proxy e poderá ser entregue ao cliente
sem a necessidade de acesso à Internet. Dependendo da política de atualização de cache do proxy,
é possível que os usuários acessem páginas com conteúdo desatualizado.
NAT
O NAT (Network Address Translation) geralmente é implementado no roteador que liga a rede
interna à Internet e tem duas funções principais: endereçamento e segurança.
Criptografia
A criptografia permite implementar uma série de atributos indispensáveis para uma comunicação
segura em uma rede de computadores, como a Internet. Seguem as implementações permitidas:
• Confidencialidade: é a garantia de que a comunicação entre o transmissor e
receptor seja implementada de forma sigilosa, sem o conhecimento de terceiros.
Por exemplo, quando utilizamos o Internet Banking, a comunicação entre o
cliente e o servidor do banco deve ser feita de forma confidencial;
• Integridade: é a garantia de que a informação trocada entre o transmissor e
receptor não será alterada. Por exemplo, quando enviamos um email, nada
impede que alguém intercepte a mensagem e altere seu conteúdo;
• Autenticidade: é a garantia de que a pessoa que realizou a operação é de fato
aquela que diz ser. Por exemplo, quando recebemos um email de alguém, não
temos qualquer garantia de que a mensagem foi enviada pela pessoa que consta
no cabeçalho do email, pois essa informação é facilmente forjada;
• Não repúdio: é a possibilidade de provar a terceiros a autoria de uma operação
após a mesma ter ocorrido. Por exemplo, quando enviamos um email, a pessoa
que recebe a mensagem não tem como provar quem foi a pessoa que o enviou.
A criptografia moderna está baseada no conceito de chaves criptográficas, que consistem em uma
seqüência de bits. Existem duas técnicas atualmente utilizadas: chaves simétricas e assimétricas.
Chaves simétricas
No esquema de chaves simétricas, também conhecidas como chaves secretas, o transmissor e o
receptor devem possuir a mesma chave criptográfica. O transmissor utiliza sua chave para
criptografar a mensagem, que pode então ser enviada. O receptor utiliza a mesma chave para
descriptografar a mensagem recebida. Caso a mensagem seja interceptada, não será possível ler o
seu conteúdo, a não ser que se descubra a chave secreta utilizada.
Chaves assimétricas
No esquema de chaves assimétricas, também conhecidas como chaves públicas, o transmissor
possui um par de chaves e o receptor outro. O par de chaves é formado por uma chave privada e
uma pública. A chave privada é de conhecimento apenas do dono do par, enquanto a chave
pública é amplamente divulgada e pode ser consultada por qualquer usuário.
Quando o transmissor deseja enviar uma mensagem confidencial, ele utiliza a chave pública do
receptor que está disponível na rede. O receptor, ao receber a mensagem, utiliza sua chave
privada para abrir a mensagem. Caso alguém intercepte a mensagem, não será possível a sua
leitura, pois apenas a chave privada do receptor pode ler uma mensagem criptografada com sua
chave pública.
É importante perceber que é possível utilizar os dois serviços de forma isolada ou combinada, ou
seja, apenas confidencialidade, apenas autenticidade ou os dois serviços simultaneamente.
Autoridades certificadoras
As autoridades certificadoras ou CAs (Certification Authorities) são cartórios virtuais onde as
chaves públicas ficam armazenadas de forma segura, ou seja, podem ser consultadas mas não
alteradas. Verisign, Certisign, Entrust, Serasa, Serpro são apenas alguns exemplos de CA's que
atuam no Brasil.
A chave pública fica armazenada em um certificado digital que, além da chave, possui
informações da certificadora e do dono da chave pública. Existem diferentes tipos de certificados
que podem ser emitidos, como certificados para servidores, email, autoria de software e
delegação de autoridade. O padrão X.509v3 é, atualmente, o padrão para certificados digitais e
define diversas informações que devem compor um certificado.
Informações sobre a CA
Informações sobre o
possuidor da chave pública
Chave pública
Assinatura da CA
Um certificado passa por diversas fases, que se iniciam na sua criação. Os certificados devem ser
periodicamente renovados, caso contrário, são revogados.
Aplicação
SSL
Transporte
Rede
Enlace/Físico
Modelos de IDS
Um IDS pode ser implantado de duas formas, individualmente ou combinadas:
• baseados no host: são sistemas que se prestam principalmente a monitorar os
ataques no nível do próprio computador. Em outras palavras, IDS baseados no
host detectam alterações no sistema de arquivos, nos arquivos de log e em
aplicativos em cada computador. Normalmente, um servidor de administração
central do IDS recebe atualizações de cada host conforme essas mudanças são
detectadas.
Tipos de IDS
Os IDS podem variar desde sistemas corporativos complexos a até aplicativos comuns para o
desktop. Independentemente do nível de complexidade, todos os IDS compartilham características
de operação comuns. Os tipos de IDSs disponíveis e seus métodos de operação são:
Monitor de integridade
Um monitor de integridade acompanha mudanças em estruturas chave do sistema. Por
exemplo, um monitor de integridade básico utiliza arquivos do sistema ou chaves no
registro como "iscas" para rastrear mudanças efetuadas por um invasor. Ainda que sua
funcionalidade seja limitada, monitores de integridade adicionam uma camada extra de
proteção a outras formas de detecção de intrusão.
Entre os atributos que podem ser rastreados por um monitor de integridade temos:
- Adição, exclusão e modificação de arquivos
- Mudança nos atributos dos arquivos (ocultos, somente para leitura, arquivo etc.)
- Último acesso ao arquivo
- Última escrita ao arquivo
- Data de criação
- Tamanho do arquivo
- Verificação por Hash
Scanner de assinatura
Da mesma forma que os scanners de vírus tradicionais, a maioria dos IDS tenta detectar
os ataques com base em um banco de dados de assinaturas de ataques conhecidas.
Quando um hacker tenta um ataque conhecido, o IDS procura por um padrão coincidente
em seu banco de dados.
Quando esta string é detectada, o IDS reage de acordo com as instruções pré-
programadas. Como se trata de um comando CGI básico, o nível de periculosidade deste
ataque é médio, quando muito. Entretanto, se o IDS encontrasse a string:
cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd
...então o problema seria mais sério e o servidor está vulnerável. Verificando o arquivo de
log, é possível observar que a requisição phf foi bem sucedida (código 200), o que
significa que o hacker foi capaz de visualizar o conteúdo do arquivo passwd, que contém
as senhas do sistema.
Detetores de anomalias
A detecção de anomalias normalmente compreende o estabelecimento de uma curva
padrão de atividade da rede ou do sistema e de um aviso quando houver um desvio dessa
curva. Posto que o tráfego de rede está constantemente mudando, este tipo de IDS é mais
adequado para implementação baseada em host. A detecção de anomalias fornece alta
sensibilidade porém baixa especificidade, sendo mais útil em máquinas da rede que sejam
absolutamente críticas porém razoavelmente estáticas. Nesta situação, quando um detetor
de anomalias indica alguma mudança com relação à curva padrão de atividade, será
necessária a intervenção humana para investigar as razões. Assim sendo, esta alta
sensibilidade apresenta um alto custo em termos de necessidade de recursos humanos.
Ataques ao IDS
Entender as vulnerabilidades de um IDS e a forma como estas são exploradas é um meio de
garantir uma melhor implementação da segurança na rede do cliente.
Fragmentação
Fragmentação é a forma mais comum de ataque contra IDS. Os pacotes são divididos em
pedaços menores, o que pode enganar um IDS. Um IDS stateful pode recompor os
pacotes fragmentados para a análise porém, conforme aumenta o tráfego, esta operação
consome mais recursos e se torna menos precisa. Quando a técnica de fragmentação é
utilizada, firewalls e IDS normalmente vêem apenas o pacote parcial, o que não ativa
nenhum dos tipos de alarme
Spoofing (fingimento)
É possível forjar (spoof) o número de seqüência do protocolo TCP visto pelo IDS. Por
exemplo, enviando um pacote SYN com um número de seqüência forjado após o início
da conexão, o IDS pode sair de sincronia com o host. Isto acontece porque o host é capaz
Tipos de IDS
Mutação do HTTP
Requisições HTTP complexas podem freqüentemente enganar IDS que simplesmente verificam o
tráfego Web. Se um IDS está procurando pela vulnerabilidade phf conforme abaixo:
GET /cgi-bin/phf
Neste caso, foi solicitado um diretório qualquer e então utilizado o comando /../ para subir para o
diretório pai e então executar o script desejado. Esta técnica é chamada de "directory traversal", e
é atualmente uma das formas de ataque mais comuns.
IDS incorporado
O protocolo IPSec em breve se tornará o padrão para a segurança da transmissão de
dados em rede. A implementação deste padrão permite que pacotes de uma determinada
empresa trafeguem por uma infra-estrutura não confiável como a Internet, ao mesmo
tempo que previne o roubo, a alteração ou mesmo a falsificação de dados por hackers.
Infelizmente para os IDS, o IPSec se torna uma faca de dois gumes: ainda que permita o
acesso seguro a redes corporativas através de VPNs, a criptografia dos pacotes impede a
ação de IDS que vasculham os dados por ataques maliciosos. Dessa forma, se um hacker
conseguir acesso a um cliente remoto, terá um túnel seguro através do qual poderá
acessar a rede corporativa.
Obviamente, para que seja exeqüível, esse método requer que o IDS atue em cada um dos
hosts ao invés de na rede como um todo. Dessa forma, é possível traçar uma curva de
utilização normal para cada host, que certamente será mais previsível do que a da rede
como um todo. Regras específicas de exceção aceitável são configuradas para cada um
dos hosts e o IDS monitora o comportamento da mesma forma que o firewall monitora a
rede.
Quando uma anomalia for detectada, quer no nível da rede, quer no nível da aplicação,
um alerta é enviado para o console central. Este método apresenta uma alta sensibilidade
a ataques porém gera uma quantidade significativa de dados.
O primeiro passo para enviar voz por uma rede de pacotes, como a Internet, é converter a voz,
que é um sinal analógico, em uma informação digital. Esse processo é implementado por um
dispositivo chamado codec, que normalmente utiliza uma técnica conhecida como PCM (Pulse
Code Modulation).
Em 1996, o ITU (International Telecommunications Union) ratificou o padrão H.323, que define
como áudio e vídeo devem ser transmitidos em uma rede IP. Em 1998, o padrão foi atualizado. O
H.323 é na verdade uma família de padrões, sendo vários deles especificações de codecs de áudio
(G.711, G.722, G.723, G.728 e G729). A recomendação baseia-se nos protocolos RTP e RTCP
para o gerenciamento da conexão.
Video-conferência
Vídeo-conferência é um serviço que permite a transmissão de vídeo e áudio entre dois ou mais
pontos em tempo real, utilizando câmeras, monitores, microfones e auto-falantes. Existem
inúmeras aplicações para serviços de vídeo-conferência, como reuniões, ensino à distância,
telemedicina, home office, aplicações jurídicas, laboratórios virtuais e segurança. A vídeo-
conferência reduz principalmente custos, como, por exemplo, o deslocamento e possível estadia
dos envolvidos nos encontros.
Streaming
O áudio e vídeo-conferência são realizados em tempo real. Streaming consiste na possibilidade de
armazenar áudio e vídeo em servidores para, posteriormente, serem transmitidos. Por exemplo,
uma vídeo-conferência pode ser gravada e armazenada para depois ser reapresentada. O vídeo-
streaming pode ser amplamente utilizado para ensino à distância, permitindo que os alunos
possam assistir ou rever uma determinada aula sempre que desejarem.
Uma das características mais importantes em aplicações que utilizam streaming é a possibilidade
de a apresentação ser iniciada antes mesmo do término da transmissão. Por exemplo, quando um
usuário solicita um vídeo, o servidor envia apenas uma pequena seqüência (stream) do vídeo
compactado. Recebido o primeiro stream, o vídeo pode ser descompactado, enquando um
segundo stream está sendo recebido. Após a descompactação, o primeiro stream pode, então, ser
exibido, enquanto o segundo é descompactado e o terceiro recebido. Quando implementado
adequadamente, o streaming permite criar um fluxo contínuo de apresentação, mesmo que a
transmissão não seja contínua.
rtsp://media.example.com:554/twister/audiotrack
Apesar das inúmeras semelhanças, os protocolos RTSP e HTTP guardam certas diferenças. Por
exemplo, enquando o HTTP não guarda o estado da conexão (stateless), o RTSP a mantém.
Enquanto no HTTP apenas o cliente realiza solicitações, no RTSP tanto o cliente quanto o
servidor podem realizar solicitações.
Uma mensagem de solicitação RTSP é formada por um método, pela URL que se deseja acessar e
pela versão do protocolo que está sendo utilizada pelo cliente.
Método Descrição
OPTIONS Permite que clientes e servidores troquem informações sobre as opções que
podem ser aceitas.
Para que um dispositivo possa ser gerenciado remotamente, é necessário que o dispositivo suporte
o protocolo SNMP, ou seja, execute um processo específico para essa função, conhecido como
agente. O agente tem a função de receber e processar comandos remotos, além de armazenar
localmente as informações relacionadas ao dispositivo.
Os agentes dos dispositivos comunicam-se com uma ou mais estações de gerenciamento, que
enviam comandos para os agentes e recebem as respectivas respostas. Uma estação de
gerenciamento é, geralmente, uma máquina dedicada para essa tarefa que processa um software
de gerência de rede, como o HP OpenView, IBM Tivoli NetView ou CA Unicenter.
O protocolo SNMP faz a ligação entre a estação de gerenciamento e os vários agentes, permitindo
que a estação faça uma consulta ao agente, ele processe o pedido e retorne uma resposta. É possível
Cada dispositivo mantém uma base de dados local, onde são armazenadas as variáveis que
descrevem o estado atual do dispositivo e histórico previamente armazenado.
As mensagens de requisição que o agente pode receber da estação de gerenciamento podem ser
dos seguintes tipos:
• Get: O comando Get solicita uma determinada informação do agente sobre o
dispositivo que representa.
• Set: O comando Set modifica o valor de uma determinada informação no agente
• GetNext: Similar ao comando Get, o comando GetNext traz o próximo valor na
ordem léxica da MIB. É útil para os casos onde o tamanho da tabela é
desconhecido.
• GetBulkj: Similar ao comando Get, o comando GetBulk traz todos os valores da
MIB do agente em particular.
Ao receber qualquer uma dessas requisições, o agente executará a função específica: localizar o
valor de um determinado objeto e enviá-lo à estação de gerenciamento ou ajustar o valor do
objeto conforme solicitado.
Além disso, o agente pode enviar à estação de gerenciamento uma mensagem de Trap quando um
evento significativo ocorrer com o dispositivo que representa.
Um SLA pode cobrir os mais diversos aspectos do relacionamento entre o fornecedor e o cliente,
tais como desempenho dos serviços, atendimento ao cliente, cobrança e provisionamento de
serviços. Entretanto, é preciso sempre ter em mente que a concordância quanto ao nível de
serviços prestados é o propósito primordial de um SLA.
Um ponto que deve ser definido no SLA é sobre quem detém a responsabilidade de serviços
terceirizados. O nível de serviço de diversos fornecedores pode estar sob a gerência de um único
fornecedor de valor agregado, caso assim seja acordado.
5.3. Métricas
"Métrica é uma forma de medida do desempenho ou
eficiência de alguma característica de um serviço ou atividade."
Ao estabelecermos o SLA, é preciso definir não apenas quais tipos de serviços serão prestados
mas também as métricas que serão utilizadas para mensurar a sua qualidade, bem como o índice
mínimo de qualidade que deve ser entregue ao cliente.
Avaliação do desempenho
O acordo especificado na Garantia de Desempenho da Embratel define os seguintes índice:
O grau do serviço consiste justamente nas expectativas alinhadas, no conjunto de métricas que se
pretende alcançar, ao passo que a qualidade do serviço é justamente o desempenho real do serviço
oferecido, medido através da utilização do mesmo conjunto de métricas.
Para saber mais sobre acordos de nível de serviço, sugerimos a leitura do SLA Management
Handbook, redigido pelo TeleManagement Forum.