0% acharam este documento útil (0 voto)
60 visualizações63 páginas

Protocolos e Estruturas da Camada IP

Enviado por

RafaelBraz
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
60 visualizações63 páginas

Protocolos e Estruturas da Camada IP

Enviado por

RafaelBraz
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

REDES E PROTOCOLOS INTERNET

2. PROTOCOLOS DA CAMADA DE REDE .................................................. 2


2.1. INTERNET PROTOCOL ........................................................................... 2
2.2. ESTRUTURA IPV4 ................................................................................. 3
2.2.1. Endereços IPv4 ............................................................................. 5
[Link]. Network ID e Host ID ............................................................ 5
[Link]. Máscaras de Sub-rede (Subnet Masks) ................................ 6
[Link]. Classes de endereços IP ...................................................... 7
[Link]. Endereços Reservados para Redes Privadas....................... 8
[Link]. Restrições ao Network ID e Host ID .................................... 10
[Link]. Subnetting ........................................................................... 10
2.2.2. Network Address and Port Translation ........................................ 12
[Link]. Tipos de NATs .................................................................... 13
[Link]. NAT Dinâmica Sobrecarregada .......................................... 14
[Link]. Inbound Mapping ................................................................ 15
[Link]. Desvantagem dos NAT ....................................................... 16
2.3. PROTOCOLOS DE CONTROLO ASSOCIADOS AO IP ................................. 16
2.3.1. O Protocolo ICMP........................................................................ 16
2.3.2. Protocolo ARP ............................................................................. 17
2.3.3. Protocolo Reverse ARP (RARP) ................................................. 19
2.4. ROUTERS E PROTOCOLOS DE ROUTING IP ........................................... 19
2.4.1. Introdução ................................................................................... 19
2.4.2. Tipo de Routers ........................................................................... 21
2.4.3. Constituição Interna de um Router .............................................. 21
2.4.4. Encaminhamento......................................................................... 22
2.4.5. Rotas Padrão............................................................................... 22
2.4.6. Routing Estático .......................................................................... 24
2.4.7. Métricas de Routing ..................................................................... 25
2.4.8. Algoritmos de Routing Dinâmico ................................................. 26
[Link]. Algoritmo de Encaminhamento por Vector de Distância ..... 26
[Link]. Algoritmo de Encaminhamento por Estado de Ligação ...... 29
2.4.9. Aspectos Gerais relativos a Protocolos de Routing ..................... 33
[Link]. Relação entre Sistemas Autónomos e Routing ................... 34
[Link]. Classless versus Classful Routing ...................................... 34
[Link]. Agregação de Rotas- Supernetting ..................................... 35
2.4.10. Routing Information Protocol (RIP).......................................... 36
[Link]. Versões RIP .................................................................... 36
[Link]. Especificação do Protocolo RIP ...................................... 37
[Link]. Temporizadores RIP ....................................................... 37
[Link]. Formato das Mensagens RIPv1 e RIPv2 .......................... 38
[Link]. Configuração do Protocolo RIP ....................................... 41
2.4.11. Open Shortest Path First (OSPF) ............................................ 42
[Link]. Vantagens OSPF ............................................................ 42
[Link]. Custos por Interface OSPF ............................................. 43
[Link]. Áreas OSPF .................................................................... 44
[Link]. Funcionamento OSPF..................................................... 44
[Link]. Formato das Mensagens OSPFv2 ................................... 47
[Link]. Configuração do Protocolo OSPF ................................... 48
2.4.12. Comparação entre os principais Protocolos de Routing .......... 49
Redes e Protocolos Internet Página 2.1

2.5. IP MULTICAST .................................................................................... 50


2.5.1. Mas o que é o IP Multicast? ........................................................ 50
2.6. IP VIRTUAL PRIVATE NETWORKS ......................................................... 51
2.6.1. IPsec ........................................................................................... 52
[Link]. Modos de Funcionamento ................................................... 53
[Link]. Mecanismos de garantia de Integridade dos dados ............ 54
[Link]. Mecanismos de Encriptação e Confidencialidade ............... 54
[Link]. Mecanismos de Gestão e Troca de Chaves ....................... 55
[Link]. Exemplo de configuração de uma VPN .............................. 55
2.7. IPV6 ................................................................................................. 56
2.7.1. Cabeçalho IPv6 ........................................................................... 57
2.7.2. Endereçamento IPv6 ................................................................... 59
[Link]. Gamas de Endereços IPv6 ................................................. 59
[Link]. Endereços Link Local Unicast ............................................. 60
[Link]. Endereços Global Unicast ................................................... 61
[Link]. Endereços Unique Local Unicast ........................................ 61
2.7.3. Alterações em outros Protocolos ................................................. 62
Redes e Protocolos Internet Página 2.2

2. Protocolos da Camada de Rede


2.1. Internet Protocol
Ao nível da arquitectura TCP/IP, o nível de rede é também designado de nível
internet ou nível IP.
O nível IP é responsável pela circulação de pacotes IP, designados de
datagramas, sendo responsável pelo seu encaminhamento com base nos
endereços de destino, chamados de endereços IP.

Os elementos responsáveis pelo encaminhamento ao nível IP são chamados


de Routers. Para encaminhar os datagramas utilizam tabelas de routing.
Ao nível IP muitas vezes são executadas acções de fragmentação e
reasssemblagem. Para tal é necessário que os datagramas IP tenham campos
que o permitam.
Em termos de modo de comunicação, o protocolo IP é classificado como um
protocolo não orientado à conexão (connectionless), pois não garante a
transferencia fiável da informação, não executando quaisquer funções de
detecção e recuperação de erros dos dados transportados.
Por isso a função do IP é a de fornecer um serviço dito de Best Effort (Melhor
esforço) ou seja um serviço que não fornece garantias da entrega dos dados.
Redes e Protocolos Internet Página 2.3

2.2. Estrutura IPv4


4bits 4bits 4bits 4bits 4bits 4bits 4bits 4bits
Versão Comprim. Tipo de Serviço
Cabeçalho
Comprimento Total (em bytes)
(ToS)
Identificação flags Sequência do fragmento
Tempo de Vida Protocolo CheckSum do cabeçalho
(TTL)
Endereço IP de Origem

Endereço IP de Destino

Padding
[...]
Dados
[...]
Campos do cabeçalho IPv4:
Versão: Versão a que pertence o datagrama IP. Há dois tipos de versão:
 a versão 4 (IPv4) especificada no RFC791 (em 1981) é
actualmente mais utilizada
 a versão 6 (IPv6) especificada no RFC2460 (em 1998) mas ainda
pouco utilizada.

Comprimento do Cabeçalho: indica o comprimento do cabeçalho em


múltiplos de 32 bits. O cabeçalho tem um comprimento mínimo de 20
bytes, aos quais se adicionam o campo de opções com múltiplos de 32
bits.

Tipo de Serviço (Type of Service): Campo que permite dar maior ou menor
prioridade a datagramas IP diferentes.

Comprimento Total : Comprimento máximo do datagrama IP (em bytes)


incluindo o cabeçalho (comprimento máximo 216 = 65.536 bytes). No
entanto quando os pacotes IP utilizam tramas Ethernet este valor fica
limitado a 1500 bytes (Maximum Transmission Unit- MTU).

A Identificação, as Flags e o OffSet do fragmento servem para efectuar a


fragmentação de dados.

Identificação: Identifica o pacote de nível superior que está a ser fragmentado.


Redes e Protocolos Internet Página 2.4

Flags: 3 bits em que só os 2 últimos são utilizados:

DF (Don’t Fragment): Não fragmentar.

MF (More Fragments): Quando a 1 indica que a este datagrama


seguem-se mais fragmentos. Logo o último fragmento terá o valor
0.

Sequência do Fragmento (Fragment OffSet): Indica que posição ocupa o


fragmento em relação aos dados originais em unidades de 8 bytes.
Utiliza-se para ordenar os fragmentos quando se faz a reassemblagem.

Tempo de Vida (Time To Live -TTL): Contador que se utiliza para limitar o
tempo que os pacotes circulam na rede. Cada router decrementa o TTL
de um (1). Quando este valor chega a zero (0) o pacote é descartado.

Protocolo: O campo protocolo permite identificar que tipo de dados está a ser
transportado no datagrama. Este campo pode ter muitos valores, dos
quais se destacam:

Número Descrição
0 Reservado
1 Internet Control Message Protocol (ICMP)
2 Internet Group Management Protocol (IGMP)
3 Gateway-to-Gateway Protocol (GGP)
4 IP (dentro de IP)
6 Transmission Control Protocol (TCP)
8 Exterior Gateway Protocol (EGP)
9 Private Router Protocol
17 User Datagram Protocol (UDP)

Esta lista foi inicialmente definida pelo RFC1700 sendo actualmente


mantida a nível mundial pela IANA “Internet Assigned Numbers
Authority” ([Link]) mais concretamente em
[Link]

Em Linux, a identificação destes protocolos encontra-se no ficheiro


“/etc/protocols”.

CheckSum do cabeçalho: Permite verificar a integridade do cabeçalho. Dado


que o cabeçalho pode mudar entre Routers, este valor tem que ser
calculado de router para router.

Endereços de Origem e Destino: Identificam os endereços IP do terminal de


origem e destino. Cada um destes endereços no IPv4 são identificados
por 4 bytes.

Costumam ser identificados byte a byte no formato decimal separados


por um ponto (“.”). Por exemplo:

[Link] corresponde a:
Redes e Protocolos Internet Página 2.5

11000000.10101000.01100100.01100000 em binário.

Opções: este campo opcional tem um comprimento variável e pode ter


diferentes funções, podendo ser utilizado para segurança ou definir
claramente o encaminhamento que um datagrama deve ter.

2.2.1. Endereços IPv4


Cada terminal, router ou devices envolvidos na comunicação TCP/IP tem que
ter um endereço formado por quatro números. Por exemplo:
[Link]
Como pode ver, os bytes são representados em notação decimal numa
notação denominada de dotted quad notation.
Em termos de atribuição de endereços convém fixar o seguinte:
 O endereço IP de um host tem que ser único em toda a rede onde ele
actua.
 Parte do endereço identifica a rede ou segmento de rede a que ele
pertence e a outra parte do host dentro dessa rede.
 Apesar de cada um dos bytes pode variar entre 0 e 255 nem todos os
valores podem ser utilizados.

[Link]. Network ID e Host ID

O endereço IP é composto por um Network ID que identifica um segmento de


uma rede no qual se insere, e um Host ID que identifica um host dentro desse
segmento de rede.
Endereço IP
Network ID Host ID

Ambos Network ID e Host ID não podem ser constituídos apenas por zeros (0)
ou uns (1) (em binário).
Um aspecto importante a ter em conta é o de apenas o Network ID ser utilizado
para encaminhar pacotes TCP ou UDP.
Redes e Protocolos Internet Página 2.6

Assim, se admitirmos que no caso do endereço IP [Link], a parte do


endereço 198.9.33 identifica o segmento de rede, e o último byte identifica o
host 4, então se este terminal pertencer à rede da figura anterior, ele estaria
colocado no segmento [Link] .
Um network ID seguido de um host ID a zeros identifica o segmento, e
seguido de um host ID igual a 1s identifica todos os terminais desses
segmento.

[Link]. Máscaras de Sub-rede (Subnet Masks)

A questão agora é:
Como podemos saber num endereço qual a componente Network ID e
qual a componente Host ID?

Uma das formas de fazer essa diferenciação é através da utilização de um


outro número de 32 bits (4 bytes) denominado de máscara de sub-rede ou
subnet mask.

Por exemplo, no caso do host 4 do Segmento A da figura anterior, podemos


afirmar que o:

Endereço IP: [Link]


tem uma Máscara de Sub-rede: [Link]

No caso seguinte:

Endereço IP: [Link]


Máscara de Sub-rede: [Link]
Redes e Protocolos Internet Página 2.7

o Host ID é 199.4 e o Network ID é 133.7

Até aqui é simples. O pior é quando se especifica:

Endereço IP: [Link]


Máscara de Sub-rede: [Link]
Neste caso temos que ver em notação binária que [Link] é igual a:
11111111.1 11110000.00000000 – [Link]
11111111.1
10000101.00000111.11000111.00000100 – [Link]
10000101.00000111.11000000.00000000 – [Link]
Fazendo uma representação em binário do Network ID e do Host ID, obtemos:
Network ID – em binário – 10000101 00000111 1100
– em decimal a rede é identificada por [Link]
Host ID – em binário – 0111 00000100

Outra forma de separar o network ID do host ID baseia-se na utilização do


separador “/” seguido do número de bits correspondente ao network ID.

Assim, por exemplo a:


[Link]/16
corresponde uma máscara de sub-rede:
[Link] = 11111111.11111111.00000000.00000000
ou seja 16 bits a 1.

[Link]. Classes de endereços IP

Houve uma fase em que se utilizavam protocolos de routing do tipo ClassFul, e


que apenas conheciam 5 classes de enredeços.
As 3 classes mais importantes tinham as seguintes máscaras:
Net mask: [Link] (Classe A)
Net mask: [Link] (Classe B)
Net mask: [Link] (Classe C)

Existe ainda outras duas classes que não têm máscaras associadas.

Assim, ao afirmar que o endereço [Link] pertence à Classe B, isso


implica que:

Net mask: [Link]


Network ID: 130.16
Host ID: 140.220
Redes e Protocolos Internet Página 2.8

A divisão dos endereços IP das classes A, B e C, deixaram de servir para o


encaominhamento, mas convém sabere que abrangem os intervalos referidos
na tabela:

Classe Network IDs Host IDs


A 1 a 127 0.0.1 a 255.255.254
B 128.0 a 191.255 0.1 a 255.254
C 192.0.0 a 223.255.255 1 a 254

Existe ainda uma classe D para tráfego IP Multicast. Esta Classe D (entre
[Link] e [Link]) é utilizada para endereços de grupos de
utilizadores IP Multicast não podendo ser atribuída a terminais.

D [Link] a [Link]
Assim, para cada classe A, B e C a Inter NIC disponibilizou:

Classe Números de Redes Número de hosts


A 126 16 777 214
B 16 384 65 534
C 2 097 152 254

Assim, se o endereço seguinte fosse utilizado na Internet Pública (com base na


tabela anterior):

[Link]

podemos afirmar que se trata claramente de um endereço de classe C, sem


necessitar de saber da sua máscara de sub-rede.

[Link]. Endereços Reservados para Redes Privadas

De entre as classes A, B e C, foram reservados para serem utilizados apenas


em redes privadas os endereços a variar entre:
o de [Link] até [Link] (ou 10/8)
o de [Link] até [Link] (ou 172/12)
o de [Link] até [Link] (ou 192.168/16)

De salientar ainda os endereços começados por 127:


Redes e Protocolos Internet Página 2.9

o O valor [Link] é denominado de loopback address ou localhost


sendo utilizado para testar o funcionamento do TCP/IP e

o os restantes endereços 127.x.x.x são utilizados para a comunicação


entre processos a correr na mesma máquina.

Um datagrama IP enviado para o localhost não é visto na rede, mas permite a


comunicação entre um cliente e um servidor a correr na mesma máquina.

A título de exemplo, depois de instalar um servidor HTTP ou Web Server (por


exemplo o Apache web server) podemos arrancar um cliente HTTP ou Browser
(por exemplo o Internet Explorer) e escrever o endereço [Link], aparecendo
a imagem da figura seguinte.

Estes endereços não são encaminhados por routers de redes públicas


Redes e Protocolos Internet Página 2.10

[Link]. Restrições ao Network ID e Host ID

Como foi anteriormente dito, um host ID a zeros (0’s) identifica o segmento, e


um host ID igual a uns (1’s) serve para endereçar todos os terminais desse
segmento (broadcast).
Por isso estes valores não se podem atribuir a terminais.

Mas isso não significa que o endereço [Link]/16 não seja válido. Se o
convertermos para binário obtemos como Host Id:
00000001.00000000
que é um endereço de terminal válido.
O que é inválido são todos os bits a zero.

Da mesma forma e em relação ao network ID também não se podem atribuir só


0’s ou 1’s a este identificador.

Mas isso não significa que o endereço [Link]/16 não seja válido. Se o
convertermos para binário obtemos como Network ID:
10000000.00000000
que é um endereço de Network ID válido.

[Link]. Subnetting

Admita que vai trabalhar para uma empresa que compra uma classe C
completa, a variar entre [Link] e [Link].
Assim o router do ISP já tem na sua tabela de encaminhamento que os
endereços [Link] devem ser encaminhados para o router de entrada da
empresa.
Ou seja, qualquer coisa no género:

Network Destination Netmask Interface Metric

[Link] [Link] x.x.x.x 1

Admita agora que nesta empresa necessita distribuir esta gama de endereços
(da classe C) por vários departamentos (subredes), cada um deles com vários
terminais com visibilidade para o exterior.
No entanto as comunicações relativas a um departamento não devem ir parar a
outros departamentos congestionando esses segmentos desnecessariamente.
Uma das formas de separar o tráfego de cada um destes departamentos
baseia-se na utilização do que se chamam Subnet IDs (não confundir com as
Subnet Masks).
Assim, a parte correspondente aos host IDs é dividida em duas partes, uma
delas para identificar cada departamento. Para o exemplo anterior ficaria:
Redes e Protocolos Internet Página 2.11

Network ID Host ID original


Subnet Hosts
Network ID IDs IDs
Ou seja o router de entrada da empresa deverá separar o tráfego dos
departamentos atribuindo um Subnet ID diferente a cada um deles.

A questão agora é qual a Subnetmask interna com que devemos configurar o


router de entrada tendo em atenção que os routers utilizam essa máscara para
identificar a parte do endereço que será utilizada para o encaminhamento?

Bem, a resposta a esta pergunta leva a outra pergunta:

Em quantas subredes (neste exemplo departamentos) queremos separar o


tráfego?

Por exemplo se só tivermos cinco departamentos podemos utilizar 3 bits (dos 8


disponíveis) para identificar as subredes. Ficamos assim com 83 = 5 bits para
identificar os terminais.
Assim, podemos ter ao todo:
o 23 = 8 subredes (o 000b e o 111b podem ser utilizadas1)
o 25  2 = 30 terminais por subrede
A máscara com que devemos configurar o router da empresa deverá por isso
ser igual a:
[Link]
que corresponde em binário a:
11111111.11111111.11111111.11100000
Assim, por exemplo a primeira subrede será identificada por:
11001000.00000001.00000001.00000000 = [Link]
e as seguintes por:
11001000.00000001. 00000001.00100000 = [Link]
11001000.00000001. 00000001.01000000 = [Link]
11001000.00000001. 00000001.01100000 = [Link]
11001000.00000001. 00000001.10000000 = [Link]
11001000.00000001. 00000001.10100000 = [Link]
11001000.00000001. 00000001.11000000 = [Link]

1 As subnet IDs só a 0s ou só a 1s não eram utilizadas porque podiam causar problemas em


protocolos de encaminhamento de routers. No entanto actualmente já se podem utilizar em
redes que utilizem protocolos de routing modernos.
Redes e Protocolos Internet Página 2.12

Para cada umas destas subredes, a gama de endereços a atribuir aos


terminais deverá variar entre:
Subrede Gama de Endereços Endereço de Broadcast
1 [Link] [Link] a [Link] [Link]
2 [Link] [Link] a [Link] [Link]
3 [Link] [Link] a [Link] [Link]
4 [Link] [Link] a [Link] [Link]
5 [Link] [Link] a [Link] [Link]
6 [Link] [Link] a [Link] [Link]
7 [Link] [Link] a [Link] [Link]
8 [Link] [Link] a [Link] [Link]

2.2.2. Network Address and Port Translation


Como já foi referido existem várias classes de endereços IP e é comum os
operadores de dados (ISPs) pagarem por uma dessas classes para depois
poderem atribuir aos seus clientes.
Para evitar esgotar essa classe rapidamente, quando os clientes dos ISPs se
ligam à Internet é-lhes atribuído um endereço IP que é depois libertado quando
o cliente se desliga.
No entanto, com a entrada em funcionamento de ligações ADSL é cada vez
maior o número de utilizadores que permanecem ligados muito para além do
tempo indispensável, uma vez que podem estar ligados sem pagar mais nada
por isso.
Para além disso em muitas residências tem crescido o número de
equipamentos de routing ADSL que fica ligado 24h por dia, mesmo quando não
há tráfego.
Todas estas condicionantes tendem a agravar um problema do IPv4 que é o
seu saturado espaço de endereçamento. A solução passa pelo IPv6, no
entanto até lá têm que ser encontradas soluções.
Apesar de tudo, este não é um problema apenas dos ISPs. Vejamos o seguinte
exemplo:

Considere uma empresa que tem apenas um acesso ADSL com um único IP
(fixo ou dinâmico) mas que quer que os seus 200 terminais tenham acesso à
Internet.
Considere também que o esquema de endereçamento IP escolhido
internamente foi o 10.x.y.z.

A resolução destes problemas podem ter várias soluções dependendo do nível


OSI da implementação. Uma dessas soluções passa pelos servidores de proxy
que vamos estudar mais à frente.
A solução que vamos ver aqui funciona ao nível de rede e chama-se Network
Address Translation (NAT) [RFC3022- [Link]
Redes e Protocolos Internet Página 2.13

O NAT é já hoje utilizada tanto pelos ISPs como pela maioria dos
equipamentos ADSL com capacidade de routing IP.
Um NAT funciona habitualmente em conjunto com um router que interliga duas
redes: uma rede privada (designada de rede interna) com outra rede externa.
O objectivo de um NAT é o de converter de forma transparente endereços IP
privados apresentando-o para a Internet como sendo originado a partir de um
endereço IP público, numa associação de um-para-um.

No entanto, é comum numa empresa querer ligar mais que um terminal interno
simultaneamente à Internet.

[Link]. Tipos de NATs

Assim podem existir vários tipos de NATs consoante a funcionalidade:


o NAT estática: Um conjunto de endereços internos é mapeado para o
exterior numa relação um-para-um fixa e pré-definida.
o NAT dinâmica: Um endereço interno pode ser mapeado para qualquer
um dos endereços externos de forma dinâmica.
o NAT dinâmica sobrecarregada (NAT overload): Vários endereços IP
internos são mapeados para um único endereço IP externo utilizando
para tal os portos TCP ou UDP para diferenciar os terminais internos.
o NAT dinâmica sobreposta: Quando um conjunto de endereços público
é convertido noutro conjunto de endereços público, por exemplo por um
ISP.
Dentro das funcionalidades um NAT dinâmica sobrecarregada encontra-se a
de Port Address Translation (PAT). O objectivo de um router (ou gateway)
NAT com funcionalidade PAT (também designado de Network Address Port
Translation- NAPT) é o de multiplexar tráfego de redes internas apresentando-
o para a rede externa como sendo originado a partir de um terminal com um
único endereço IP.
Redes e Protocolos Internet Página 2.14

[Link]. NAT Dinâmica Sobrecarregada

Como iremos ver mais tarde nesta disciplina, ao nível de transporte utilizam-se
Portos (TCP ou UDP) para multiplexar diferentes ligações sobre IP.
Assim, os computadores terminais utilizam o conjunto de 4 identificadores para
identificar de forma unívoca cada conexão. Esses identificadores são:

Porto de Origem Porto de Destino IP de origem IP de destino

A função de um NAT é o de alterar os endereços IP internos dos datagramas


IP (por exemplo 10.10.140.x) para um endereço IP externo com validade ao
nível da Internet (ou rede externa onde ele opere).
No caso específico da NAT dinâmica sobrecarregada, para além da alteração
do endereço interno para um endereço externo (e vice versa) é necessário
ainda converter os portos de origem (internos) para portos externos de
forma unívoca.
Para fazê-lo sem misturar os dados de várias ligações, o NAT mantém uma
tabela interna denominada de port mapping table.
Para compreender melhor vejamos um exemplo passo a passo.
1. Um computador interno com um endereço [Link] (porto 1100)
envia um datagrama IP para o endereço público [Link] (porto 80)
através do NAT.
2. Ao receber este datagrama, o NAT altera o endereço de origem do
datagrama IP para o seu endereço público (por exemplo [Link]) e o
porto de origem para um porto novo (por exemplo 2100). Para tal o NAT
cria uma nova entrada na sua tabela de portos identificando o endereço
IP interno e o porto interno associado a esse endereço externo. Por
exemplo:

Endereço Interno Porto Interno Porto Externo


... ... ...
[Link] 1100 2100
... ... ...
3. Quando um computador na Internet pública responde ao datagrama
externo, a NAT dinâmica sobrecarregada recorre à sua tabela para
saber a que terminal e porto se destina esse datagrama. Assim, no
exemplo anterior o computador na Internet pública responderia ao
endereço externo do NAT e ao porto 2100. O NAT consultaria a sua
tabela alterando os endereços IP de destino e porto de destino do
datagrama conforme o registo da tabela.
Sempre que se adiciona ou consulta a tabela de port mapping, actualiza-se
um contador de tempo associado a essa entrada. No caso de tal não acontecer
por um determinado intervalo de tempo (timeout) a respectiva entrada é
retirada da tabela.
Redes e Protocolos Internet Página 2.15

Dado que os portos são constituídos por 16 bits, a capacidade de


multiplexagem de conexões simultâneas num NAT é de 65536. Ou seja podem
existir no máximo 216 entradas simultâneas na tabela de NAT.
A maioria dos equipamentos de NAT permite ainda manter as entradas das
tabelas através da observação do estabelecimento e terminação das conexões
TCP. No entanto isto não é possível no caso do protocolo UDP pois este
protocolo não é connection oriented.
Para além destas funções é ainda necessário que as NATs:
o convertam muitos endereços IP e portos enviado por protocolos de nível
superior
o recalculem os checksums dos cabeçalhos IP e TCP
o verifiquem os valores de checksums de entrada por forma a evitar
consultas das tabelas para datagramas danificados
Em termos de segurança, um NAT funciona ainda como uma protecção (tipo
firewall) sem requerer nenhuma configuração especial. Isto porque o NAT
apenas permite que um cliente interno (por exemplo um cliente FTP) aceda a
um servidor externo (por exemplo um servidor FTP) e não o contrário.

[Link]. Inbound Mapping

No entanto, por vezes é desejável que clientes externos acedam a servidores


internos. Para tal há a possibilidade de fazer o que se chama de inbound
mapping, mapeando alguns portos externos para endereços e portos internos,
tornando por isso possível o funcionamento de servidores FTP ou Web de uma
forma controlada.
Uma dessas configurações é apresentada na figura seguinte:
Redes e Protocolos Internet Página 2.16

Por exemplo, pode-se configurar o NAT para que quando receba do exterior
um datagrama tendo como porto destino o porto 80 (HTTP) o encaminhe
internamente para o terminal cujo IP é [Link] com um porto igual ou
diferente (por exemplo porto destino igual a 8080).

[Link]. Desvantagem dos NAT

Apesar de ser uma solução para o espaço de endereçamento actual, o


equipamento de NAT apresenta várias desvantagens:
o Viola o princípio que determina que cada terminal IP tem um endereço
único,
o Viola o princípio que determina que cada camada é independente das
camadas superior e inferior quando mistura endereçamento IP com
portos TCP e UDP,
o Na Internet, o terminais não têm apenas que correr TCP e/ou UDP. No
entanto tal não é possível com NATs uma vez que utilizam os portos do
TCP e UDP,
o É necessário ter especial cuidado com aplicações que transportem os
endereços IP ao nível de protocolos de camadas superiores, pois podem
não funcionar através de NATs (FTP, H.323, SIP, etc).
Tudo isto faz com que haja uma grande oposição à utilização de NATs quer em
termos da comunidade científica quer por parte de empresas e técnicos que
trabalham neste domínio.

2.3. Protocolos de Controlo Associados ao IP

2.3.1. O Protocolo ICMP


O protocolo IP oferece as ferramentas necessárias para o envio de
datagramas. No entanto, não oferece os meios necessários para garantir a
integridade desses mesmos datagramas, ou mesmo que esses datagramas
alcancem o seu destino.
O protocolo Internet Control Message Protocol (ICMP) (RFC0792) não pode
fazer com que o IP se torne mais fiável, no entanto oferece a possibilidade de
que um router ou um terminal destinatário comuniquem a um terminal origem
que houve algum problema com o datagrama enviado.
As mensagens ICMP podem ser enviadas em várias situações:
 Quando um datagrama IP não alcança o seu destino,
 Quando um gateway ou router descarta um datagrama IP,
 Quando um gateway ou router pode informar um terminal sobre um
caminho mais curto para um datagrama,
As mensagens ICMP são transportadas dentro do campo de dados dos
datagramas IP identificadas pelo campo Protocolo do IP a 1.
Redes e Protocolos Internet Página 2.17

8 bits 8 bits 8 bits 8 bits


Tipo Código CheckSum

Todas as mensagens ICMP começam por três campos fixos:


 Tipo (8 bits): Indica o tipo de mensagem ICMP. Tipos definidos:
o Destination Unreachable
o Time Exceeded- ou seja TTL excedido
o Parameter Problem
o Source Quench- Um router descartou o datagrama devido a
congestionamento
o Redirect Message – Diz ao terminal que pode utilizar um outro
router melhor
o Echo e Echo Reply – utilizado no comando ping
o Timestamp and Timestamp Reply
o Information Request e Information Reply
o Address Mask- Permite que um terminal peça a subnet mask.
 Código (8 bits): Contém mais informação sobre o tipo de mensagem,
dado que dentro de um tipo podemos ter vários sub-tipos de
mensagens.
 CheckSum (16 bits): Campo de controlo para verificação da integridade
da mensagem.
Um exemplo muito conhecido da utilização do ICMP é o comando ping dos
sistemas operativos.
Por exemplo:
>ping [Link]

Pinging [Link] with 32 bytes of data:


Reply from [Link]: bytes=32 time=305ms TTL=49
Reply from [Link]: bytes=32 time=298ms TTL=49
Reply from [Link]: bytes=32 time=310ms TTL=49
Reply from [Link]: bytes=32 time=293ms TTL=49

Ping statistics for [Link]:


Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 293ms, Maximum = 310ms, Average = 301ms

2.3.2. Protocolo ARP


O Protocolo Address Resolution Protocol (ARP) utiliza-se em redes locais para
associar endereço IP com endereços físicos (MAC). Numa LAN, para que dois
computadores possam comunicar é necessário fazer esta associação.
O protocolo ARP para Ethernet está especificado no RFC826 “Ethernet
Address Resolution Protocol”.
Redes e Protocolos Internet Página 2.18

Admitindo que um terminal de nível IP conhece o endereço IP do destinatário


de um datagrama, quando ele passa esse pacote para o nível de ligação de
dados, este nível tem que conhecer o endereço MAC do destinatário.
Num primeiro passo, o terminal emissor verifica se o terminal destinatário IP se
encontra na mesma sub-rede, através da análise da subnet mask.
Em caso afirmativo ele envia uma trama Ethernet em Broadcast (endereço
MAC FF:FF:FF:FF:FF:FF) a pedir o endereço MAC do destinatário.
A figura seguinte identifica um pacote ARP segundo o RFC826:

1 byte 1 byte
Hardware Type = 0x0001 (Ethernet)
Protocol Type = 0x0800 (IP)
Hardware Size = 6 Protocol Size = 4
Optional Code = Request ou Reply

Endereço MAC Origem

Endereço IP Origem

Endereço MAC Destino

Endereço IP Destino

O campo Hardware Type identifica o tipo de hardware (0x0001 para


Ethernet), e o campo Protocol Type o tipo de protocolo utilizado (0x0800
para IP).
O hardware size e protocol size identificam a dimensão dos endereços
MAC e IP que se utilizam.
O campo Opcode identifica a primitiva:
 Request (0x0001)
 Reply (0x0002)
Quando o pacote ARP Request é enviado, o endereço MAC do destinatário é
desconhecido, por isso é enviado com campo Endereço MAC Destino no ARP
a zeros.
Na resposta (ARP Reply) os endereços de origem (IP e MAC) correspondem
ao terminal que respondeu e os endereços de destino (IP e MAC) a quem
enviou o ARP Request.
Redes e Protocolos Internet Página 2.19

Se o terminal emissor verificar que o terminal destinatário IP se encontra noutra


sub-rede (através da análise da subnet mask) então:
 ou o terminal de origem envia o seu pedido directamente para o
endereço MAC da gateway (ou seja para o router),
 ou o router (a funcionar como Proxy-ARP) responde ao ARP Request
enviado em broadcast, indicando que ele se encarrega desses pacotes.
A resposta ao ARP Request não é enviada em broadcast, mas ponto-a-ponto.
Depois de resolvido o endereço, o terminal enviará o datagrama de dados
tendo como destino MAC o router e destino IP o terminal destinatário.

2.3.3. Protocolo Reverse ARP (RARP)


Para além do ARP existe ainda o protocolo Reverse ARP (RARP), definido no
RFC903.
O protocolo Reverse ARP (RARP) permite que numa LAN os terminais (que
por exemplo não tenham disco) possam pedir o seu endereço IP a um servidor
de RARP, com base no seu endereço MAC.
O servidor de RARP corre normalmente numa gateway da rede onde é mantida
pelo administrador da rede uma tabela em que se faz a correspondência entre
os endereços MACs e os endereços IP a atribuir.
O formato do pacote é o mesmo que o formato do pacote ARP, mas o
Opcodes pode tomar os valores:
 Request Reverse (0x0002)
 Reply Reverse (0x0003)
O procedimento de atribuição do endereço é normalmente executado na fase
de arranque dos terminais.

2.4. Routers e Protocolos de Routing IP

2.4.1. Introdução
O routing (ou encaminhamento em português) é o acto de mover informação
entre redes de uma origem até um destino.
Ao longo do percurso existe pelo menos um nó intermédio.
O routing é muitas vezes confundido com bridging. A principal diferença é
que uma bridge funciona ao nível 2 do modelo OSI enquanto um router
funciona ao nível 3, ou seja ao nível de rede (neste caso nível IP).
Por exemplo:
Redes e Protocolos Internet Página 2.20

A bridge Ethernet (também denominada de switch de nível 2) encaminha as


frames Ethernet com base no seu endereço MAC, por isso os segmentos
podem ter o mesmo identificador de nível IP, ou seja ambos os segmentos
podem ser identificados por [Link] .
No caso do router já não é possível haver dois segmentos diferentes
identificados pelo mesmo Network ID, porque este encaminha os datagramas
IP com base no endereço IP.

A tabela de routing do router neste caso poderá conter:

Routing Table

Endereço Destino Máscara de SubRede Interface de Saída TTL

[Link] [Link] [Link] 1

[Link] [Link] [Link] 1


Redes e Protocolos Internet Página 2.21

2.4.2. Tipo de Routers


De salientar que o processo tradicional de fazer routing consiste em instalar um
router dedicado e que normalmente custa bastante dinheiro.
Este equipamento é configurado através de uma porta de um computador
utilizando o hiperterminal ou software próprio.
Estes routers não só podem ligar tecnologias de rede semelhantes
(EthernetEthernet) como diferentes (por exemplo EthernetModem
Telefónico).
Os routers “EthernetModem Telefónico” ou “EthernetRDIS” são também
chamados de dial-up routers pois estabelecem a ligação quando um terminal
quer comunicar para o exterior.
Uma alternativa à utilização de routers tradicional consiste na utilização de
computadores com várias placas de rede instaladas e a correr um sistema
operativo que permita o routing, como por exemplo o Windows NT ou o Linux.
Cada uma dessas placas liga-se a um dos segmentos. A este tipo de
computador chama-se também de multihomed computer.

2.4.3. Constituição Interna de um Router


Podemos afirmar que o routing envolve dois processo fundamentais:
o Determinar o melhor percurso para onde devem ser enviados os
datagramas IP,
o Comutar (switch) esses datagramas.
A figura seguinte apresenta de forma sintética os principais elementos de um
router ao nível de comutação.

Cada interface de um router executa várias funções, desde a adaptação ao


nível inferior até ao armazenamento dos dados em fila de espera (Queue)
enquanto o módulo de comutação não os processa (no caso das input
interfaces) ou a rede não os admite (no caso das output interfaces).
O processador de routing:
Redes e Protocolos Internet Página 2.22

o executa os protocolos de routing,


o mantém as tabelas de encaminhamento e
o executa funções de gestão do router.
A gestão das filas de espera é alvo de muitas propostas e investigação. Podem
assim encontrar-se soluções simples como a First-Come-First-Serve (FCFS)
ou soluções um pouco mais elaboradas como o Weighted Fair Queuing
(WFQ) que partilha a largura de banda de forma equitativa entre diversos fluxos
extremo-a-extremo.
Quando uma fila de espera se encontra congestionada o router pode
descartar (ou seja eliminar) datagramas IP. Nesse caso há várias estratégias
de descarte que se podem tomar, com base por exemplo no campo de ToS do
cabeçalho IP ou noutro indicador.

2.4.4. Encaminhamento
Para ajudar o processo de definição do percurso dos datagramas, os
algoritmos de routing inicializam e mantêm tabelas de routing.
A informação que consta das tabelas de routing varia consoante o algoritmo de
routing utilizado.
Cada router tem e/ou mantém uma tabela de routing.
Há 3 tipos de rotas:
o Rotas Padrão
o Rotas Estáticas
o Rotas Dinâmicas

2.4.5. Rotas Padrão


Tanto os computadores terminais passando pelos multihomed computers
mantêm tabelas de encaminhamento.
Algumas dessas rotas são designadas por rotas padrão.
Vamos ver quais são com base num exemplo. Imagine que executa route print
num computador e obtém:
Network Address Netmask Gateway Address Interface Metric
[Link] [Link] [Link] [Link] 1
[Link] 255. 255. 255.0 [Link] [Link] 1
[Link] 255. 255. 255.255 [Link] [Link] 1
[Link] 255. 255. 255.255 [Link] [Link] 1
[Link] 254. 0.0.0 [Link] [Link] 1
[Link] 255. 255. 255.255 [Link] [Link] 1
Vamos linha a linha ver o que cada uma significa:
Redes e Protocolos Internet Página 2.23

1. [Link] é a entrada padrão que é utilizada quando nenhuma outra rota


se ajusta ou seja identifica a default gateway,
2. [Link] é a rota da subrede local,
3. [Link] é a rota da interface de rede local,
4. [Link] é a rota de broadcast da subrede,
5. [Link] é a rota de IP Multicast utilizada pelos hosts para registo em
grupos de multicast,
6. [Link] é o endereço de broadcast local
A tabela é lida de baixo para cima.
Assim olhando para este exemplo, o sistema começa por identificar se o
datagrama foi enviado para o endereço de broadcast global seguindo-se o de
multicast e o de broadcast da subrede. Todos estes endereços têm como
destino a interface especificada ([Link]).
Em seguida temos que os datagramas endereçados ao [Link] devem
ser enviados para o [Link] ou seja devem ser lidos internamente.
Para além disso todos os datagramas endereçados à subrede 131.107.2.x
devem ser enviados para a interface [Link].
Por fim, todos os endereços que não correspondam a esta lista devem ser
enviados para a interface [Link] no endereço de hardware (MAC)
correspondente à default gateway ([Link]).

Numa tabela de routing só um dos default gateways é considerado, mesmo que


existam dois.

O default gateway considerado é o primeiro a contar de baixo ao ler a tabela.


Em redes muito simples, o default gateway pode ser utilizado para fazer o
encaminhamento. Por exemplo considere a seguinte rede separada por dois
multihomed computers:

IP: [Link] IP: [Link]


IP: [Link] SM: [Link] SM: [Link] IP: [Link]
SM: [Link] SM: [Link]

Tabela de Routing do Router 1 Tabela de Routing do Router 2


Default Gateway = [Link] Default Gateway = [Link]

[Link] [Link] [Link]


Redes e Protocolos Internet Página 2.24

Se um terminal com o endereço [Link] enviar um datagrama IP para um


endereço [Link], ao verificar que o endereço de destino não se encontra
na mesma sub-rede, ao nível MAC esse datagrama será encapsulado numa
trama ethernet tendo como endereço MAC de destino o router 1.
Por sua vez, o router 1 consultará a sua tabela de encaminhamento e ao
verificar que o endereço não pertence a nenhuma das suas subredes envia
esse datagrama ao nível MAC para o endereço do router 2.
O router 2 ao consultar a sua tabela de encaminhamento verificará que todos
os pacotes com endereço destino 172.16.x.y devem sair pela sua interface
[Link].

2.4.6. Routing Estático


A utilização da default gateway para fazer routing pode ser utilizada em redes
pequenas com 2 routers, mas não em redes de maior dimensão uma vez que
apenas se pode especificar uma default gateway.
Ou seja, como já afirmado, no caso de uma tabela de routing conter mais que
uma entrada de default gateway, o sistema ignorará a superior executando
apenas a última da lista (ou seja a que estiver mais abaixo na tabela).
Por isso, uma outra forma de fazer encaminhamento para todas as três redes é
utilizar uma entrada na tabela de routing em cada router dizendo para onde
deve encaminhar esses datagramas IP.
Estas entradas chamam-se de rotas estáticas.
Assim, utilizando rotas estáticas e para a mesma rede da figura anterior
teríamos:

IP: [Link] IP: [Link]


IP: [Link] SM: [Link] SM: [Link] IP: [Link]
SM: [Link] SM: [Link]

Tabela de Routing do Router 1 Tabela de Routing do Router 2


Rede Máscara Gateway Interface Rede Máscara Gateway Interface
[Link] [Link] [Link] [Link] [Link] [Link] [Link] [Link]

~
[Link] [Link] [Link]

Admitamos então que um terminal com o endereço [Link] envia um


datagrama IP para o terminal com um endereço [Link].
Vamos ver passo-a-passo o que se passa:
Redes e Protocolos Internet Página 2.25

1. O terminal emissor ao consultar a sua tabela de routing vai verificar


que não se encontra na mesma subrede e por isso terá que enviar essa
trama ethernet para o endereço MAC do router.
2. O terminal emissor envia em broadcast um pedido de ARP para saber
o endereço MAC associado ao endereço IP do router ([Link]). O
router 1 responde indicando o seu próprio endereço MAC dessa NIC.
3. O terminal emissor envia o datagrama IP para o endereço MAC do
router 1.
4. O router 1 ao receber um datagrama verifica se esse datagrama se
destina a uma das suas LANs.
5. Como tal não acontece ele consulta a sua tabela de encaminhamento e
encontra uma rota para esse tipo de datagrama. A rota especifica a
interface [Link].
6. O router 1 envia então um pedido de ARP em broadcast para saber o
endereço MAC associado ao endereço [Link]. O router 2 responde
indicando o seu próprio endereço MAC dessa NIC.
7. O router 1 envia o datagrama IP, encapsulado numa trama Ethernet,
com endereço destino MAC o endereço da NIC do router 2.
8. O router 2 ao receber um datagrama verifica se esse datagrama se
destina a uma das suas LANs, o que neste caso é verdadeiro.
9. O router 2 envia então um pedido de ARP em broadcast para saber o
endereço MAC associado ao endereço [Link].
10. O terminal destinatário responde indicando o endereço MAC dessa
NIC.
11. O router 2 envia o datagrama IP, encapsulado numa trama Ethernet,
com endereço destino MAC o endereço da NIC do terminal
destinatário.
Um dos problemas das rotas estáticas é a de que o sistema dificilmente se
ajusta a falhas e congestionamento.
Para que tal possa acontecer é necessário que as tabelas de encaminhamento
não sejam estáticas, mas se ajustem em função de várias métricas.

2.4.7. Métricas de Routing


Como vimos, as tabelas de routing contêm informação utilizada pela pelo
software de comutação para decidir qual o melhor percurso.
Os algoritmos de routing têm utilizado métricas diferentes. Os algoritmos
sofisticados de routing podem basear a sua métrica em vários parâmetros
simultâneos obtendo uma métrica híbrida.
As métricas mais utilizadas têm sido:
o Comprimento do Percurso (Path Length)- é a métrica mas comum e
baseia-se normalmente numa contagem do número de routers que os
Redes e Protocolos Internet Página 2.26

dados têm que passar para chegar a um destinatário (denominado de


hop count)
o Fiabilidade (Reliability)- Parâmetro que avalie a probabilidade de falhas.
Atribuído habitualmente por um administrador.
o Atraso (Delay)- O atraso depende de muitos factores, incluindo a
distância física a viajar, a largura de banda de um link, o atraso na fila de
espera e o congestionamento em nós intermédios. Dado que o atraso é
uma junção de vários factores, esta é habitualmente uma métrica muito
útil.
o Largura de Banda (Bandwidth)- reflecte de forma comparativa qual a
largura de banda de vários percursos. No entanto este valor só por si
pode não ser suficiente uma vez que um percurso com maior largura de
banda pode estar mais congestionado.
o Carga (Load)- Mede o grau de carga de um percurso.
o Custo da Comunicação (Communication Cost)- Importante nos casos
em as empresas se preocupem mais com os custos do que com a
performance.

2.4.8. Algoritmos de Routing Dinâmico


Dado que os sistemas de routing estático não se ajustam a mudanças da rede,
surgiram vários protocolos de routing que alteram a tabela de routing através
da análise de mensagens trocadas entre routers.
Os protocolos de routing podem ser classificados em dois tipos no que respeita
ao algoritmo de construção e manutenção da árvore de encaminhamento:
o Os algoritmos de Distance Vector Routing
o Os algoritmos de Link State Routing
Apesar de haver outros, estes são os mais habituais. Antes de ver os
protocolos vamos analisar estes algoritmos.

[Link]. Algoritmo de Encaminhamento por Vector de Distância

Os protocolos de routing baseados em algoritmos de Encaminhamento por


Vector de Distância (Distance Vector Routing) baseiam-se na manutenção de
uma tabela por cada router na qual se estima a melhor “distância” (ou outra
métrica conhecida) a cada um dos outros routers da rede onde opera.
Essas tabelas são mantidas através da troca de mensagens entre routers
vizinhos.
Por exemplo, com base na topologia da parte (a) da figura seguinte, para que
J construa a sua tabela de encaminhamento ele terá que analisar as
mensagens recebidas dos routers vizinhos, exemplificadas na parte (b) da
figura seguinte:
Redes e Protocolos Internet Página 2.27

Os routers vizinhos do router J são o routers A, I, H, K.


Admite-se que o router J conhece a distância entre ele e os routers vizinhos A,
I, H, K e que essas distâncias são 8, 10, 12 e 6 respectivamente.
O router J recebe as mensagens dos routers vizinhos com as métricas de
cada um.
Nessa altura ele admite como percurso para cada um dos outros routers a
interface a que corresponder ao valor mínimo entre as somas da sua distância
a cada um dos routers vizinhos, com as métricas recebidas.
Por exemplo, o router J recebe dos routers vizinhos a lista de distâncias de
cada um deles.
Para calcular a sua distância ao router D ele calculará:
min(40+8, 27+10, 8+12, 24+6) = min(48, 37, 20, 30)= 20
escolhendo para tal o router H quando quiser encaminhar datagramas que
tenham como destino o router D.
Este algoritmo é também conhecido como algoritmo de Bellman-Ford ou de
Ford-Fulkerson e é utilizado em protocolos de routing como o Routing
Information Protocol (RIP) descrito na secção 2.4.10 (página 36).

[Link].1.O problema da contagem até ao infinito


Este algoritmo apresenta no entanto um sério problema na prática.

Diz-se que esse problema é que:


Redes e Protocolos Internet Página 2.28

O Algoritmo de Encaminhamento por Vector de Distância responde bem às


boas notícias, mas responde mal às más notícias.

Para entender melhor esta afirmação vamos ver um exemplo em que um


router A se liga a uma rede em que já estão outros 4 routers ligados de forma
sequencial e cuja métrica é 1 entre routers.

As distâncias ao router A vão sendo progressivamente disseminadas pela rede


tal como mostra a figura anterior e assim ao fim de 4 ciclos toda a rede fica a
conhecer a distância ao router A.
Vejamos agora o processo inverso na qual a ligação ao router A
repentinamente se desliga.

Neste caso, depois da 1ª troca de mensagens o router B vai pensar que pode
alcançar A através do router C pois este comunica-lhe uma distância de 2.
Depois da 2ª troca de mensagens o router C vai pensar que pode alcançar A
através do router B pois este comunica-lhe uma distância de 3.
Depois da 3ª troca de mensagens os routers B e D vão pensar que podem
alcançar A através do router C pois este comunica-lhe uma distância de 4.
E por aí fora até ao infinito.
Por este motivo, é comum definir o infinito como o caminho mais longo somado
de uma unidade.

[Link].[Link] de Horizonte Dividido


Várias soluções foram propostas para este problema da contagem até ao
infinito.
Redes e Protocolos Internet Página 2.29

Uma dessas soluções foi a do algoritmo de horizonte dividido (split orizon).


A ideia básica é de que:

Não é útil reenviar a mesma informação pela interface por onde ela foi
aprendida

Por exemplo na sequência de routers anteriores (A, B, C, D e E):


o C diria a D a verdade sobre a sua distância a A,
o mas C não informa B da sua distância a A
Da mesma forma:
o D diria a E a verdade sobre a sua distância a A,
o mas D não informa C da sua distância a A
Vamos ver como se comporta este algoritmo:

Assim, utilizando este algoritmo as más notícias propagam-se um hop por troca
de mensagens.
Há ainda uma variante que se chama de route poisoning split-horizon: em
que os nós enviam acotes em sentido contrário, mas informando que o seu
custo é infinito:

[Link]. Algoritmo de Encaminhamento por Estado de Ligação

Dado que o algoritmo de Distance Vector Routing apresenta desvantagens


em termos de tempo de convergência, ele foi substituído por um algoritmo
denominado de Encaminhamento por Estado de Ligação (em inglês Link
State Routing).
Este algoritmo é utilizado no protocolos de routing Open Shortest Path First
(OSPF) que iremos estudar mais à frente.
Redes e Protocolos Internet Página 2.30

O funcionamento do Link State Routing é decomponível em tarefas. Assim,


cada router deve:
1. Descobrir os seus vizinhos directos e descobrir os seus endereços de
rede
2. Medir o atraso ou o custo em relação a cada um desses vizinhos
3. Criar um pacote que contenha toda a informação apreendida
4. Enviar esse pacote a todos os outros routers
5. Calcular o caminho mais curto para cada um dos outros routers
Assim, a topologia completa e todos os atrasos são experimentalmente
medidos e distribuídos por todos os routers.
Em seguida pode ser utilizado o algoritmo de Dijkstra para encontrar o
caminho mais curto para cada um dos outros routers.
Vamos ver cada uma das etapas mais em detalhe.

[Link].[Link] 1- Descobrir os vizinhos


Para descobrir os seus vizinhos cada router envia uma mensagem de HELLO
em cada uma das suas linhas ponto a ponto.

No caso de haver ligações entre mais que dois pontos tem que se decompor
essas ligações considerando nós fictícios (nó N da figura anterior).

[Link].[Link] 2- Medir o custo da linha


A forma mais simples de medir o atraso entre routers vizinhos baseia-se em
troca de mensagens de ECHO Request e ECHO Reply.
Esses atrasos podem ou não incluir a carga do próprio router respectivamente
medindo ou não os tempos em que os pedidos de ECHO estão nas próprias
filas de espera do router.
Em alternativa em vez de atrasos é bastante comum utilizarem-se métricas que
reflectem o inverso do ritmo de transmissão de cada uma das interfaces.
Redes e Protocolos Internet Página 2.31

[Link].[Link] 3- Estrutura dos Pacotes


Cada pacote terá que conter:
1. A identidade do transmissor
2. Um número de sequência para distinguir mensagens repetidas
3. O tempo de validade (age) da informação de cada pacote
4. A lista de vizinhos com os atrasos (ou métricas) relativos para cada
um deles
A figura seguinte apresenta um exemplo dos pacotes que cada router enviará
em função da topologia.

[Link].[Link] 4- Distribuir os pacotes


A ideia fundamental é utilizar o flooding (inundação) para distribuir os pacotes
com a informação.
Para evitar a repetição de pacotes com a mesma informação, que viajem por
percursos diferentes, só são reenviados pacotes que tenham um número de
sequência novo.
Se não fosse utilizado outro identificador, a gestão deste do número de
sequência só por si tornar-se-ia complicada em situações em que um novo
router é inicializado, etc.
Por esse motivo, utiliza-se também o identificador de age. Este identificador
funciona como um tempo de vida (em segundos) que é decrementado segundo
a segundo pelos routers e indica a validade desta informação. Este
identificador é também decrementado durante o processo de flooding e
descartado no caso de atingir zero.
A figura seguinte apresenta a estrutura de dados do router B da figura anterior
utilizada para gerir a distribuição (ou flooding) de pacotes de informação.
Redes e Protocolos Internet Página 2.32

As flags de transmissão (quando a 1) significam que o pacote deve ser


enviado para a linha indicada.
As flags de confirmação ou ACK (quando a 1) significam que o pacote deve
ser confirmado para a linha indicada.
Por exemplo, o pacote de estado de enlace A chegou directamente, logo ele
deve ser enviado para os routers C e F e confirmado para A.
Da mesma forma, o pacote vindo de F deve ser encaminhado para A e C e
confirmado para F.
O pacote proveniente de E é diferente. Ele chegou de A e F, por isso só
necessita de ser enviado para C, mas confirmado tanto para A como para F.

[Link].[Link] 5- Cálculo do caminho mais curto


Depois de distribuir a informação para todos os routers o passo seguinte é o de
em cada router definir o caminho mais curto para cada um dos outros routers.
A informação recebida permite criar um gráfico de subrede completo com todas
as ligações entre routers representadas duas vezes (uma métrica para cada
sentido) ou uma vez (fazendo as médias das métricas dos dois sentidos).
Com base nessa representação pode aplicar-se em cada router o algoritmo
de Dijkstra para determinação do caminho mais curto em relação a cada um
dos outros routers.
Para melhor compreender este algoritmo vamos ver um exemplo.
A figura seguinte (a) apresenta um exemplo de uma rede:

Desejamos encontrar o caminho mais curto de A até D. Vamos ver como se


processa passo-a-passo:
(a) Começa-se por marcar o nó A como permanente.
Redes e Protocolos Internet Página 2.33

(b) Analisa-se cada nó adjacente a A alterando o rótulo com a distância a A


seguido do nó de onde essa distância foi avaliada (A). Surge assim
B(2,A) e G(6,A). De todos os rótulos torna-se permanente o rótulo
menor (ou seja B).

(c) Analisa-se cada nó adjacente a B adicionando ao rótulo a distância a B,


seguido do nó de onde essa distância foi avaliada (B). Surge assim
E(4,B) e C(9,B). De todos os rótulos torna-se permanente o rótulo menor
(ou seja E).
(d) Analisa-se cada nó adjacente a E adicionando ao rótulo a distância a E
se for menor que a que lá estava. Em caso afirmativo coloca-se a
identificação de onde ela foi avaliada (E). Surge assim G(5,E) e F(6,E).
De todos os rótulos torna-se permanente o rótulo menor (ou seja G).

(e) Analisa-se cada nó adjacente a G adicionando ao rótulo a distância a G


se for menor que a que lá estava. Em caso afirmativo coloca-se a
identificação de onde ela foi avaliada (G). Surge assim H(9,G). De todos
os rótulos torna-se permanente o rótulo menor (ou seja F).
(f) Analisa-se cada nó adjacente a F adicionando ao rótulo a distância a F
se for menor que a que lá estava. Em caso afirmativo coloca-se a
identificação de onde ela foi avaliada (F). Surge assim H(8,F). De todos
os rótulos torna-se permanente o rótulo menor (ou seja H).
Por fim já só falta o último nó que é o D.
Os resultados desse algoritmo vão assim definir as tabelas de
encaminhamento de cada um dos nós, ou seja de cada um dos routers.
No caso de uma sub-rede com n routers, cada um deles com k vizinhos, a
memória necessária para armazenar os dados de entrada é proporcional a kn,
o que em subredes grandes pode ser um problema.

2.4.9. Aspectos Gerais relativos a Protocolos de Routing


Os protocolos de routing têm um papel importante ao permitir o correcto
encaminhamento de datagramas IP.
Redes e Protocolos Internet Página 2.34

No entanto, estes protocolos não têm um papel activo na transferência de


dados de utilizador.
Em vez disso, os protocolos de routing são protocolos de controlo utilizados
entre routers para a troca de informação para a formação das tabelas de
encaminhamento.
Os protocolos de routing podem ser transportados sobre IP ou sobre um dos
protocolos de transporte (UDP ou TCP).
Quando transportados sobre o IP, eles terão que ser identificados por um
Protocol válido.
Quando transportados sobre o TCP ou UDP, eles terão que ser identificados
por um Porto válido.
Antes de falarmos dos principais protocolos de routing propriamente ditos,
vamos analisar alguns aspectos importantes.

[Link]. Relação entre Sistemas Autónomos e Routing

Numa rede internacional como a Internet, é muito pouco provável que apenas
seja utilizado um protocolo único para toda a rede.
Em vez disso a rede é normalmente organizada como um conjunto de
Sistemas Autónomos (ASs) cada um deles sendo administrado como uma
entidade diferente.
Cada AS terá a sua tecnologia de routing, que poderá ser diferente das
vizinhas.
Aos protocolos de routing utilizados dentro de uma AS chamam-se de Interior
Gateway Protocol (IGP).
Exemplos desses protocolos são o RIP e o OSPF.
Para fazer o routing entre ASs são utilizados protocolos de routing diferentes,
denominados de Exterior Gateway Protocols (EGP).

Quando se liga a rede interna de uma empresa à Internet, não é desejável nem
conveniente permitir a troca de informação de routing com os routers do ISP.
Por isso se houver necessidade de troca de informação de routing utilizam-se
protocolos EGPs (Por exemplo EGP e BGP)

[Link]. Classless versus Classful Routing

Diz-se que os protocolos de routing são do tipo Classeful quando estes


apenas consideram as classes de endereços A B, C para fazer
encaminhamento.
Por exemplo em Classful routing ao endereço [Link] estará associado
uma classe B, cuja máscara é [Link]. A máscara está subjacente.
Os protocolos de routing mais actuais já consideram que existem endereços
que não pertencem às classes A, B, C.
Redes e Protocolos Internet Página 2.35

Por isso eles são classificados como protocolos de routing Classless e para
que funcionem é necessário que os protocolos de routing utilizem e divulguem
a máscara de subrede associada a um endereço.
A isto chama-se de Variable Length Subnet Masks (VLSM).
Já aqui estudamos o subnetting que permite dividir o espaço de
endereçamento utilizando subnetIDs. A ideia era a de dividir o espaço de
endereçamento de uma classe em subredes.
De forma semelhante, ao nível do routing existe ainda a possibilidade de
agregar trajectos, com a vantagem de se diminuírem as tabelas de
encaminhamentos.
Ambos são exemplos da necessidade de se utilizarem protocolos de routing
classless.

[Link]. Agregação de Rotas- Supernetting

A técnica de agregar trajectos para diminuir as tabelas de encaminhamento é


muitas vezes denominada de supernetting (a Cisco chama-lhe Route
Summarization) e suporta-se em máscaras de subrede de tamanho variável
(Variable Length Subnet Masks – VLSM)

Por exemplo, é mais eficiente encaminhar utilizando uma única rota identificada
por [Link], do que 254 rotas começando em [Link] e terminando em
[Link].

Por isso o supernetting pode poupar muito espaço numa tabela de


encaminhamento.
Para melhor compreender a vantagem do supernetting vamos ver alguns
exemplos.

[Link].[Link] de Supernetting de [Link] até [Link]


Por exemplo, queremos fazer o supernetting de [Link] até [Link] para que
estes façam parte da mesma entrada de uma tabela de encaminhamento.
O primeiro passo é colocar tudo em binário:
[Link] 00001010.00000001.00000000.00000000
[Link] 00001010.00000010.00000000.00000000
[Link] 00001010.00000011.00000000.00000000
[Link] 00001010.00000100.00000000.00000000
[Link] 00001010.00000101.00000000.00000000
[Link] 00001010.00000110.00000000.00000000
[Link] 00001010.00000111.00000000.00000000
No segundo passo, repare que não se mexeu na parte sublinhada.
Ou seja todos os endereços [Link]/13 podem ser agregados num mesmo
trajecto.
Ou seja, ao nível da tabela de routing apenas necessitamos de uma entrada
para os destinos [Link] com uma máscara de rede [Link].
Redes e Protocolos Internet Página 2.36

[Link].[Link] de Supernetting de [Link] até [Link]


Por exemplo, queremos fazer o supernetting de [Link] até [Link]
para que estes façam parte da mesma entrada de uma tabela de
encaminhamento.
O primeiro passo é colocar tudo em binário:
[Link] 10101100.00010000.00010000.00000000
[Link] 10101100.00010000.00010001.00000000
[Link] 10101100.00010000.00010010.00000000
[Link] 10101100.00010000.00010011.00000000
[Link] 10101100.00010000.00010100.00000000
[Link] 10101100.00010000.00010101.00000000
[Link] 10101100.00010000.00010110.00000000
[Link] 10101100.00010000.00010111.00000000
[Link] 10101100.00010000.00011000.00000000
[Link] 10101100.00010000.00011001.00000000
[Link] 10101100.00010000.00011010.00000000
[Link] 10101100.00010000.00011011.00000000
[Link] 10101100.00010000.00011100.00000000
[Link] 10101100.00010000.00011101.00000000
[Link] 10101100.00010000.00011111.00000000
No segundo passo, repare que não se mexeu na parte sublinhada a que
correspondem 20 bits.
Logo podemos agregar as rotas [Link] com a máscara [Link]
Bem este já é bem mais trabalhoso. Uma forma mais simples é apenas
pegarmos nos extremos e ver que bits variaram:
[Link] 10101100.00010000.00010000.00000000
[Link] 10101100.00010000.00011111.00000000
Assim chegaremos ao mesmo resultado de uma forma mais simples.

2.4.10. Routing Information Protocol (RIP)


O protocolo Routing Information Protocol (RIP) é considerado a mãe de
todos os protocolos de routing.
O RIP utiliza o algoritmo Vector de Distância (Distance Vector) [tal como
descrito em [Link] pág. 26] utilizando como métrica a contagem de elementos
de encaminhamento que atravessa (denominado de contagem de saltos- hop
count).
O RIP é amplamente utilizado para fazer o encaminhamento de tráfego na
Internet, sendo classificado como um Interior Gateway Protocol (IGP), o que
significa que ele efectua o encaminhamento dentro de um sistema autónomo.

[Link]. Versões RIP

A versão 1 do RIP é descrito no RFC1058 e a versão 2 no RFC2453.


Redes e Protocolos Internet Página 2.37

O RIPv1 apenas contém a quantidade mínima de informação necessária para


que os routers encaminhem as mensagens. Para além disso contém também
uma grande quantidade de espaço não utilizado.
Por isso, RIP v2 (RFC2453 de 1998) actualizou a versão anterior nos seguintes
aspectos:
o o RIP v1 não considera que existem Sistemas Autónomos (AS)
o o RIP v1 não considera as interacções com outros protocolos de
routing IGP e EGP
o o RIP v1 não considera o subnetting
o o RIP v1 não considera a autenticação
o o RIP v1 não utiliza as subnet masks para determinar o caminho de um
datagrama,
O protocolos de routing RIPv1 é Classeful. No caso do RIPv2 este já é um
protocolo Classless.

[Link]. Especificação do Protocolo RIP

O RIP é utilizado para a troca de informação entre routers, informação essa


que se destina a ser utilizada na definição de rotas.
Em cada router que utilize o RIP é suposto existirem pelo menos duas
interfaces de rede ligadas.
Cada uma das redes ligadas nessas interfaces chamam-se de “rede
directamente ligada”.
A cada rede directamente ligada terá que estar associado:
o uma métrica (ou custo) – tem normalmente o valor de 1
o um endereço IPv4,
o uma subnet mask

No RIP a métrica será um inteiro entre 1 e 15.


Os valores 16 e superiores correspondem ao infinito.

No RIP, todos os routers vizinhos de um determinado router anunciam nas


suas redes directamente ligadas as suas tabelas de routing informando
quantos routers são alcançáveis e quantos saltos (hops) são necessários para
os alcançar.
O router que receber estas mensagens escolherá como trajecto o mais curto
para cada um dos outros routers.

[Link]. Temporizadores RIP

O RIP mantém vários temporizadores por forma a garantir que os dados


guardados são válidos:
Redes e Protocolos Internet Página 2.38

o update timer: Mesmo que não existam mudanças nas tabelas de


routing, cada um dos routers que corre o RIP deve publicitar a sua
tabela a cada 30 segundos.
o invalid timer: Caso não chegue uma actualização da informação
constante da tabela de routing de um vizinho num período de 180
segundos, então as entradas da tabela de routing correspondentes são
marcadas como inválidas.
Nesse momento são definidas novas rotas para os datagramas. Claro que as
métricas dessas novas rotas serão muito provavelmente superiores.
o flush timer (também denominado de Garbage Collection Timer): Se,
depois de ser considerado inválido não chegar nenhuma actualização
durante mais 120 segundos (300 s no total), então as entradas
correspondentes são apagadas da tabela de routing (Os routers cisco
utilizam um flush timer de 60 segundos ou seja no total dará 240s).
Sempre que a topologia da rede se alterar, o router terá que enviar uma
mensagem (denominada de triggered update) a comunicar aos seus vizinhos
que essa alteração se verificou.

[Link]. Formato das Mensagens RIPv1 e RIPv2

As mensagens RIP são transportadas em datagramas UDP.


Esses datagramas RIP/UDP/IP são enviados de 30 em 30 segundos para o
endereço de:
o broadcast [Link] no caso do RIPv1 ou directamente ao router
que o requisitou no caso de uma resposta a um pedido de actualização,
o IP Multicast [Link] no caso do RIPv2 ou directamente ao router que o
requisitou no caso de uma resposta a um pedido de actualização,
Em ambos os casos o TTL será igual a 1, o que apenas permitirá o datagrama
chegar ao router mais próximo.
Cada router que utilize o RIP envia e recebe datagramas no porto UDP 520.
A figura seguinte apresenta a estrutura do pacote:
1 byte 1 byte 1 byte 1 byte

Comando Versão Campo com Zeros

Autenticação (Opcional)

Route Entry (RTE)- Entradas RIP (20 bytes cada)

...
Redes e Protocolos Internet Página 2.39

O campo de Comando conterá:


o Pedido (Comando=1)- um pedido a um determinado router para que
envie toda ou uma parte da sua tabela de routing.
o Resposta (Comando=2)- uma mensagem contendo toda ou uma parte
da tabela de encaminhamento. Esta mensagem pode ser enviada em
resposta a um pedido ou de forma não solicitada.
O campo de Versão identificará a versão 1 ou 2.
Depois do campo de autenticação (explicado mais à frente) podem existir entre
1 e 25 entradas RIP.
No caso do RIPv1 cada uma das entradas RIP tem o seguinte formato:
1 byte 1 byte 1 byte 1 byte

Identificador da Família de Endereços Campo com Zeros

Endereço IPv4 (4 bytes)

Campo com Zeros (4 bytes)

Campo com Zeros (4 bytes)

Métrica (4 bytes)

No caso do RIPv2 cada uma das entradas RIP tem o seguinte formato:
1 byte 1 byte 1 byte 1 byte

Identificador da Família de Endereços Identificador de Trajecto

Endereço IPv4 (4 bytes)

Subnet Mask (4 bytes)

Next hop (4 bytes)

Métrica (4 bytes)

O campo de Identificador da Família de Endereços identifica o protocolo de


rede a que pertencem os dados do pacote. Na prática só se utilizam dois
valores:
o 0x0002- Internet Protocol Routing Information Protocol
o 0xFFFF- Autenticação (apenas no RIPv2)
O campo de Identificador de trajecto (Route Tag em Inglês) é utilizado para
interagir com outros protocolos de routing como os EGP (utilizado apenas no
RIPv2).
O campo de Endereço IPv4 identifica o endereço ou grupo de endereços a
que se destina esta Entrada RIP:
o No caso do RIPv1 este campo deverá ser preenchido com um endereço
do tipo classful e a subnet mask deverá ser preenchida com zeros.
Redes e Protocolos Internet Página 2.40

o No caso do RIPv2 este campo deverá ser preenchido com um endereço


classless sendo por isso acompanhado pela subnet mask
correspondente.
O campo de Métrica conterá um valor entre 1 e 16 (como já foi dito o valor 16 é
considerado como infinito) indicando a distância entre o router que emitiu esta
mensagem e o Endereço IPv4 especificado.
Finalmente o campo de Next Hop (utilizado apenas no RIPv2) identifica o
endereço IP do próximo host para onde os datagramas IP devem ser enviados.
O campo de Next Hop é opcional. Isto é, só faz sentido ser utilizado em
determinadas condições.
Por exemplo considere o caso apresentado na figura seguinte:
Router A

[Link]

[Link]

Router B
Router C

Router D
Admita que todos os routers estão a correr o protocolo RIP, mas que o router C
não faz anúncios RIP na interface Ethernet da rede [Link].
Dado que no RIP a métrica é dada pelo número de hops, neste caso o caminho
mais curto entre o router A e a rede [Link] passa pelo router C e não pelo
router que envia anúncios (router B).
Nesse caso os anúncios RIP enviados pelo router B para o router A devem
identificar que o Next Hop do router A para a rede [Link] deverá ser feita
através do router C.
No caso de termos dois routers directamente ligados, o campo de Next Hop
deverá conter [Link], indicando que o routing deverá ser feito para o router
que originou a mensagem.

[Link].1. Autenticação
Um dos aspectos importantes introduzidos no RIPv2 que não existia na
primeira versão foi a autenticação.
A autenticação é importante porque reduz a possibilidade de utilizadores mal
intencionados enviarem mensagens de routing que alterem as tabelas de
encaminhamento.
A figura seguinte apresenta o campo de autenticação:
1 byte 1 byte 1 byte 1 byte

0xFFFF Tipo de Autenticação


Redes e Protocolos Internet Página 2.41

...
Conteúdo de Autenticação (16 bytes)
...

Actualmente, utilizam-se os tipos de autenticação baseado numa Password em


formato de texto (Tipo de Autenticação = 2) e o Message Digest 5 (MD5)
especificado no RFC1321.

[Link]. Configuração do Protocolo RIP

A configuração de um router com o protocolo RIP é relativamente fácil,


havendo poucos parâmetros a configurar.
Por exemplo, para programar um router Cisco com o protocolo de
encaminhamento RIPv1 poder-se-ia proceder do seguinte modo:
Router#configure terminal Entrar no modo de configuração
Router(configure)#router rip Inicializar o processo de RIP
Router(configure-router)#network [Link] Associar rede com o processo de RIP
Router(configure-router)#network [Link] Associar rede com o processo de RIP
Router(configure-router)#end Sair do modo de configuração
Router#write Escrever para a configuração de arranque
Como se pode verificar o RIP é activado por interface.
Para anular a configuração do protocolo RIP deve procede-se do seguinte
modo:
Router#configure terminal Entrar no modo de configuração
Router(configure)#no router rip Finalizar o processo de RIP
Router(configure-router)#end Sair do modo de configuração
Router#write Escrever para a configuração de arranque
As interfaces têm o horizonte dividido (slip-horizon) configurado por omissão. É
possível desligar o slip-horizon usando o comando no ip slip-horizon. Veja-se o
exemplo seguinte:
Router#configure terminal Entrar no modo de configuração
Router(config)#interface Ethernet 0 Modo de configuração do interface Ethernet 0
Router(config-if)#no ip slip-horizon Desligar o slip-horizon
Router(config-if)#exit Sair do modo de configuração do interface Ethernet 0
Router(config)#interface Ethernet 1 Modo de configuração do interface Ethernet 1
Router(config-if)#no ip slip-horizon Desligar o slip-horizon
Router(config-if)#end Sair do modo de configuração do interface Ethernet 1
Router#write Gravar para a configuração de arranque
Para programar um router Cisco com o protocolo de encaminhamento RIP v2
deve proceder-se do seguinte modo:
Router#configure terminal Entrar no modo de configuração
Router(configure)#router rip Inicializar o processo de RIP
Router(configure-router)#version 2 Definir o processo como de RIPv2
Router(configure-router)#network [Link] Associar rede com o processo de RIP
Router(configure-router)#network [Link] Associar rede com o processo de RIP
Router(configure-router)#end Sair do modo de configuração
Router#write Escrever para a configuração de arranque
Redes e Protocolos Internet Página 2.42

Apesar de ter dado aqui estes exemplos, há mais parâmetros não referidos e
que podem ser configurados como por exemplo as palavras de autenticação,
etc.

2.4.11. Open Shortest Path First (OSPF)


Originalmente, o protocolo de Interior Gateway Protocol (IGP) usado na
Internet era o Routing Information Protocol (RIP). No entanto o RIP
apresentou várias limitações, como por exemplo o problema da contagem até
ao infinito e, em geral, uma convergência lenta. Além disso, o RIP só funciona
bem em sistemas pequenos.
Por isso, verificou-se a necessidade da substituição deste protocolo. Em 1988,
o IETF começou a trabalhar num sucessor, chamado Open Shortest Path First.
O protocolo de routing Open Shortest Path First (OSPF) é um protocolo de
estado de ligação (Link State Routing Protocol) que utiliza o algoritmo de
Dijkstra para determinar o caminho mais curto para um determinado destino.
Actualmente, o OSPF é provavelmente o protocolo Interior Gateway Protocol
(IGP) mais utilizado, muito provavelmente porque não é um protocolo
proprietário.
O “Open” de OSPF significa que este protocolo é um protocolo aberto e
normalizado.
Assim, sendo aberto, o OSPF permite o interfuncionamento entre
equipamentos de diferentes fabricantes.
O OSPF é um protocolo bastante elaborado e vários livros se dedicam apenas
a este tópico.
A versão 2 do OSPF é normalizada no RFC2328.

[Link]. Vantagens OSPF

O OSPF apresenta várias vantagens das quais se destacam:


1. Suporta diversas métricas: no RIP, a métrica utilizada é o número de
saltos. O OSPF permite o uso de diversas métricas, como por exemplo:
o atraso (delay), ritmo (throughput), e a fiabilidade (reliability).
2. Algoritmo dinâmico: o OSPF adapta-se rápida e automaticamente a
alterações na topologia da rede, usando o flooding das alterações
detectadas por um nó para todos os outros. É uma condição necessária
para o funcionamento correcto do protocolo que todos os nós possuam
uma cópia actualizada do mapa da rede.
3. Balancear de carga: o OSPF permite a divisão da carga entre o
primeiro melhor caminho e o segundo melhor caminho. A divisão do
tráfego melhora a eficiência do encaminhamento. Por exemplo, se um
link A é duas vezes mais rápido que um link B, faz sentido que 2/3 do
tráfego total do router seja transferido para o link A e 1/3 para o link B.
Redes e Protocolos Internet Página 2.43

4. Compatibilidade com sistemas hierárquicos: nenhum router é capaz


de conhecer toda a topologia da Internet. O OSPF permite que o router
não seja obrigado a conhecer toda a topologia da rede. O router só
precisa conhecer a topologia da "área" a que ele pertence. (A definição
de área é feita já a seguir).
5. Segurança: o OSPF possui um esquema de autenticações para garantir
que apenas routers confiáveis propaguem informações. É possível
autenticar pacotes OSPF através de palavras passe. Os routers de uma
mesma área devem ser configurados com a mesma palavra passe.
6. Múltiplas áreas: Quanto maior for um Sistema Autónomo (AS), mais
difícil é a sua gestão. O OSPF permite-nos dividir o AS em áreas
independentes uma das outras, tal como apresentado na figura seguinte.
Os routers de uma determinada área só conhecem a topologia da(s)
área(s) a que pertence(m). Existe uma área chamada área de
backbone (ou núcleo em português), cujos routers interligam diferentes
áreas. É o administrador que define quantas áreas irão existir e quais
serão os seus routers.

[Link]. Custos por Interface OSPF

O OSPF é baseado no algoritmo Shortest Path First (SPF). O OSPF atribui


automaticamente um custo a cada interface de um router.
Por default, o custo atribuído a uma interface baseia-se na seguinte fórmula:
Custo OSPF = 100 000 000 / (Largura de banda da Interface)
em que 100 000 000 representa uma largura de banda de 100Mbps.
Assim, os custos para uma rede:
o Fast Ethernet = Custo OSPF 1
o Ethernet = Custo OSPF 10
Para que estes valores existam é necessário configurar estas larguras de
banda por cada uma das interfaces.
O valor de referência 100 000 000 pode também ser alterado nos routers.
Por exemplo isso será necessário no caso de termos redes Gigabit Ethernet
alterando o valor de referência para 1000 000 000.
Redes e Protocolos Internet Página 2.44

[Link]. Áreas OSPF

Como já foi dito, o OSPF divide uma AS em várias áreas independentes. A


utilização destas áreas é feita no sentido de permitir uma melhor escalabilidade
da rede.
Uma área pode ser vista como uma generalização de uma rede subnetted.
Para identificar cada área utiliza-se um número inteiro de 32 bits entre 0 e
124023. As áreas OSPF podem também ser representadas através de uma
notação dotted decimal – por exemplo [Link] ou [Link].
Em qualquer dos casos o router interpreta-a como um inteiro de 32 bits.
A área de backbone é identificada como área número 0 e todas as outras
áreas têm que comunicar através da área 0.
A segmentação permite estabilizar a rede. No OSPF as alterações de topologia
são as principais desencadeadoras de mensagens OSPF. Qualquer alteração
desencadeia o cálculo do algoritmo de Dijkstra durante o qual o router pára o
processo de routing. Assim ao segmentar a rede em áreas, a alteração da
topologia numa determinada área não obriga as outras áreas (incluindo a de
backbone) a calcular o algoritmo de Dijkstra.
O OSPF distingue quatro classes de routers não mutuamente exclusivas:
1. Routers Internos (Internal Routers- IR)- quando só se ligam a outros
routers dentro de uma área
2. Routers de Borda de Área (Area Border Routers- ABR)- quando
interligam duas ou mais áreas,
3. Routers de Backbone- quando pertencem ao backbone
4. Routers de Fronteira do AS (AS Boundary Routers- ASBR)- quando
interagem com routers de outros ASs.

[Link]. Funcionamento OSPF

O OSPF “corre” directamente sobre datagramas IP, tendo como identificador


de Protocolo no IP o valor 89.
Em termos de funcionamento, o OSPF suporta-se em cinco tipos fundamentais
de mensagens:
Redes e Protocolos Internet Página 2.45

Tipo de Mensagem Descrição


1 Hello Usada para descobrir e manter o vizinhos
2 Database Description Envia o conteúdo total da tabela de estado de ligação
3 Link State Request Solicita informações sobre uma determinada ligação
4 Link State Update Fornece os custos aos seus vizinhos
5 Link State Acknowledges Confirma a mensagem de Link State Update
Todas estas mensagens partilham entre elas um cabeçalho comum.
Quando é inicializado, um router envia mensagens de Hello em todas as suas
linhas ponto-a-ponto, transmitindo-as por todas as suas interfaces.
Com base nas respostas que obtiver ao Hello, cada router descobre quem são
os seus vizinhos.
No caso das WANs, (redes multiponto sem difusão tipicamente ditas Non-
Broadcast Multiple Access - NBMA) o router necessita de alguma informação
de configuração para saber quem contactar. Ou seja nestas redes o router não
pode simplesmente enviar a mensagem de Hello em broadcast a perguntar
quem são os outros routers.
No caso de redes de multiponto com difusão (broadcast) ou multiponto sem
difusão (NBMA) a comunicação entre todos os routers pode implicar muitos
contactos.
Por exemplo, a figura seguinte mostra uma rede Ethernet como exemplo de
uma rede multiponto com difusão:

Router A Router B

Router C Router E
Router D

Nestes casos, não há utilidade em que cada router comunique com todos os
outros routers. Com base nos pacotes de Hello, um dos routers é eleito como
router designado (designated router - DR) e um outro como router
designado de backup (backup designated router- BDR) para o caso do
router designado falhar.
Assim, nestes casos a comunicação simplifica-se:

Router A -DR Router B - BDR

Router C Router E
Router D
Redes e Protocolos Internet Página 2.46

A escolha do router designado é feita automaticamente com base em vários


factores, um dos quais (denominado de Router Priority) configurado pelo
administrador por cada interface do router.
O router designado é considerado adjacente por todos os outros routers e
troca informações com eles.
Depois de definidos quem é adjacente a quem com base nas mensagens de
Hello, os routers adjacentes iniciam um processo de troca de informação com
vista a criar as tabelas estado de ligação (link state). Para tal são trocadas
mensagens de Database Description entre os routers adjacentes.
Depois de sincronizar informações com os routers adjacentes, um router pode
determinar que uma das suas entradas da tabela de estado de ligação está
obsoleta. Nesse caso esse router envia uma mensagem de Link State
Request a pedir explicitamente a actualização dessa entrada.
Em resposta ele recebe uma mensagem de Link State Update.
O flooding de dados de estados de ligação é também feito com base em
mensagens de Link State Update.
Quando não há alterações a registar, o flooding ocorre habitualmente só de 30
em 30 minutos.
As mensagens de Link State Update e Database Description são
constituídas por vários Link State Advertisements (LSAs).
Os Link State Advertisements é que contêm a informação válida (ou seja a
lista de vizinhos com os atrasos relativos para cada um deles) que será
depois utilizada para construir as tabelas de routing.
Estão definidos 5 tipos de LSAs:
o Router LSAs (tipo 1): Gerado por um router e enviado para todos os
outros routers dentro de uma área (não passa para o exterior dessa
área). Contém a informação sobre esse router e as suas interfaces.
o Network LSAs (tipo 2): Gerado por um Router Designado (DR) numa
rede multiponto e enviado para todos os outros routers dentro dessa
rede multiponto (não passa para o exterior dessa área). Contém uma
lista dos routers ligados à rede multiponto.
o Summary LSAs (tipo 3): Gerado por um Area Border Router (ABR) e
enviado para todos os routers da área a que está ligado. Descreve os
trajectos para as áreas exteriores.
o ASBR Summary LSAs (tipo 4): Tal como o anterior é gerado por um
Area Border Router (ABR) e enviado para todos os routers da área a
que está ligado. Descreve os trajectos para chegar a um Autonomous
System Boundary Router (ASBR).
o AS External LSAs (tipo 5): Gerado por um Autonomous System
Boundary Router (ASBR) e enviado para todos os routers do domínio
OSPF. Descreve os trajectos para ASs exteriores.
Redes e Protocolos Internet Página 2.47

[Link]. Formato das Mensagens OSPFv2

Como foi anteriormente dito, o OSPF “corre” directamente sobre datagramas


IP, tendo como identificador de Protocolo no IP o valor 89.
Todos os pacotes OSPF começam por ter um cabeçalho comum.
Este cabeçalho comum tem um comprimento de 24 bytes sendo apresentado
na figura seguinte com o fundo mais escuro:

1 byte 1 byte 1 byte 1 byte

Versão Tipo Comprimento do Pacote

Identificação do Router

Identificação da Área

Checksum AuType

Authentication

Authentication

...

O campo de Versão indicará a versão do OSPF. Neste caso estamos a


analisar a versão2.
O campo de Tipo indicará o tipo de mensagem conforme descrito
anteriormente, ou seja com a seguinte numeração:

Tipo de Mensagem
1 Hello
2 Database Description
3 Link State Request
4 Link State Update
5 Link State Acknowledges
Cada um dos tipos de mensagem definirá um pacote próprio que se segue ao
cabeçalho comum (para obter informações mais detalhadas consultar o
Apêndice A do RFC2328).
O campo de Comprimento de Pacote conterá o tamanho total do pacote
OSPF em bytes.
O campo de Router contém um identificador relativo ao router que emitiu esta
mensagem. Este identificador deverá ser único em toda a AS.
O campo de Área identifica a área onde se insere este router.
O campo de AuType identifica o procedimento de autenticação a ser utilizado
pelo pacote. Este campo é seguido de um campo de 64 bits que transporta
dados relativos ao processo de autenticação.
Redes e Protocolos Internet Página 2.48

[Link]. Configuração do Protocolo OSPF

A configuração de um router com o protocolo OSPF é bastante mais complexa


do que a de um router RIP.
Vamos aqui analisar alguns comandos que se utilizam no caso concreto de um
router Cisco.
Para configurar o Router ID recorre-se à interface loopback:
Router#configure terminal Entrar no modo de configuração
Router(config)#interface Loopback1 Entrar no modo de configuração da
interface Loopback1
Router(config-if)#ip address 10.1.254.X [Link] Atribui um endereço de Loopback
ao router. O valor de X depende do
router podendo ser 1, 2, etc.
Router(config-if)#end Sair do modo de configuração
Router#write Guardar na configuração de
arranque
Para iniciar o processo de encaminhamento OSPF:
Router#configure terminal Entrar no modo de configuração
Router(config)#router ospf 1 Iniciar o processo de
encaminhamento OSPF com
Process ID=1. O Process ID tem
um significado local.
Router(confg-router)#network [Link] [Link] area 0 Associar uma rede com o
processo e definir a que área
pertence.
Router(config-router)#network [Link] [Link] area 0 Associar uma rede com o
processo e definir a que área
pertence.
Router(config-router)#end Sair do modo de configuração
Router#write Guardar na configuração de
arranque.
Repare que agora no comando network é usada a máscara com os bits
negados, isto é, [Link] em vez do habitual [Link]. Como já foi dito,
pelo menos uma das redes tem de pertencer à área 0 (backbone).
Para anular a configuração do protocolo OSPF deve proceder-se do seguinte
modo:
Router#configure terminal Entrar no modo de configuração.
Router(config)#no router ospf 1 Finalizar o processo de OSPF.
Router(confg-router)#end Sair do modo de configuração.
Router#write Escrever para a configuração de arranque.
Por omissão, o custo de cada interface é calculada com base na largura de
banda respectiva. No entanto para alterar os custos de uma interface pode
proceder-se da seguinte forma:
Router#configure terminal Entrar no modo de configuração
Router(config)#interface Ethernet 1 Entrar no modo de configuração do interface Ethernet 1
Router(config-if)#ip ospf cost 5 Alterar o custo do interface para 5
Router(config-if)#end Sair do modo de configuração
Router#write Guardar na configuração de arranque
Redes e Protocolos Internet Página 2.49

Ainda em relação à configuração de uma interface, no caso de termos que


escolher entre vários routers um router designado de uma rede multiponto,
podemos dar maior ou menor prioridade a um determinado router utilizando o
comando:
Router(config-if)#ip ospf priority <valor> Alterar a prioridade de uma interface

2.4.12. Comparação entre os principais Protocolos de


Routing
Para além dos protocolos de routing RIP e OSPF há ainda outros protocolos
que se utilizam e que não foram aqui vistos.
Esses protocolos são:
o Interior Gateway Routing Protocol (IGRP)
o Enhanced Interior Gateway Routing Protocol (EIGRP)
o Intermediate System to Intermediate System (IS-IS)
o Border Gateway Protocol Version 4 (BGP4)
A tabela seguinte compara-os:

Antes de falar sobre os outros protocolos de routing, lembremos que como


vimos anteriormente o RIPv1 não é capaz de encaminhar com base em classes
de endereços diferentes das A, B e C. O RIPv2 veio actualizar o RIPv1 nesta
capacidade, por isso este protocolo é caracterizado como Classless Inter-
Redes e Protocolos Internet Página 2.50

Domain Routing (CIDR) e utiliza para tal Variable Length Subnet Masks
(VLSM).
O protocolo de routing Interior Gateway Routing Protocol (IGRP) é uma
adaptação proprietária do RIP feita pela Cisco. Por isso este protocolo não
funciona com routers de outros fabricantes. As maiores diferenças entre o RIP
e o IGRP são que o IGRP aceita uma contagem de hops até 255 (ao contrário
dos 15 hops do RIP), e utiliza outras métricas quando calcula as distâncias dos
links. Em particular, o IGRP permite a utilização de métricas dinâmicas como a
Largura de Banda, Atraso, Carga e/ou Fiabilidade.
O Enhanced Interior Gateway Routing Protocol (EIGRP) como o próprio
nome indica é um melhoramento do IGRP, sendo também um protocolo
proprietário da Cisco. Este protocolo baseia-se num algoritmo denominado de
DUAL (Diffusing Update ALgorithm), que é uma combinação dos algoritmos de
vector de distância e estado de ligação. Este protocolo também um
protocolo que é caracterizado como CIDR e VLSM.
Na sua versão original, o protocolo Intermediate System to Intermediate
System (IS-IS) foi desenvolvido pela ISO (norma ISO 10589) para ser utilizado
pelo serviço connectionless do modelo OSI, podendo em alternativa suportar o
protocolo IP. Com o advento do OSPF este protocolo caiu em desuso.
O protocolo Border Gateway Protocol (BGP) cuja versão actual é a versão 4
(BGP4) tem-se tornado no protocolo de routing de eleição como protocolo de
routing entre ASs, ou seja é um protocolo de routing do tipo Exterior Gateway
Protocol (EGP). Utiliza o algoritmo de vector de distância que encontra o
menor caminho com base no menor número de ASs que tem que atravessar.

2.5. IP Multicast
O IP Multicast foi pela primeira vez introduzido por Stephen Deering na sua
dissertação de Doutoramento em 1988 e testado, numa escala considerável,
com uma "audiocast" numa reunião do IETF em 1992.
Apesar de durante muitos anos o IP Multicast ter tido pouca aceitação por parte
dos ISP, em consequência dos riscos que acarreta, a introdução recente de
conteúdos de vídeo difusão sobre redes IP, nas quais os operadores de
Internet passam a ser fornecedores de serviços de IPTV, levou a que passasse
a ser considerada uma solução importantíssima para que a rede consiga
suportar distribuição de vídeo ponto-multiponto de forma escalável.

2.5.1. Mas o que é o IP Multicast?


Redes e Protocolos Internet Página 2.51

Basicamente, o IP Muticast oferece a possibilidade de transmitir dados (ao


nível IP) numa configuração ponto-multiponto. Ou seja um emissor e múltiplos
receptores em simultâneo.

Sem IP Multicast

Servidor
de Vídeo

Com IP Multicast

Servidor
de Vídeo

Um endereço IP Mutlicast não é por isso atribuível a um terminal, ou seja não


se pode configurar um terminal com um endereço da gama [Link] a
[Link] (endereço classe D).
O que acontece neste caso é que os terminais, caso queiram receber dados de
um desses endereços, têm que se registar no grupo correspondente,
identificado pelo endereço IP Multicast correspondente.
Para tal utilizam um protocolo definido para esse fim denominado Internet
Group Management Protocol (IGMP).

2.6. IP Virtual Private Networks


Actualmente a Internet disponibiliza um meio de comunicação a baixo custo
quando comparado com as soluções clássicas de comutação de pacotes ou de
circuitos.
Este tipo de vantagem torna-se mais óbvia para empresas que tenham
delegações ou colaboradores geograficamente distribuídos e que até há
Redes e Protocolos Internet Página 2.52

poucos anos, não tinham outra alternativa senão alugar linhas dedicadas
(telefónicas ou de dados) com custos muito elevados.
Os custos elevados pagos por essas linhas e os custos comparativamente
baixos das ligações via Internet fizeram com que muitas empresas utilizassem
a Internet como meio de interligação das suas delegações constituindo aquilo
que é hoje denominado de IP Virtual Private Networks (VPNs).
Devo salientar que as VPNs IP não são as únicas VPNs existentes. Outras
VPNs existem que se baseiam no ATM ou no Frame Relay para fazer algo
semelhante.

No exemplo da figura anterior b), tecnicamente para que se crie uma VPN
suportada na Internet capaz de interligar distintas redes, é necessário que os
datagramas IP entre as delegações sejam encapsulados em outros
datagramas IP (IP dentro de IP) e que os router terminais os encaminhem para
o local certo.
Apesar de se poderem implementar VPNs em vários níveis do modelo OSI,
vamos em seguida analisar a solução que se utiliza para implementar VPNs ao
nível IP, que passa pela utilização do protocolo IPsec.

2.6.1. IPsec
Dado que o protocolo IP não fornece funções de segurança dos dados que
transporta, o IETF definiu um conjunto de protocolos Internet Protocol
Security (IPsec) [RFC 2401, 2412, 4301, 4309] que disponibilizam serviços de:
- Encriptação de Tráfego (por forma a que outros terminais estranhos à
comunicação não consigam aceder aos dados transmitidos),
- Validação de Integridade dos dados transportados (proteger contra
tentativas de alteração do conteúdo durante o percurso do tráfego),
- Autenticação mútua dos elementos extremos da comunicação e
- protecção anti-replicação (protecção contra a replicação de uma sessão
segura).
O protocolo IPsec opera no nível de rede, o que protege protocolos de nível
superior, incluindo o TCP ou UDP, sem necessidade de alterar as aplicações
de nível superior tal como acontece com outros protocolos pertencentes ao
nível de Aplicação (do modelo OSI) tais como o Transport Layer Security
Redes e Protocolos Internet Página 2.53

(TLS) (ou o seu antecessor Secure Sockets Layer (SSL)) e o Secure Shell
(SSH).

[Link]. Modos de Funcionamento

O IPsec considera dois modos de estabelecimento de uma comunicação


segura (Secure Association, SA) entre dois extremos de uma comunicação, o
modo de transporte e o modo de túnel.
Em ambos os casos, utiliza-se normalmente um protocolo denominado IP
Encapsulating Security Payload (ESP) [RFC4303]. Para além do ESP, há
uma outra solução, que não garante a confidencialidade dos dados
transportados, que se suporta na utilização de um cabeçalho de Authentication
Header (AH).
Utilizando o IP Encapsulating Security Payload (ESP) no modo de transporte
(representado na figura seguinte), apenas os dados transportados dentro do IP
(ou seja o seu payload) são encriptados sendo estes encapsulados num pacote
ESP. O conjunto ESP + Dados é depois transportado, utilizando o mesmo
cabeçalho IP do pacote original (ver figura seguinte).

Original IP ESP TCP Data ESP ESP


Auth.
Header Header Header Trailer
↑ ↑
4 Encriptado

Autenticado

desprotegido desprotegido
Encapsulating Security Payload (ESP) no modo de transporte
Assim, no modo de transporte, o cabeçalho IP original não é modificado, nem
protegido. No entanto, as camadas de Transporte e de Aplicação são-no, e por
isso não poderão ser modificadas entre os dois extremos de uma comunicação
(tal como fazem as NATs em relação aos portos) pois estão protegidos.
O modo de transporte é por isso utilizado fundamentalmente em comunicações
directas entre terminais (host-to-host).
No modo de túnel, (ver figura seguinte) a totalidade do pacote IP original é
encriptado e/ou autenticado.
Redes e Protocolos Internet Página 2.54

New IP ESP Original IP TCP Data ESP ESP


Header Header Header Header Trailer Auth.

Encriptado

Autenticado

Encapsulating Security Payload (ESP) no modo de túnel


Para que o pacote possa posteriormente ser encaminhado numa rede IP, ele
terá depois que ser novamente encapsulado dentro de num novo pacote IP.
Em consequência disso, chama-se de túnel a esta configuração.
O modo de túnel pode ser utilizado para implementar qualquer tipo de
comunicações sobre a Internet como rede-para-rede, ou terminal-para-rede ou
terminal-a-terminal.

[Link]. Mecanismos de garantia de Integridade dos dados

Os mecanismos de garantia de Integridade dos dados garantem que os dados


recebidos não foram alterados no seu percurso entre emissor e receptor. Para
tal utiliza-se um código de encriptação (hash) que é calculado do lado do
emissor, sendo adicionado com o pacote.
Uma função de hash aceita como entrada uma sequência de bytes com um
comprimento qualquer e devolve uma outra sequência de saída com um
comprimento fixo que funciona como uma assinatura em relação aos dados
fornecidos. Desta forma, um estranho à comunicação que aceda ao hash não é
capaz de decifrar a mensagem original, mas um receptor que receba a
mensagem original e o hash, pode provar que o hash foi criado a partir dessa
mensagem e de nenhuma outra.
Um dos algoritmos que é utilizado com este objective é o MD5 (Message-
Digest algorithm, versão 5) que produz um código de verificação de 128 bits.
O National Institute of Standards and Technology (NIST) definiu um outro
algoritmo denominado Secure Hash Algorithm (SHA-1) que também é muito
utilizado e que utiliza um código de verificação de 160 bits.

[Link]. Mecanismos de Encriptação e Confidencialidade

Os mecanismos de encriptação têm como objectivo esconder os dados de


qualquer utilizador alheio à comunicação, dividindo-se em algoritmos simétricos
e assimétricos.
Nos algoritmos simétricos, a mesma chave de encriptação é utilizada para
encriptar e desencriptar os dados. Exemplos destes tipos de algoritmos incluem
o Data Encryption Standard (DES, chave com 56 bits), TripleDES (ou 3DES,
chave de 112 ou 168 bits de comprimento), Advanced Encryption Standard
(AES) (também conhecido como Rijndael, chaves de 128, 192, ou 256 bits de
comprimento) podendo ser algoritmos muito rápidos e por isso podem ser
utilizados para ritmos de comunicação elevados.
Redes e Protocolos Internet Página 2.55

Estas chaves são fixas e previamente distribuídas pelos elementos que


pretendem participar numa comunicação.
Por vezes surge a necessidade de utilizar chaves que sejam partilhadas por
múltiplos utilizadores sem que isso signifique colocar em causa a segurança.
Nestes casos, utilizam-se algoritmos de encriptação assimétricos, onde as
chaves de encritação e as chaves de desencritação são diferentes. Exemplos
incluem o RSA (Rivest, Shamir e Adleman), Diffie-Hellman (D-H) ou o Elliptic
Curve Cryptography (ECC).
Os comprimentos destas chaves variam de 512 bits a 2048 bits. Os algoritmos
de encriptação assimétricos são muito mais lentos e por isso são normalmente
utlizados para a protecção de pequenos volumes de dados.
O algoritmo de RSA é o mais conhecido em consequência de utilizar duas
chaves, uma pública e outra privada. A chave pública é disponibilizada pelo
receptor ao emissor, sendo utilizada pelos emissores para encriptar as
mensagens. A chave privada é mantida secreta pelo emissor e serve para as
desencriptar. Ou seja quem encripta as mensagens utilizando a chave pública
não sabe como as desencriptar.

[Link]. Mecanismos de Gestão e Troca de Chaves

O Internet Security Association and Key Management Protocol (ISAKMP)


[RFC2408] é habitualmente utilizado em conjunto com o Internet Key
Exchange (IKE) [RFC4306] como mecanismos de estabelecimento e
manutenção de associações seguras (SAs). Ambos foram definidos com o
objectivo de permitir aos extremos de uma comunicação VPN encriptada a
inicialização de uma comunicação segura e a troca dinâmica de chaves (crypto
keys).
Estes mecanismos utilizam-se para troca inicial de chaves de encriptação e
para a troca periódica das mesmas com o objectivo de dificultar a descoberta
da chave por elementos estranhos à comunicação.

[Link]. Exemplo de configuração de uma VPN

A figura seguinte apresenta um exemplo de configuração de uma rede VPN,


recorrendo a um router ADSL da Linksys.
Redes e Protocolos Internet Página 2.56

2.7. IPv6
Apesar de soluções como o NAT poderem ajudar a suportar o IPv4 por mais
alguns anos, há uma percepção generalizada que a utilização do IPv4 está a
tingir a sua capacidade limite.
No início, a Internet foi usada fundamentalmente por universidades, pela
indústria e pelo governo dos Estados Unidos (em especial pelo o dept. de
defesa).
Com a explosão do interesse na Internet, que começou em meados dos anos
90, esta começou a ser usada por um grupo de utilizadores diferente do original
e com exigências diferentes.
Redes e Protocolos Internet Página 2.57

Aparecem assim os utilizadores equipados com equipamentos wireless móveis


ou portáteis, procurando utilizar a Internet como meio de comunicação.
A convergência do computador, da comunicação, e das indústrias de
entretenimento está a fazer com que cada telefone e televisão actual seja um
terminal IP, potenciando biliões de máquinas.
Sob estas circunstâncias, tornou-se óbvio que o IP tinha que evoluir e tornar-se
mais flexível.
Prevendo este problema, o IETF começou nos 90’s a trabalhar numa nova
versão do IP denominada de IPv6.
O objectivo do IPv6 é o de:
1. suportar biliões de endereços, mesmo com uma atribuição de endereços
não eficiente,
2. reduzir o tamanho das tabelas de routing,
3. simplificar o protocolo permitindo que os routers processem os pacotes
de forma mais rápida,
4. Fornecer melhor segurança (autenticação e privacidade),
5. Dar mais atenção ao tipo de serviço, em especial para dados com
requisitos de tempo real,
6. Suportar de forma nativa o IP Multicast,
7. Tornar possível que um terminal faça roaming sem necessidade de
mudar o seu endereço,
8. Permitir a integração de novas funcionalidades no futuro,
9. Permitir a compatibilidade entre os novos e os antigos protocolos
durante vários anos.
Depois de um pedido de propostas e de uma discussão dessas mesmas
propostas surge assim o IPv6 (RFCs 2460 até 2466) que em geral não é
compatível com o IPv4 mas é compatível com os outros protocolos ICMP, TCP,
UDP, IGMP, OSPF, BGP, e DNS, algumas vezes com algumas alterações (a
maioria delas relacionada com os endereços de 16 bytes).
Antes de entrarmos na descrição do cabeçalho IPv6 vamos ver as principais
características do IPv6:
1. Endereços IP com 16 bytes,
2. Cabeçalho simplificado com apenas 8 campos (contra 13 do IPv4),
3. Suporta uma melhor definição do campo de opções,
4. Segurança, obrigando à utilização do IPsec,
5. Qualidade de Serviço,

2.7.1. Cabeçalho IPv6


A figura seguinte apresenta o cabeçalho IPv6:
Redes e Protocolos Internet Página 2.58

O campo de Versão contém agora o valor 6.


O campo de Traffic Class – (1 byte) Substitui o campo “Type of service” do
IPv4. Permite que a origem ou um router de uma rede especifique as diferentes
classes de prioridade de entrega para determinados pacotes. O RFC 2474
define como o Traffic Class pode ser usado no IPv6.
O campo de Flow Label é ainda experimental e destina-se a ser utilizado pelas
aplicações terminais por forma a diferenciar diferentes fluxos que circulem
entre duas máquinas. Os fluxos são uma tentativa de compromisso entre a
comutação de datagramas e a comutação de circuitos.
O campo de Payload Length define quantos bytes se seguem ao cabeçalho
de 40 bytes (sem contar com o cabeçalho).
O campo de Next Header identifica o tipo do cabeçalho de nível transporte que
se segue ao cabeçalho IP. Equivale ao campo de Protocol do IPv4.
O campo de Hop Limit implementa o TTL do IPv4.
Os campos de Destination Address e Source Address correspondem aos
endereços IPv6 de destino e origem do pacote.
A capacidade de endereçamento do IP passa assim (de 4 bytes do IPv4) para
16 bytes (128 bits) do IPv6. Esses 16 bytes são representados em 8 grupos de
2 bytes cada (16 bits).
Teoricamente isso significa 3,4x1038 endereços possíveis que possibilitariam
6,5x1023 endereços por metro quadrado do planeta Terra!
No entanto o objectivo de utilização de endereçamento tão grande não foi o de
permitir um número elevado de endereços por m 2, mas o de permitir uma
atribuição eficiente de endereços e routing que reflicta a topologia actual da
Internet e o de acomodar os endereços MAC de 8 bytes (64 bits) que as novas
tecnologias estão a utilizar.
Redes e Protocolos Internet Página 2.59

A utilização de endereços de 128 bits permite múltiplos níveis de hierarquia na


execução do subnetting, na qual o IPv4 era bem mais limitado.

2.7.2. Endereçamento IPv6


Os 16 bytes do endereços IPv6 são normalmente partidos em 8 grupos de 2
bytes, representados assim em 8 grupos de 4 dígitos hexadecimais. Cada um
desses grupos é separado por “:” dos grupos vizinhos.
Por exemplo, o endereço 2010:002e:0000:0000:0000:0000:08d3:0009 é um
endereço IPv6 válido.
Se um ou mais grupos de 4 dígitos for 0000, então, os zeros podem ser
desaparecer, ficando apenas “::”. Por exemplo, o endereço anterior pode ser
igualmente escrito como 2010:002e::08d3:0009.
No entanto, isto só pode ser feito uma vez, pois caso contrário, o endereço
poderá ficar ambíguo. Por exemplo se tivéssemos um endereço
2010::08d3::0009, sabíamos que faltam 5 conjuntos de 4 dígitos, mas não
sabemos onde deveriam ser acrescentados.
Todos os 0’s de endereços que comecem por um ou mais 0’s podem
desaparecer. Assim, voltando ao exemplo inicial, podemos também escrevê-lo
como: 2010:2e::8d3:9.
Para separar o network ID do Host ID em endereços IPv6, utiliza-se uma barra
“/” e em seguida especificam-se quantos bits pertencem ao Network ID.
Devemos agora lembrar que cada grupo de 4 dígitos tem 16 bits. Por exemplo,
ao especificar o endereço 2010:002e:0000:0000:0000:0000:08d3:0009/64,
isso significa que o network ID é 2010:002e:0000:0000 e o host ID é
0000:0000:08d3:0009.

[Link]. Gamas de Endereços IPv6

Ambos os endereços IPv4 e IPv6 são normalmente atribuídos de uma forma


hierárquica. Os utilizadores obtêm os endereços a partir dos Internet service
providers (ISPs). Os ISPs obtêm os seus endereços a partir de entidades de
registo nacionais (NIR), regionais (RIR) ou locais (LIR).
A tabela seguinte apresenta o espaço de endereçamento do Internet Protocol
Versão 6 (versão 2007-07-19)

Prefixo IPv6 Atribuição Referencia RFC


0000::/8 [RFC4291]
0100::/8 [RFC4291]
0200::/7 [RFC4048]
0400::/6
0800::/5
1000::/4
2000::/3 Global Unicast [RFC4291]
4000::/3
6000::/3
Redes e Protocolos Internet Página 2.60

8000::/3
A000::/3
C000::/3 Reserved by IETF [RFC4291]
E000::/4
F000::/5
F800::/6
FC00::/7 Unique Local Unicast [RFC4193]
FE00::/9 Reserved by IETF [RFC4291]
FE80::/10 Link Local Unicast [RFC4291]
FEC0::/10 Reserved by IETF [RFC3879]
FF00::/8 Multicast [RFC4291]
Cabe à IANA ([Link]) fazer a gestão do espaço de endereçamento
IPv6.
Apesar do espaço de endereçamento 0000::/96 ter sido inicialmente atribuído a
endereços IPv6 compatíveis com os IPv4, esta atribuição foi abandonada
[RFC4291]. Também os endereços de loopback ficaram fora deste espaço.
Assim, o espaço actual de endereçamento IPv6 utiliza fundamentalmente as
gamas 2000::/3 para endereços unicast e FF00::/8 para endereços Multicast,
quando executa o encaminhamento entre routers de uma rede pública.

[Link]. Endereços Link Local Unicast

A atribuição de endereços IPv6 pode ser feita automaticamente utilizando um


processo de autoconfiguração recorrendo o protocolo ICMPv6 (através de
mensagens de router discovery). A gama de endereços Link Local Unicast
(começados por FE80::), é utilizada nestes casos para que o terminal se auto-
atribua um endereço inicial, antes que a rede lhe faça a atribuição
correspondente. Estes endereços Link Local Unicast permitem também que
os terminais comuniquem directamente mesmo sem que tenham um endereço
IPv6 atribuído. Resulta da combinação dos primeiros 64 bits do endereço
FE80::/64, com outros 64 bits que se obtêm a partir do endereço MAC da
placa de rede (por conversão dos MACs de 64 ou 48 bits). Estes endereços
apenas têm significado num link, nunca sendo encaminhados por um router
IPv6. Uma vez que esse endereço pode não ser único em toda a rede onde
opere, utiliza-se mais um identificador para especificar a rede respectiva
chamado de ZoneID. Assim por exemplo se quisermos referir-nos a um desses
endereços podemos especificar o endereço na forma IPv6%ZoneID. Por
exemplo seguinte forma:
> ping fe80::9527:b1fa:e2a8:ec3a%13
Nos endereços link-local, a ZoneID é normalmente igual ao índice da interface
ligada ao link correspondente. O índice da interface é um número interno
atribuído à interface que pode ser consultado através do comando:
> netsh interface ipv6 show address level=verbose
Redes e Protocolos Internet Página 2.61

[Link]. Endereços Global Unicast

A gama de endereços Global Unicast (iniciada por 2000::) são uma gama
equivalente à gama de endereços IPv4 pública. A imagem seguinte apresenta
a estrutura dos campos de um destes endereços:
3 bit 45 bit 16 bit 64 bit

001 Global Routing Prefix Subnet ID Interface ID

Os campos são:
1º- Uma parte fixa (definida como 001)
2º- O campo Global Routing Prefix identifica uma organização ou
entidade na rede IPv6, por exemplo uma empresa num determinado local.
Os routers da Internet IPv6 utilizam este identificador, em conjunto com os
3 primeiros bits para encaminhar todos os datagramas para essa
determinada entidade.
3º- O campo Subnet ID identifica as subredes dentro de uma determinada
organização ou entidade, servindo para fazer o subnetting. Este campo
tem um comprimento de 16 bits permitindo um máximo de 65536
subredes, ou múltiplos hierarquias de endereçamento e uma infrastructura
de encaminhamento eficiente.
4º- O campo Interface ID indica o endereço de uma interface dentro do
da organização. Este campo tem 64 bits.
Por exemplo, 2001:DC8:2A4C:F272:2C0:D0EF:FEF9:4123 é um endereço IPv6
unicast global, em que:
- 2001:DC8:2A4C indica a organização
- F272 indica a subrede dentro da organização
- 2C0:D0EF:FEF9:4123 indica a interface na subrede dessa organização.
Em termos de encaminhamento na Internet pública, o Global Routing Prefix é
ainda partido em 3 campos: Top Level Aggregator (TLA) com 13 bits, um
campo reservado com 8 bits e um Next Level Aggregator (NLA) com 24 bits.

[Link]. Endereços Unique Local Unicast

A gama de endereços Unique Local Unicast, estão reservados para serem


utilizados em redes privadas (tal como acontecia por exemplo com a gama
[Link]/8) do IP.

7 bit 1 40 bit 16 bit 64 bit

1111110 L Global ID Subnet ID Interface ID

A sua estrutura é:
1º Os primeiros 7 bits estão definidos como 1111110 (FC00::/7).
Redes e Protocolos Internet Página 2.62

2º O bit seguinte corresponde a uma flag de Local (L), que tem sempre o
valor 1 indicando um endereço local (o valor de L=0 ainda não foi
definido). Assim na prática os endereços Unique Local terão o prefixo
FD00::/8.
3º Os próximos 40 bits correspondem ao Global ID, que é utilizando para
identificar uma determinada localização dentro da empresa, devendo ser
atribuídos de forma aleatória.
4º Os 16 bits seguintes identificam o Subnet ID, que permite identificar
uma determinada subrede num determinado local.
5º Os últimos 64 bits identificam a interface.
Dado que os endereços Unique Local Unicast e os Global Unicast partilham
a mesma estrutura depois dos primeiros 48 bits, o esquema de subnetting pode
ser comum para as duas gamas de endereços.

2.7.3. Alterações em outros Protocolos


A alteração do IPv4 para o IPv6 traz necessita ser acompanhada pela alteração
de protocolos que acompanhavam o IPv4. Exemplos incluem a nova versão do
ICMPv6 [RFC 4443], DHCPv6 [RFC 3315] e a grande maioria de protocolos de
routing existentes.

Você também pode gostar