Escolar Documentos
Profissional Documentos
Cultura Documentos
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.