Mostrando postagens com marcador Laboratório. Mostrar todas as postagens
Mostrando postagens com marcador Laboratório. Mostrar todas as postagens

sábado, 13 de janeiro de 2018

Lançamento do Cisco Packet Tracer 7.1.1

Olá Pessoal,

No dia 10/janeiro a Cisco anunciou oficialmente para a comunidade NetAcad o lançamento da nova versão do simulador Cisco Packet Tracer 7.1.1, disponível para download no repositório oficial da Academia Cisco (www.netacad.com). Assim como ocorreu na versão anterior (v7.1.0), o simulador foi disponibilizado nas versões 32-bits e 64-bits para o sistema Microsoft Windows e apenas na versão 64-bits para o Linux Ubuntu (compatível com Debian GNU/Linux).


A nova versão basicamente traz correções de vários bugs que foram reportados pelos usuários das academias do programa Cisco Networking Academy. Vale lembrar que as novidades recentemente incorporadas na versão 7.1 foram as seguintes:

  • Correção de Bugs 
  • Atualização das Versões do IOS nos Dispositivos (v15.4.3, 15.5.3 e 15.6.3)
  • Novos Dispositivos Wireless (WLC 2504 e AP 3702 Aironet)
  • Novos Dispositivos (Switch 3650, Router 829, Router 4321)
  • Protocolo MQTT (Message Queue Telemetry Transport)
  • Suporte a SFP/SFP+
  • Módulo HWIC-1GE-SFP
  • Melhorias na Visão Física

Os requisitos mínimos de sistema para executar o simulador são os seguintes: 

  • Microsoft Windows (7 / 8.1 / 10) ou Linux Ubuntu (14.04 64-bits)
  • CPU Pentium 4 (2.5 GHz)
  • 2GB RAM (Recomendação de 4GB)
  • 700MB de Espaço em Disco
  • Resolução de Vídeo de 1024x768

Como é de costume, também estou disponibilizando a nova versão do simulador Cisco Packet Tracer para download na seção "Downloads & Laboratórios" do blog (para Windows e Linux). Baixem essa nova versão e relatem suas experiências com a ferramenta. Os laboratórios do meu livro são todos compatíveis com essa nova versão, por isso não deve haver problema nenhum em fazer a atualização. Vale lembrar que os laboratórios criados nas versões mais recentes do Packet Tracer não são compatíveis com as versões anteriores. Por isso é sempre recomendado que os alunos tenham a versão mais recente do simulador instalado em suas máquinas. 

Fiquem atentos...

Samuel. 

quinta-feira, 3 de agosto de 2017

Lançamento do Cisco Packet Tracer 7.1

Olá Pessoal,

Ontem a Cisco anunciou oficialmente para a comunidade NetAcad o lançamento da nova versão do simulador Cisco Packet Tracer 7.1 (7.1.0.0221), disponível para download no repositório oficial da Academia Cisco (www.netacad.com). Dessa vez o simulador foi disponibilizado nas versões 32-bits e 64-bits no Microsoft Windows e apenas na versão 64-bits para Linux Ubuntu (compatível com Debian GNU/Linux).




A nova versão traz as seguintes melhorias anunciadas:
  • Correção de Bugs 
  • Atualização das Versões do IOS nos Dispositivos (v15.4.3, 15.5.3 e 15.6.3)
  • Novos Dispositivos Wireless (WLC 2504 e AP 3702 Aironet)
  • Novos Dispositivos (Switch 3650, Router 829, Router 4321)
  • Protocolo MQTT (Message Queue Telemetry Transport)
  • Suporte a SFP/SFP+
  • Módulo HWIC-1GE-SFP
  • Melhorias na Visão Física

Certamente a novidade mais interessante é o suporte esperado há alguns anos a novos dispositivos que permitam simular uma solução Cisco Unified Wireless Network (CUWN), através de uma controladora e APs da família Aironet. Pelos testes rápidos que fiz no software, a má notícia é que nenhum desses dispositivos wireless possui suporte à linha de comando e suas configurações avançadas. 

Os requisitos mínimos de sistema para executar o simulador são os seguintes: 
  • Microsoft Windows (7 / 8.1 / 10) ou Linux Ubuntu (14.04 64-bits)
  • CPU Pentium 4 (2.5 GHz)
  • 2GB RAM (Recomendação de 4GB)
  • 700MB de Espaço em Disco
  • Resolução de Vídeo de 1024x768


Como é de costume, também estou disponibilizando a nova versão do simulador Cisco Packet Tracer para download na seção "Downloads & Laboratórios" do blog (para Windows e Linux). Baixem essa nova versão e relatem suas experiências com a ferramenta. Os laboratórios do meu livro são todos compatíveis com essa nova versão, por isso não deve haver problema nenhum em fazer a atualização. Vale lembrar que os laboratórios criados nas versões mais recentes do Packet Tracer não são compatíveis com as versões anteriores. Por isso é sempre recomendado que os alunos tenham a versão mais recente do simulador instalado em suas máquinas. 

Fiquem atentos...

Samuel. 

quarta-feira, 3 de maio de 2017

Lançamento do Emulador GNS3 v2.0.0


Olá Pessoal.

Escrevo para informá-los que agora há pouco atualizei o repositório do blog, na aba "Downloads & Laboratórios", com a última versão do GNS3 2.0.0 para Micosoft Windows (64 bits) e Mac OS X. Os instaladores têm aproximadamente 50MB e estão disponíveis apenas para plataformas 64 bits, sendo que uma das melhorias da nova versão é que os projetos abertos são salvos automaticamente. 



Já para os usuários do Linux, especificamente do Ubuntu e Debian, o procedimento de instalação segue sendo possível através dos repositórios, podendo ser facilmente instalado/atualizado através de um PPA (Personal Package Archive) no Launchpad, bastando o usuário utilizar as seguintes linhas de comando:

sudo add-apt-repository ppa:gns3/ppa
sudo apt-get update
sudo apt-get install gns3-gui

Aqueles interessados em instalar o GNS3 em outras distribuições Linux podem consultar a documentação oficial disponibilizada na plataforma GNS3 Jungle (www.gns3.com). Façam seus testes...

Samuel.

terça-feira, 4 de abril de 2017

Backup Automático de Configurações do IOS via Archive

Olá Pessoal,

Em outro artigo do blog intitulado "Backup de Configurações do IOS em Servidor TFTP no Linux" o leitor aprendeu a configurar um servidor TFTP para fazer o backup manual de arquivos de switches e roteadores Cisco executando o IOS, uma vez que esses dispositivos já possuem um cliente TFTP embutido. O objetivo deste artigo é explicar ao leitor como utilizar a ferramenta archive para programar o IOS para realizar periodicamente o backup automático das configurações de switches/roteadores, partindo do princípio de que já existe um servidor TFTP em nossa rede conforme ilustrado abaixo. 


O procedimento para programar um backup diário é bastante simples:

Router(config)# archive
Router(config-archive)# path tftp://192.168.221.27/
Router(config-archive)# time-period 14040
Router(config-archive)# write-memory

Na linha 01 a ferramenta archive é invocada, o que coloca o IOS em seu próprio sub-modo de configuração onde é possível informar o endereço de uma máquina remota que esteja executando um servidor TFTP. O parâmetro time-period representa um intervalo de tempo em minutos, portanto o valor 1440 equivale a 24 horas (60 minutos x 24 horas).  Por fim, o comando write-memory é utilizado para disparar uma ação de cópia da configuração na máquina remota (especificada em path) sempre que houver alguma alteração no dispositivo local, independente do tempo programado. 

Caso exista um servidor FTP na rede, ao invés de um TFTP, as configurações poderiam ser realizadas de maneira bastante semelhante, bastando adicionar algumas informações para autenticação do usuário, sendo que no exemplo abaixo utilizamos o usuário shbbrito e a senha é SENHA:

Router(config)# archive
Router(config-archive)# path ftp://shbbrito:SENHA@192.168.221.27
Router(config-archive)# time-period 14040
Router(config-archive)# write-memory

Outra opção é fazer a transferência segura através do SCP (via SSH), bastando mudar o nome do protocolo no comando path.  O leitor interessado em detalhes desse procedimento encontra mais informações em outro artigo do blog intitulado "Transferência Segura de Arquivos no Cisco IOS via SCP".

Router(config)# archive
Router(config-archive)# path scp://shbbrito:SENHA@192.168.221.27/
Router(config-archive)# time-period 14040
Router(config-archive)# write-memory

Um recurso interessante que cabe destacar é a possibilidade de utilização de duas variáveis na propriedade path do archive que são bastante úteis para personalizar os nomes dos arquivos de backup para fins de versionamento. A variável $t faz referência à data que deve estar sincronizada via NTP, lembrando que as configurações do NTP foram abordadas em outro artigo do blog intitulado "A Hora Certa na Internet Brasileira". A variável $h faz referência ao nome do host. Por exemplo, as configurações do archive poderiam especificar o formato desejado para o nome dos arquivos de backup:

Router(config)# ntp server 208.160.7.186
Router(config)# clock timezone BR -3 9
Router(config)# clock summer-time BRV recurring 3 Sun Oct 0:00 3 Sun Feb 0:00
Router(config)# service timestamp debug datetime msec localtime show-timezone year
Router(config)# service timestamp log datetime msec localtime show-timezone year
Router(config)# archive
Router(config-archive)# path tftp://192.168.221.27/$h-$t
Router(config-archive)# time-period 14040
Router(config-archive)# write-memory

Essa ação resultaria em arquivos com nomes no formato HOSTNAME-MMM-DD-HH:MM:SS-TMZ-N, ou seja, Router-Apr-02-13-21-22-BRV-0. O comando show archive pode ser utilizado para exibir um histórico das últimas ações. 

Router# show archive
The maximum archive configuration allowed is 10.
The next archive file will be named ftp://shbbrito:SENHA@192.168.221.37/-<timestamp>-3
Archive  #  Name
   1        ftp://shbbrito:SENHA@192.168.221.37/Router-Apr-02-13:21:22.BRV-0
   2        ftp://shbbrito:SENHA@192.168.221.37/Router-Apr-02-13:24:22.BRV-1
   3        ftp://shbbrito:SENHA@192.168.221.37/Router-Apr-02-13:27:22.BRV-2

Façam seus testes...

Samuel. 

quarta-feira, 1 de março de 2017

VPN IPSec Site-to-Site no Debian GNU/Linux

Olá Pessoal,

No Lab27 do livro Laboratórios de Tecnologias Cisco explico ao leitor como configurar dois roteadores Cisco para estabelecer uma VPN IPSec  e conectar duas redes locais (LAN) remotamente através da Internet (site-to-site). Neste artigo trago um laboratório bastante similar com base na topologia apresentada na figura abaixo, só que dessa vez irei fazê-lo através de utilização de dois servidores instalados com o Debian 8 GNU/Linux que serão configurados como roteadores VPN


Antes de abordar as configurações, é importante um pouco de discussão sobre a escolha de uma solução de VPN para ambientes Linux. Por se tratar de um ambiente aberto, no Linux existe uma grande diversidade de soluções que podem ser utilizadas para implementar uma VPN para fins de estabelecimento de um túnel virtual privativo entre duas (ou mais) unidades remotas. Além de existirem várias ferramentas, também existem diferentes tipos de soluções para implementação da VPN, o que faz com que o primeiro desafio de um administrador seja a escolha da solução mais adequada no contexto do seu ambiente.

As VPNs são tradicionalmente implementadas através de túneis IPSec (solução padronizada em RFC) ou de túneis SSL/TLS. As duas abordagens trazem excelentes resultados, mas é importante ter em mente que a solução IPSec é implementada em nível de rede, enquanto que a solução TLS é implementada em nível de aplicação. De maneira simplista isso quer dizer que uma VPN IPSec é implementada diretamente entre os roteadores (em nível de rede), enquanto que uma VPN TLS é implementada entre os softwares servidor/cliente (em nível de aplicação).

Cada uma dessas modalidades tem vantagens e desvantagens. Por exemplo, como a VPN TLS é estabelecida entre as aplicações (e não entre as máquinas), normalmente ela é mais atrativa para a criação de VPNs do tipo client-to-site, em que o objetivo é que um cliente em casa ou outro local fora da empresa possa se conectar aos recursos da infraestrutura de rede da empresa, afinal o próprio software cliente da máquina do usuário se encarrega de esconder do usuário toda a complexidade de configuração da VPN. Por outro lado, a principal vantagem de implementar uma VPN através do IPSec em nível de rede, ao invés do SSL em nível de aplicação, é que existe interoperabilidade entre as soluções de diferentes fabricantes.

Obs.: Reocmendo a leitura do artigo no link abaixo caso o leitor tenha interesse em estabelecer uma VPN através da integração de uma ponta que possui um roteador Cisco (baseado no IOS) e outra ponta que possui um servidor Linux Debian (baseado no strongSwan):

http://www.cisco.com/c/pt_br/support/docs/ip/internet-key-exchange-ike/117258-config-l2l.html

Particularmente neste artigo o objetivo é trazer os procedimentos de configuração de uma VPN IPSec para interconexão de duas unidades remotas de uma empresa através de um túnel virtual. Mesmo depois de tomada essa decisão, ainda existem várias ferramentas no Linux que podem ser utilizadas para esse fim, por exemplo: strongSwan, OpenSwan, LibreSwan, etc... Uma das soluções mais tradicionais é o strongSwan, já que seu desenvolvimento ainda é bastante ativo e por isso a ferramenta é repleta de novos recursos, diferente do OpenSwan que parece estar estagnado apenas para versões antigas do kernel.


Abaixo baixo trago as configurações básicas de rede que foram utilizadas em cada um dos roteadores Debian, seguindo a lógica da topologia apresentada no início do artigo. Além das configurações abaixo, também é importante alterar para 1 a flag do kernel que indica ao sistema que ele tem permissão para fazer roteamento entre redes, o que pode ser feito através do comando: sysctl -w net.ipv4.ip_forward=1

###--- Router-Site1: /etc/network/interfaces

# Interface Loopback
auto lo
iface lo inet loopack

# Conexao WAN (Internet)
auto eth0
iface eth0 inet static
    address 203.0.113.2
    netmask 255.255.255.252
    gateway 203.0.113.1

# Conexao LAN
auto eth1
iface eth1 inet static
    address 192.168.100.1
    netmask 255.255.255.0



###--- Router-Site2: /etc/network/interfaces

# Interface Loopback
auto lo
iface lo inet loopack

# Conexao WAN (Internet)
auto eth0
iface eth0 inet static
    address 198.51.100.2
    netmask 255.255.255.252
    gateway 198.51.100.1

# Conexao LAN
auto eth1
iface eth1 inet static
    address 192.168.200.1
    netmask 255.255.255.0

Vamos à configuração da VPN IPSec...

1) Instalação do Serviço strongSwan de VPN IPSec

Feita essa breve contextualização, vamos à instalação da ferramenta strongSwan. Assim como nos outros artigos do blog, estou considerando que os servidores estão instalados com a distribuição Debian GNU/Linux (ou seus derivados, como o Ubuntu). A primeira etapa consiste na instalação do pacote denominado strongswam para que os servidores Linux possam ser posterirmente configurados como roteadores VPN. Essa tarefa é simples e rápida através do APT:

root@Router-SiteA:/# apt-get update
root@Router-SiteA:/# apt-get install strongswan

root@Router-SiteB:/# apt-get update
root@Router-SiteB:/# apt-get install strongswan

2) Edição do Arquivo de Configuração e Definição da(s) VPN(s)

Dois dos arquivos mais importantes de configuração do strongSwan ficam localizados em /etc/ipsec.conf e /etc/ipsec.secrets.  O arquivo ipsec.conf é responsável pelas configurações gerais, além das configurações específicas de cada uma das conexões VPN. Logo, devemos editar esse arquivo em ambos os roteadores com as seguintes configurações para criar uma VPN coerente entre os pares:

###--- Router-Site1: /etc/ipsec.conf (strongSean IPSec config file)

###--- Configuracoes Gerais
config setup
        charondebug="all"
        uniqueids=yes
        strictcrlpolicy=no

###--- Definicao da(s) VPN(s)
conn VPN-Site1-to-Site2
        left=203.0.113.2
        leftsubnet=192.168.100.0/24
        right=198.51.100.2
        rightsubnet=192.168.200.0/24
        ike=aes256-sha2_256-modp1024!
        esp=aes256-sha2_256!
        keyingtries=0
        ikelifetime=1h
        lifetime=8h
        dpddelay=30
        dpdtimeout=120
        dpdaction=restart
        authby=secret
        auto=start
        keyexchange=ikev2
        type=tunnel
     


###--- Router-Site2: /etc/ipsec.conf (strongSean IPSec config file)

###--- Configuracoes Gerais
config setup
        charondebug="all"
        uniqueids=yes
        strictcrlpolicy=no

###--- Definicao da(s) VPN(s)
conn VPN-Site1-to-Site2
        left=198.51.100.2
        leftsubnet=192.168.200.0/24
        right=203.0.113.2
        rightsubnet=192.168.100.0/24
        ike=aes256-sha2_256-modp1024!
        esp=aes256-sha2_256!
        keyingtries=0
        ikelifetime=1h
        lifetime=8h
        dpddelay=30
        dpdtimeout=120
        dpdaction=restart
        authby=secret
        auto=start
        keyexchange=ikev2
        type=tunnel

Obsrevem nas linhas destacadas em amarelo que os parâmetros left e right fazem referência às pontas da VPN. Para facilitar o processo de cópia do arquivo de configuração nos dois roteadores Linux não faz diferença qual ponta será associada com o parâmetro left ou right, uma vez que o sistema observa as configurações das interfaces de rede para identificar a ponta local. No entanto, é interessante manter as infomações organizadas de forma a utilizar o parâmetro left para fazer referência ao ponto local, enquanto que o parâmetro right fica reservado para o ponto remoto. O leitor interessado em detalhes sobre os demais parâmetros pode obter mais informações na documentação oficial do strongSwan, disponível no link abaixo:

https://wiki.strongswan.org/projects/strongswan/wiki/ConnSection

3) Definição da Chave Pré-Compartilhada (PSK)

O segundo arquivo importante de configuração do strongSwan é o /etc/ipsec.secrets, responsável por armazenar a(s) chave(s) pré-compartilhadas que será(ão) utilizada(s) durante o processo de associação dos pares nas fases prévias de estabelecimento da VPN.  Devemos editar esse arquivo em ambos os roteadores com as seguintes configurações para criar uma VPN coerente entre os pares:

###--- Router-Site1: /etc/ipsec.secrets
203.0.113.2 198.51.100.2 : PSK : 'senha13579senha02468'

###--- Router-Site2: /etc/ipsec.secrets
198.51.100.2 203.0.113.2 : PSK : 'senha13579senha02468'

Obs.: Para fins de simplicidade, neste artigo foi utilizada uma chave pré-compartilhada entre os roteadores VPN. No entanto, também é possível a utilização de certificados digitais e chaves privada/pública para adicionar mais segurança ao processo de estabelecimento do túnel. A configuração de uma VPN com uso de certificados/chaves no strongSwan não é complicada, embora demande alguns passos adicionais. Caso haja interesse dos leitores, essa configuração pode ser objeto  de um próximo artigo no blog.

4) Manipulação e Checagem do Serviço da VPN IPSec

Depois de realizadas as configurações anteriores, a VPN IPSec está devidamente configurada para entrar em operação. Para ativá-la basta utilizar o comando ipsec restart e para visualizar seu status basta utilizar os comandos ipsec status ou ipsec statusall, conforme pode ser observado nas saídas trazidas abaixo:

Router-Site1:/# ipsec statusall
Status of IKE charon daemon (strongSwan 5.2.1, Linux 3.16.0-4-586, i686):
(...) Saída Omitida
Connections:
VPN-Site1-to-Site2:  203.0.113.2...198.51.100.2  IKEv2, dpddelay=30s
VPN-Site1-to-Site2:   local:  [203.0.113.2] uses pre-shared key authentication
VPN-Site1-to-Site2:   remote: [198.51.100.2] uses pre-shared key authentication
VPN-Site1-to-Site2:   child:  192.168.100.0/24 === 192.168.200.0/24 TUNNEL, dpdaction=restart
Security Associations (1 up, 0 connecting):
VPN-Site1-to-Site2[1]: ESTABLISHED 14 seconds ago, 203.0.113.2[203.0.113.2]...198.51.100.2[198.51.100.2]
(...) Saída Omitida
VPN-Site1-to-Site2{1}:  AES_CBC_256/HMAC_SHA2_256_128, 0 bytes_i, 0 bytes_o, rekeying in 7 hours
VPN-Site1-to-Site2{1}:   192.168.100.0/24 === 192.168.200.0/24 

O leitor pode constatar que a configuração de uma VPN IPSec no Linux não é tão difícil quanto alguns dizem. Na realidade, possivelmente essa informação seja decorrente da comparação da configuração de uma VPN IPSec com uma VPN TLS através do OpenVPN que é reconhecida por ser mais rápida e simples.

Ainda é importante destacar que caso os roteadores Debian GNU/Linux estejam conectados atrás de um firewall de borda, é importante liberar as portas 500/UDP (utilizada na troca de chaves do ISAKMP) e 4500/UDP (utilizada pelo NAT-T). Além disso, os pacotes IPSec usam dois numéros dedicados de protocolos na camada de rede: 50 (ESP) e 51 (AH).

Por exemplo, supondo que os roteadores estejam atrás de um firewall baseado em iptables, então é necessário aceitar os pacotes nessas portas e traduzir o endereço público de destino (do firewall de borda) para o endereço privado do roteador VPN, de forma que as regras para liberação do tráfego IPSec seriam as seguintes:

iptables -t nat -A PREROUTING -p udp -d <IP_WAN> --dport  500 -j DNAT --to <IP>
iptables -t nat -A PREROUTING -p udp -d <IP_WAN> --dport 4500 -j DNAT --to <IP>

Caso o roteador Debian GNU/Linux seja o próprio firewall, o que é comum em ambientes menores, então é necessário apenas uma regra de entrada para o ISAKMP, já que não ocorre tradução (NAT-T):

iptables -t filter -A INPUT  -p udp --dport 500 -j ACCEPT

Façam seus testes...

Samuel.

terça-feira, 14 de fevereiro de 2017

Protocolos CDP e LLDP de Descoberta de Vizinhos

Olá Pessoal,

Os protocolos CDP e LLDP são utilizados para comunicação layer-2 entre dispositivos da infraestrutura de uma rede de computadores com a finalidade de descoberta dos vizinhos diretamente conectados. Como ambos os protocolos operam na camada de enlace, os dispositivos sequer precisam ser configurados com um endereço IP para trocarem quadros com informações que permitam sua descoberta na rede de maneira dinâmica. A boa notícia é que ambos os protocolos são extremamente simples de comprender e ainda mais fáceis de configurar! Se você já sabe operar o CDP, então operar o LLDP será tão simples quanto.

O CDP (Cisco Discovery Protocol) é um protocolo proprietário da Cisco e provavelmente um conhecido há anos daqueles que estudam para o exame de certificação CCNA. Outro protocolo que tem exatamente a mesma finalidade é o LLDP (Link-Layer Discovery Protocol) com a diferença de ser um padrão da indústria (IEEE 802.1AB) que pode ser implementado por qualquer fabricante, o que faz dele uma solução bem mais flexível do que o CDP em ambientes com dispositivos de múltiplos fabricantes.  Aqueles que estão estudando para o exame CCNA já devem saber que recentemente o LLDP passou a integrar o componente curricular do novo exame. 

Para praticar os procedimentos de configuração dos protocolos CDP e LLDP o leitor pode construir qualquer cenário com roteadores e switches no simulador Cisco Packet Tracer. Para exemplificar a configuração, irei me basear na simples topologia apresentada abaixo, em que temos um roteador diretamente conectado a outros dois switches que também estão conectados entre si.


Configuração do Cisco Discovery Protocol (CDP)

O CDP já vem habilitado por padrão nas caixas da Cisco, o que é útil para soluções que integram uma infraestrutura totalmente baseada em dispositivos Cisco, por exemplo entre telefones IP e switches Catalyst que se beneficiam da troca de informações da VLAN auxiliar de voz. No entanto, é importante estar atento que são muitas as situações em que é melhor desativar o CDP nas interfaces em que não desejamos que dispositivos vizinhos possam visualizar informações sobre um determinado equipamento, já que a divulgação pode facilitar o processo de descoberta de informações por pessoas não autorizadas. 

É possível desativar globalmente o CDP através do comando destacado em amarelo:

Router(config)# no cdp run
Router(config)# exit
Router# show cdp
% CDP is not enabled

Outra é possível é desativá-lo apenas em alguma(s) interface(s):

Router(config)# interface g0/0
Router(config-if)# no cdp enable

Como o CDP já vem habilitado por padrão, o comando "show cdp neighbors" pode ser utilizado nas caixas para exibir um resumo dos vizinhos diretamente conectados. Esse comando permite identificar qual(is) dispositivo(s) estão diretamente conectados em qual(is) interface(s) do dispositivo local. Caso o administrador queira obter informações mais detalhadas sobre os vizinhos, a palavra detail pode ser adicionada ao comando (show cdp neighbors detail). 

O CDP pode ser bastante útil em ambientes pequenos e médios que não possuem documentação atualizada da sua infraestrutura de redes. A partir de um dispositivo qualquer na infraestrutura é possível identificar os links para seus vizinhos e através do acesso sucessivo aos vizinhos é possível identificar todos os demais vizinhos sob a referência do dispositivo seguinte, de maneira que ao final o administrador terá em mãos a topologia completa da rede.  A propósito, um bom exercício é o leitor utilizar as informações abaixo para desenhar a topologia da rede. 

Observe que a partir do Router é possível identificar que diretamente conectado nele temos o Switch1 e Switch2. Na sequência, a partir do Switch1 podemos confirmar o link anterior para o Router, além de um link adicional para o Switch2. Continuando, no Switch2 podemos confirmar os links para o Router e Switch1. Ao final vocês serão capazes de chegar exatamente na topologia apresentada na figura anterior. Simples assim e bastante útil, não é mesmo?

Router> show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
                  S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone
Device ID    Local Intrfce   Holdtme    Capability   Platform    Port ID
Switch1      Gig 0/0          166            S       2960        Gig 0/1
Switch2      Gig 0/1          166            S       2960        Gig 0/1


Switch1> show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
                  S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone
Device ID    Local Intrfce   Holdtme    Capability   Platform    Port ID
Switch2      Gig 0/2          153            S       2960        Gig 0/2
Router       Gig 0/1          125            R       C2900       Gig 0/0


Switch2> show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
                  S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone
Device ID    Local Intrfce   Holdtme    Capability   Platform    Port ID
Switch1      Gig 0/2          124            S       2960        Gig 0/2
Router       Gig 0/1          157            R       C2900       Gig 0/1



Configuração do Link-Layer Discovery Protocol (LLDP)

Ao contrário do CDP que vem habilitado por padrão nas caixas da Cisco, o LLDP precisa ser habilitado manualmente pelo administrador antes de interagir com outros equipamentos com o protocolo aberto. Nada de mais nesse ponto, visto que sua ativação global em todas as interfaces é bem simples, conforme pode ser observado no comando destacado em amarelo:

Router# show lldp
% LLDP is not enabled
Router# configure terminal
Router(config)# lldp run
Router(config)# exit
Router# show lldp

Global LLDP Information:
    Status: ACTIVE
    LLDP advertisements are sent every 30 seconds
    LLDP hold time advertised is 120 seconds
    LLDP interface reinitialisation delay is 2 seconds  

Depois de habilitado, o LLDP pode exibir as informações simplificadas dos seus vizinhos exatamente da mesma forma que foi feito anteriormente com o CDP, mudando apenas a palavra CDP por LLDP na linha de comando. A mesma regra vale para exibir informações detalhadas em que basta adicionar a palavra detail no comando de consulta dos vizinhos.  

Router# show lldp neighbors
Capability codes:
    (R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device
    (W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other
Device ID           Local Intf     Hold-time  Capability      Port ID
Switch1             Gig0/0         120        B               Gig0/1
Switch2             Gig0/1         120        B               Gig0/1

Total entries displayed: 2

Router# show lldp neighbors detail
(...) Saída Omitida 


Na realidade o LLDP permite que o administrador possa personalizar sua operação com mais opções do que o CDP. Por exemplo, com LLDP é possível definir quais informações um dispositivo deve ou não deve enviar para seus vizinhos através de atributos de controle, tamanho e valor (TLV). 

Router(config)# lldp tlv-select ?
    mac-phy-cfg           IEEE 802.3 MAC/Phy Configuration/status TLV
    management-address    Management Address TLV
    port-description      Port Description TLV
    port-vlan             Port VLAN ID
    power-management      IEEE 802.3 DTE Power via MDI TLV
    system-capbilities    System Capabilities TLV
    system-description    System Description TLV
    system-name           System NAME TLV 
 
Assim como o CDP, também é possível desativar o LLDP apenas em alguma(s) interface(s) em que não desejamos a troca de informações do dispositvo com seus vizinhos diretamente conectados. Para desativar o protocolo em uma interface específica devem ser utilizados os comandos abaixo:

Router(config)# interface g0/0
Router(config-if)# no lldp receive
Router(config-if)# no lldp transmit

Façam seus testes...

Samuel.

sexta-feira, 3 de fevereiro de 2017

Níveis de Privilégio no Sistema Cisco IOS

Olá Pessoal,

Um conceito básico que todos aprendem logo no primeiro contato com o sistema IOS utilizado em switches e roteadores da Cisco são os níveis de privilégio. A maioria dos profissionais já sabe que por padrão existe o modo de execução (nível 1) em que o usuário somente tem acesso à visualização de alguns comandos básicos sem nenhuma permissão de executar qualquer configuração no dispositivo, além do modo privilegiado (nível 15) que permite a visualização e configuração de todos os recursos do sistema (equivalente ao usuário root no Linux).

Se os níveis padrões são identificados pelos números 1 e 15, é de se esperar que os números intermediários tenham algum significado, não é mesmo? E eles têm, já que o IOS permite a definição de até 16 níveis de privilégio variando de 0 a 15, sendo 0 o mais restritivo e 15 o mais permissivo. Esse detalhe acaba se tornando apenas secundário porque é comum utilizar o comando enable assim que o administrador faz acesso a um dispositivo para obter acesso pleno a todas as configurações, o que torna desnecessário qualquer outro modo intermediário.  


No entanto, em ambientes maiores que possuem muitos equipamentos e diversos técnicos e engenheiros responsáveis pelas configurações das caixas, é natural segregar o pessoal em grupos homogêneos que tenham diferentes privilégios de acesso com o objetivo de restringir a atuação de cada grupo dentro do escopo da sua função. Por exemplo, é prática gerencial bastante comum classificar o pessoal técnico em níveis 1 (entrada), 2 (intermediário) e 3 (avançado), de maneira que os chamados sejam associados com cada nível em função da sua natureza. 

Nesses casos é bastante útil ter a flexibilidade de criar mais níveis de privilégios para esses grupos, ao invés de ficar limitado apenas aos dois níveis padrões 1 e 15, já que o nível 1 tem apenas acesso básico a visualização de poucas configurações e que o nível 15 representa o extremo oposto em que o técnico pode realizar qualquer intervenção na caixa. A ideia dos níveis intermediários é conferir acesso apenas a comandos específicos que um determinado grupo de usuários requer para executar suas funções. Quando criamos um usuário em uma base local que fica armazenada no próprio equipamento switch ou roteador, estamos habituados a fazê-lo da seguinte maneira:

Roteador(config)# line console 0
Roteador(config-line)# login local
Roteador(config-line)# line vty 0 4
Roteador(config-line)# login local
Roteador(config-line)# exit
Roteador(config)# username ADMIN privilege 15 secret SENHA

Utilizamos a configuração "login local" no acesso via console e nas primeiras 5 sessões remotas (vty 0 4) para forçar que seja realizada a autenticação do usuário antes de liberação do acesso, lembrando que o modo padrão (login) consiste apenas em senha sem usuário. O comando destacado em amarelo cria um usuário denominado ADMIN com permissão privilegiada (nível 15), sendo que SENHA é sua senha! A criação de usuários com níveis intermediários de privilégio é tão simples quanto o procedimento anterior, bastando alterar o número do privilégio.

No entanto, de nada adianta alocar um usuário com um nível de privilégio que não teve nenhum comando adicionado pelo administrador naquele nível específico, ou seja, é necessário informar quais comandos ele poderá executar. No exemplo abaixo criaremos um usuário denominado OPERADOR_2 com nível de privilégio 9, de modo que esse usuário será capaz de executar qualquer comando que tenha sido previamente associado pelo administrador com o nível 9 (incluindo os comandos de 0 a 8). Observem nas próximas linhas que a permissão de visualização do arquivo startup-config será restrita apenas aos usuários de nível intermediário 9, ou seja, somente os usuários dos níveis 9 até 15 poderão visualizar todas as configurações que são inicializadas com o equipamento. 

Roteador(config)# username OPERADOR_2 privilege 9 secret SENHA_9
Roteador(config)# privilege exec level 9 show startup-config

Como são várias as possibilidades para personalizar os níveis intermediários, abaixo trago outro exemplo em que é criado o usuário OPERADOR_1 de nível 6. Esse nível permite a configuração simples de endereços IPv4 e IPv6 nas interfaces de rede, inclusive com possibilidade de ativá-las (no shutdown) ou desativá-las (shutdown). Reparem que o segundo termo da sintaxe do comando privilege remete ao modo ou sub-modo de configuração de pertença do comando. Por exemplo, é no sub-modo de configuração de interface (amarelo) onde são configurados os endereços IP e ativadas/desativadas as interfaces.

Roteador(config)# username OPERADOR_1 privilege 6 secret SENHA_6
Roteador(config)# privilege exec level 6 configure terminal
Roteador(config)# privilege configure level 6 interface
Roteador(config)# privilege interface level 6 ip address 
Roteador(config)# privilege interface level 6 ipv6 address
Roteador(config)# privilege interface level 6 no ip address
Roteador(config)# privilege interface level 6 no ipv6 address
Roteador(config)# privilege interface level 6 shutdown
Roteador(config)# privilege interface level 6 no shutdown

Por fim, é importante ter em mente que o usuário pode utilizar o comando "show privilege" para visualizar o nível de privilégio do usuário em que ele está logado no sistema. 

Roteador> show privilege
Current privilege level is 1

Roteador# show privilege
Current privilege level is 15
  
Para que qualquer usuário possa ter permissão para visualizar seu nível de privilégio através do comando anterior, além de ter acesso a todos os demais comandos de visualização do modo padrão de execução (nível 1), podem ser utilizados os seguintes comandos:

Roteador(config)# privilege exec level 1 show privilege
Roteador(config)# privilege exec level 1 show

Como há muitos mais detalhes envolvidos com a configuração dos níveis intermediários de privilégio no sistema IOS, recomendo para aqueles interessados no assunto que façam a leitura da documentação oficial da Cisco no link abaixo:


Façam seus testes...

Samuel.

terça-feira, 17 de janeiro de 2017

Configuração de Link P2P em Bridge no Cisco Aironet

Olá Pessoal,

Tradicionalmente os dispositivos Access Point (AP) são utilizados como concentradores em redes sem fio com o propósito de viabilizar uma célula em seu entorno com área de cobertura para que haja comunicação com múltiplos dispositivos clientes de modo ponto-a-multiponto, motivo pelo qual os APs são equipados com antenas omnidirecionais com largura de feixe de 360° no plano horizontal (azimute). Apesar dessa ser a aplicação mais comum, há casos em que é necessário alterar esse comportamento convencional de modo a configurar dois APs em bridge para viabilizar a comunicação ponto-a-ponto, por exemplo na interligação sem fio à distância entre duas unidades remotas de uma empresa (vide figura). 

Nesses casos são acopladas nos APs antenas externas que tenham menor largura de feixe e com maior ganho (dBi) em uma determinada direção. A escolha da antena direcionada mais adequada vai depender da distância entre as duas unidades remotas, destacando que quanto maior o ganho da antena, maior será seu alcance e menor será a largura do feixe no plano horizontal. Por exemplo, antenas parabólicas são as que têm maior ganho (de 20 a 30 dBi) e podem alcançar vários quilômetros de distância (por volta de 50km), dependendo da obstrução no caminho entre as antenas. 


Obs.: Esteja ciente de que antenas parabólicas de alto ganho não devem ser utilizadas sem que o enlace de radiofrequência tenha sido devidamente projetado para irradiar sinal efetivo (EIRP) dentro dos limites legais do seu domínio regulatório, levando em consideração a potência de transmissão, a perda no cabo e demais componentes e o ganho da antena. Conforme Resolução 506/2008 da Anatel, no Brasil o EIRP máximo permitido na frequência de 2,4GHz é de até 30dBm (1000mW) em cidades com até 500.000 habitantes ou de até 26dBm (400mW) em cidades com mais de 500.000 habitantes. Qualquer enlace que esteja operando acima desses parâmetros deve ser licenciado junto à agência. 

O objetivo deste artigo é listar os passos necessários para configurar dois Aironet da Cisco em modo bridge para que seja possível estabelecer um enlace ponto-a-ponto entre duas unidades remotas, com base no cenário apresentado na figura anterior. Repare que as duas unidades pertencem à mesma sub-rede lógica em camada 3 (rede), o que deixa evidente que a conexão em modo bridge nada mais é do que uma ligação em camada 2 (enlace). É como se os APs fossem switches nas unidades remotas que estivessem interligados através de um cabo. Ocorre que na maioria dos casos não é possível fazer a passagem dos  cabos na via pública e a locação de um link dedicado não é barato (quando há disponibilidade no local), então fazer essa ligação através do meio não-guiado (wireless) acaba sendo uma opção atrativa.

Obs.: Também é possível isolar cada unidade em sua respectiva sub-rede lógica (camada 3). Nesse caso, o link ponto-a-ponto entre os dois APs é configurado como sendo uma sub-rede /30 independente das outras duas sub-redes das unidades remotas, de forma que cada AP terá um dos IPs disponíveis na sub-rede /30. O AP de cada unidade remota será diretamente conectado em um roteador de borda, ao invés de um switch. Se essa estratégia for adotada, é importante ter em mente que nos roteadores de borda deverá ser adicionada uma rota para a sub-rede lógica da outra unidade. 

Abaixo o leitor encontra os comandos necessários para configurar ambos os APs através dá interface de linha de comando (CLI) do IOS. Observe que o AP-A foi definido como root bridge e que o AP-B foi definido como non-root bridge, sendo que o canal do enlace é definido apenas no AP raíz. Assim que o link for efetivamente estabelecido, o LED dos Aironet em ambas as unidades mudará sua cor de verde para azul, indicando que os dois APs estão associados entre si. 

AP-A(config)# interface bvi1
AP-A(config-if)# ip address 192.168.0.201 255.255.255.0
AP-A(config-if)# exit
AP-A(config)# ip default-gateway 192.168.0.1
AP-A(config)# dot11 ssid BRIDGE
AP-A(config-ssid)# authentication open
AP-A(config-ssid)# authentication key-management wpa ver 2
AP-A(config-ssid)# wpa-psk ascii PASSWORD
AP-A(config-ssid)# exit
AP-A(config)# interface dot11radio0
AP-A(config-if)# station-role root bridge
AP-A(config-if)# channel 6
AP-A(config-if)# encryption mode ciphers aes-ccm
AP-A(config-if)# ssid BRIDGE
AP-A(config-if)# no shut
AP-A(config-if)# end

AP-B(config)# interface bvi1
AP-B(config-if)# ip address 192.168.0.202 255.255.255.0
AP-B(config-if)# exit
AP-B(config)# ip default-gateway 192.168.0.1
AP-B(config)# dot11 ssid BRIDGE
AP-B(config-ssid)# authentication open
AP-B(config-ssid)# authentication key-management wpa ver 2
AP-B(config-ssid)# wpa-psk ascii PASSWORD
AP-B(config-ssid)# exit
AP-B(config)# interface dot11radio0
AP-B(config-if)# station-role non-root bridge
AP-B(config-if)# encryption mode ciphers aes-ccm
AP-B(config-if)# ssid BRIDGE
AP-B(config-if)# no shut
AP-B(config-if)# end

Façam seus testes...

Samuel.