IER60808: Interfaces de gerenciamento de equipamentos

De MediaWiki do Campus São José
Revisão de 17h17min de 23 de abril de 2020 por Msobral (discussão | contribs)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Equipamentos de rede gerenciáveis podem ser configurados com diferentes métodos de acesso. Dependendo do modelo do equipamentos, interfaces de gerenciamento web ou CLI podem ser usadas.

Interface web

Alguns equipamentos oferecem uma interface de configuração via web, a qual deve ser acessada por meio de um endereço IP de gerenciamento do equipamento (detalhes devem ser obtidos de seu manual). Assim, basta conectar um computador a uma interface de rede do equipamento e acessar seu endereço IP usando um navegador. Esse tipo de interface é prática e de uso simplificado, porém nem sempre completa.

Interface de linha de comando (CLI) via SSH ou telnet

A interface de linha de comando, chamada também de CLI (Command Line Interface), é um tipo de interface de gerenciamento tradicional. Por essa interface usualmente se tem acesso a todos os possíveis comandos e configurações implementados em um equipamento. Esse tipo de interface comumente se apresenta na forma de um menu hierarquizado. Roteadores e switches Cisco oferecem exemplos clássicos de CLI. Tal tipo de interface pode ser acessado através da rede, usando os programas SSH ou Telnet.

Interface de linha de comando (CLI) via console (porta serial)

Muitos equipamentos possibilitam que a interface CLI seja também acessada diretamente via porta serial, chamada de console. Esses equipamentos disponibilizam uma porta serial do tipo RS-232, ou uma porta USB que emula uma porta serial desse tipo. Para acessar o equipamento deve-se ter em mãos um cabo serial apropriado, um computador com porta serial RS-232 (se não houver a opção USB), e um programa emulador de terminal a ser executado no computador. O Linux oferece alguns programas emuladores de terminal tais como minicom e cutecom, e o Windows oferece o clássico hyperterminal. Esse tipo de acesso envolve configurar a porta serial do computador para que consiga se comunicar com o equipamento, segundo instruções do fabricante. Essa configuração envolve estes parâmetros:

    • Taxa de bits: taxas de bits de comunicação típicas são 9600 (Cisco), 19200, 38400 (TP-Link), 57600 e 115200 bps.
    • Tamanho da palavra: os equipamentos usam comumente 8 bits por palavra
    • Stop bits: os equipamentos usam tipicamente 1 stop bit
    • Paridade: não se usa paridade
    • Controle de fluxo: normalmente feita automaticamente (não se deve selecionar o tipo de controle de fluxo)

Os manuais costumam apresentar a configuração da porta console com esta notação:

taxa tamanhoPalavra paridade stopbit

Ex:

9600 8N1

... que significa:
Taxa: 9600 bps
Tamanho da palavra: 8 bits
Paridade: N (desativada)
Stop bits: 1


Atividade

  1. Identifique as formas de acesso à interface de gerenciamento dos switches TP-Link SG 3210 ou Intelbras SG-2404
  2. Acesse a interface de gerenciamento do seu switch com cada um dos métodos disponíveis.

Curiosidade: acesso programático à interface CLI

Imagine que seja necessário acessar uma interface CLI pela porta console, e executar comandos de forma automatizada. Isso poderia ser necessário para, por exemplo, executar uma série de comandos de manutenção rotineiros. Isso poderia ser facilmente realizado com um programa Python ...

O acesso a portas seriais em programas Python pode ser feito usando o módulo serial, que faz parte do pacote pyserial. Com esse módulo, pode-se acessar uma porta serial, e por ela enviar e receber dados. O pacote pyserial pode ser instalado com este comando:

pip3 install pyserial


Por exemplo, este pequeno programa mostra o menu principal de um equipamento de rede:

from serial import Serial

# O prompt apresentado pelo equipamento
Prompt = b'>'

# O comando para mostrar a ajuda do menu
Help = b'?\n'

# acessa a porta serial /dev/ttyS0, com taxa de 9600 bps
porta = Serial('/dev/ttyS0', 9600)

# envia o comando, e aguarda o resultado
porta.write(Help)
menu = porta.read_until(Prompt)

# Mostra o resultado da execução do comando
print(menu.decode('ascii'))


Acesso pela rede, usando telnet ... parecido com acesso via serial
from telnetlib import Telnet

# O prompt apresentado pelo equipamento
Prompt = b'>'

# O comando para mostrar a ajuda do menu
Help = b'?\n'

# Credenciais de acesso
Login = b'admin\n'
Senha = b'admin\n'

# conecta ao terminal remoto no equipamento (ex: equipamento tem IP 10.0.0.1)
con = Telnet('10.0.0.1')

# Faz o login no equipamento
con.read_until(b'login:')
con.write(Login)
con.read_until(Senha)
con.write(b'admin\n')
con.read_until(Prompt)

# envia o comando, e aguarda o resultado
con.write(Help)
menu = con.read_until(Prompt)

# Mostra o resultado da execução do comando
print(menu.decode('ascii'))


Sendo assim, escreva um programa Python que reinicie o equipamento via serial, e aguarde até que ele esteja novamente pronto para uso.

Algo útil ???

Mas para que serviria algo assim, além de uma curiosidade mostrada em aula ? Uma possível aplicação realmente útil seria criar um concentrador de acesso aos consoles de equipamentos de uma rede, que disponibilizaria o acesso via uma interface web. O concentrador poderia contatar os consoles por portas seriais, telnet ou ssh. Essa aplicação ajudaria um técnico a acessar os consoles dos equipamentos remotamente, bastando para isso ter acesso à rede e um computador com navegador (ou mesmo celular).

Se você acha isso interessante, e gostaria de saber como poderia ser feito, fale com o professor :-)