Dynamic Source Routing
Instituto Superior Técnico
Segurança em Redes Móveis
Elaborado por:
Luís Ricardo Fonseca
18 de Janeiro de 2010
Indice
A. Protocolos de rotas
B. Reactivos vs Proactivos
C. DSR
C.1. Detalhe
C.2. Mecanismos
C.3. Características
C.4. Optimizações
C.5. Ataques
D. Bibliografia
Dynamic Source Routing
2 / 17
A. Protocolos de rotas
Um protocolo de rotas (routing protocol) especifica como um
conjunto (rede) de sensores comunicam entre si. Recorrendo a
algoritmos que permitem seleccionar rotas entre dois nós.
Os protocolos podem ser classificados consoante o modo como
efectuam a selecção das rotas em:
Reactivos ou On-demand;
Proactivos.
Dynamic Source Routing
3 / 17
B. Reactivos vs Proactivos
Reactivos ou On-demand: rotas entre nós são determinadas
apenas quando surge a necessidade de enviar pacotes de dados.
Os protocolos reactivos funcionam por inundação da rede com
mensagens de route request.
Proactivos: rotas entre nós são determinadas antes de surgir a
necessidade de enviar pacotes de dados. Normalmente, é feita a
actualização periódica das rotas entre nós, bem como, sempre
que há alterações na topologia de rede.
Dynamic Source Routing
4 / 17
B. Reactivos vs Proactivos
Topologia
Reactivos
Proactivos
Vantagens
Desvantagens
Utilização dos recursos (largura
de banda, memória, energia, etc.)
Possível atraso no início da
apenas quando necessário,
transmissão, pela necessidade de
determinando as rotas apenas na
determinar a rota.
altura de transmissão de informação.
Minimizam o atraso inicial no
envio de mensagens porque
determinam as rotas previamente.
Dynamic Source Routing
Consumo elevado de recursos,
devido à actividade de actualização
periódica de rotas, especialmente
quando ocorrem alterações
frequentes de topologia.
5 / 17
C.1. DSR – Detalhe (Descrição)
O DSR (Dynamic Source Routing) é um protocolo de rotas reactivo
desenhado para gestão de MANETs (Mobile Ad-hoc NETworks) sendo a
rota estabelecida a partir do nó inicializador (Source Routing), com o envio
de mensagem de route request.
Os padrões do protocolo são descritos no RFC 4728.
São gerados 3 tipos distintos de mensagens:
Route Request;
Route Reply;
Route Error.
Em termos de requisitos de memória, cada nó armazena em cache as
rotas determinadas a partir dele próprio, a lista de pares (nó inicializador,
request id) dos route requests que recebe, e a sequência de request ids
gerados.
Dynamic Source Routing
6 / 17
C.1. DSR – Detalhe (Definições)
Route Request: mensagem enviada pelo nó inicializador para todos os nós vizinhos que
por sua vez procedem ao seu reencaminhamento até chegar ao nó de destino. Tem o
seguinte formato: <Nó Inicializador, Nó Destino, Request ID, Route Record> constituído
pelos nós de origem e destino, um request id (identificador único) definido pelo inicializador
de acordo com uma sequência, e a sequência de todos os nós que a mensagem de Route
Request percorreu até ao momento (Route Record).
Route Reply: mensagem enviada pelo nó destino para o nó inicializador. Tem o seguinte
formato: <Nó Destino, Nó Inicializador, Request ID, Route Record>.
Route Error: mensagem enviada pelo nó que identificou a falha na rota, com informação da
ligação que falhou, com o seguinte formato: <Nó que identificou a falha na rota, Nó que
não confirmou o reconhecimento>.
Route Source: sequência de nós (rota) desde o nó inicializador até ao nó destino.
Route Cache (de um nó): armazena todas as Route Sources desse nó que foram
determinadas até ao momento. Cada elemento (Route Source) da Route Cache tem
associado um período de validade, ao fim do qual é eliminado da Route Cache.
Dynamic Source Routing
7 / 17
C.2. DSR – Mecanismos
O DSR é composto por 2 mecanismos “Route Discovery" e "Route Maintenance", que
funcionam em conjunto para descobrir e manter rotas em redes. Estes 2 mecanismos são
desencadeados “on-demand”, de forma reactiva, quando é necessário determinar uma rota
ou surgem alterações a uma determinada rota.
Route Discovery: mecanismo que permite a um nó I (inicializador), que pretende enviar
uma mensagem para um nó D (destino), obter uma rota de I para D.
Route Maintenance: detecta se a topologia da rede sofreu alterações e permite ao nó
inicializador decidir se deverá ser utilizada uma rota alternativa ou se deverá ser executado
o Route Discovery para encontrar uma nova rota.
O DSR utiliza "soft states“, isto é, as rotas são determinadas de acordo com as
necessidades, permitindo que o protocolo seja robusto face a problemas como falha de
nós. Por exemplo, um nó que falhe e reinicie pode juntar-se de novo à rede, após reiniciar,
sem qualquer interferência na execução do protocolo.
Dynamic Source Routing
8 / 17
C.2. DSR – Mecanismos (Route Discovery)
Route Discovery (de I para D)
Cada nó mantém uma lista de pares (nó inicializador, request id), permitindo detectar a
recepção de requests duplicados. Se o nó I (inicializador) tem na Route Cache uma rota
para o nó D (destino), então utiliza essa rota, caso contrário é executado o algoritmo:
1.O nó I envia uma mensagem de Route Request para os nós vizinhos, inundando a rede.
2.Executa-se o seguinte ciclo até encontrar o nó destino D. Para cada nó N que recebe o Route Request:
1.
Se o par (nó inicializador, request id) para esta requisição já estiver na lista de pares do nó N,
então o nó N ignora a mensagem e não faz nada. (Assim, o nó N não processará o mesmo
Route Request mais do que uma vez).
2.
Caso não se verifique 1, se o nó N já estiver no Route Record, então o nó N ignora o Route
Request. (Garantia de não ocorrência de loops).
3.
Caso não se verifique 1 e 2, se o nó N for o nó destino, ou N tiver em cache uma rota para o
nó destino (que não inclui nenhum nó do Route Record, para evitar loops), então devolve um
Route Reply para o nó I, contendo todo o caminho (Route Record). Para tal, ele verifica se tem
alguma rota em cache para o nó I. Se tiver, utiliza-a, caso contrário, utiliza a mesma rota no
sentido inverso. O nó I recebe o Route Reply, guardando o caminho na Route Cache de modo
a utilizá-lo no envio de pacotes de dados para D.
4.
Caso não se verifique 1, 2 e 3, N faz o forward do Route Request para todos os nós vizinhos
(com excepção do nó que o precedeu).
Dynamic Source Routing
9 / 17
C.2. DSR – Mecanismos (Route Discovery)
Route Request:
O nó 1 envia o Route Request, com a identificação do nó de início (1) e de destino (5) ao seu nó vizinho
(2). O nó 2 reencaminha para os nós 3 e 4. Como o nó 3 tem em cache um caminho para o nó destino,
não reencaminha o Route Request. O nó 4 reencaminha o Route Request para o 5, que é o nó destino.
Route Reply:
O nó 5 envia um Route Reply para o nó 1 (inicializador) com a rota determinada;
O nó 3 envia um Route Reply para o nó 1 com a concatenação da rota determinada de 1 para 3 e a rota
que tem em cache de 3 para o nó 5 (destino).
Dynamic Source Routing
10 / 17
C.2. DSR – Mecanismos (Route Maintenance)
Route Maintenace:
O procedimento de manutenção de rotas monitoriza todas as rotas a partir dos nós que
fazem parte da rede. Portanto, quando um nó envia uma mensagem, o mesmo é
responsável pela confirmação de que a mensagem foi recebida pelo nó seguinte.
1.Quando um nó não recebe a confirmação de recepção (de um pacote de dados) do nó
para o qual efectuou o envio, após tentar enviar um número máximo de vezes (definido),
envia uma mensagem de Route Error para o nó inicializador.
2.O nó inicializador recebe a mensagem de Route Error e remove da route cache as Route
Sources que contêm a ligação que falhou.
1. Se o nó inicializador tiver uma Route Source alternativa na Route Cache, então
utiliza-a;
2. Caso não se verifique 1 então o nó inicializador inicia a fase de Route Discovery,
para encontrar caminhos de I para D, enviando uma mensagem de Route Request
a todos os nós vizinhos.
Dynamic Source Routing
11 / 17
C.2. DSR – Mecanismos (Route Maintenance)
Route Error:
O nó C após um determinado número de tentativas falhadas de envio de um pacote de
dados para D, envia uma mensagem de Route Error para o nó inicializador A, indicando
que houve uma falha na ligação C->D.
Dynamic Source Routing
12 / 17
C.3. DSR – Características
Rotas múltiplas para qualquer nó destino, sendo o nó inicializador a escolher as rotas
a utilizar. Permite assim uma reacção rápida a alterações de rota, podendo utilizar rotas
alternativas em cache, bem como o balanceamento de cargas (load balancing);
Inexistência de loops garantida;
Aplicável em redes com ligações unidireccionais (adaptável);
Utilização de soft states;
Menor consumo de recursos, uma vez que não é necessário proceder à actualização
periódica de tabelas de rotas;
Menor consumo de recursos, pela utilização de informação de rotas em cache:
pelos nós intermédios, permite reduzir o número de níveis a incluir na pesquisa;
pelo nó inicializador, que só tenta encontrar um caminho para um nó destino, se não
tiver em cache nenhuma rota para o mesmo;
Menor consumo de largura de banda porque não são utilizadas “hello messages”;
O procedimento de manutenção (Route Maintenance) não permite reparar uma
ligação que tenha falhado entre 2 nós. Apenas é feita a comunicação da ocorrência ao nó
inicializador, que posteriormente toma uma decisão sobre a solução a adoptar.
Dynamic Source Routing
13 / 17
C.4. DSR – Optimizações
 Aproveitamento da Cache:
 Cada nó (no percurso do Route Request) guarda em cache o Route Record da
mensagem encaminhada, permitindo posteriormente utilizar essa rota (entre nó
inicializador e ele mesmo);
 Limitar o número de níveis percorridos pelo Route Request a partir da origem (que
poderá ser incrementado sucessivamente caso não seja obtida resposta após um
determinado período de tempo), permitindo evitar difusão de mensagens por toda
a rede, para além dos nós estritamente necessários.
 Escolha do melhor caminho:
 Quando o nó de destino não tem uma rota em cache para o nó inicializador,
executa o processo de Route Discovery para o nó inicializador, adicionando a nova
rota à rota recebida na mensagem de Route Request (permitindo, em alguns
casos, obter uma rota melhor do que a determinada anteriormente, e que poderá
ser guardada e utilizada pelo nó inicializador).
Dynamic Source Routing
14 / 17
C.5. DSR – Ataques
O DSR funciona com um modelo de confiança “cega” nos vizinhos. Adicionalmente, não
existe autenticação entre as partes que comunicam, nem encriptação das mensagens
trocadas, não sendo garantida a confidencialidade e integridade da informação trocada,
estando por isso o protocolo vulnerável a vários ataques:
Topologia
Externos
Nós
-
Nós que
falham
Meio
-
Ataque
Nós sem autorização e não confiáveis.
Utilizar
mecanismos
autenticação.
Ataques de Physical layer (Jamming e
Tampering).
Detectar zona de jamming e
contorná-la; esconder sensores.
Vírus.
Utilizar antí-virus.
Route Discovery
Falha no envio de Route Requests
e/ou Route Replys.
Route Maintenance
Falha no envio de Route Errors.
-
Falha no envio de pacotes de dados.
-
Mesmo comportamento que nós que
falham (não enviam mensagens).
Internos
Nós egoístas Mantêm as rotas
para si mesmos
(motivo: poupança
de energia)
Solução
Ignoram Route Requests e/ou Route
Replys e/ou Route Errors.
Utilizar rota alternativa.
Utilizar rota alternativa.
Ignoram pacotes de dados.
Dynamic Source Routing
15 / 17
de
C.5. DSR – Ataques
Continuação…
Topologia
Nós
Meio
Ataque
Solução
Route Requests errados:
» Criação e envio de Route Requests
para esgotamento de recursos;
» Não enviar Route Requests, para
impedir determinação de rotas.
Internos
Nós
maliciosos
Ameaça à
integridade da rede
Route Replys errados:
» Envio de Route Replys errados (rotas
erradas);
» Circular informação de Route Records
por nós maliciosos;
» Não enviar Route Replys, para impedir
determinação de rotas.
Utilizar mecanismos de
autenticação e de encriptação de
mensagens.
Route Errors errados:
» Envio de Route Errors errados para
inviabilizar rotas;
» Não enviar Route Errors, para impedir
determinação de rotas alternativas.
Dynamic Source Routing
16 / 17
D. Bibliografia
DSR: The Dynamic Source Routing Protocol for Multi-Hop Wireless Ad Hoc Networks, David B.
Johnson David A. Maltz Josh Broch. Computer Science Department, Carnegie Mellon University
Pittsburgh, PA 15213-3891.
Arithmetic Encoding Based Dynamic Source Routing for Ad-Hoc Networks. Ajay Koul, R.B. Patel and
V.K. Bhat. Journal of Computer Science 4 (5): 353-359, 2008, ISSN 1549-3636.
Efficient, Secure, Dynamic Source Routing for Ad-hoc Networks. Michael Weeks1,2 and Gulsah Altun1,
Journal of Network and Systems Management, Vol. 14, No. 4, December 2006 (c 2006) DOI:
10.1007/s10922-006-9043-8.
Nodes Bearing Grudges:Towards Routing Security, Fairness, and Robustness in Mobile Ad Hoc
Networks. Sonja Buchegger. IBM Zurich Research Laboratory, Jean-Yves Le Boudec EPFL-DSC CH1015 Lausanne, Switzerland.
Analysis of the Dynamic Source Routing Protocol for Ad Hoc Networks. Rajendra V. Boppana Anket
Mathur CS Department, UT San Antonio, San Antonio, TX 78249. USA.
Lecture notes Wireless Sensor Networks security da cadeira: http://comp.ist.utl.pt/pdis-srm/.
RFC 4728: http://tools.ietf.org/html/rfc4728.
Dynamic Source Routing
17 / 17
Download

Dynamic Source Routing