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

Referência de parâmetros do olsrd.conf

http://olsr.org/git/ Fonte: Ramo principal (master) de desenvolvimento do olsrd.

Print/export
QR Code
QR Code software:olsrd (generated for current page)