Routermon

by buzios007

routermon_screen.jpg (15053 bytes) routermon_autenticando.jpg (34172 bytes)

routermon 242.zip - 85K
Routermon e' um programa que escrevi para facilitar minha vida enquanto usuario Velox. 

Embora seja simples, routermon oferece varias opções de configuração, que podem confundir "marinheiros de primeira viagem". 

Se você trata seu computador de "senhor" e esta querendo basicamente um programa para fazer autenticação do Velox. 

Existem outros programas disponíveis que sao mais "user friendly" em termos de configuração. 

Routermon tem as seguintes funções: 

1 - Monitora carga na linha ADSL 

  • mostra um gráfico de da carga para TX e RX 
  • mostra taxa corrente em KBps e % 

2 - Mostra o IP dinâmico corrente 

3 - Possibilita fazer autenticação com a Telemar/Seu provedor automaticamente (opcional) 

4 - Possibilita exportar o endereço IP obtido da Telemar para: (opcional) 

5 - Monitora o link e refaz o login automaticamente se o link cair e voltar. 

A monitoração e' feita via "ping" a um conjunto de até 3 targets que você especifica. 

A freqüência de polling pode ser especificada em múltiplos de 10 segundos. 

Suporta SNMP TRAP para que o re-login seja feito mais rapidamente 
(se o router enviar TRAPs de line UP). 

6 - Mostra ARP table e interfaces existentes no roteador. 

7 - Para routers 3Com 812, as seguintes funções estão disponíveis: 

  • - Mostrar NAT Table 
  • - Mostrar Log do router 
  • - Forçar um reset 

As taxas de transmissão e recepção mostradas na tela sao medidas diretamente na interface do roteador mostrando portando o consumo total de todos os usuários que estejam compartilhando o roteador. 

Routermon roda em M$ Windows (9x, Me, NT, 2K ou XP) e usa SNMP (Simple Network Management Protocol) para se comunicar com o router. 

Para a maioria das funções routermon usa "standard SNMP MIBs" e portanto funciona com qualquer roteador que suporte SNMP. Caso o roteador seja um 3Com 812, routermon usa "private MIBs" criadas pela 3Com. 

Ele foi testado em Windows 98, XP, 2000 e NT4 com os seguintes roteadores: 

  1. 3Com 812 
  2. 3Com DualLink Modem convertido para 812 
  3. AlliedData Copperjet 810 
  4. Linksys BEFVP41 
  5. Bay Networks 
  6. Intel 
  7. Cisco 

Routermon e' muito simples e não "deixa rastro no Windows" ou seja, ele não grava nada no registry nem em qualquer outro lugar. 

E' composto de um arquivo executável e de um arquivo de configuração (opcional) .

Quando usado para mostrar carga na linha e IP obtido junto a Telemar, ele pode ser invocado com parâmetros passados pela linha de comandos. 

Para se ter as funções acima mais a função de autenticação e de exportar o IP para o dns dinâmico e' necessario um arquivo de configuração. 

Este arquivo e' um arquivo texto e pode ser criado com qualquer editor ASCII (tipo notepad).


Invocando routermon sem arquivo de configuração: 

routermon router_ip_address [-cSNMPcommunityName] [-iRouterInterface] [-tTXspeed] [-rRXspeed] [-d] [-n] [-p] 

os parâmetros entre [] possuem um valor default: 

-c communityname setada no router - default "public" 

-i interface do router "conectada" ao ADSL - default "812" 

não use este parâmetro ou use -i812 se o router for um 3Com 812 ou 3Com convertido use -i15 se for um AlliedData router 

-t velocidade de upload do ADSL - default 128000 

-r velocidade de download do ADSL - default 256000 

-d mostra informações adicionais no log para facilitar debug 

-p mantém a janela routermon sempre visível 

-n permite monitoração de um modem ADSL em bridge mode 

Exemplos: 

  • routermon 192.168.1.1 
  • routermon 192.168.1.1 -i15 
  • routermon 192.168.1.1 -i812 -cMinhaempresa 
  • routermon 192.168.1.1 -i812 -r512000 (o dia que a Telemar oferecer esta velocidade)

Invocando o routermon com arquivo de configuração: 

routermon path_nomedoarquivo_de_configuracao [-d] [-n] [-p] 

O flag "-d" e' opcional e foi introduzido para ajudar na depuração de problemas com o arquivo de configuração. 

O parâmetro "-d" faz com que o programa "imprima" no log os valores que foram lidos do arquivo de configuração. 

O flag "-n" e' opcional e foi introduzido para permitir o monitoração de uma interface no modem/router ADSL configurado como bridge e não router e que tenha SNMP habilitado. 

Obviamente a interface não terá um endereço IP associado. 

O flag "-p" e' opcional e faz com que a janela do routermon fique sempre visível 

O arquivo de configuração usado pelo routermon segue um esquema muito usado em ambiente UNIX. 

E' um arquivo ASCII contendo "tokens" e um valor associado a cada token. 

Todo token começa com '$' seguido pelo nome do token, um sinal de '=' e o valor atribuído ao token em questão. 

Informação sobre arquivo de configuração pode ser obtida olhando o arquivo exemplo.


Usando o Routermon 

Routermon quando startado abrira uma pequena janela com os seguintes itens: 

  • - IP obtido da Telemar (suporta Copy para clipboard - Ctrl+C ) 
  • - Botão para resetar a thread de comunicação com o router 
  • - Gráficos de TX e RX 

Alem do acima existe um Menu que pode ser ativado clicando o mouse no pequeno icon a esquerda da barra de titulo (conhecido como System Menu). 

O menu contem as seguintes opções: 

  • - Update DNS 
  • - Telemar Login 
  • - Show 812 Log (caso seja tenha sido startado com -i812) 
  • - Reset 812 (caso seja tenha sido startado com -i812) 
  • - Show NAT Table (caso seja tenha sido startado com -i812) 
  • - Show ARP Table 
  • - Show Interfaces 
  • - About Routermon 

Update DNS e Telemar Login so aparecem no menu se as definições necessárias estiverem presentes no arquivo de configuração. 

Update DNS foi feito para atualizar o IP em www.dyndns.org, www.dns2go.com, www.dyns.cx e www.no-ip.com

Outros "provedores" de DNS dinâmico não são suportados. 

Show 812 Log e Show NAT Table usam a private MIB do 812. 

Por este motivo estas funções so funciona com router 3Com 812 ou 3Com modem convertido. 

Reset 812 provoca um reboot do router e so funciona com 3Com 812 ou 3Com modem convertido. 

A cada 5 segundos routermon faz um query via SNMP ao router e atualiza os dados na interface gráfica.


Notas sobre routers: 

- AlliedData CopperJet 810. na sua configuração default, o CopperJet vem com SNMP habilitado e tem a seguinte configuração: 

SNMP read community name -> "public" 

SNMP write community name -> "ADT" 

note que o valor dado a write community name e' usado como SENHA para Telnet 

- 3Com 812 e 3Com Modem convertido em 812 

na sua configuração default, SNMP esta desabilitado. 

Para habilitar SNMP você terá que dar um Telnet para o router ou ligar um terminal a porta serial do mesmo.

Para habilitar SNMP use os seguintes comandos: 

  • add snmp community public address 0.0.0.0 access RW 
  • enable security_option snmp user_access 

Para que o router envie TRAPs de lineUP para o routermon: 

  • add snmp trap_community public address ENDERECO_DA_MAQUINA_COM_ROUTERMON


O que fazer se routermon não estiver funcionando 

1 - Ative a opção de gravar arquivo de log (opção $LOGPATH do arquivo de cfg) e leia as mensagens que estão sendo enviadas para o log Mensagens de erro conterão "[E]" no inicio da mensagem 

2 - Certifique-se que o arquivo de configuração foi gravado em modo texto. Ou seja não contem caracteres de controle no meio do texto. 

3 - Inicie routermon com a opção "-d" na linha de comando veja o arquivo de log e compare as opções de configuração que foram "impressas" no arquivo de log com as que você usou no arquivo de configuração 

4 - Certifique-se que SNMP está habilitado no seu roteador


Lógica para autenticação


     +--------+
     |  WAIT  |  <--+---+---+
     +---+----+     |   |   |
         |          |   |   |
        _V__        |V  |V  |A
       /    \       |E  |E  |M
      / PING \_OK---+R  |R  |A
      \  1   /      |D  |M  |R
       \____/       |E  |E  |E
        NOK         |   |L  |L
         |          |   |H  |O
        _V__        |   |O  |
       /    \       |   |   |
      / PING \_OK---+   |   |
      \  2   /      |   |   |
       \____/       |   |   |
        NOK         |   |   |
         |          |   |   |
        _V__        |   |   |
       /    \       |   |   |
      / PING \_OK---+   |   |
      \  3   /          |   |
       \____/           |   |
        NOK             |   |
         |              |   |
        _V__            |   |
       /    \           |   |
      / PING \___NOK----+   |
      \TELEM /              |
       \____/               |
         OK                 |
         |                  |
         V                  |
   +-----------+            |
   | AUTENTICA |------------+      
   +-----------+