Tabela de Conteúdos
Definições recomendadas para OLSR
Na rede Unimos é usado o protocolo OLSR para gestão das tabelas de encaminhamento.
Há duas hipóteses para a configuração do mesmo:
- Se for instalado o pacote olsrd deve-se usar o ficheiro /etc/olsrd.conf e gerir todas as configurações manualmente a partir daí.
- Se for instalado o pacote olsrd-luci deve-se usar sempre o interface do LuCI. Este re-escreve o ficheiro /etc/olsrd.conf automaticamente e ignora tudo o que lá for escrito. Para configurações manuais com este pacote instalado, deve ser editado o ficheiro /etc/config/olsrd.
Antes de fazer alterações à configuração fazer sempre um backup da configuração anterior:
# cp /etc/olsrd.conf ./olsrd.conf-worked # cp /etc/config/olsrd ./olsrd-worked
As versões mais antigas do olsrd podem não suportar todas as opções aqui apresentadas. Depois de fazer as alterações feitas no ficheiro de configuração, testar sempre a correcção da sintaxe e o suporte das opções através do comando:
# olsrd -f olsrd.conf -d 1 -nofork
IMPORTANTE: todos os nós na mesma mesh devem ter a mesma configuração para o algoritmo de LinkQuality do OLSR[1].
As seguintes configurações são (mais ou menos) obrigatórias:
Com interface de configuração LuCI
As configurações são as mesmas que as indicadas abaixo para o ficheiro olsrd.conf. Apenas será necessário encontrar os locais adequados para cada uma.
- Os parâmetros gerais e de cada interface encontram-se em Services → OLSR
- Os parâmetros de Hna4 em Services → OLSR → HNA Announcements e
- Os parâmetros para os plugins estão em Services → OLSR → Plugins.
/etc/olsrd.conf
ATENÇÃO: Os valores indicados com casas decimais TÊM de ter casas decimais. Caso contrário o daemon simplesmente não inicia.
configuração global
DebugLevel 0 ClearScreen no IpVersion 4 FIBMetric "flat" AllowNoInt yes Willingness 7 LinkQualityLevel 2 LinkQualityAlgorithm "etx_ff" LinkQualityDijkstraLimit 0 9.0 LinkQualityWinSize 100 #O uso de hysteresis interfere negativamente com os algoritmos de LinkQuality. Não usar hysteresis! UseHysteresis no #Versões anteriores à 0.4.10 devem definir '0' aqui: LinkQualityFishEye 1 #Parâmetros adequados para FishEye. Versões anteriores à 0.4.10 devem definir MprCoverage 1 TcRedundancy 2 MprCoverage 7
#Valor a investigar (TODO): Pollrate 0.1
Associações de Hosts e Redes
Hna4 { #Não anunciar aqui as rotas para gateways de acesso à Internet. Utilizar antes o plugin dyn_gw. #Anunciar redes reservadas para este nó #10.0.XXX.YYY 255.255.255.224 }
Anuncio dinâmico de acesso local internet
#Utilizar se houver acesso local à Internet. Com cuidado. #LoadPlugin "olsrd_dyn_gw_plain.so.0.4" #{ #}
Progagação de servicos de nomes e localização
LoadPlugin "olsrd_nameservice.so.0.3" { PlParam "name" "NOMEDOROUTER" PlParam "hosts-file" "/etc/hosts" #O sinal SIGHUP faz o dnsmasq re-carregar os ficheiros /etc/hosts e /etc/ethers PlParam "name-change-script" "/usr/bin/killall -SIGHUP dnsmasq" #Indicar coordenadas do router (futuramente será usado para actualização automática do mapa.unimos.net) #lat será algo como: 39.61234567890123 #lon será algo como: -8.512345678901234 PlParam "lat" "LATITUDE (VER: mapa.unimos.net)" PlParam "lon" "LONGITUDE (VER: mapa.unimos.net)" }
#Utilizar se houver acesso local à Internet #deve ser um endereco incluido nos Hna4 ou um dos interfaces do router # - http://lists.olsr.org/pipermail/olsr-dev/2006-July/000633.html #PlParam "dns-server" "IPDOROUTER" #Utilizar se não houver acesso local à Internet # - é demasiado inseguro. Basta um router mal configurado para quem olha para isto ficar sem DNS PlParam "resolv-file" "/etc/resolv.conf.olsr" #Apenas em nós que recolhem dados para o mapa (se em dúvida, não activar) #PlParam "latlon-file" "/var/run/latlon.js"
TXT Info
Um plugin muito conveniente. Permite obter informação do runtime do olsrd na consola.
LoadPlugin "olsrd_txtinfo.so.0.1" { PlParam "accept" "127.0.0.1" }
Comandos disponíveis:
- “/neighbours” → vizinhos e links
- “/neigh” → vizinhos
- “/link” → links
- “/route” → rotas
- “/hna” → HNA
- “/mid” → MID
- “/topo” → Topologia
Exemplo de utilização para observarmos variações de ETX num link especifico:
while (true) ; do wget -q -O - http://localhost:2006/neighbours | grep ENDEREÇOREMOTODOLINK | grep -v YES && sleep 1 ; done
HTTP Info
Plugin que arranca um mini-servidor HTTP com informações sobre o runtime do OLSR. Esta funcionalidade tem pouca utilidade pois toda a informação pode ser obtida na consola via txtinfo
Pode ser uma opção para evitar o acesso à consola:
LoadPlugin "olsrd_httpinfo.so.0.1" { #PlParam "Net" "10.0.XXX.YYY 255.255.VVV.WWW" PlParam "Host" "127.0.0.1" PlParam "port" "8080" }
Configuração de Interfaces
Interfaces 802.11g
Interface "ath0" { HelloInterval 3.0 #"setting HelloValidityTime to HelloInterval * LinkQualityWinSize is probably a good rule of thumb" HelloValidityTime 300.0 #Small TcInterval for FishEye to work TcInterval 2.0 TcValidityTime 500.0 MidInterval 25.0 MidValidityTime 500.0 HnaInterval 25.0 HnaValidityTime 500.0 }
Interfaces 802.11a
Interface "ath1" { HelloInterval 2.0 #"setting HelloValidityTime to HelloInterval * LinkQualityWinSize is probably a good rule of thumb" HelloValidityTime 200.0 #Small TcInterval for FishEye to work TcInterval 4.0 TcValidityTime 512.0 MidInterval 25.0 MidValidityTime 500.0 HnaInterval 25.0 HnaValidityTime 500.0 }
Referências
READMEs oficiais do OLSR para:
Referência de parâmetros do olsrd.conf
http://olsr.org/git/ Fonte: Ramo principal (master) de desenvolvimento do olsrd.