segunda-feira, 11 de janeiro de 2016

Conexão Terminal em Dispositivos Cisco via Cabo USB

Olá Pessoal,

A maioria dos equipamentos de rede possui uma porta de console para permitir aquele primeiro acesso em que são realizadas as configurações iniciais do dispositivo de maneira out-of-bound, ou seja, uma conexão local direta à parte da rede local. Em dispositivos Cisco essa conexão tradicionalmente é feita através de algum aplicativo terminal, a exemplo do PuTTY ou do Screen, via conexão serial em uma porta de console com terminal RJ-45, em que utilizamos o cabo apresentado na figura 1a para esse fim.

Ocorre que praticamente todos os novos computadores não possuem uma porta serial (RS-232) como acontecia anos atrás, motivo pelo qual é necessário utilizar um adaptador USB-Serial (figura 1b) que é acoplado em uma porta USB do computador e, depois de instalados os devidos drivers, o sistema operacional passa a reconhecer uma interface serial (COM ou TTY).


Figura 1. Tipos de Cabos de Console (Clique p/ Ampliar)

Felizmente, já há alguns anos, os roteadores e switches da Cisco possuem, além da tradicional porta de console do tipo serial (terminal RJ-45), uma porta de console adicional do tipo mini-USB (figura 2), o que permite a utilização de um cabo USB convencional. Na relação de acessórios da Cisco, o referido cabo é denominado CISCO-CONSOLE-USB, mas na prática qualquer cabo USB que tenha um terminal USB Tipo-A e outro terminal do tipo mini-USB Tipo-B (figura 1c) é compatível.

Figura 2. Visão Traseira do Chassi de um Roteador Cisco 1905

Nas linhas abaixo trago um rápido guia de como realizar essa conexão terminal em roteadores, switches ou mesmo outras caixas da Cisco utilizando um cabo USB, ao invés do tradicional cabo de console serial. O procedimento é descrito para Linux, Mac OS X e Windows. 



Conexão Terminal via USB no Linux

No Linux não é necessário instalar nenhum driver para que o cabo USB possa ser utilizado como linha serial. Ao conectar o cabo no computador e no roteador/switch, o sistema operacional irá identificar o dispositivo e criar seu respectivo arquivo de sistema em /dev/ttyACM#, sendo que # é um número qualquer de indexação. Outra vantagem é que não é necessário instalar nenhum software terminal, uma vez que a maioria das distribuições Linux já possui o screen. Apesar disso, não há problema nenhum em utilizar qualquer outro software terminal de preferência do usuário.

root@Linux:~$ ls -ltr /dev/*ACM*
crw-rw---- 1 root dialout 166, 0 Jan   9 13:18 /dev/ttyACM0
root@Linux:~$ screen /dev/ttyACM0 9600
[screen is terminating]
root@Linux:~$

O primeiro passo é listar os arquivos tty do diretório de sistema /dev e localizar o arquivo que normalmente começa por ttyACM. Para facilitar a visualização da saída, é útil utilizar os parâmetros -ltr para exibir os arquivos em lista (-l), por ordem de alteração (-t) e de maneira reversa (-r). Uma vez identificado o nome do arquivo que faz referência à linha serial, basta executar o aplicativo screen na respectiva porta com a velocidade de 9600Bd (baud rate), destacando que o valor padrão de baud em dispositivos mais novos pode ser 115200Bd. Para encerrar o screen, basta digitar CTRL+A : quit.



Conexão Terminal via USB no Mac OS X

No Mac OS X não é necessário instalar nenhum driver para que o cabo USB possa ser utilizado como linha serial. Ao conectar o cabo no computador e no roteador/switch, o sistema operacional irá identificar o dispositivo e criar seu respectivo arquivo de sistema em /dev/tty.usbmodem#, sendo que # é um número qualquer de indexação. Outra vantagem é que não é necessário instalar nenhum software terminal, uma vez que o Mac OS X já possui o screen. Apesar disso, não há problema nenhum em utilizar qualquer outro software terminal de preferência do usuário.

MacBook:~ User$ ls -ltr /dev/*usb*
crw-rw-rw-  1 root wheel  18,   4  9 Jan 13:13 tty.usbmodem1411
crw-rw-rw-  1 root wheel  18,   5  9 Jan 13:13 cu.usbmodem1411
MacBook:~ User$ screen /dev/tty.usbmodem1411 9600
[screen is terminating]
MacBook:~ User$

É necessário abrir o aplicativo Terminal (no Launchpad) para listar os arquivos tty do diretório de sistema /dev e localizar o arquivo que normalmente começa por tty.usbmodem. Para facilitar a visualização da saída, é útil utilizar os parâmetros -ltr para exibir os arquivos em lista (-l), por ordem de alteração (-t) e de maneira reversa (-r). Uma vez identificado o nome do arquivo que faz referência à linha serial, basta executar o aplicativo screen na respectiva porta com a velocidade de 9600Bd (baud rate), destacando que o valor padrão de baud em dispositivos mais novos pode ser 115200Bd. Por fim, para encerrar o cliente terminal screen, basta digitar CTRL+A : quit.



Conexão Terminal via USB no Windows

No Windows é necessário instalar um pacote de drivers da Cisco (atualmente na versão 3.1) para que o sistema operacional possa utilizar o cabo USB como linha serial. O leitor pode baixar o pacote de drivers diretamente da página da Cisco ou através do link abaixo que estou disponibilizando no blog. Observe que existe um arquivo específico para arquiteturas 32bits e outro para 64bits. Também é necessário instalar algum software terminal que permita acesso serial (por ex.: PuTTY).

http://www.labcisco.com.br/app/cisco-usbconsole-driver.zip

Uma vez instalado o driver no Windows, então o sistema operacional irá reconhecer uma porta Cisco Serial do tipo COM (figura 3) que deverá ser informada no software terminal de maneira idêntica ao tradicional acesso serial que era feito via cabo de console.

Figura 3. Porta Cisco Serial no Gerenciador de Dispositivos do Windows


Façam seus testes...

Samuel.

13 comentários:

  1. Existe um problema comum no Windows 7 em que a porta COM é reconhecida como adaptador Serial-USB ao invés de Cisco-Serial. Caso isso aconteça, o administrador não conseguirá fazer acesso via console na porta COM. Para resolver o problema é necessário abrir o Gerenciador de Dispositivos do Windows 7, clicar com o botão direito na porta COM, pedir para realizar uma atualização do driver e selecionar para procurar o driver correto no próprio computador porque ele já foi previamente instalado.Por fim, é necessário selecionar a opçao Cisco-Serial que funciona corretamente ao invés da opção USB-Seial-Port que não funciona.

    https://supportforums.cisco.com/document/12067526/usb-console-driver-and-windows-7

    ResponderExcluir
  2. Estava com o problema aqui, e segui os passos do Samuel e funcionou OK no putty!!! Tks!

    ResponderExcluir
  3. Olá Samuel,
    Uma dúvida: porque você usa cabo serial para conectar um roteador em outro roteador, em vez de usar um cabo UTP ou fibra?
    Obrigada!

    ResponderExcluir
    Respostas
    1. Porque tradicionalmente os links de longa distância (WAN) conectavam os modens das operadores até interfaces seriais dos roteadores. Esse panorama vem mudando e hoje é comum que os modens sejam conectados aos roteadores atraves de interfaces ethernet.

      Excluir
  4. samuel boa tarde

    Meu PC nao tem saida serial posso usar um adaptador USB para ligar o cabo serial.

    ResponderExcluir
  5. Boa tarde Mestre, como faço pra acessar um ativo via console atraves de um roteador cisco usando cabo serial??

    ResponderExcluir
  6. Contribuição:
    No meu linux (Debian) a porta é:
    /dev/ttyUSB0

    ResponderExcluir
  7. Samuel, tudo bem?!
    Acompanho teu blog e me ajuda muito no meu dia-a-dia, quero aproveitar o topico e perguntar se existe uma console local, cabo rollover rj45 to rj45, sem o uso de serial e rs232 nem adaptador.

    ResponderExcluir
  8. Olá, tenho visto muitos cabos com chip para automação traindo muitos profissionais que, após comprar quebram a cabeça e acabam tentando instalar os drivers do PL2303 no chip CH340. Gostaria de tirar uma dúvida, esse cabo mini USB é específico ou pode ser o mesmo cabo que carrega um joystick de playstation ?

    ResponderExcluir